Linux编程概念解析
1. 存储与命名空间基础
在存储方面,块设备的数据传输和访问以扇区为最小单位,所有的I/O操作都基于一个或多个扇区进行。文件系统中,最小的逻辑可寻址单位是块,它是文件系统的抽象概念,而非物理介质的概念。块的大小通常是扇区大小的2的幂次方倍数,在Linux中,块一般比扇区大,但要小于页大小。常见的块大小有512字节、1千字节和4千字节。
在命名空间方面,传统Unix系统只有一个所有用户和进程共享的命名空间。而Linux采取了创新的方法,支持每个进程拥有独立的命名空间,每个进程可以选择拥有系统文件和目录层次结构的独特视图。默认情况下,进程会继承其父进程的命名空间,但也可以创建自己的命名空间,拥有自己的挂载点和根目录。
2. 进程相关知识
进程是Unix系统中仅次于文件的重要抽象概念。进程是正在执行的目标代码,是活跃运行的程序,它不仅包含目标代码,还包括数据、资源、状态和虚拟化的计算机。
进程始于可执行的目标代码,在Linux中最常见的格式是可执行与可链接格式(ELF)。ELF格式包含元数据以及多个代码和数据段,段是目标代码的线性块,会加载到内存的线性块中。常见的重要段有文本段、数据段和bss段:
- 文本段:包含可执行代码和只读数据,如常量变量,通常标记为只读和可执行。
- 数据段:包含已初始化的数据,如具有定义值的C变量,通常标记为可读和可写。
- bss段:包含未初始化的全局数据。由于C标准规定全局C变量的默认值为零,因此无需在磁盘上的目标代码中存储零值。目标代码只需在bss段列出未初始化的变量,内核在将其加载到内存时会将零页映射到该段。bss段的名称是历史遗留,代表“由符号开始的块
超级会员免费看
订阅专栏 解锁全文
1698

被折叠的 条评论
为什么被折叠?



