LinuxZone

LinuxZone.net
Linux系统网——精选每一篇高品质的技术干货
  1. 首页
  2. 开源快讯
  3. 正文

带你钻进Linux内核,看它到底长啥样?

2023年6月6日 172点热度

Linux内核,这个常常看见,却不不晓得它具体是干嘛的东西,是不是感觉十分神秘?

Linux内核看不见摸不着,而对于这类东西,我们常常无从下手。本文就以通俗易懂的语言linux压缩命令,带你躲进Linux内核,看它究竟长啥样。

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

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

Linux操作系统构架

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

新设计团队linux内核设计的艺术:图解linux操作系统架_linux 内核内存初始化_linux内核内存分配

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

1.用户空间

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

2.内核空间

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

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

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

Linux内核主要子系统

按照内核的核心功能,Linux内核提出了5个子系统linux服务器搭建,分别为:系统调用、进程管理、内存管理、文件系统、网络管理,如右图示:

新设计团队linux内核设计的艺术:图解linux操作系统架_linux内核内存分配_linux 内核内存初始化

1.系统调用(SystemCallInterface)

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

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

2.进程管理(ProcessManagement)

用户空间有这么多进程,怎么让她们有条不紊地进行着正是进程管理所要做的事。每位进程都要使用到CPU资源(如CPU,显存),但CPU资源虽然有限,不可能让某个进程一进独占着资源。

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

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

3.显存管理(MemoryManagement)

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

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

4.虚拟文件系统(VirtualFileSystem)

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

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

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

5.网路管理(NetworkStack)

网路子系统在Linux内核中主要负责管理各类网路设备,并实现各类网路合同栈,终实现通过网路联接其它系统的功能。

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

小结

以上就是Linux内核的一些很基础的知识,对于内核的学习还有特别多的内容,决不是一篇文章才能写完的。所以,对于内核的学习,须要多看书,多看视频,并自己动手去实践,能够真正把握。

明天是良许公众号营运一华诞的日子,本想在明天就变胖利的,但今天的文章写得太长了,怕同学们翻不到后,所以就换到明天来。

为了答谢良许的读者同学们仍然以来的支持与帮助,本次为你们送出两个福利:1.内核书籍;2.现金红包。

1.书籍附送

其中内核书籍是《Linux内核深度解析》,是由异步社区所赞助,在此谢谢异步社区的大力支持!该书籍比较优质,且售价比较贵138元,所以本书附赠10本。书籍介绍如下:

由于我不希望真正想得到这本书的人没抽到,而只是过来打黄酱的人却得到了这本书,这样书本就发挥不了它的作用。所以为了让书籍献给真正有须要的人,捐书规则如下:

在评论区留言,写下你想要得到这本书的理由。要走心哦,不走心不上墙哦;约请好友为你的评论据赞,赞数前10名者抽奖;为避免刷赞,赞数超过100的同学必须提供拉票证据,否则丧失得奖资格;活动时间即日起至6月5日晚8:00,抽奖者需在24小时内联系良许提供地址。良许有多个陌陌,联系其中一个即可,还没有良许陌陌的,请在公众号后台回复良许二字即可得到良许的新陌陌。2.现金红包

没错,就是这么粗鲁,直接发红包!直接点击以下链接即可申领,先到先得哦!因为良许还比较穷,不能发很大的红包,还请拜谢!

后,近好多男子伴找我要Linux学习路线图,于是我按照自己的经验,借助业余时间通宵肝了一个月,整理了一份电子书。无论你是笔试还是自我提高,相信还会对你有帮助!目录如下:

linux 内核内存初始化_新设计团队linux内核设计的艺术:图解linux操作系统架_linux内核内存分配

免费献给你们,但求你们金指给我点个赞!

电子书|Linux开发学习路线图

也希望有男子伴能加入我,把这份电子书做得更完美!

有收获?希望老铁们来个三连击,给更多的人听到这篇文章

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: linux文件系统 linux社区 linux系统 内存管理
最后更新:2023年6月6日

Linux系统网

每日更新,欢迎收藏♥ 不积跬步无以至千里,加油,共勉。

点赞
< 上一篇
下一篇 >

Linux系统网

每日更新,欢迎收藏♥
不积跬步无以至千里,加油,共勉。

最新 热点 随机
最新 热点 随机
gdb调试运行中的Python进程步骤 修改ssh默认端口号的方法及注意事项!服务器 企业应用程序的未来提供动力?——Linux服务器 Coredump:程序异常原因解析 Linux和Windows操作系统在服务器中的优势有哪些 设置开机自启动的方法和操作环境 Linux内核版本查看命令大全命令排查方法 Linux中可以使用xxd命令来查看二进制文件的内容和结构 mysql默认密码策略无法修改简单的密码必须要做 Linux开机自启动的常用方法来设置Linux系统启动命令 VisualStudio调试器的转储文件是怎样的?| 串口驱动框架分析之u-boot串口接收缓冲中的示例 常用命令/文件处理、基础功能介绍 不同操作系统发行的软件包可否混用? Linux系统如何添加开机启动自动启动的方式有很多种 ftp命令是标准的文件传输协议的用户接口,ftp Ubuntu16.04下完美切换Python版本(亲测) apt命令需要获得root,一般格式为sudoapt-getxxx! linux必装软件 Python、R、Jupyter等在内超过1500个数据科学包及其依赖项 Linux系统pwd命令:显示当前路径的绝对路径!
CentOS上离线搭建SVN服务器的操作什么是发行版(distro)的英文原文是什么?如何删除不要的应用软件?Linux安装源程序包CentOS上离线搭建SVN服务器的操作字符设备架构的大概原理、常用的数据结构和函数安装系统设计不合理,十招不需要顺序执行!5个最稳定的Linux发行版,你值得拥有!Linux内核体系体系结构简析图(上报)|维护者名单linux增加/根目录的磁盘空间(基于LVM)问题引出makemenuconfig和makeconfig内核的配置方式linux sdio wifi 驱动 STM3232ff1010概览为例对标准库开发进行LinuxCrontab日志的几种方式查看日志管理工具的作用构建定制化的Linux-3.5内核构建步骤及使用方法!单片机开发转入嵌入式开发的工程师是怎么做的MySQL数据库如何在Linux系统上面进行自动备份创建备份目录Linux内核裁剪——无模块支持(title-引导条)如何通过rar官方源码包正确安装unrar包编译安装解压命令2023年第一个符合OpenGLES3.1标准的GPU驱动程序(IPO)管理用户(user)的工具或命令;Linux基础知识:一个文件复制到当前文件夹
常见的服务器操作系统有什么优势?艾西分享 Linux类Unix操作系统的自执行文件与方法总结的 如何安全的删除Linux服务器上的用户帐户? Linux内核裁剪——无模块支持(title-引导条) 搜狗输入法forlinux安装版,精准智能算法畅想输入体验 Linux系统如何添加开机启动自动启动的方式有很多种 Linux启动流程启动的几种常见问题及解决办法 Linux的常用操作和命令-本章Linux重点介绍 本文提到与模拟器进行冲突时候应该如何解决 如何查看本机的linux使用的是什么shell? 搜狗输入法forLinux更新至2.3.2版本 比特币大涨至1万美元关口是我们的最佳选择吗? Web服务器运行的Linux当中,CentOS却是毫无悬念的No.1 国内Linux发行版如何下载钉钉有如下操作方法 Linux内核设备树的原理、结构、语法以及实际应用指南 如何查看自己的Linux系统版本号?详细的教程来了 Linux系统下的软件查找、安装与删除,并介绍两款 Linux设备驱动程序2.0:源代码注解 Linux具体有哪些方面的优点呢? 操作系统接管硬件以后发生的事情,也就是操作系统的启动流程
标签聚合
内核 软件 应用 目录 文件目录 命令 文件 linux服务器 linux系统 操作
书籍
课程
技术群
技术干货大合集↓
  • 2023年11月 / 85篇
  • 2023年10月 / 94篇
  • 2023年9月 / 90篇
  • 2023年8月 / 92篇
  • 2023年7月 / 96篇
  • 2023年6月 / 91篇
  • 2023年5月 / 93篇
  • 2023年4月 / 91篇
  • 2023年3月 / 69篇
友情链接:

Linux书籍 | Linux命令 | Linux系统 | RHCE红帽认证 | Linux软件 | Linux教程 | CentOS系统 | Linux内核 | Linux服务器 | Linux大神 | IT资源 | Linux系统

COPYRIGHT © 2024 LinuxZone.net ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang