Linux 4.9内核正式发布!来看看更新了什么?

前言

在历经8个rc版本之后,Linux 4.9版本的内核于2016年12月11日如期与大家见面。根据Linux的创始人Linus Torvalds的声明,Linux Kernel 4.9分支会是一个重大的版本更新,其间会经过8个研发版本。Linus Torvalds 在2016年12月11日在内核邮件列表上宣布正式释出Linux Kernel 4.9,这一个全新的主线(mainline)版本,同时这也标志着与4.10版本合并窗口的开启

1. Linux介绍

果问20世纪最伟大的软件是什么?笔者认为一定是Linux,如果没有Linux就没有今天的互联网、移动互联网、物联网,更没有占据超过87%市场份额的智能手机操作系统Android(数据来源:Strategy Analytics Q3季度数据)。

1.1 什么是Linux

Linux是Unix系统的一个克隆,由Linus Torvalds及一些组织松散的黑客从头编写。是一个基于POSIX标准的类UNIX的多用户、多任务、支持多线程和多CPU的操作系统。

它具有你所期望的UNIX系统的全部特征和功能,包括真正的多任务、虚拟内存、共享库、按需加载、共享的写时复制可执行文件、适当的内存管理、包括IPv4和IPv6的模块化网络。

Linux 基于GNU通用公共许可证发行。

1.2 Linux的内核(Lernel)

是一个一体化内核系统,从技术角度或者严格意义上来讲Linux这个词只表示Linux系统的内核。CentOS、Ubuntu、Red Hat、Debian、Fedora等发行版,都是基本这个Linux内核进一步开发和发行的。而Linux的创始人及其团队,也只负责内核的Linux内核的开发和维护。Linux内核源码托管于github,网址如下:https://github.com/torvalds/linux

注:Git同样是由Linus Torvalds主导,为了帮助管理 Linux内核开发而开发的一个开放源码的版本控制软件。(PS:伟大的人造就了伟大的系统,并同时产生了一大批伟大的工具,致敬。)

1.3 Linux发行版

我们常会听到Linux发行版的概念。Linux发行版是指,由组织松散的团队、商业机构或志愿者组织编。通常会包括系统软件和应用软件,以及一个用于简化系统初始安装的安装工具,和让软件安装升级的软件管理器(如:RPM、DPKG)。

如,前文提到的CentOS、Ubuntu、Red Hat、Debian、Fedora等Linux系统,都是一个Linux发行版。它们都基于相同的Linux内核开发,但集成了不同的系统软件和应用软件,及系统初始化安装工具和软件管理器。

由于不同的发行版都使用了相同的Linux内核,所以使得Linux平台具有良好的兼容性和跨平台移植性,让相同的软件可以运行于不同的发行版中。也正因此,让Linux拥有了其它系统所无法比拟的,宠大的软件生态系统。

1.4 Linux内核(Lernel)的作用及构成

计算机系统是一个硬件和软件的共生体,它们互相依赖,不可分割。计算机包含处理器、内存、硬盘和其他外设的综合设备。但没有软件来操作和控制,其自身是不能工作的。 完成这个控制工作的软件就称为操作系统,在Linux中被称为Kernel(内核)。

Linux内核的组成

Linux内核由以下模块组成:

  1. 进程管理(Process Management)
  2. 定时器(Timer)
  3. 中断管理(Interrupt Management)
  4. 内存管理(Memory Management)
  5. 模块管理(Module Management)
  6. 虚拟文件系统接口(VFS Layer)
  7. 文件系统(File System)
  8. 设备驱动程序(Device Driver)
  9. 进程间通信(Inter-process Communication)
  10. 网络管理(Network Management)
  11. 系统启动(Iystem Init)
  12. 其它

Linux内核版本号

在Linux发展过程,先后使用过三种不同的版本命名方案:

1、早期版本 - 第一个版本为0.01。其后是0.02、0.03、0.10、0.11、0.12(第一GPL版本)、0.95、0.96、0.97、0.98、0.991.0。

2、旧计划,数字由A.B.C三部分表示(1.0和2.6版之间)- A表示主版本号;B表示次主版本号;C较小的末版本号。其间,A只变化过两次,分别1994年的1.0和1996年的2.0

B用于判断Linux是否稳定,偶数的B代表稳定版,奇数的B代表开发版

C表示一些Bug修复、安全、新特性和驱动更新的次数

3、time-based表示方式 - 2.6.0以后,人们觉得应该使用更短的发布周期。表示格式更新为A.B.C表示方式。其中,A和B保持不变;C表示内核的版本;D表示Bug修复、安全补丁、新特性等,通常以'rc'表示

2. Linux 4.9内核有哪些更新

Linux Kernel 4.9的发布后,4.9将是最新的主干分支(mainline)。Linus 也表示4.9是一个重大的更新,该版本的发布,也标志着与4.10全并窗口的开启,合并周期约为两周,会在圣诞节前后关闭。

在4.9牌本的内核带来的改变有:

  1. 虚拟映射内核栈(virtually mapped kernel stacks
  2. 内存保护键系统调用(Memory-protection keys system calls
  3. BBR拥堵控制算法(BBR congestion-control algorithm
  4. Greybus总线架构支持(Support for the Greybus bus architecture
  5. 虚拟映射内核栈(virtually mapped kernel stacks
  6. XFS文件系统共享扩展(Shared extents in the XFS filesystem)
  7. BUG修改及其它…

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

(0)

相关推荐

  • Linux内核模块和驱动的编写

    Linux内核是一个整体是结构,因此向内核添加任何东西,或者删除某些功能,都十分困难.为了解决这个问题引入了内核机制.从而可以动态的想内核中添加或者删除模块. 模块不被编译在内核中,因而控制了内核的大小.然而模块一旦被插入内核,他就和内核其他部分一样.这样一来就会曾家一部分系统开销.同时,如果模块出现问题,也许会带来系统的崩溃. 模块的实现机制: 启动时,由函数 void inti_modules() 来初始化模块,因为启动事很多时候没有模块.这个函数往往把内核自身当作一个虚模块. 如由系统需要

  • Linux操作系统内核编译详解

    内核简介 内核,是一个操作系统的核心.它负责管理系统的进程.内存.设备驱动程序.文件和网络系统,决定着系统的性能和稳定性. Linux的一个重要的特点就是其源代码的公开性,所有的内核源程序都可以在/usr/src/linux下找到,大部分应用软件也都是遵循GPL而设计的,你都可以获取相应的源程序代码.全世界任何一个软件工程师都可以将自己认为优秀的代码加入到其中,由此引发的一个明显的好处就是Linux修补漏洞的快速以及对最新软件技术的利用.而Linux的内核则是这些特点的最直接的代表. 

  • Linux内核漏洞浅析

    与Windows相比,Linux被认为具有更好的安全性和其他扩展性能.这些特性使得Linux在操作系统领域异军突起,得到越来越多的重视.随着Linux应用量的增加,其安全性也逐渐受到了公众甚或黑客的关注.那么,Linux是否真的如其支持厂商们所宣称的那样安全呢?本期我们请到了启明星辰信息技术有限公司积极防御实验室工程师赵伟,对Linux进行专业的漏洞技术分析. Linux内核精短.稳定性高.可扩展性好.硬件需求低.免费.网络功能丰富.适用于多种cpu等特性,使之在操作系统领域异军突起.其独特的魅

  • SYN Cookie在Linux内核中的实现

    概述 在目前以IPv4为支撑的网络协议上搭建的网络环境中,SYN Flood是一种非常危险而常见的DoS攻击方式.到目前为止,能够有效防范SYN Flood攻击的手段并不多,而SYN Cookie就是其中最著名的一种.SYN Cookie原理由D. J. Bernstain和 Eric Schenk发明.在很多操作系统上都有各种各样的实现.其中包括Linux.本文就分别介绍一下SYN Flood攻击和SYN Cookie的原理,更重要的是介绍Linux内核中实现SYN Cookie的方式.最后,

  • Linux内核链表实现过程

    关于双链表实现,一般教科书上定义一个双向链表节点的方法如下: 复制代码 代码如下: struct list_node{stuct list_node *pre;stuct list_node *next;ElemType data; } 即一个链表节点包含:一个指向前向节点的指针.一个指向后续节点的指针,以及数据域共三部分.但查看linux内核代码中的list实现时,会发现其与教科书上的方法有很大的差别.来看看linux是如何实现双链表.双链表节点定义 复制代码 代码如下: struct lis

  • 一张图看尽Linux内核运行原理

    众所周知的是,几乎整个互联网都运行在 Linux 上,从网络协议,到服务器,到你平常访问的绝大多数网站,都能看到它的身影.Linux 内核就是最复杂最流行的开源项目之一.如果你希望学习内核知识,在网上可以搜到无数的资料,但是 Linux 内核还是一个非常难弄明白的项目. 俗话说:一图胜千言,今天我们就为大家介绍一张完整的 Linux 内核运行原理图,通过这张图,你可以很方便地学习内核知识. 在 Linux 内核中,有许多层次.模块.功能调用和函数:要把其中的每一块儿都弄明白很不容易,不过 Mak

  • Python提取Linux内核源代码的目录结构实现方法

    今天用Python提取了Linux内核源代码的目录树结构,没有怎么写过脚本程序,我居然折腾了2个小时,先是如何枚举出给定目录下的所有文件和文件夹,os.walk可以实现列举,但是os.walk是只给出目录名和文件名,而没有绝对路径.使用os.path.listdir可以达到这个目的,然后是创建目录,由于当目录存在是会提示创建失败的错误,所以我先想删除所有目录,然后再创建,但是发现还是有问题,最好还是使用判断如果不存在才创建目录,存在时就不创建,贴下代码: # @This script can b

  • RedHat linux 8.0下内核编译步骤和说明

    ************************************************************************以下步骤有很多都是很初级的命令或解释,因为偶是linux新手,*在编译过程中走了很多弯路,花了大量时间找各种解决办法,所以*把相应的命令都写了出来,希望对跟偶一样的才入门不久而又想*编译内核的新手有所帮助!** kilvon 05-Mar-2003******************************************************

  • 浅谈Linux内核创建新进程的全过程

    进程描述 进程描述符(task_struct) 用来描述进程的数据结构,可以理解为进程的属性.比如进程的状态.进程的标识(PID)等,都被封装在了进程描述符这个数据结构中,该数据结构被定义为task_struct 进程控制块(PCB) 是操作系统核心中一种数据结构,主要表示进程状态. 进程状态 fork() fork()在父.子进程各返回一次.在父进程中返回子进程的 pid,在子进程中返回0. fork一个子进程的代码 #include <stdio.h> #include <stdli

  • 解析Linux内核的基本的模块管理与时间管理操作

    内核模块管理 Linux设备驱动会以内核模块的形式出现,因此学会编写Linux内核模块编程是学习linux设备驱动的先决条件. Linux内核的整体结构非常庞大,其包含的组件非常多.我们把需要的功能都编译到linux内核,以模块方式扩展内核功能. 先来看下最简单的内核模块 #include <linux/init.h> #include <linux/module.h> static int __init hello_init(void) { printk(KERN_ALERT &

随机推荐