二、 Linux面试题部分享:
1. 在Linux系统中,以 文件 方式访问设备 。
2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统。
3. Linux文件系统中每个文件用 索引节点来标识。
Linux文件系统使用索引节点来记录文件信息,作用于Windows的文件分配表类似,索引节点是一个数据结构,它包含了一个文件的文件名,位置,大小,建立或修改时间,访问权限,所属关系等文件控制信息,一个文件系统维护了一个索引节点的数组,每个文件或目录都与索引结点数组中的唯一一个元素对应,系统为每个索引结点分配了一个号码,也就是该结点在数组中的索引号,称为索引结点号。
Linux文件系统将文件索引结点号和文件名同时保存在目录中,所以目录只是将文件的名称和它的索引结点号结合在一起的一张表。目录中每一对文件名称和索引结点号称为一个连接。
4. 全部磁盘块由四个部分组成,分别为引导块 、专用块 、 i节点表块 和数据存储块。
Linux系统中的每个文件都被赋予一个唯一的数值,这个数值称做索引节点。索引节点存储在一个称作索引节点表< inode table>中,该表在磁盘格式化时被分配。每个实际的磁盘或分区都有其自己的索引节点表。一个索引节点包含文件的所有信息,包括磁盘上数据的地址和文件类型。文件类型包括如普通文件、目录和特殊文件这样的信息。
linux硬盘组织方式为:引导区、超级块(superblock),索引结点(inode),数据块(datablock),目录块(diredtory block)。其中超级块中包含了关于该硬盘或分区上的文件系统的整体信息,如文件系统的大小等;超级块后面的数据结构是索引结点,它包含了针对某一个具体文件的几乎全部信息,如文件的存取权限、所有者、大小、建立时间以及对应的目录块和数据块等;数据块是真正存储文件内容的位置。但是索引结点中不包括文件的名字,文件名是放在目录块里的。目录块里包含有文件的名字以及此文件的索引结点编号。
本文介绍 Linux 内核 Makefiles 的一些基础内容。
Makefiles 包括:
Linux 内核顶层的 Makefile 文件递归访问内核源代码的子目录。
每个子目录都有一个 kbuild Makefile 文件,根据 .config 文件内容构建内置或模块化目标。
arch/$(ARCH)/Makefile 文件向顶层 Makefile 提供特指定的体系结构信息。
scripts/Makefile.* 文件定义了 kbuild Makefile 构建内核的所有定义和规则等。
Linux 内核编译完成后,最终生成 vmlinux 和 modules 。
Linux 内核中的大多数 Makefile 都使用 kbuild 基础结构, kbuild 文件的首选名称是 Makefile 。如果 Makefile 和 kbuild 文件都存在,则使用 kbuild 文件。
目标定义是 kbuild Makefile 里的核心部分,定义了要构建的文件、特殊的编译选项和递归输入的任何子目录。
例:
kbuild Makefile 将编译所有 $(obj-y) 文件,然后调用 $(AR)rcSTP 将这些文件合并到 built-in.a 文件中。
built-in.a 中不包括符号表,稍后将通过 scripts/link-vmlinux.sh 脚本链接到 vmlinux 文件中。
在 Linux 内核引导期间,将按照链接顺序调用某些函数(例: module_init() 等)。
参考:
Documentation/kbuild/makefiles.txt
你是想查看某用户属于哪个用户组吗?一般有两种方式,一种方式是在当以某用户身份登录的状态,执行groups命令,将会列出这个用户所有支持的用户组,其中显示的第一个用户组就是用户登录以后所属的用户组。另一种方式是执行id命令:id 用户名,在这条命令的显示结果中,“groups=”后面括号里面的就是该用户所属用户组。
楼主如果对Linux系统感兴趣,想学习更多Linux系统知识,可以百度《Linux就该这么学》,不错的一本Linux入门教程。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)