Linux内核结构分析与移植
Linux内核主要的5个部分是:进程调度,内存管理,虚拟文件系统,网络接口,进程通信。
这5个部分之间的关系如下: 
(1)进程调度部分负责控制进程对CPU的访问。
(2)内存管理允许多个进程安全地共享主内存区域。(内存管理从逻辑上分为硬件无关部分和硬件相关部分。)【硬件无关部分提供了进程的映射和逻辑内存的对换;硬件相关部分为内存管理管理硬件提供了虚拟接口】
(3)虚拟文件系统隐藏了不同硬件的具体细节,为所有的硬件设备提供了一个标准的接口。(VFS提供了十多种不同类型的文件系统)
(4)网络接口提供了对各种网络标准的存取和各种网络硬件的支持。
(5)进程通信部分用于支持进程见各种不同的通信机制。
进程调度与内存管理之间的关系
这两个子系统为互相依赖关系。在多道程序环境下,程序允许必须为之创建进程,而创建进程首先就算要将程序和数据装入内存。 另外,内存管理子系统也存在进程的挂起和恢复过程。
进程间通信与内存管理之间的关系
进程间通信子系统要依赖内存管理支持共享内存通信机制,通过对共同内存区域进行操作来达到通信的目的。
虚拟文件系统与网络接口之间的关系
虚拟文件系统通过依赖网络接口支持网络文件系统(nfs),也通过依赖内存管理支持RAMDISK设备。
内存管理与虚拟文件系统之间的关系
内存管理利用虚拟文件系统支持交换,交换进程定期地由调度程序调度,这也是内存管理依赖于进程调度的唯一原因,当一个进程存取的内存映射被换出时,内存管理回向文件系统发出请求,同时,挂起当前正在运行的进程。
Linux内核结构分析与移植的更多相关文章
- Linux内核3.0移植并基于Initramfs根文件系统启动
Linux内核移植与启动 Target borad:FL2440 Bootloader:U-boot-2010.09 交叉编译器:buildroot-2012.08 1.linux内核基础知识 首先, ...
- linux内核链表的移植与使用
一. Linux内核链表为双向循环链表,和数据结构中所学链表类似,具体不再细讲.由于在内核中所实现的函数十分经典,所以移植出来方便后期应用程序中的使用. /********************* ...
- 小白自制Linux开发板 三. Linux内核与文件系统移植
上一篇完成了uboot的移植,但是想要愉快的在开发板上玩耍还需要移植Linux内核和文件系统. 1.Linux内核 事实上对于F1C100S/F1C200S,Linux官方源码已经对licheepi ...
- Linux内核,文件系统移植过程中出现的一些问题与解决办法
1.bootm地址和load address一样 此种情况下,bootm不会对uImage header后的zImage进行memory move的动作,而会直接go到entry point开始执行. ...
- Linux 内核剖解(转)
Linux 内核剖析(转) linux内核是一个庞大而复杂的操作系统的核心,不过尽管庞大,但是却采用子系统和分层的概念很好地进行了组织.在本文中,您将探索 Linux 内核的总体结构,并学习一些主要 ...
- Linux 内核剖析
https://www.ibm.com/developerworks/cn/linux/l-linux-kernel/ 由于本文的目标是对 Linux 内核进行介绍并探索其体系结构和主要组件,因此首先 ...
- linux 内核分析工具 Dtrace、SystemTap、火焰图、crash等
<< System语言详解 >> 关于 SystemTap 的书. 我们在分析各种系统异常和故障的时候,通常会用到 pstack(jstack) /pldd/ lsof/ tc ...
- 基于tiny4412的Linux内核移植 --- aliases节点解析
作者信息 作者: 彭东林 邮箱:pengdonglin137@163.com QQ:405728433 平台简介 开发板:tiny4412ADK + S700 + 4GB Flash 要移植的内核版本 ...
- 基于tiny4412的Linux内核移植 -- 设备树的展开
作者信息 作者: 彭东林 邮箱:pengdonglin137@163.com QQ:405728433 平台简介 开发板:tiny4412ADK + S700 + 4GB Flash 要移植的内核版本 ...
随机推荐
- python 数据类型(列表)学习笔记
列表 创建列表: name_list = ['alex', 'seven', 'eric'] 或 name_list = list(['alex', 'seven', 'eric']) 其实今天学习的 ...
- shell写的计算器
#!/bin/bashif [ $# -ne 3 ] then echo "Usage: $0 num1 + num2" fi case $2 in +) echo $1$2$3= ...
- 【Groovy】入门布道ppt
Groovy Outline• Hello world• Smooth Java integration• Flat learning curve• Powerful features 跟 Java ...
- cocos2dx Tab选项卡控件的实现
选项卡控件在游戏和应用中很是常见,但是cocostudio里并没有实现好的选项卡控件,于是自己封装了 一个,效果如下: 代码: TabUiControl.h #pragma once //std #i ...
- ko list and css gradient
<!DOCTYPE html> <html> <head> <title></title> <script src="js/ ...
- CAShapeLayer--备用
之前讲过CALayer动画相关知识,再来看看更加复杂的CAShapeLayer相关的动画知识. 普通CALayer在被初始化时是需要给一个frame值的,这个frame值一般都与给定view的boun ...
- 认识HTML
基本框架: 1 <html> 2 <head> 3 <title>This Is Title</title> 4 </head> 5 6 & ...
- 使用WampServer 3.0
在server上安装了WampServer 发现本地使用良好,但是无法从别的PC访问. 原因有二: 1.现象:输入连接无反应 原因:server本身用了80端口,所有WampServer我就设置了80 ...
- 百度:在O(1)空间复杂度范围内对一个数组中前后连段有序数组进行归并排序
一.题目理解 题目:数组al[0,mid-1]和al[mid,num-1]是各自有序的,对数组al[0,num-1]的两个子有序段进行merge,得到al[0,num-1]整体有序.要求空间复杂度为O ...
- [TSP+floyd]POJ3311 Hie with the Pie
题意: 给i到j花费的地图 1到n编号 一个人要从1遍历n个城市后回到1 求最小的花费(可以重复走) 分析 http://www.cnblogs.com/Empress/p/4039240.htm ...