Linux内核浅入浅出

系统 Linux
拥有超过1300万行的代码,Linux内核是世界上最大的开源项目之一,但是Linux内核是什么,它用于什么?且听我们慢慢道来。

[[381163]]

01 前言

拥有超过1300万行的代码,Linux内核是世界上最大的开源项目之一,但是Linux内核是什么,它用于什么?且听我们慢慢道来。

 

02 什么是Linux内核?

Linux内核是Linux操作系统的核心,指的是一个由 Linus Torvalds 负责维护,提供硬件抽象层、硬盘及文件系统控制及多任务功能的系统核心程序。

Linux操作系统就是由Linux内核与各种常用软件的集合产品。

 

03 Linux内核版本命名规则

Linux内核版本有两种:稳定版和开发版 。

Linux内核版本号由3个数字组成:r.x.y

  • r:目前发布的内核主版本。
  • x:偶数表示稳定版本;奇数表示开发中版本。
  • y:错误修补的次数。

我们在主机上执行uname -a,

uname -a :显示系统名、节点名称、操作系统的发行版号、内核版本等等。

 

  • 系统名:

Linux

  • 节点名称:

qll

  • 操作系统的发行版号:

3.10.0-1127.el7.x86_64

命名规则:

主版本号:3

次版本号:10【奇数为开发版本,偶数为稳定版本】

修订版本号:0【修改的次数】

此次版本的第N次修改:1127

el7:redhat enterprise linux 7

x86_64:编译框架(64位)

  • 内核版本:

#1 SMP Tue Mar 31 23:36:51 UTC 2020

  • 硬件平台:

x86_64

  • 机器硬件名:

x86_64

  • 系统处理器的体系结构:

x86_64

  • 操作系统:

GNU/Linux

Linux 内核版本命名在不同时期有不同的命名规范,其中在2.X版本中,X如果为奇数表示开发版、X如果为偶数表示稳定版,从2.6.X以及3.X,内核版本命名就没有严格的约定规范了。

04 Linux内核的主要功能

Linux内核是整个Linux功能体现的核心,它是用C语言编写的,符合Posix标准。

Linux内核主要功能包括进程管理、内存管理、文件管理、设备管理、网络管理等。 

 

  • 进程管理:

进程是在计算机系统中资源分配的最小单元。内核负责创建和销毁进程,而且由调度程序采取合适的调度策略,实现进程间的合理且实时的处理器资源的共享。从而内核的进程管理活动实现了多个进程在一个或多个处理器上的抽象。内核还负责实现不同进程间、进程和其他部件之间的通信。

  • 内存管理:

内存是计算机系统中主要的资源。内核使得多个进程安全而合理地共享内存资源,为每个进程在有限的物理资源上建立一个虚拟地址空间。内存管理部分代码可分为硬件无关部分和硬件有关部分:硬件无关部分实现进程和内存之间的地址映射等功能;硬件有关部分实现不同体系结构上的内存管理相关功能并为内存管理提供与硬件无关的虚拟接口。

  • 文件管理:

在Linux系统中的任何一个概念几乎都可以看做一个文件。内核在非结构化的硬件上建立了一个结构化的虚拟文件系统,隐藏了各种硬件的具体细节,从而在整个系统的几乎所有机制中使用文件的抽象。Linux在不同物理介质或虚拟结构上支持数十种文件系统。例如,Linux支持磁盘的标准文件系统ext3和虚拟的特殊文件系统。

  • 设备管理:

Linux系统中几乎每个系统操作终都映射到一个或多个物理设备上。除了处理器、内存等少数的硬件资源之外,任何一种设备控制操作都由设备特定的驱动代码来进行。内核中必须提供系统中可能要操作的每一种外设的驱动。

  • 网络管理: 

内核支持各种网络标准协议和网络设备。网络管理部分可分为网络协议栈和网络设备驱动程序。网络协议栈负责实现每种可能的网络传输协议(TCP/IP协议等);网络设备驱动程序负责与各种网络硬件设备或虚拟设备进行通信。

本文转载自微信公众号「开源Linux」,可以通过以下二维码关注。转载本文请联系开源Linux公众号。

 

责任编辑:武晓燕 来源: 开源Linux
相关推荐

2011-04-22 10:23:50

Server Push

2021-05-17 09:58:00

MySQL索引数据库

2017-09-07 15:43:24

数据库MongoDBMySQL

2022-01-06 07:59:32

WebGPUOpenGL引擎

2020-03-06 10:16:55

Spring数据库框架

2009-11-30 16:46:29

学习Linux

2021-03-16 08:54:35

AQSAbstractQueJava

2019-04-15 09:54:40

Linux 系统 数据

2009-12-25 15:49:43

Linux rescu

2021-06-21 08:58:14

MySQL数据库Pages

2011-07-04 10:39:57

Web

2010-09-06 14:10:27

PPP内核

2012-05-21 10:06:26

FrameworkCocoa

2019-01-07 15:29:07

HadoopYarn架构调度器

2021-07-20 15:20:02

FlatBuffers阿里云Java

2017-07-02 18:04:53

块加密算法AES算法

2022-09-26 09:01:15

语言数据JavaScript

2009-12-11 14:57:02

Linux文件夹

2010-02-24 14:55:35

Linux Makef

2022-12-02 09:13:28

SeataAT模式
点赞
收藏

51CTO技术栈公众号