Linux复习总结

  • 格式:doc
  • 大小:107.00 KB
  • 文档页数:11

下载文档原格式

  / 23
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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中。这个应道程序也可以被替换。