zoukankan      html  css  js  c++  java
  • Linux内核浅入浅出

    公众号关注 「开源Linux」

    回复「学习」,有我为您特别筛选的学习资料~

    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」加星标,提升IT技能
    
    
    十年磨一剑
  • 相关阅读:
    mybaits 时间查询DATE_FORMAT
    spring AOP
    Sqlserver 分页
    @PathVariable注解使用
    easyui 无限级数tree[menulist1 = GetMenuList(sm2,menulist1);]
    查询重复数据group by menu_id having count(menu_id)>1
    SQL把a表字段数据存到b表字段 update,,insert
    毕向东讲解(摘)—12.线程通信,解决安全问题
    URL的加密解密方法
    web项目中的浏览器行为和服务器行为
  • 原文地址:https://www.cnblogs.com/qinlulu/p/14671421.html
Copyright © 2011-2022 走看看