Linux内核的硬件相关性

来源:互联网 发布:超级大乐透数学算法 编辑:程序博客网 时间:2024/05/18 17:27


Linux内核的硬件相关性

一.Linux及硬件概述

Linux内核由以下几个部分组成:内存管理,进程描述及调度,文件系统,驱动部分,中断机制,内核协议栈,系统调用,同步机制(如互斥,信号量,自旋锁等)。

Linux支持不同的CPU体系结构,如X86MIPS, ARM等,在linux的最底层需要与不同的硬件平台进行适配,以支持不同的CPU体系结构。

   对于ARM来说,当前的CPU芯片更确切的说是CPU控制器,除了ARM核,还具有丰富的外围控制器,如UARTIIC, IISUSBLCD控制器,MMU,硬件图形加速器等。

二.Linux内核体系结构相关

Linux要跑在不同的硬件设备上,它的内核必须支持不同的CPU芯片类型,要完成内存管理,调度等工作;同时要支持该芯片扩展的外部设备,由外围控制器来完成。

Linux内核中,其代码具有很好的框架结构,芯片体系相关在/arch中,内部又包含:

/arch/mm,该部分提供了与芯片相关的内存管理机制,比较重要的是内存的初始化,在函数paging_init()中完成。

/arch/kernel,典型的体系结构相关代码就在setup_arch()中定义并挂载,主要由以下几个部分组成:1.芯片IO初始化;2.中断初始化;3.外围设备初始化;4.时钟初始化。进程调度switch_to()就定义在该目录下。

三.Linux中的驱动

  除了芯片内核以外,还具有不同的外部控制器,这部分内容linux内核代码的driver目录下,通过module_init()进行加载,其加载的位置已经是在/arch目录中的代码加载完成之后了。

1 0
原创粉丝点击