Linux体系结构
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体系结构的更多相关文章
- Linux基础系列—Linux体系结构和Linux内核结构
/** ****************************************************************************** * @author 暴走的小 ...
- Linux 体系结构
Linux 体系结构 Linux 嵌入式系统的组成 层次结构图 bios 1.硬件检测 2.初始化系统设备 3.装入os 4.调os向硬件发出的指令 bsp 板级支持包 硬件相关 开发板原理图 开 ...
- linux体系结构与内核结构图解
1.当被问到Linux体系结构(就是Linux系统是怎么构成的)时,我们可以参照下图这么回答:从大的方面讲,Linux体系结构可以分为两块: (1)用户空间:用户空间中又包含了,用户的应用程序,C库 ...
- Linux体系结构(二): Linux系统层次
前一节内容大概介绍了一下Linux的历史由来,各大Linux发行厂商都是基于GNU项目下的所有开源软件,来构建各自己的Linux发行版本,一个完整的Linux发行版本大概可以分为以下四个层次结构: ...
- Linux体系结构(五): 文件系统
上一节主要对Linux系统中的内核空间与用户空间做了简单的分析,在这一节里,将从内核空间和用户空间对Linux文件系统进行一定的剖析. 谈及文件系统,很多Linux用户都会有一个比较模糊和神秘的概念, ...
- linux 体系结构知识 博客
http://blog.csdn.net/haiross/article/category/1488205/3
- linux内核体系结构
linux内核第一记 1.linux体系结构 从上图可知,Linux分为:用户空间和内核空间.内核空间和用户空间是程序执行的两种不同的状态,通过系统调用和硬件中断能够完成从用户空间到内核空间的 ...
- Linux 简介
转载:http://c.biancheng.net/cpp/html/2726.html Linux简介 严格的来讲,Linux 不算是一个操作系统,只是一个 Linux 系统中的内核,即计算机软件与 ...
- 嵌入式Linux内核制作【转】
本文转载自:http://blog.csdn.net/coding__madman/article/details/51291316 1. Linux体系结构 从整体上来分,linux可以分为User ...
随机推荐
- maven pom下载不了
Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.4.1/m ...
- perl编程问题
一.Hash类型 1.hash遍历输出:如果hash遍历输出的时候不是按key则会按数组输出. my %hash=(); ${hash}{"a"}="1"; $ ...
- 【RHEL7/CentOS7服务控制之systemctl命令】
Systemd对于Linux来说,就是一个init程序,可以作为sysVinit和Upstat的替代. RHEL7监控和控制Systemd的主要命令是systemctl,该命令可查看系统状态和管理系统 ...
- iOS项目开发实战——iOS网络编程获取网页Html源码
现在我们身处互联网的时代.不论什么一个软件或是App,都会或多或少与网络打交道,并不断发生数据交互.一个没有涉及网络编程的应用会显得比較low,这里我们将会開始使用Swift开发iOS应用,而且主要来 ...
- javascript进阶教程第一章案例实战
javascript进阶教程第一章案例实战 一.学习任务 通过几个案例练习回顾学过的知识 通过练习积累JS的使用技巧 二.实例 练习1:删除确认提示框 实例描述: 防止用户小心单击了“删除”按钮,在用 ...
- Linux下MySQL允许远程连接以及授权命令
--针对某个库做授权 GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; ...
- 给iOS项目中添加图片,并通过UIImageView引用和显示该UIImage图片
[问题] 关于iOS/iPhone中的文件选择对话框,用于用户去选择图片等文件 过程中,问题转换为,需要给当前iOS项目中,添加一个图片. 类似于Windows开发中的资源文件,其中图片文件属于资源的 ...
- postgresql sql语句 更改表名
SELECT'alter table "public"."'|| t.tablename||'"'||' rename to "'|| "l ...
- OpenCV —— 视频播放控制
创建滚动条,实现滚动条随视频播放移动. #include "cv.h" #include "highgui.h" CvCapture* capture=NULL ...
- Atcoder ABC 070 B、C、D
B - Two Switches Time limit : 2sec / Memory limit : 256MB Score : 200 points Problem Statement Alice ...