【精品】Linux复习总结.doc1. Linux的里程碑
答:a) 1991年11月,芬兰赫尔辛基大学的学生Linus Torvalds发布了第 —个linux内核
1993 年,发布了 linux 1. 0 版
1994年,发布了 linux第一"商业发行版Slackware
标准Linux和uClinux在内存管理方面的差异是什么?
答:a)标准linux使用虚拟存储器技术
uclinux 针对 N0MMU
Linux的内核版本号
答:a) linux的内核版本号采用的是双树系统
一棵是稳定树,主要用于发行
另一棵是非稳定树(开发树),主要用于产品的开发和改进
b) linux的内核版本号由3位数字组成r. x. y
r:主版本号
x:说明版本类型的次版本号,偶数为产品化版本,奇数为实验版本
堆栈的一些作用
答:堆栈是C语言程序运行时必须的一个记录调用路径和参数的空间,作用 包括:
函数调用框架
传递参数
保存返回地址
提供局部变量空间
为什么要有内核态和用户态之分
答:a)假定不区分:
用户直接修改操作系统的数据
用户直接调用操作系统的内部函数
用户直接操作外设
用户任意读/写物理内存
b)区分内核态和用户态的作用:
禁止用户程序和底层硬件直接打交道,防止向寄存器写入
不恰当的值,导致硬件无法正常工作
禁止用户程序访问任意的物理内存,防止破坏其他用户程 序,对内核所在的地址写入数据,导致系统崩溃
什么是用户态和内核态?
答:一般现代CPU都有几种的指令级别,intel x86有0-3级,linux只采用 了 0和3级
内核态:代码开源执行特权指令,访问任意的物理地址
用户态:代码的掌控范围会受到限制,只能在允许的范围内活动
7. x86中如何区分用户态和内核态?基于x86的Linux是如何区分用户态和
内核态的(2种)
答:a) cs寄存器的最低两位表明了当前代码的特权级
b) CPU每条指令的读取都是通过cs, eip这两个寄存器;cs是代码段选 择寄存器,eip是偏移量寄存器
上述判断是由硬件完成
基于x86的Linux中,逻辑地址空间是一"显著的标志:
OxcOOOOOOO以上的地址空间只能在内核态下访问
0x00000000—-Oxbfffffff的地址空间在两种状态下都可以访问
8. GCC的编译过程
答:一般情况下c程序的编译迫程为
预处理:
编译成汇编代码:
汇编成目标代码:
链接:
9. GUN binutils 的简介
答:binutils是一组二进制工具程序集,是辅助GCC的主要软件,它主要包 括:
ar:建立、修改、提取归档文件。归档文件是包含多个文件内容的一个 大文件,其结构保证了可以恢复原始文件内容。
as:是GNU汇编器,主要用来编译GNU C编译器gcc输出的汇编文件,他将 汇编代码转换成二讲制代码,并存放到一个object文件中,该目标文件将由 连接器Id连接
Id:连接器,它把一些目标和归档文件结合在一起,重定位数据,并链 接符号引用,最终形成一个可执行文件。
nm:列出目标文件中的符号。
objcopy :把一种目标文件中的内容复制到另一种类型的目标文件中
objdump:显示一个或者更多目标文件的信息。使用选项来控制其显示的
【精品】Linux复习总结 来自淘豆网m.daumloan.com转载请标明出处.