Linux复习总结
- 格式:doc
- 大小:107.00 KB
- 文档页数:11
1.Linux的里程碑
答:a)1991年11月,芬兰赫尔辛基大学的学生Linus Torvalds 发布了第一个linux内核
b)1993年,发布了linux 1.0版
c)1994年,发布了linux第一个商业发行版Slackware
2.标准Linux和uClinux在内存管理方面的差异是什么?
答:a)标准linux使用虚拟存储器技术
b)uclinux针对NOMMU
3.Linux的内核版本号
答:a)linux的内核版本号采用的是双树系统
一棵是稳定树,主要用于发行
另一棵是非稳定树(开发树),主要用于产品的开发和改进b)linux的内核版本号由3位数字组成r.x.y
r:主版本号
x:说明版本类型的次版本号,偶数为产品化版本,奇数为实验版本
4.堆栈的一些作用
答:堆栈是C语言程序运行时必须的一个记录调用路径和参数的空间,作用包括:
函数调用框架
传递参数
保存返回地址
提供局部变量空间
5.为什么要有内核态和用户态之分
答:a)假定不区分:
用户直接修改操作系统的数据
用户直接调用操作系统的内部函数
用户直接操作外设
用户任意读/写物理内存
b)区分内核态和用户态的作用:
禁止用户程序和底层硬件直接打交道,防止向寄存器写入不恰当的值,导致硬件无法正常工作
禁止用户程序访问任意的物理内存,防止破坏其他用户程序,对内核所在的地址写入数据,导致系统崩溃
6.什么是用户态和内核态?
答:一般现代CPU都有几种的指令级别,intel x86有0-3级,linux只采用了0和3级
内核态:代码开源执行特权指令,访问任意的物理地址
用户态:代码的掌控范围会受到限制,只能在允许的范围内活动
7.x86中如何区分用户态和内核态?基于x86的Linux是如何区分用户态和
内核态的(2种)
答:a)cs寄存器的最低两位表明了当前代码的特权级
b)CPU每条指令的读取都是通过cs,eip这两个寄存器;cs是代码段选择寄存器,eip是偏移量寄存器
上述判断是由硬件完成
基于x86的Linux中,逻辑地址空间是一个显著的标志:
A)0xc0000000以上的地址空间只能在内核态下访问
B)0x00000000---0xbfffffff的地址空间在两种状态下都可以访问
8.GCC的编译过程
答:一般情况下c程序的编译过程为
a)预处理:
b)编译成汇编代码:
c)汇编成目标代码:
d)链接:
9.GUN binutils的简介
答:binutils是一组二进制工具程序集,是辅助GCC的主要软件,它主要包括:
ar:建立、修改、提取归档文件。归档文件是包含多个文件内容的一个大文件,其结构保证了可以恢复原始文件内容。
as:是GNU汇编器,主要用来编译GNU C编译器gcc输出的汇编文件,他将汇编代码转换成二进制代码,并存放到一个object文件中,该目标文件将由连接器ld连接
ld:连接器,它把一些目标和归档文件结合在一起,重定位数据,并链接符号引用,最终形成一个可执行文件。
nm:列出目标文件中的符号。
objcopy:把一种目标文件中的内容复制到另一种类型的目标文件中
objdump:显示一个或者更多目标文件的信息。使用选项来控制其显示的信息。
Readelf:显示elf格式可执行文件的信息
10.Ld设置入口点的命令
答:格式:ENTER(symbol),其中symbol的值为执行程序的入口点Ld有多种方法设置执行程序的入口点,确定入口点的顺序为:
a)ld命令的-e选项指定的值
b)entry(symbol)指定的值
c).text节的起始地址
d)入口点位0
11.Linux源代码中根目录下,arch目录下,include目录下的主要目录的内涵
答:/include子目录包含了简历内核代码时所需要的大部分文件/init子目录包含了内核的初始化代码,是内核工作的开始的起点
/arch子目录包含了所有硬件结构特定的内核代码
/kernel子目录包含了主内核代码
/mm子目录包含了所有内存管理代码
/fs子目录包含了所有文件系统的代码
12.Linux源代码编译后,生成的原始vmlinux的大概组成
答:a)i386/kernel/head_32.S
b)init/main.c + init/version.o
c)CORE_FILES + DRIVERS + NETWORKS + LIBS
13.从vmlinux到bzimage的变化过程
答:a)在Linux内核源代码顶层目录下生成一个vmlinux
arch/x86/kernel/head_32.S +init/main.c +
b)compressed下的vmlinux为
compressed/head_32.S + 压缩后的顶层目录下的vmlinux
c)boot下的bzimage为
boot下header.S等(即setup.bin) + compressed/vmlinux
14.bzimage中b,z的含义
答:z代表压缩,b代表大内核
15.什么是硬盘的MBR
答:硬盘的第一个扇区:主引导记录MBR,master boot record。MBR存储该硬盘的分区表和一小段引导程序。这个应道程序用来装载OS所在的分区的第一个扇区(boot loader)的内容到Ram中。这个应道程序也可以被替换。