内核 订阅
内核是操作系统最基本的部分。它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,并且内核决定一个程序在什么时候对某部分硬件操作多长时间。内核的分类可分为单内核和双内核以及微内核。严格地说,内核并不是计算机系统中必要的组成部分。 展开全文
内核是操作系统最基本的部分。它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,并且内核决定一个程序在什么时候对某部分硬件操作多长时间。内核的分类可分为单内核和双内核以及微内核。严格地说,内核并不是计算机系统中必要的组成部分。
信息
外文名
kernel
发源时间
1991年10月
类    别
软件
种    类
单内核,双内核,微内核
中文名
内核
内核基本简介
内核,是一个操作系统的核心。是基于硬件的第一层软件扩充,提供操作系统的最基本的功能,是操作系统工作的基础,它负责管理系统的进程、内存、 设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。 [2]  现代操作系统设计中,为减少系统本身的开销,往往将一些与硬件紧密相关的(如中断处理程序、设备驱动程序等)、基本的、公共的、运行频率较高的模块(如时钟管理、进程调度等)以及关键性数据结构独立开来,使之常驻内存,并对他们进行保护。通常把这一部分称之为操作系统的内核。 [3]  程序可以直接地被调入计算机中执行,这样的设计说明了设计者不希望提供任何硬件抽象和操作系统的支持,它常见于早期计算机系统的设计中。最终,一些辅助性程序,例如程序加载器和调试器,被设计到机器核心当中,或者固化在只读存储器里。这些变化发生时,操作系统内核的概念就渐渐明晰起来了。 [4]  (概述图片来源:)
收起全文
精华内容
参与话题
问答
  • linux内核   linux内核版本号格式   major.minor.patch-build.desc  1、major:表示主版本号,有结构性变化时才变更。  2、minor:表示次版本号,新增功能时才发生变化;一般奇数表示测试版,偶数表示...

    linux内核

     
    linux内核版本号格式    
     major.minor.patch-build.desc

      1、major:表示主版本号,有结构性变化时才变更。

      2、minor:表示次版本号,新增功能时才发生变化;一般奇数表示测试版,偶数表示生产版。

      3、patch:表示对次版本的修订次数或补丁包数。

      4、build:表示编译(或构建)的次数,每次编译可能对少量程序做优化或修改,但一般没有大的(可控的)功能变化。

      5、desc:用来描述当前的版本特殊信息;其信息由编译时指定,具有较大的随意性,但也有一些描述标识是常用的,比如:

      <1>rc(有时也用一个字母r),表示候选版本(release candidate),rc后的数字表示该正式版本的第几个候选版本,多数情况下,各候选版本之间数字越大越接近正式版。

      <2>smp,表示对称多处理器(Symmetric MultiProcessing)。

      <3>pp,在Red Hat Linux中常用来表示测试版本(pre-patch)。

      <4>EL,在Red Hat Linux中用来表示企业版Linux(Enterprise Linux)。

      <5>mm,表示专门用来测试新的技术或新功能的版本。

      <6>fc,在Red Hat Linux中表示Fedora Core。

      Alpha版本是内部测试版,是比Beta版还早的测试版,一般不向外部发布,会有很多Bug,除非你也是测试人员,否则不建议使用。

      Beta版本是测试版,这个阶段的版本会一直加入新的功能。

      RC版本(Release Candidate) 是发行候选版本。和Beta版最大的差别在于Beta阶段会一直加入新的功能,但是到了RC版本,几乎就不会加入新的功能了,而主要着重于除错。

      RTM版本(Release to Manufacture)是给工厂大量压片的版本,内容跟正式版是一样的。

      OEM版本是给计算机厂商随着计算机贩卖的,也就是随机版。只能随机器出货,不能零售。只能全新安装,不能从旧有操作系统升级。如果买笔记型计算机或品牌计算机就会有随机版软件。包装不像零售版精美,通常只有一面CD和说明书(授权书)。

      RTL版本(Retail)是真正的正式版,正式上架零售版。



    Linux内核版本的变化

    自从1991年9月17日,Linus Torvals正式宣布了 Linux的第一个正式版本—0.02版本,到现在,Linux的内核版本发生了一系列的变化,新旧版本之间的时间间隔是几个月甚至几个星期。
    我们把内核版本之间内容较大的变化分为三个阶段,第一阶段为0.02~0.99.15j,第二阶段为1.0~1.2.x,第三阶段为1.2.x~2.x.x 。一般来说,一个软件要到理论上已经完备或者已经没有毛病时才给予1.0版本的版本号,而Linux2.0以后的版本比起1.2.x版本有了较大幅度的变化。
    从Linux诞生开始,Linux内核就从来没有停止过升级,从Linus第一次发布的0.02版本到1999年具有里程碑意义的2.2版本,一直到我们现在看到的2.4版本,都凝聚了Linux内核开发人员大量辛苦的劳动。目前Linux在各种工作平台上,包括企业服务器和个人电脑上的广泛应用,使得Linux成为了Windows的强劲对手。
    Linux2.4版具有什么样的特点呢,我们可以用四个字来概括,那就是“广、新、快、小”。
    1.广泛的支持
    ·      处理器芯片的广泛支持 :Linux 2.4 提供了大量的处理器芯片的支持。原先的Linux就可以支持多种处理器体系结构,如Intel x86、Motorola/IBM PowerPC、Compaq(DEC)Alpha等等,现在还增加了对IA 64、S/390、SuperH这3种体系结构的处理器的支持。对Intel的x86系列来说,AMD和Cyrix公司的系列处理器产品也是使用x86指令的,同样也能获得很好的支持。
     
    ·      对ISA 即插即用设备的支持: 过去在Linux核心开发小组里面存在有两种不同的观点,一种是支持对ISA即插即用,另外一种持反对意见,认为对即插即用的支持简直是多余的。因此过去在Linux里对即插即用设置的通用做法只能是利用用户级的工具(如isapnp tools),手动配置即插即用设备。现在的内核则有所不同了,在内核级实现了对即插即用的管理。我们可以看到系统会在启动的时候自动完成对即插即用设备的检测和自动配置,比如说,我们可以从一个即插即用的IDE控制器上启动系统。
     
    ·      广泛的文件系统支持:很少有一个操作系统能支持这么多种文件系统。Linux使用的是VFS(虚拟文件系统)的技术,提供了对多种文件系统的支持。从Linux 1.x到Linux 2.2,Linux已经可以支持多种文件系统了。如Windows 9x的VFAT、DOS的FAT、Mac OS的HFS、OS/2的HPFS、Windows NT的NTFS(NTFS的支持还处于测试阶段)等等;当然还包括Linux自己使用的高性能的Ext2文件系统。新版本的Linux新增支持现在的DVD使用的UDF文件系统和SGI的IRIX系统上的XFS文件系统。
     
    在Windows里面使用SMB协议来实现“网上邻居”的共享访问,Linux 2.4的内核里会让您自己选择是否从Windows 98/NT下装载驱动器,还可以自动检测远端的系统类型,使得您的Linux在Windows环境的局域网里工作得更好。
     
    对NFS(网络文件系统)来说,Linux 2.4版本支持最近发布的NFS v3版本的网络文件系统。
     
    ·      对软猫的支持:软猫实际上被人称为WinModem,就是因为现有的这种软猫的驱动都是由为Windows开发的软件来完成的。这种Modem和一般Modem的处理方法不同,它的DSP处理并不是在硬件层次上做的,而是使用软件通过CPU实现的,因此无法在现有的Linux中配置这种Modem上网。现在的Linux内核里已经开始了这方面的支持。
    2.新思路
    ·      新型的设备管理方法:Linux 2.4 引入了I2O(Intelligent Input/Output)的设备驱动管理方法。它的做法是,将驱动程序分成了两个部分:一个是在操作系统模块的部分,另外一个是在硬件模块的部分。操作系统模块的部分是独立的,硬件模块的部分是依赖于硬件结构的。这种新型的管理方法使得Linux 2.4可以更好地支持大部分的ISA和PCI设备。
     
    ·      对USB总线的支持:近年来,USB(通用串口总线)的技术是计算机界振奋人心的事情之一,现在已经出现了大量的使用这种接口的设备,如键盘、鼠标、音箱、Modem等等。使用USB接口使得计算机外设的安装和使用变得更为简单,自然成为了一种潮流。现在的Linux 也可以很好地支持这种总线接口的设备。
     
    ·      新型的二进制执行代码类型(Binary Types): Linux是第一个在内核级提供内建Java解释器的支持,从而进行Java代码的执行的操作系统之一。这在Linux 2.2版本里已经实现了。Linux 2.4版本又做了改进,将这种支持的方法改为对“Misc”二进制类型的支持。通过使用这种类型的二进制代码类型,用户甚至可以利用DOSEMU(MS DOS模拟器)或者WINE(MS Windows模拟器)来运行在DOS/Windows下的.exe或.com的程序。同样用户也可以自己配置出Java字节码运行类型。
     
    ·      内核级的Web服务器:这种Web服务器和我们所谓的Apache用户层上的Web服务器并不冲突。对HTTP请求首先由内核级的Web服务器进行处理,如果不能处理就将请求提交给Apache用户级Web服务器来处理。像这样的构思和实现在网络操作系统中实属一绝。
    3.高性能 
    ·      对虚拟文件系统(VFS)的修改:Linux 2.4版本的文件系统修改了VFS中的错误,尤其是在文件的缓存管理上。过去的文件系统的高速缓存管理是建立在复杂的双缓冲池(dual-buffer pool) 上的,这种方法导致连开发人员都不知道什么时候将双缓冲池进行同步。这种处理方法并没有给文件处理带来好处,反而增加了内存的使用。因为要处理双缓冲系统的同步,使得系统的处理速度降低。现在开发人员修改这段代码,使用了简单有效的单缓冲系统,提高了文件系统的处理效率。
     
    ·      对高端服务器的支持:Linux 2.4版本的内核可以支持在SMP(对称多处理器系统)下的多个IO-APIC(输入输出的高级可编程中断控制器),提高了对高端服务器的支持效率。
     
    Linux 2.4版本可以支持多达10个IDE控制器。过去的Linux版本只能支持最多4个ID    控制器。一些强大的企业级Web服务器正需要这样的硬件支持。
     
    Linux 2.4版本可以支持Intel P6以上芯片的MTRR(内存类型范围寄存器),对非Intel的如Cyrix 6x86、6x86MX、MII的ARR(地址范围寄存器)也能有很好的支持,这使一些高带宽的设备的运行性能得到提高。
     
    现在的内核可以支持多达42亿个用户。在Intel架构上可以支持到多达4GB的内存。并且现在的内核还可以支持多达16块以太网卡,同时支持最大容量为2GB的文件。
     
    这些性能都使得Linux对高端设备的支持能力得到提高。
     
    ·      对高速网的支持:Linux 2.4版本支持ATM网络适配器等高速网络设备,为进一步的网络发展做好了准备。对低端用户来说,Linux提供的PPP层和ISDN层的结合,提供了在并口线上的PPP和在以太网上的PPP支持。
    4.小内核
    ·      内核本来就很小:Linux的整个内核源代码大概需要占用20多MB的硬盘空间,但是编译出来的二进制代码只占用600KB左右的空间,完全可以放在一张软盘上,随时可以使用这张软盘将系统启动。
     
    ·      对内存的需求很小:大家比较关心的一个问题是Linux现在需要多少内存才能正常工作。因为我们知道,大部分的操作系统在升级的同时,对硬件的需求也在不断提高,尤其是对内存的需求方面,很大层次上影响了系统的性能。不过Linux和其他操作系统不同,Linux可以进行个性化的定制,用户完全可以根据自己的系统配置来生成自己需要的操作系统内核,也可以根据需要启动或关闭一些系统服务,这样可以减少系统对资源的占用,提高系统的运行效率。


    展开全文
  • Linux 内核

    千次阅读 2011-11-30 17:45:00
    Linux内核设计与实现》 《深入理解Linux内核》 《Linux内核完全注释》 《Linux内核源代码情景分析 》

    《Linux内核设计与实现

    《深入理解Linux内核》

    《Linux内核完全注释》

    《Linux内核源代码情景分析 


    展开全文
  • 鉴于此,《Linux内核精髓:精通Linux内核必会的75个绝技》选取了资源管理(CPU、内存、进程等)、文件系统、网络、虚拟化、省电、调试、概要分析、追踪、内核调整等Linux内核的核心主题进行了深入剖析和讲解,总结出...
  • Linux内核从原理到代码详解 链接: http://pan.baidu.com/s/1sj0Szj3 密码: ywyv 网盘失效的话,请加QQ: 3113533060 课程内容: 第一周 1. 初识Linux内核 1.1 认识操作系统 1.2 开放源代码的UNIX...
    Linux内核从原理到代码详解


    链接: http://pan.baidu.com/s/1sj0Szj3 密码: ywyv


    网盘失效的话,请加QQ: 3113533060


    课程内容:
    第一周
    1. 初识Linux内核
    1.1 认识操作系统
    1.2 开放源代码的UNIX/Linux操作系统
    1.3 Linux内核
    1.4 Linux内核源代码
    1.5 Linux内核模块编程入门 
    1.6 Linux 内核中链表的实现及应用
    第二周
    2. 内存寻址
    2.1 内存寻址
    2.2 段机制
    2.3 分页机制
    2.4 Linux中的分页机制
    2.5 Linux中的汇编语言
    第三周
    3章 进程
    3.1 进程介绍
    3.2 Linux系统中的进程控制块
    3.3 Linux系统中进程的组织方式
    3.4 进程调度
    3.5 进程的创建
    3.6 与进程相关的系统调用及其应用
    3.7 系统调用及应用
    第四周
    4章 内存管理
    4.1 Linux的内存管理概述
    4.2 进程的用户空间管理
    4.3 请页机制
    4.4 物理内存分配与回收
    4.5 交换机制
    4.6 内存管理实例


    第五周
    5章 中断和异常
    5.1 中断是什么
    5.2 中断描述符表的初始化
    5.3 中断处理
    5.4 中断的下半部处理机制
    5.5 中断应用——时钟中断


    第六周
    6章系统调用
    6.1 系统调用与应用编程接口、系统命令以及内核函数的关系
    6.2 系统调用基本概念
    6.3 系统调用实现
    6.4 封装例程
    6.5 添加新系统调用


    第七周
    7章内核中的同步
    7.1 临界区和竞争状态
    7.2 内核同步措施
    7.3 生产者\消费者并发实例
    7.4 内核多任务并发实例
    第八周
    8章 文件系统
    8.2 虚拟文件系统
    8.3 文件系统的注册、安装与卸载
    8.4 文件的打开与读写
    8.5 编写一个文件系统


    第九周
    9 设备驱动
    9.1 概述
    9.2 设备驱动程序框架
    9.3 I/O空间的管理
    9.4 字符设备驱动程序

    展开全文
  • linux2.6.1内核源码注释

    万次下载 热门讨论 2014-03-10 15:21:33
    包含LINUX内核同步、信号、内存、调度、文件系统、网络系统、时钟等部分的源码注释。前后历时三年,算是干货。
  • Linux2.6.24内核注释

    千次下载 热门讨论 2014-05-29 22:42:05
    这是半年来,在看ULA的过程中,针对Linux 2.6.24内核顺手做的一点注释。内容不多,个人觉得文件系统和USB这两个模块的注释还有一点意思。 所有注释都是中文,您可以与标准2.6.24内核进行比较,看看具体的注释内容。 ...
  • Linux系统最新内核版本升级

    万次阅读 2020-07-08 15:53:57
    linux内核版本升级 说明:在k8s中由于内核版本太低会出现很多问题,需要在部署k8s集群之前升级系统内核版本。 1、载入公钥 rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org 2、安装ELRepo rpm -Uvh ...

    linux内核版本升级

    说明:在k8s中由于内核版本太低会出现很多问题,需要在部署k8s集群之前升级系统内核版本。

    1、载入公钥

    rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
    

    2、安装ELRepo

    rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
    

    3、载入elrepo-kernel的元数据

    yum --disablerepo=\* --enablerepo=elrepo-kernel repolist
    

    4、查看可用的rpm包

    yum --disablerepo=\* --enablerepo=elrepo-kernel list kernel*
    

    5、下载安装最新版本的kernel

    yum --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-ml.x86_64
    

    6、下载驱动

    yum --enablerepo=elrepo-kernel install kernel-ml kernel-ml-devel.x86_64
    

    7、重启,选择新版本内核进入系统。

    在这里插入图片此时,操作系统使用的内核已升级为【 5.7.7-1.el7.elrepo.x86_64】描述
    此时,操作系统使用的内核已升级为【 5.7.7-1.el7.elrepo.x86_64】

    [root@localhost ~]# uname -a
    Linux localhost.localdomain 5.7.7-1.el7.elrepo.x86_64 #1 SMP Wed Jul 1 11:53:16 EDT 2020 x86_64 x86_64 x86_64 GNU/Linux
    

    8、将内核工具包一并升级

    删除旧版本工具包
    yum remove kernel-tools-libs.x86_64 kernel-tools.x86_64
    
    安装新版本工具包
    yum --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-ml-tools.x86_64
    
    展开全文
  • 一开始我并不想写这个笔记,因为太过复杂,我一直想以简单的方式理解内核,只从概念,避免涉及过多的代码。实际上,我写笔记的时候,书已经看到很后面了,因为总要理解更多才能理解之前看似简短实际复杂的内容。但...
  • Linux内核

    千次阅读 2009-01-07 17:30:00
    Linux内核一、Linux内核Linux内核的源码树已经有超过20000个文件,超过600万行代码。这还是几年前的数据。需要工具、根文件系统、Linux应用程序共同建立一个可用的系统。1、内核版本当前的Linux内核版本为2.6.28。...
  • 将centos 6.5 升级内核 linux 3.12.17

    千次阅读 2014-11-19 15:13:56
     系统版本:Linux centos 2.6.32-431.el6.x86_64(Centos-6.5-x86_64-minimal.iso )  升级内核版本:longterm:3.12.17   升级步骤:  1.虚拟系统安装  要求mininal方式安装(205个包),具体步骤省略。
  • Linux 内核剖析

    千次阅读 2016-01-15 17:56:57
     由于本文的目标是对 Linux 内核进行介绍并探索其体系结构和主要组件,因此首先回顾一下 Linux 的简短历史,然后从较高的层次审视 Linux 内核的体系结构,最后介绍它的主要子系统。Linux 内核具有超过 600 万行的...
  • Linux内核抢占

    千次阅读 2017-09-21 12:48:39
    在2.5.4版本之前,Linux内核是不可抢占的,高优先级的进程不能中止正在内核中运行的低优先级的进程而抢占CPU运行。进程一旦处于核心态(例如用户进程执行系统调用),则除非进程自愿放弃CPU,否则该进程将一直运行
  • Linux内核编译

    千次阅读 2009-03-16 19:40:00
    如何编译Linux内核? 相信你会得到很多种不同的答案,而我在写此文章之前,总是获得一些编译错误的结果。如何你总是遇到编译错误或者失败,其实很多情况下是你下载的内核版本的问题,就是在高版本GCC中编译低版本的...
  • 安卓编译与开发、Linux内核及驱动

    千人学习 2015-08-17 17:42:48
    安卓编译与开发、Linux内核及驱动视频教程,该课程内容包括一、源码编译:1、常见的ROM种类、谷歌的ROM、第三方的ROM2、区别3、RockChip的ROM、4、编译环境配置、源码下载、编译命令;二、源码开发:源码结构分析、...
  • 操作系统内核可能是微内核,也可能是单内核(后者有时称之为宏内核Macrokernel)。按照类似封装的形式,这些术语定义如下: 单内核:也称为宏内核。将内核从整体上作为一个大过程实现,并同时运行在一个...
  • Linux内核修炼之道》 之 高效学习Linux内核

    万次阅读 热门讨论 2010-07-15 23:10:00
    这本《Linux内核修炼之道》在卓越、当当、china-pub上也已经开卖了,虽然是严肃文学,但为了保证流畅性,大部分文字我还都是斟词灼句,反复的念几遍才写上去的,尽量考虑到写上去的每段话能够让读者产生什么疑惑,...
  • i.Mx6烧录方法,串口xmodem使用方法,烧录内核,少些内核,xmodem烧录内核,xomdem烧写zImage烧录zImage,dd命令用法,dd命令烧录uboot,dd命令烧写uboot;紧紧作为工作记录;映像烧写1 映像上传采用串口xmodem协议...
  • 认识Linux,走进Linux世界

    千次阅读 多人点赞 2020-02-25 21:42:01
    1:Linux的历史 自由软件之父(开源之...linux内核发明人。1991年创造了这套系统内核之一 2:Linux常见发行版本 RHEL(Red Hat Enterprise Linux)红帽Linux商业公司,主要提供服务。 CentOS(community Enterpri...
  • 宏内核与微内核、Linux内核与Unix内核的区别

    万次阅读 多人点赞 2016-05-25 10:06:42
    操作系统内核可能是微内核,也可能是单内核(后者有时称之为宏内核Macrokernel)。按照类似封装的形式,这些术语定义如下: 单内核:也称为宏内核。将内核从整体上作为一个大过程实现,并同时运行在一个单独的地址...
  • 深入分析Linux内核源码.chm

    千次下载 热门讨论 2008-10-07 14:30:14
    1.3走进Linux内核 1.4 分析Linux内核的意义 1.5 Linux内核结构 1.6 Linux内核源代码 1.7 Linux内核源代码分析工具 第二章 Linux运行的硬件基础 2.1 i386的寄存器 2.2 内存地址 2.3 段机制和描述符 2.4 分页机制 2.5 ...
  • ubunttu下配置内核linux-3.6.7

    千次阅读 2012-11-26 20:47:59
    1、首先到www.kernel.com网站下载最新版本的内核,现在最新的是linux-3.6.7 新建目录kernel,将下载的压缩包linux-3.6.7.tar.bz2复制到kernel目录下 解压命令tar jxvf linux-3.6.7.tar.bz2 然后进入目录linux-3.6.7...
  • linux内核map图

    千次阅读 2010-07-28 10:27:00
    linux内核map图
  • Android内核linux 内核对比

    千次阅读 2017-03-08 11:47:16
    默认情况下,Android使用以下Linux内核版本。有一系列Linux内核版本,可以运行每个Android版本。通常使用具有略微不同的Linux版本的BSP(板支持包)。 请参阅驱动程序集成#分支以使用正确的分支。 ...
  • linux内核整体架构

    千次阅读 2018-08-02 21:23:54
    本文是“Linux内核分析”系列文章的第一篇,会以内核的核心功能为出发点,描述Linux内核的整体架构,以及架构之下主要的软件子系统。之后,会介绍Linux内核源文件的目录结构,并和各个软件子系统对应。 2.linux内核...
  • Linux内核模块编译

    千次阅读 2018-07-25 19:12:52
    Linux内核模块是一种可被动态加载和卸载的可执行程序。通过内核模块可以扩展内核功能,内核模块通常用于设备驱动、文件系统等。如果没有内核模块,需要向内核添加功能就需要自发代码、重新编译内核、安装新内核等...
  • 4岁小女孩给Linux内核贡献提交

    万次阅读 多人点赞 2019-12-24 08:44:56
    今天在reddit上看到一个有趣的讨论,一个4岁的小女孩给Linux提交了一个补丁,并且这个补丁合并到了代码中。链接如下:https://www.reddit.com/r/linux/c...

空空如也

1 2 3 4 5 ... 20
收藏数 341,288
精华内容 136,515
关键字:

内核