linux内核从逻辑上可以分为5个部分:
1、进程调度
进程调度控制进程对CPU的访问。当需要选择下一个进程运行时,由调度程序选择最值得运行的程序。可运行进程实际上是仅等待CPU资源的进程,如果某个进程在等待其他资源,则该进程是不可运行进程。linux使用了基于优先级的进程调度算法选择新的运行进程。
2、进程间通信
IPC(Intre-Process Communication)包括FIFO、管道等机制以及System V IPC的共享内存(shm)、消息队列(msg)和信号灯(sem);
3、内存管理
内存管理允许多个进程安全地共享主内存区域。linux的内存管理支持虚拟内存,即在计算机中运行的程序,它的代码、数据和堆栈的总量可以超过实际内存的大小,操作系统只是把当前使用的程序块保存在内存中,其余的程序块则保留在磁盘中。当必要时,操作系统负责在磁盘和内存间交换程序块。内存管理从逻辑上分为硬件无关部分和硬件有关部分。硬件无关部分提供了进程的映射和逻辑内存的对换。硬件有关部分为内存管理硬件提供了虚拟接口。
4、虚拟文件系统
Virtual File System 隐藏了各种硬件的具体细节,为所有设备提供了统一的接口,VFS提供了多达数十种不同的文件系统。虚拟文件系统可以分为逻辑文件系统和设备驱动程序。逻辑文件系统指linux所支持的文件系统。设备驱动程序指的是为每一种硬件控制器所编写的设备驱动程序模块。
5、网络
linux是源于网络的操作系统,提供了大量的内置网络功能,并且网络功能和内核的联系非常紧密。linux的网络功能包括各种网络协议和对网络硬件的访问。

Linux内核逻辑结构相关推荐

  1. linux内核 cpu_die,解密“内核”,和“cpu”又有啥关系?

    感谢大家对天才疯子的阅读与支持! 天才疯子每天与你不见不散,带你装逼带你飞! 核心(Die)又称为内核,是CPU最重要的组成部分.CPU中心那块隆起的芯片就是核心,是由单晶硅以一定的生产工艺制造出来的 ...

  2. LINUX内核分析第二周学习总结——操作系统是如何工作的

    LINUX内核分析第二周学习总结--操作系统是如何工作的 张忻(原创作品转载请注明出处) <Linux内核分析>MOOC课程http://mooc.study.163.com/course ...

  3. Linux内核分析作业第二周

    操作系统是如何工作的 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.函数调用堆栈 1.计算机工作三 ...

  4. linux 内核 第二周 操作系统是如何工作的

    姬梦馨 原创博客 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一:计算机的三个法宝 存储程序计算机工 ...

  5. Linux内核分析课程期中总结

    Linux内核分析课程期中总结 姓名:王朝宪 学号:20135114 注: 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com ...

  6. Linux内核分析第二周:操作系统是如何工作的

    第一讲 函数调用堆栈 计算机是如何工作的? (总结)--三个法宝 1,存储程序计算机工作模型,计算机系统最最基础性的逻辑结构: 2,函数调用堆栈,高级语言得以运行的基础,只有机器语言和汇编语言的时候堆 ...

  7. Linux内核分析 笔记二 操作系统是如何工作的 ——by王玥

    一.知识要点 1.计算机是如何工作的?(总结)--三个法宝 存储程序计算机工作模型,计算机系统最最基础性的逻辑结构: 函数调用堆栈,高级语言得以运行的基础,只有机器语言和汇编语言的时候堆栈机制对于计算 ...

  8. Linux内核源代码情景分析笔记

    Linux内核源代码情景分析笔记 好吧,首先我承认我要是读者的话,这篇文章我看着也头疼,因为写的太长太泛(其主要部分集中在内存管理,进程管理,文件系统)!原本是想按自己理解的精简精简的,按照操作系统中 ...

  9. 第一行代码android网课,linux内核分析(网课期末地面课期中)

    堆栈变化过程:html 计算机是如何工做的?(总结)--三个法宝git 存储程序计算机工做模型,计算机系统最最基础性的逻辑结构:程序员 函数调用堆栈,高级语言得以运行的基础,只有机器语言和汇编语言的时 ...

最新文章

  1. [Django](1093, quot;You can#39;t specify target table #39;fee_details_invoices#39; for update in...
  2. 禁止/启用angularjs相关缓存的方法
  3. 【Android Gradle 插件】ProductFlavor 配置 ( ProductFlavor#buildConfigField 方法 | 单独编译生成 BuildConfig 类的任务 )
  4. Java基础:由JVM内存模型详解线程安全
  5. 修改SAP系统字段描述的方法
  6. jar 工程我怎么在网页上url访问某一个方法_搜狗用这个骚技术,把百度逼上了绝路。。。...
  7. Java黑皮书课后题第6章:**6.29(双素数)双素数是指一对差值为2的素数。例如,3和5就是一对双素数,5和7是一对双素数,而11和13也是一对双素数。编写程序,找出小于1000的所有双素数
  8. SAP Spartacus develop branch 的服务器端渲染启动方式
  9. 前端学习(2321):angular环境搭建1
  10. C++_sizeof关键字_实型(也叫浮点型)---C++语言工作笔记011
  11. 数据库设计需要注意什么
  12. react 实用项目分享-mock server
  13. 31.Linux/Unix 系统编程手册(上) -- 线程:线程安全和每线程存储
  14. tablelayout高度问题
  15. 为了方便手机观看,博文最好36个字一行
  16. 可达性分析之三色标记算法详解
  17. JTT808/1078管理平台发布
  18. 量化交易 米筐 策略评价指标
  19. Autocad 2022版本插件开发基础1
  20. 【简单利用函数实现多条件求和】

热门文章

  1. 请领导批阅文件怎么说_刚到公司,应该怎么喊领导,别直接说名字,高情商这样称呼...
  2. 在BurpSuite中安装Jython环境
  3. 4阶范德蒙德行列式例题_行列式的性质和计算问题
  4. sinaapp mysql连接_手把手教你在新浪云上免费部署自己的网站--连接数据库
  5. 11、Node.js 函数
  6. 父类div高度适应子类div
  7. 文本强制不换行并隐藏
  8. C# 加载C++的dll
  9. Maven补全之生命周期(Lifecycle)
  10. 关于DJANGO MODELS的个人理解和RELATED_NAME的使用