linux 核心kernel软件基础

来源:互联网 发布:道道通修改端口 编辑:程序博客网 时间:2024/05/17 21:39

软件基础

2.1编程语言

 2.1.1汇编语言

 CPU从主存读取出来执行的指令对人类来说是根本不可理解的。

Intel 80486指令中的16进制数0x89E5表示将ESP寄存器的内容拷入EBP寄存器。

汇编器可以将人们可以理解的源文件汇编成机器代码。汇编语言需要显示的操作寄存器和数据,并且与特定的处理器相关。

Linux中只有很少一部分用汇编语言写。

 

Ldr r16,(r15)  ;将寄存器15所指示的地址中的值加载到寄存器16

Ldr r17,4(r15)  ;将邻接单元内容加载到寄存器17中。

beq 16,r17,100  ;比较寄存器16和寄存器17中的值,如果相等则调转到标号100处。

 

2.1.2 C语言

   与具体机器无关,可移植。

C支持许多类型的变量,变量是一个通过符号名称引用的内存位置。指针式那些包含其他数据内存位置或者地址的变量。

2.2操作系统

2.2.1 内存管理

2.2.3 设备驱动

 设备驱动控制操作系统和硬件设备之间的相互操作。

 

2.2.4文件系统

Linux最常用的文件系统就是EXT2文件系统。

 

2.3核心数据结构

2.3.1连接列表

Linked  链表

Chained   双向链表

 

 

2.3.1散列表

散列表是指针的数组或向量,指向内存中连续的相邻数据结合。Linux经常用它来实现caches,缺点是使用和维护单一链表和散列表更复杂。

 

2.4抽象接口

 

原创粉丝点击