您好,欢迎来到榕意旅游网。
搜索
您的当前位置:首页嵌入式Linux内核详细设计

嵌入式Linux内核详细设计

来源:榕意旅游网

 

 

 

《嵌入式Linux内核详细设计说明书》

 

 

 

 

 

 

拟制:

 

                       校对:          

 

                       审核:          

 

 

 

 

 

 

 

 

 

 

 

 

湖南计算机股份有限公司

嵌入式系统研究所

2001.5

目录

1. 引言2

1.1 参考资料2

1.2 术语和缩写词2

2. 设计概览5

2.1 设计的驱动因素以及各自重要性的排序(例如,功能、性能、可靠性、硬件、内存考虑等等)5

2.2 不同设计方案的评价5

2.3 对所选设计方案总体结构图示及讨论5

2.4 开发环境(如开发语言、硬件、外设等等)6

3. 设计描述7

3.1 全局数据结构7

3.2 进程调度子系统25

3.2.1 模块功能概览25

3.2.2 详细输入、输出及处理描述25

3.3 内存管理子系统31

3.3.1 模块功能概览31

3.3.2 详细输入、输出及处理描述31

3.4 虚拟文件子系统34

3.4.1 模块功能概览34

3.4.2 详细输入、输出及处理描述34

3.5 进程间通信(IPC)子系统51

3.5.1 模块功能概览51

3.5.2 详细输入、输出及处理描述51

3.6 网络模块(NET)子系统60

3.6.1 模块功能概览60

3.6.2 详细输入、输出及处理描述60

 

 

 

 

 

 

 

1. 引言

1.1 参考资料

1.2 术语和缩写词

Argument 参数,函数和例程中可以带入参数进行处理。

ARP 地址转换协议。被用来将IP地址转换成物理硬件地址,如网卡地址。ARP是TCP/IP协议族中一个非常重要的协议。

Ascii Ascii代表着American Standard Code for Information Interchange. 字母表中的每个字母代表一个8位的编码。Ascii被用来存储”可写“的字符。

Bit 值域为0或1的一个二进制数据位。

Bottom Half Handler 核心里在队列中的任务的句柄或指针。

Byte 字节,8位数据。

C 一种高级编程语言,Linux基本上是用C编写的。

CPU Central Processing Unit(中央处理单元)。

Data Structure 数据结构。

Device Driver 设备驱动程序。用来控制一个特定设备类的软件。例如,NCR 810设备驱动程序控制NCR 810 SCSI 设备。

DMA Direct Memory Access(直接内存存取)

ELF Executable and Linkable Format(可执行与可连接格式).  

EIDE 扩展IDE.

Executable image  可执行映象。一个含有指令和数据的文件。可以被调进虚拟内存而执行。

Function 函数

IDE Integrated Disk Electronics.

Image 参阅可执行映象。

IP Internet Protocol(网际协议).

IPC Interprocess Communiction(进程间通讯)

Interface 接口。接口是一个抽象的概念。实现中,通常指一些函数或例程接口。

IRQ Interrupt Request Queue(中断申请队列).

ISA Industry Standard Architecture. This is a standard, although now rather dated, data bus interface for system components such as floppy disk drivers.

Kernel Module 一个可以动态地被装载的核心部份,如文件系统和设备驱动序。

Kilobyte 1024字节。

Megabyte 一兆字节或1024K字节。

Microprocessor 微处理器。

Module 模块。一个含有指令的文件。

Object file 目标文件。或*.o文件。指一个含有指令和数据的文件。但这个文件尚未与其所需要的其他目标文件或库相连接以形成一个可执行文件。

Page 物理内存被分成许多同样大小的页面。是虚拟内存管理调度的最小单位。

Pointer 指针

Process 进程。一个正在执行的程序。

Processor 处理器的简称。

PCI Peripheral Component Interconnect.  一个外设总线。

Peripheral 外围设备

Program 程序。

Protocol 协议。通常指两个实体间“对话”的一种事先格式约定。

Register 寄存器

Routine 例程。与函数类似,除了不返回值。

SCSI Small Computer Systems Interface(小型计算机接口).

Shell command shell。Linux 缺省用的是bash shell.

SMP Symmetrical multiprocessing. Systems(对称多处理系统)。

Socket 一个socket代表着一个网络连接。Linux支持BSD Socket 接口。

Software 软件

System V Unix的一个版本,发布于1983。这个版本中,引进了著名的士System V IPC机制。

TCP Transmission Control Protocol(传输控制协议).

Task Queue 任务队列

UDP User Datagram Protocol(用户数据报协议).

Virtual memory 虚拟内存

2. 设计概览

2.1 设计的驱动因素以及各自重要性的排序(例如,功能、性能、可靠性、硬件、内存考虑等等)

在设计过程中,主要要考虑的有以下几点:跨平台的可移植性,在保证功能和不牺牲性能的前提下尽量减小核心的体积,为今后进一步开发留下空间和便利。其中,最主要的就是可移植性,这是这个嵌入式系统的特色。减少核心的体积可以降低成本,但是随着当今硬件生产技术的提高完善,这一点已经不像过去那样重要了,所以在裁剪核心的同时要避免牺牲性能和功能。

2.2 不同设计方案的评价

内核采用层次式结构。这样的结构似乎层次清晰,易于修改。但是它严重降低了内核的效率。因为当高层次的函数调用底层提供的功能时,可能需要跨越几个层次,这样会增加系统开销。而且,在系统核心中,各个部分互相提供功能调用,如果严格按照层次式结构组织将打破核心中各个功能部分的有机结构,使结构变的混乱。

内核采用整体式结构。这样的结构的特点是这个内核由许多过程组成,但是不像在层次式结构中那样,每个过程只能被紧挨着它的上层调用。在整体式结构中,每个过程独立编译后,连接程序将其连接成为一个单独的目标程序,每个过程都对其它过程可见。这样的结构虽然在内部关系上确实变的复杂了(各个模块间是网状的结构),但是在调用关系和提供服务的角度来看变的简单清晰也更直观了,子系统间易于访问,内核工作效率较高。而且也有助于不同的人参与不同过程的开发。所以对内核的组织采用整体式结构。

2.3 对所选设计方案总体结构图示及讨论

内核由5个主要的子系统组成,它们之间的大致依赖关系如图。

FS:文件系统

IPC:进程间通信

MM:内存管理

NET:网络模块

SCHED:进程调度

进程调度子系统处于核心地位,其它子系统要完成操作都需要它来调度以占用系统资源完成自己的操作。文件系统需要利用网络模块支持网络文件系统,也需要利用内存管理支持RAMDISK设备。内存管理利用文件系统支持交换,交换进程定期的由调度程序调度,这也是内存管理依赖于进程调度的原因。进程间通信子系统要依赖内存管理支持共享内存通信机制。进程调度子系统需要内存管理的支持来完成创建进程等操作。

2.4 开发环境(如开发语言、硬件、外设等等)

内核由GNU  C语言及汇编语言开发。硬件平台是i386嵌入式平台。所支持的外设诸如标准PC的外设,和一些基本的嵌入式系统的硬件设备。如网络设备,显示设备,外存,音频设备,视频设备等。

3. 设计描述

3.1 全局数据结构

全局数据结构的描述。

block_dev_struct 数据结构用来登记块设备以被缓冲区使用。

struct blk_dev_struct

{

Copyright © 2019- nryq.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务