linux内核结构:

system call interface (SCI层)

为用户空间提供了一套标准的系统调用函数来访问linux内核。

process management (PM层)

进程管理是创建进程,停止进程,并控制他们之间的通信。还包括进程

调度,控制活动进程如何共享cpu

Memory Management (MM)

内存管理的主要作用是控制多个进程安全的共享内存区域。

Virtual file systems (VFS)

虚拟文件系统,隐藏各种文件系统的具体细节,为文件操作提供统一的接口

linux提供了一个打得通用模型,使这个模型包含了所有文件系统功能的集合(一切皆文件)

device drivers 设备驱动

linux内核中有大量的代码在设备驱动程序部分,用于控制特定的硬件设备。

linux驱动一般分为网络设备、块设备、字符设备、杂项设备

网络协议栈

内核网络协议栈为linux提供了丰富的网络协议实现。

内核程序结构:

arch目录,

arch目录是平台目录。内核支持的所有CPU架构,在该目录下都有对应的子目录。每个cpu的子目录,

又进一步分解为boot,mm,kernel等子目录,分别控制系统的引导,内存管理,系统调用。

还有动态调频,主频率设置部分等。

binary目录,

无源码的驱动以二进制放到该文件夹

block目录,

部分块设备驱动程序

crypto目录,

加密压缩CRC校验

documentation目录,

内核的使用说明文档

drivers目录,

设备驱动

firmware目录,

固件接口

fs目录,

存放各种文件系统的实现代码

include目录,

通用的头文件在include/linux

init目录,

内核初始代码,

ipc目录,

进程通信的源码

virt目录,

内核虚拟机

kernel目录,

linux核心功能源码,程序调度,控制进程,模块化等

lib目录,

库文件代码

mm目录,

实现内存管理(与平台体系无关的部分)

net目录,

网络协议实现代码

samples目录,

内核编程的范例

scripts目录,

配置裁减内核的工具脚本

security目录,

包括不同的linux安全模型代码

sound目录,

音频设备的驱动程序

tools目录,

将.c编译成目标文件,连接合并可运行的内核镜像文件等

usr目录,

实现用于打包和压缩的cpio等

学习的重点是驱动开发相关的知识、函数的调用、驱动的协议、简单的硬件知识

Linux体系结构的更多相关文章

  1. Linux基础系列—Linux体系结构和Linux内核结构

    /** ****************************************************************************** * @author    暴走的小 ...

  2. Linux 体系结构

    Linux 体系结构 Linux 嵌入式系统的组成 层次结构图   bios 1.硬件检测 2.初始化系统设备 3.装入os 4.调os向硬件发出的指令 bsp 板级支持包 硬件相关 开发板原理图 开 ...

  3. linux体系结构与内核结构图解

    1.当被问到Linux体系结构(就是Linux系统是怎么构成的)时,我们可以参照下图这么回答:从大的方面讲,Linux体系结构可以分为两块: (1)用户空间:用户空间中又包含了,用户的应用程序,C库 ...

  4. Linux体系结构(二): Linux系统层次

    前一节内容大概介绍了一下Linux的历史由来,各大Linux发行厂商都是基于GNU项目下的所有开源软件,来构建各自己的Linux发行版本,一个完整的Linux发行版本大概可以分为以下四个层次结构:   ...

  5. Linux体系结构(五): 文件系统

    上一节主要对Linux系统中的内核空间与用户空间做了简单的分析,在这一节里,将从内核空间和用户空间对Linux文件系统进行一定的剖析. 谈及文件系统,很多Linux用户都会有一个比较模糊和神秘的概念, ...

  6. linux 体系结构知识 博客

    http://blog.csdn.net/haiross/article/category/1488205/3

  7. linux内核体系结构

    linux内核第一记   1.linux体系结构   从上图可知,Linux分为:用户空间和内核空间.内核空间和用户空间是程序执行的两种不同的状态,通过系统调用和硬件中断能够完成从用户空间到内核空间的 ...

  8. Linux 简介

    转载:http://c.biancheng.net/cpp/html/2726.html Linux简介 严格的来讲,Linux 不算是一个操作系统,只是一个 Linux 系统中的内核,即计算机软件与 ...

  9. 嵌入式Linux内核制作【转】

    本文转载自:http://blog.csdn.net/coding__madman/article/details/51291316 1. Linux体系结构 从整体上来分,linux可以分为User ...

随机推荐

  1. ORA-01659: 无法分配超出 7 的 MINEXTENTS

    plsql连接出错:ORA-01659: 无法分配超出 7 的 MINEXTENTS (在表空间 PERFSTAT 中) 从 Oracle Database 10g Enterprise Editio ...

  2. "中国制造2025"+"互联网+",引领制造业发展

    "中国制造2025"+"互联网+",引领制造业发展

  3. WebAssembly学习(三):AssemblyScript - TypeScript到WebAssembly的编译

    虽然说只要高级语言能转换成 LLVM IR,就能被编译成 WebAssembly 字节码,官方也推荐c/c++的方式,但是让一个前端工程师去熟练使用c/c++显然是有点困难,那么TypeScript ...

  4. 【Henu ACM Round#14 D】Kefa and Dishes

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 状态压缩动规. 可以写成记忆化搜索的形式. f[bit][p] 表示选取的菜的情况为bit(用0..2^(N)-1的二进制形式表示各 ...

  5. 集群通信组件tribes之用法

    上面已经对tribes的内部实现机制及原理进行了深入的剖析.在理解它的设计原理后看看怎样使用tribes.整个使用相当简单便捷,仅仅须要四步: ① 定义一个消息对象,因为这个消息对象是要在网络之间传递 ...

  6. myeclipse中断点调试

    在代码最左端,也就是行号位置处双击.会出现一个实心小圆点.即增加的断点.debug启动程序,就会运行到断点处: 按F5是进去方法里面. 按F6是一步一步走, 按F7是跳出方法里面(按F5后再按F7就跳 ...

  7. Objective-C_类的扩展

    一Category的定义和使用 二Extension的定义和使用 三Protocol的定义和使用 delegate的使用 一.Category的定义和使用 Category,分类或类目.主要作用是为没 ...

  8. HDOJ 5414 CRB and String 模拟

    CRB and String Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) T ...

  9. vim 基础学习之global

    global命令可以在指定模式下,匹配行上进行Ex命令 使用格式: :[range]g[lobal]/{pattern}/[cmd] range-是执行范围(如果缺省,是%) global-命令关键字 ...

  10. Anders Hejlsberg 和 Erich Gamma

    Anders Hejlsberg 和 Erich Gamma 大概半年前,我写了一篇名叫<有点软文>的文章,深情并茂地告诉大家,我司其实隐藏着很多牛人巨擘.有些人是身怀屠龙技,但是大家不认 ...