## 页首HTML代码 ```html

IO一些基础必备知识点

IO编程

IO一些必备知识点

①了解FAT32以及NTFS区别

名称 FAT32 NTFS
文件用处 Windows 95 OSR2及以后的版本中被广泛采用 Windows NT系列操作系统的默认文件系统
文件大小 FAT32在文件大小方面有明显的限制。它支持的最大单个文件大小为4GB NTFS支持非常大的文件和磁盘分区。单个文件的大小可以达到数TB甚至更大,只受限于磁盘空间的总量
安全性 较低,不支持文件加密和访问控制等 较高,并且支持文件加密(EFS)、磁盘配额和访问控制列表(ACL)等
性能 相比没那么出色,但是在闪存设备上有更好的读写功能 优秀,用了先进的元数据结构和算法,使得文件读写操作更加高效,还支持磁盘碎片整理和自动修复等
支持分区 最大为32GB,磁盘碎片一般 小可以达到2TB,磁盘碎片较少

②了解MMU(Memory Management Unit 内存管理单元)如何将虚拟地址与物理地址转换

image

MMU的转换分为两部分,分段机制和分页机制,如果没有打开分页机制的话,默认就是分段机制,则得出的线性地址就是物理地址。如果打开了分页机制,就需要引入页表的概念

image

③请简述Linux内核的作用

从技术层面讲,内核是硬件与软件之间的一个中间层。作用是将应用层序的请求传递给硬件,并充当底层驱动程序,对系统中的各种设备和组件进行寻址。

从应用程序的层面讲,应用程序与硬件没有联系,只与内核有联系,内核是应用程序知道的层次中的最底层

Linux内核是链接硬件和上层应用的桥梁,通过这个桥梁我们可以直接在上层完成对硬件的操作

内核是一个资源管理程序。负责将可用的共享资源(CPU时间、磁盘空间、网络连接等)分配得到各个系统进程。

内核就像一个库,提供了一组面向系统的命令。系统调用对于应用程序来说,就像调用普通函数一样。

image

④Linux系统目录和文件夹的区别

在 Linux 系统中,目录和文件的底层数据结构都是通过 inode (索引节点) 来进行管理的。inodes 存储有关文件系统对象(如文件和目录)的元数据
区别:
文件:文件的 inode 存储了指向文件内容所在的数据块的指针,文件的内容就保存在这些数据块中。文件的 inode 还保存了文件的各种属性,如文件大小、创建时间、所有者等信息。

目录:目录的 inode 不是直接指向数据内容,而是指向一种特殊的数据结构,我们通常称之为目录项(Directory Entries)。每一个目录项包括两部分,一是文件名,二是指向该文件(或子目录)的 inode 的指针。所以,目录实际上是一个特殊的文件,它的内容是一种映射关系,即文件名到 inode 的映射。
因此,目录可以包含其他文件或目录,这就构成了我们常见的文件系统的树状结构。

以下笔面题常考问题:

⑤库函数与系统调用给你的函数的区别

image

⑥简述标准IO和系统IO的区别

系统IO:不带缓冲机制,

系统IO可以操作普通文件与驱动文件(设备文件,网络文件,普通文件) 通过系统IO读写文件时,每次操作都会执行相关系统调用。这样处理的好处是直接读写实际文件。

标准IO:带缓冲机制,是系统IO 的包装,标准IO只可以操作普通文件。标准IO可以看成是在文件IO的基础上封装了缓冲机制。

先读写缓冲区,必要时再访问实际文件,从而减少了系统调用的次数。标准IO中用FILE(流)表示一个打开的文件,通常只用来访问普通文件。

缓冲机制可分3类:全缓冲, 行缓存,无缓冲

             全缓冲:填满标准I/O缓存区才进行实际的I/O操作。(fwrite/fread)

             行缓存:当在遇到换行符或者缓冲区满时,标准IO库执行IO系统调用操作(printf)

             无缓冲:标准I/O库不对字符进行缓冲存储 (标准出错)

⑦根文件系统和Linux系统内核关系

“内核”指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。一个内核不是一套完整的操作系统。

根文件系统就是管理各种各样的文件的系统(Linux下一切皆文件)

真正的操作系统,他是由内核+文件系统构成的。

⑧请简述Linux系统的启动过程

image

posted @ 2024-05-07 20:07  一面小镜子  阅读(38)  评论(0)    收藏  举报