集团主站
欢迎来到成都达内官方网站!达内—美国上市公司 亿元级外企IT培训企业!
成都it培训哪家好
成都it培训哪家好
全国服务监督电话:15023458194  |   联系客服   |
当前位置:主页 > 培训课程 > Linux >

成都it运维工程师:Linux内核

发布者: 成都达内     浏览次数:     发布时间:2020-06-08 14:58:37

Linux内核看不见摸不着,而对于这类东西,我们经常无从下手。成都it运维工程师本文就以浅显易懂的语言,带你钻进Linux内核,看它到底长啥样。...

  Linux内核,这个经常听见,却不不知道它具体是干嘛的东西,是不是觉得非常神秘?

  Linux内核看不见摸不着,而对于这类东西,我们经常无从下手。成都it运维工程师本文就以浅显易懂的语言,带你钻进Linux内核,看它到底长啥样。

  内核是Linux操作系统的核心组件,它向上连接应用程序,向下直接与硬件打交道。其代码主要由C语言及少量汇编语言写成,并且它可以适配多种多样不同的硬件架构。

  内核并发运行着一系列的进程,并管理着硬件的各种资源。具体来讲,因为系统的资源有限,内核就为各个进程分配着诸如CPU时间、内存空间、网络连接等各方面的资源。

  Linux 操作系统架构

  下图是一个典型的Linux操作系统架构图。

  成都it运维工程师:Linux内核

  Linux操作系统主要分成两部分:

  用户空间

  内核空间

  1. 用户空间

  所有的用户应用程序都是在用户空间运行,它们不能直接访问内存等硬件资源,而是间接通过内核来访问。GNU C 库(glibc)提供了从用户空间切换至内核空间的机制。

  2. 内核空间

  内核直接管理着系统的CPU、内存、输入输出设备、网络设备和其它的外围设备,它被分为不同模块来管理系统的不同操作,比如:文件管理,内存管理,进程管理等等。

  用户空间的应用程序可以通过调用内核提供的 API 来访问硬件资源。比如,对于文件操作,我们可以调用 open() ,read() ,write() 等接口。

  内核直接管理着硬件,又与硬件相互独立,它可以通过简单配置然后运行在 Intel,ARM ,Atemel 等芯片架构上。

  Linux内核主要子系统

  根据内核的核心功能,Linux内核提出了5个子系统,分别为:系统调用、进程管理、内存管理、文件系统、网络管理,如下图示:

  成都it运维工程师:Linux内核

  1. 系统调用(System Call Interface)

  系统调用接口。进程调度子系统通过系统调用接口,将需要提供给用户空间的接口开放出去,同时屏蔽掉不需要用户空间程序关心的细节。

  SCI 实际上是一个非常有用的函数调用多路复用和多路分解服务。在 ./linux/kernel 中您可以找到 SCI 的实现,并在./linux/arch 中找到依赖于体系结构的部分。

  2. 进程管理(Process Management)

  用户空间有那么多进程,如何让他们有条不紊地进行着正是进程管理所要做的事。每个进程都要使用到 CPU 资源(如 CPU ,内存),但 CPU资源毕竟有限,不可能让某个进程一进独占着资源。

  因此,进程管理就充当着管理员的角色,它调度着所有的进程,当需要选择下一进程运行时,会由调度算法来选择最需要运行的进程。如果某个进程在等待其它硬件资源,则它就会被挂起。

  因此,通过一系列的调度算法,内核尽可能地公平地让各个进程使用到 CPU 资源。

  3. 内存管理(Memory Management)

  内存管理主要提供对内存资源的访问控制,以便让各个进程可以安全地共享机器的内存资源。它提供了物理内存与虚拟内存的一种映射关系,因而不同的进程可以使用相同的虚拟内存,而这些相同的虚拟内存,可以映射到不同的物理内存上。这个映射关系主要由 MMU 来完成。

  另外,内存管理会提供虚拟内存的机制,该机制可以让进程使用多于系统可用的内存,不用的内存会通过文件系统保存在外部非易失存储器中,需要使用的时候,再取回到内存中。

  4. 虚拟文件系统(Virtual File System)

  内核隐藏了不同功能的外部设备,例如硬盘、输入输出设备、显示设备等等的具体细节,将它们抽象为可以通过统一的文件操作接口(open、close、read、write等)来访问,也就是我们所熟知的「一切皆文件」。

  随着计算机技术的发展,历史上出现了多种文件系统,比如:FAT、FAT32、NTFS、EXT2、EXT3 等等。为了兼容这些文件系统,内核将它们抽象为统一的表现形式,这就是虚拟文件系统的概念。

  虚拟文件系统可分为逻辑文件系统和设备驱动程序。逻辑文件系统指 Linux 所支持的文件系统,如ext2, fat等,设备驱动程序指为每一种硬件控制器所编写的设备驱动程序模块。

  5. 网络管理(Network Stack)

  网络子系统在 Linux 内核中主要负责管理各种网络设备,并实现各种网络协议栈,最终实现通过网络连接其它系统的功能。

  网络接口提供了对各种网络标准协议的存取和各种网络硬件的支持。网络接口可分为网络协议和网络驱动程序两部分。网络协议部分负责实现每一种可能的网络传输协议,网络设备驱动程序负责与硬件设备进行通信,每一种可能的硬件设备都有相应的设备驱动程序。

  小结

  成都it运维工程师以上就是Linux内核的一些很基础的知识,对于内核的学习还有非常多的内容,决不是一篇文章能够写完的。所以,对于内核的学习,需要多看书,多看视频,并自己动手去实践,才能真正掌握。

(责任编辑:范老师)
最新开班
  • 成都Java培训班
    免费试听名额发放中...
  • 成都C++培训班
    免费试听名额发放中...
  • 成都PHP培训班
    免费试听名额发放中...
  • 成都网络工程培训班
    免费试听名额发放中...
  • 成都Unity3D培训班
    免费试听名额发放中...
  • 成都大数据培训班
    免费试听名额发放中...
  • 成都uid培训班
    免费试听名额发放中...
  • 成都会计培训班
    免费试听名额发放中...
  • 成都Python培训班
    免费试听名额发放中...
  • 成都嵌入式培训班
    免费试听名额发放中...
  • 成都web培训班
    免费试听名额发放中...
  • 成都软件测试培训班
    免费试听名额发放中...
在线留言
提交

校区地址:成都市锦江区东大街紫东楼端35号明宇金融广场19楼1906室

联系电话:15023458194

公交路线:芷泉街(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:成都市高新区奥克斯广场蜀锦路209号一楼商铺

联系电话:15023458194

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

校区地址:成都锦江区东大街芷泉街229号东方广场C座3楼303

联系电话:15023458194

公交路线:芷泉街(188路;115路;515路;236路;505路;501路;84路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:成都市武侯区佳灵路3号红牌楼广场2号写字楼11楼1115号

联系电话:15023458194

公交路线:红牌楼东(11路;92路;100路;111路;139路;g28路;快速公交K1/K2) 地铁路线:红牌楼站(地铁3号线)

校区地址:成都市锦江区红星路二段70号四川日报大厦502-2

联系电话:15023458194

公交路线:市二医院站(6路;49路;102路;5路;37路;g92路;) 地铁路线:地铁市二医院(地铁3号线)

校区地址:成都市锦江区东大街芷泉段229号东方广场C座16层

联系电话:15023458194

公交路线:芷泉街(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:四川省成都市武侯区高新科技孵化园9号园区E座7楼

联系电话:15023458194

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

校区地址:成都市高新区奥克斯广场B座1708

联系电话:15023458194

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

了解达内动态
关注成都达内教育公众号

首页 | 关于达内 | 课程中心 | 专家师资 | 视频教程 | 学员空间 | 校企合作 | 新闻资讯 | 就业指导 | 网站地图

2016-2025 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56