linux 核心kernel软件基础

软件基础

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 抽象接口

 

你可能感兴趣的:(linux 核心kernel软件基础)