[Linux驱动入门]内核基础

第一章  内核基础

1.1 Linux内核组成

  Linux主要由进程调度、内存管理、虚拟文件系统、网络接口和进程通信五个子系统组成的。

(1)进程调度控制系统中的多个进程对CPU的访问,使得多个进程能在CPU中“微观串行,宏观并行”地执行。

(2)内存管理的主要作用就是控制多个进程安全地共享主内存区域,当CPU提供内存管理单元时,Linux内存管理完成为每个进程进行虚拟内存到物理内存的转换。

(3)虚拟文件系统隐藏各种硬件的具体细节,为所有的设备提供统一的接口。

(4)网络接口提供了对各种网络标准的存取和各种网络硬件的支持。

(5)进程通信支持提供进程之间的通信,包括信号量、共享内存、管道等。

 

1.2 Linux内核的引导

1.Boot Loader 简介

  引导加载程序Boot Loader ,Boot Loader 是在操作系统内核启动之前运行的程序,即所谓的引导加载程序,系统可以初始化硬件设备,从而将系统的软/硬环境带到了个合适的状态,以便为最终调用操作系统内核准备好正确的环境,最后从别处(Flash、以太网、UART)载入内核、映像到主存并跳入入口地址。

 

2.Boot Loader 的主要任务

  依赖于CPU体系结构的代码,如设备初始化代码等,通常都放在stage1中,而且通常都用汇编语言来实现,以达到短小精悍的目的。而stage2则通常用C语言来实现,代码具有更好地可读性和可移植性。

 

3.Boot Loader 的stage1通常包括以下步骤:

(1)硬件设备初始化

(2)为加载Boot Loader 的stage2准备RAM空间

(3)拷贝Boot Loader 的stage2到RAM空间中

(4)设置好堆栈

(5)跳转到stage2 的C入口点

 

4.Boot Loader 的stage2通常包括以下步骤:

(1)初始化本阶段要使用的硬件设备

(2)检测系统内存映射

(3)Kernel映像和根文件系统映像从Flash上读到RAM空间中

(4)为内核设置启动参数

(5)调用内核

 

5.U-boot烧写过程

(1)通过网络、串口、U盘、SD卡等方式将文件传输到SDRAM。

(2)使用Nand Flash 或 Nor Flash 相关的读写命令将SDRAM中的数据烧入Flash.

 

6.内核的引导过程

(1)U-boot的mkimage 工具处理内核映像zImage.

2)通过网络、串口、U盘、SD卡等方式将处理过的内核映像传输到SDRAM的一定位置(一般使用0x30008000)。

(3)使用“bootm”等内核引导命令来启动内核

 

1.3 处理器

中央处理器体系结构:

   ·诺依曼结构:程序和操作数都放在同一个处理器中

   哈佛结构:程序放在程序存储器内,通过程序总线与处理器相连,然后把操   

             作数放入操作数存储器中,通过操作数总线与处理器相连。

1.4 存储器

非易失性存储器(NVM):ROM、Flash和光磁介质存储器

RAM:SRAM、DRAM和特定应用的RAM。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值