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

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



