当前位置:首页 > 教育培训 >

linux内核学习步骤(linux内核基础入门教程)

来源:原点资讯(www.yd166.com)时间:2023-06-11 23:52:04作者:YD166手机阅读>>

喜欢的可以收藏转发加关注

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

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

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

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

Linux 操作系统架构

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

linux内核学习步骤,linux内核基础入门教程(1)

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

  • 用户空间
  • 内核空间

1. 用户空间

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

2. 内核空间

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

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

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

Linux 内核主要子系统

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

linux内核学习步骤,linux内核基础入门教程(2)

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 内核中主要负责管理各种网络设备,并实现各种网络协议栈,最终实现通过网络连接其它系统的功能。

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

小结

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


linux内核学习步骤,linux内核基础入门教程(3)

Linux 基础

主要包括 Linux 环境搭建、常用工具、一些基础命令、性能优化等等。

Linux环境搭建 | 手把手教你安装Linux虚拟机

Linux环境搭建 | VMware下共享文件夹的实现

Linux常用工具 | 使用notepad 远程编辑虚拟机文档

Linux常用工具 | 全能终端神器——MobaXterm

Linux常用命令 | 10个非常有趣的Linux命令

Linux常用命令 | Linux下find与exec的联手干大事

Linux性能优化 | Linux性能检测常用的10个基本命令

Linux 进阶

主要包括 Linux 命令高级用法,常用命令行工具,一些技巧等等。

Linux命令高级用法 | Linux下 ls 命令的高级用法8例

Linux命令高级用法 | 5分钟 more 命令从入门到精通

Linux命令行工具 | 程序员轻松绘图神器

Linux命令行工具 | Linux里隐藏的计算器,你知道它的奥秘吗?

Linux常用技巧 | 让你提高效率的Linux技巧

Linux常用技巧 | Linux下日志文件过大解决方案

先大概分享这些,后续再整理 Linux 编程,Linux 神器,Linux 趣应用,树莓派等文章。

学习C/C 的伙伴可以私信回复小编“学习”领取全套免费C/C 学习资料、视频

linux内核学习步骤,linux内核基础入门教程(4)

栏目热文

linux三个内核详解(linux内核详解)

linux三个内核详解(linux内核详解)

简介作用是将应用程序的请求传递给硬件,并充当底层驱动程序,对系统中的各种设备和组件进行寻址。目前支持模块的动态装卸(裁剪...

2023-06-11 23:55:37查看全文 >>

linux内核开发越老越吃香(linux内核开发方向)

linux内核开发越老越吃香(linux内核开发方向)

文章转载自 OSCHINA 社区 [http://www.oschina.net]原文标题:Linux 内核维护者难寻:...

2023-06-12 00:00:56查看全文 >>

本科生出国留学靠谱吗(大学生出国留学弊端多吗)

本科生出国留学靠谱吗(大学生出国留学弊端多吗)

取决于你想在哪儿工作,语言表达才是绝大部分人能留在当地工作的基础,这个世界上没多少人优秀到不用说话就能征服面试官。 对于...

2023-06-11 23:47:05查看全文 >>

国内大学出国留学条件(大学考研出国留学条件)

国内大学出国留学条件(大学考研出国留学条件)

  随着新时代教育对外开放的深入,越来越多的学生和家长选择了高质量的出国留学方式。同时,还有一些未经教育部核实的留学项目...

2023-06-12 00:25:59查看全文 >>

本科出国留学需要什么条件(公派留学非常难申请吗)

本科出国留学需要什么条件(公派留学非常难申请吗)

前言:这是公众号索斯留学关于“本科出国留学的条件”的一篇文章。现在越来越多的学生面临毕业会因为就业形势而选择高效读研、出...

2023-06-11 23:52:01查看全文 >>

linux内核开发教程(linux内核开发技术详解教程)

linux内核开发教程(linux内核开发技术详解教程)

在前面文章中我们反复提到过Linux内核,知道Linux内核才是Linux操作系统最为核心的内容。内核实现了对硬件的管理...

2023-06-12 00:00:47查看全文 >>

一文看懂linux内核(linux内核通俗解释)

一文看懂linux内核(linux内核通俗解释)

简介作用是将应用层序的请求传递给硬件,并充当底层驱动程序,对系统中的各种设备和组件进行寻址。目前支持模块的动态装卸(裁剪...

2023-06-12 00:24:07查看全文 >>

图解linux 内核(图解linux内核内部的神奇世界)

图解linux 内核(图解linux内核内部的神奇世界)

请关注本头条号,每天坚持更新原创干货技术文章。如需学习视频,请在微信搜索公众号“智传网优”直接开始自助视频学习1. 前言...

2023-06-12 00:01:17查看全文 >>

linux实时内核详解(linux内核内存管理详解)

linux实时内核详解(linux内核内存管理详解)

Linux内核实时化步骤内核实时化目标是在Linux内核中嵌入Xenomai实时核,构建双核系统。利用管道补丁搭建Lin...

2023-06-12 00:27:28查看全文 >>

linux内核技术讲解教程

linux内核技术讲解教程

Linux内核的相关技术,Lee哥很早之前就想和大家分享一波了。但是一直苦于没有时间。今天就给大家分享一波,也算是一波福...

2023-06-12 00:05:50查看全文 >>

文档排行