Linux内核主要的5个部分是:进程调度,内存管理,虚拟文件系统,网络接口,进程通信。

这5个部分之间的关系如下:

(1)进程调度部分负责控制进程对CPU的访问。

(2)内存管理允许多个进程安全地共享主内存区域。(内存管理从逻辑上分为硬件无关部分和硬件相关部分。)【硬件无关部分提供了进程的映射和逻辑内存的对换;硬件相关部分为内存管理管理硬件提供了虚拟接口】

(3)虚拟文件系统隐藏了不同硬件的具体细节,为所有的硬件设备提供了一个标准的接口。(VFS提供了十多种不同类型的文件系统)

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

(5)进程通信部分用于支持进程见各种不同的通信机制。

进程调度与内存管理之间的关系

这两个子系统为互相依赖关系。在多道程序环境下,程序允许必须为之创建进程,而创建进程首先就算要将程序和数据装入内存。 另外,内存管理子系统也存在进程的挂起和恢复过程。

进程间通信与内存管理之间的关系

进程间通信子系统要依赖内存管理支持共享内存通信机制,通过对共同内存区域进行操作来达到通信的目的。

虚拟文件系统与网络接口之间的关系

虚拟文件系统通过依赖网络接口支持网络文件系统(nfs),也通过依赖内存管理支持RAMDISK设备。

内存管理与虚拟文件系统之间的关系

内存管理利用虚拟文件系统支持交换,交换进程定期地由调度程序调度,这也是内存管理依赖于进程调度的唯一原因,当一个进程存取的内存映射被换出时,内存管理回向文件系统发出请求,同时,挂起当前正在运行的进程。

Linux内核结构分析与移植的更多相关文章

  1. Linux内核3.0移植并基于Initramfs根文件系统启动

    Linux内核移植与启动 Target borad:FL2440 Bootloader:U-boot-2010.09 交叉编译器:buildroot-2012.08 1.linux内核基础知识 首先, ...

  2. linux内核链表的移植与使用

    一.  Linux内核链表为双向循环链表,和数据结构中所学链表类似,具体不再细讲.由于在内核中所实现的函数十分经典,所以移植出来方便后期应用程序中的使用. /********************* ...

  3. 小白自制Linux开发板 三. Linux内核与文件系统移植

    上一篇完成了uboot的移植,但是想要愉快的在开发板上玩耍还需要移植Linux内核和文件系统. 1.Linux内核 事实上对于F1C100S/F1C200S,Linux官方源码已经对licheepi ...

  4. Linux内核,文件系统移植过程中出现的一些问题与解决办法

    1.bootm地址和load address一样 此种情况下,bootm不会对uImage header后的zImage进行memory move的动作,而会直接go到entry point开始执行. ...

  5. Linux 内核剖解(转)

    Linux 内核剖析(转)  linux内核是一个庞大而复杂的操作系统的核心,不过尽管庞大,但是却采用子系统和分层的概念很好地进行了组织.在本文中,您将探索 Linux 内核的总体结构,并学习一些主要 ...

  6. Linux 内核剖析

    https://www.ibm.com/developerworks/cn/linux/l-linux-kernel/ 由于本文的目标是对 Linux 内核进行介绍并探索其体系结构和主要组件,因此首先 ...

  7. linux 内核分析工具 Dtrace、SystemTap、火焰图、crash等

    << System语言详解 >> 关于 SystemTap 的书. 我们在分析各种系统异常和故障的时候,通常会用到 pstack(jstack) /pldd/ lsof/ tc ...

  8. 基于tiny4412的Linux内核移植 --- aliases节点解析

    作者信息 作者: 彭东林 邮箱:pengdonglin137@163.com QQ:405728433 平台简介 开发板:tiny4412ADK + S700 + 4GB Flash 要移植的内核版本 ...

  9. 基于tiny4412的Linux内核移植 -- 设备树的展开

    作者信息 作者: 彭东林 邮箱:pengdonglin137@163.com QQ:405728433 平台简介 开发板:tiny4412ADK + S700 + 4GB Flash 要移植的内核版本 ...

随机推荐

  1. python 数据类型(列表)学习笔记

    列表 创建列表: name_list = ['alex', 'seven', 'eric'] 或 name_list = list(['alex', 'seven', 'eric']) 其实今天学习的 ...

  2. shell写的计算器

    #!/bin/bashif [ $# -ne 3 ] then echo "Usage: $0 num1 + num2" fi case $2 in +) echo $1$2$3= ...

  3. 【Groovy】入门布道ppt

    Groovy Outline• Hello world• Smooth Java integration• Flat learning curve• Powerful features 跟 Java ...

  4. cocos2dx Tab选项卡控件的实现

    选项卡控件在游戏和应用中很是常见,但是cocostudio里并没有实现好的选项卡控件,于是自己封装了 一个,效果如下: 代码: TabUiControl.h #pragma once //std #i ...

  5. ko list and css gradient

    <!DOCTYPE html> <html> <head> <title></title> <script src="js/ ...

  6. CAShapeLayer--备用

    之前讲过CALayer动画相关知识,再来看看更加复杂的CAShapeLayer相关的动画知识. 普通CALayer在被初始化时是需要给一个frame值的,这个frame值一般都与给定view的boun ...

  7. 认识HTML

    基本框架: 1 <html> 2 <head> 3 <title>This Is Title</title> 4 </head> 5 6 & ...

  8. 使用WampServer 3.0

    在server上安装了WampServer 发现本地使用良好,但是无法从别的PC访问. 原因有二: 1.现象:输入连接无反应 原因:server本身用了80端口,所有WampServer我就设置了80 ...

  9. 百度:在O(1)空间复杂度范围内对一个数组中前后连段有序数组进行归并排序

    一.题目理解 题目:数组al[0,mid-1]和al[mid,num-1]是各自有序的,对数组al[0,num-1]的两个子有序段进行merge,得到al[0,num-1]整体有序.要求空间复杂度为O ...

  10. [TSP+floyd]POJ3311 Hie with the Pie

    题意: 给i到j花费的地图 1到n编号   一个人要从1遍历n个城市后回到1 求最小的花费(可以重复走) 分析 http://www.cnblogs.com/Empress/p/4039240.htm ...