Linux Kernel 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
Linux Kernel 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
Linux Kernel 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
Linux Kernel 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
Linux Kernel 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !

软件简介

Linux 是最受欢迎的自由电脑操作系统内核。它是一个用C语言写成,符合POSIX标准的类Unix操作系统。Linux最早是由芬兰黑客林纳斯·托瓦茲为尝试在英特尔x86架构上提供自由免费的类Unix操作系统而开发的。该计划开始于1991年,这里有一份林纳斯·托瓦茲当时在Usenet新闻组comp.os.minix所登载的帖子,这份著名的帖子标志着Linux计划的正式开始。

在计划的早期有一些Minix 黑客提供了协助,而今天全球无数程序员正在为该计划无偿提供帮助。

技术上说Linux是一个内核。“内核”指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。一个内核不是一套完整的操作系统。一套基于Linux内核的完整操作系统叫作Linux操作系统,或是GNU/Linux。

Linux是一个宏内核(monolithic kernel)系统。设备驱动程序可以完全访问硬件。Linux内的设备驱动程序可以方便地以模块化(modularize)的形式设置,并在系统运行期间可直接装载或卸载。

Linux不是微内核(microkernel)架构的事实曾经引起了林纳斯·托瓦茲与安德鲁·斯图尔特·塔能鲍姆(‎ Andy Tanenbaum)之间一场著名的争论。

尽管林纳斯·托瓦茲的初衷不是使Linux成为一个可移植的操作系统,今天的Linux却是全球被最广泛移植的操作系统内核。从掌上电脑iPAQ到IBM S/390(一种可以同时跑成千上百个Linux的大型电脑),甚至于有人成功的将Linux内核在新力出品的游戏机PS2及PS3和微软出品的游戏机Xbox上使用。Linux也是IBM超级计算机Blue Gene的操作系统。直至2008年11月,全球前五百大超级电脑(TOP 500)有高达87.8%的比例采用Linux为它们的作业系统,最快的超级电脑IBM_Roadrunner正是采用Linux的。

专利权

原先托瓦茲将Linux置于一个禁止任何商业行为的条例之下,但之后改用GNU通用公共许可证第二版。该协议允许任何人对软件进行修改或发行,包括商业行为,只要其遵守该协议,所有基于Linux的软件也必须以该协议的形式发表,并提供源代码。

托瓦茲曾经公开声称将Linux置于GNU通用公共许可证之下是他一生中所做的“最好的决定”。

Linux內核有三个不同的命名方案。
早期版本:

  • 第一个版本的內核是0.01。其次是0.02,0.03,0.10,0.11,0.12(第一GPL版本),0.95,0.96,0.97,0.98,0.99及1.0。[6]

从0.95版有许多的补丁发布于主要版本版本之间。

旧计划(1.0和2.6版之间):

  • A大幅度转变的內核。这是很少发生变化,只有当发生重大变化的代码和核心发生才會发生。在历史上曾改变两次的內核:1994年的1.0及1996年的2.0。

  • B是指一些重大修改的內核。

    • 內核使用了传统的奇数次要版本号码的软件号码系統(用偶数的次要版本号码來表示稳定版本)。

  • C是指轻微修订的內核。这个数字当有安全补丁,bug修复,新的功能或驱动程序,內核便会有变化。

自2.6.0(2003年12月)发布后,人们认识到,更短的发布周期将是有益的。自那时起:

  • AB是无关要的

  • C是內核的版本

  • D是安全补丁(通常会以'rc'表示)

文/维基百科

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (16)

加载中
林纳斯·托瓦茲...
2020/08/26 12:18
回复
举报
6
2019/07/09 14:01
回复
举报
github
2018/04/03 18:00
回复
举报
Linux 内核源码上什么地方下载
2017/12/19 13:49
回复
举报
打分: 推荐
多大岁数都学习着。
2017/01/05 14:10
回复
举报
rand.h Linux Kernel
2012/05/22 17:10
回复
举报
sockio.h Linux Kernel
2012/05/28 16:55
回复
举报
usbhid.h Linux Kernel
2012/11/09 21:29
回复
举报
win8的桌面很炫,而且支持多点触控,真是不知道在代码上是怎么实现那些很炫的桌面? Linux Kernel
2012/11/11 23:29
回复
举报
更多评论
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表于程序人生专区
2020/09/02 18:24

你第一次使用 Linux 是在什么时候?

1991 年的 8 月 25 日,来自芬兰赫尔辛基大学的 Linus Torvalds 用 Minix 操作平台建立了一个新的操作系统内核,并把它发回 Minix Usenet 新闻组。此时,年仅 21 岁的大学生 Linus 不会意识到,自己当做兴趣爱好开发的一个小项目会在 29 年后发展成统治世界的庞大操作系统内核。 Linux 迎来 29 岁:从个人爱好到统治世界的操作系统内核 29 年过百万次 commit,Linux 内核何以发展至今? Linux 29 年来的野蛮扩张,也带来了一种全...

71
1
2020/08/04 15:27

从新手村开始,手把手带你入门梳理内核代码

作者:姜亚华(@二如公子 ),《精通 Linux 内核——智能设备开发核心技术》的作者,一直从事与 Linux 内核和 Linux 编程相关的工作,研究内核代码十多年,对多数模块的细节如数家珍。曾负责华为手机 Touch、Sensor 的驱动和软件优化(包括 Mate、荣耀等系列),以及 Intel 安卓平台 Camera 和 Sensor 的驱动开发(包括 Baytrail、Cherrytrail、Cherrytrail CR、Sofia 等)。现负责 DMA、Interrupt、Semaphore 等模块的优化与验...

8
45
发表了问答
2020/07/13 15:15

Java 离 Linux 内核有多远?

作者:姜亚华(@二如公子 ),《精通 Linux 内核——智能设备开发核心技术》的作者,一直从事与 Linux 内核和 Linux 编程相关的工作,研究内核代码十多年,对多数模块的细节如数家珍。曾负责华为手机 Touch、Sensor 的驱动和软件优化(包括 Mate、荣耀等系列),以及 Intel 安卓平台 Camera 和 Sensor 的驱动开发(包括 Baytrail、Cherrytrail、Cherrytrail CR、Sofia 等)。现负责 DMA、Interrupt、Semaphore 等模块的优化与验...

16
85
发表了问答
2020/06/08 17:59

云计算时代,容器底层 cgroup 如何使用

作者:姜亚华(@二如公子 ),《精通 Linux 内核——智能设备开发核心技术》的作者,一直从事与 Linux 内核和 Linux 编程相关的工作,研究内核代码十多年,对多数模块的细节如数家珍。曾负责华为手机 Touch、Sensor 的驱动和软件优化(包括 Mate、荣耀等系列),以及 Intel 安卓平台 Camera 和 Sensor 的驱动开发(包括 Baytrail、Cherrytrail、Cherrytrail CR、Sofia 等)。现负责 DMA、Interrupt、Semaphore 等模块的优化与验...

4
24
发表了问答
2020/05/06 13:07

云计算时代,容器底层 cgroup 如何实现资源分组?

作者:姜亚华(@二如公子 ),一直从事与 Linux 内核和 Linux 编程相关的工作,研究内核代码十多年,对多数模块的细节如数家珍。曾负责华为手机 Touch、Sensor 的驱动和软件优化(包括 Mate、荣耀等系列),以及 Intel 安卓平台 Camera 和 Sensor 的驱动开发(包括 Baytrail、Cherrytrail、Cherrytrail CR、Sofia 等)。现负责 DMA、Interrupt、Semaphore 等模块的优化与验证(包括 Vega、Navi 系列和多款 APU 产品)。 引言 《...

11
72
发表了问答
2020/02/11 19:12

高手问答第 240 期 —— 如何掌握 Linux 内核,玩转智能设备开发

“Linux 内核第一版发布于 1991 年,如今最新版本已经到了 5.X。最初仅仅是一只五脏俱全的麻雀,发展到现在浩瀚如海,代码量也已经超过了千万行;最初基于 Intel x86 的 PC,如今囊括了 x86 和 arm 等主流平台在内的几十个平台;现在已经有 CentOS、Debian、 Fedora、openSUSE、Ubuntu、Red Hat Enterprise Linux 和 Android 等基于它的操作系统。Android 的崛起,更是将 Linux 带到了大众手中,如今不仅仅是数以万计的程序员,...

82
24
发表了问答
2019/04/19 00:16

专访笨叔叔:Linux 绝对霸主,Linux 开发者未来可期

Linus Torvalds 在上个月正式发布了 Linux Kernel 5.0 全新版本,版本号虽然直接从 4 升到了 5,但其实这只是 Linus 不喜欢子版本号太大的“任性操作”。 版本号大升级是否意味着 Linux 内核也发生了重大的变化? 目前 Linux 在物联网、云计算、超算、人工智能等领域扮演着越来越重要的角色,诸如 5G、边缘计算等技术也开始逐渐铺开,技术的革新对 Linux 从业者又会带来怎样的机遇和挑战?作为一个“超级”开源项目,虽然 Linu...

9
41
发表了问答
2019/05/26 07:59

【一周】开源维护者的挣扎 | 桌面 Linux 的失败 | 谷歌的 Android

回顾一周社区热门资讯 第【二十四】期:20190518-20190524 点击相应标题,跳转阅读全文。 KDE Plasma 5.16 Beta 桌面环境发布,通知系统引入勿扰模式 开发 1 年,我学到了什么? A)学会倾听和学习 B)限制自己的期望 C)保持好奇心和享受乐趣 D)不要给出确切的日期 E)不要用主观的意见去审查代码 F)我只是一名员工 P.s:记录工作日记 开发 7 年,我学到了什么? 编程中最重要的语言 深入了解你正在开发什么?为什么开发它?...

1
12
发表了问答
2018/12/10 10:59

为什么网上关于嵌入式方面的讨论都非常少?

想找个组织,求推荐!

6
0
发表了问答
2018/11/23 17:16

【一周热点】微软抢了锤子风头 | Linus 又双叒叕【没】喷 | HTTP/3 基于 UDP

回顾一周社区热门资讯与你的精彩留言~ 第【三】期:1117-1123 读者神回复 from: Ktor 1.0 发布:Kotlin 团队打造的 Kotlin Web 框架 --- from: v-region 2.0.0 发布,行政区划选择器(4 级联动城市选择) --- from: Vue 3.0 更新计划:更快,更小,让开发者更轻松 --- from: Linux Kernel 4.20 在 Intel 处理器上的性能低于 4.19 --- from: Django 面临发展困境,意欲进行整改并废除核心团队 --- from: 程序员吐槽:我永远不会再为...

4
8
发表了问答
2016/08/23 11:11

关于Linux内核波特率定义和解析的问题

When I want to set baud for a certain termios, the value in Linux kernel is defined as B9600 ,B115200,and in the head file ,the define is as follows : #define B9600 0000015 ... #define B115200 00021 How does the value 00021 or 000015 stand for the real baud and the kernel parse the value(00021、000015 or other data)?...

2
0
发表了问答
2017/09/20 19:54

开源访谈 | Linux 内核爱好者笨叔叔:爱奔跑 爱 Linux Kernel

Linux Kernel 在计算机世界的地位有目共睹,称它为计算机世界的基石也不为过。如此繁复庞大的 Linux 内核,开发者应如何面对?本期开源访谈邀请到了一位认真钻研技术的 Linux 内核爱好者,笨叔叔 —— “笨氏吊打法”发明人,专注 Linux 内核十余年的他和我们分享了关于他的学习经历、对 Linux 内核的看法、开源和商业的结合等话题。 本期嘉宾 笨叔叔,Linux 内核爱好者,从事 Linux 内核和驱动开发十余年,曾在多家芯片公司从事...

8
32
发表了问答
2017/05/19 13:54

linux2.6.10内核编译报语法错误?

编译内核时报错,如图 找到报错的文件,内容为: 源代码不应该有问题,怀疑是交叉编译链构建问题。 系统:centos6.5 gcc版本:3.3.6 编译的Linux 内核版本:2.6.10 交叉编译链使用crosstool构建,系统原来的gcc版本太高不能识别,卸载了之后手动安装的3.3.6版本。怎么解决这个问题呢?

2
0
发表了问答
2014/08/31 18:21

快被android的pthread尿性搞挂了。。。

最近要在android底层移植C库,这个库多处使用pthread线程,现在要设置线程优先级,可是当我按照 linux下的设置方法根本行不通,Android太坑爹了。现在google也没法查,哪位大婶搞过这种玩意, 敬请赐教,小弟多谢了!! pthread_attr_getinheritsched/pthread_attr_setinheritsched似乎根本就没有实现,大婶们 救救命把。

5
0
发表了问答
2016/12/14 15:20

在centos下安装xen时,进不了xen内核

按照centos6xen4的官方搭建方式在实机上搭建了xen,但是由于xen需要安装新的内核,所以要启动新内核才能实现xen的搭建,但是reboot后新内核一直显示error 13 : invalid or unsupported executable format,我以为是盘符的问题,于是将ext4退至ext3发现还是一样结果,猜测是grub启动项写的有问题,但是检查了grub发现没有问题,不知道有大神遇到过这种问题吗?...

2
0
发表了问答
2016/09/01 14:18

centos 6.8 kernel升级至2.6.32-642.4.2.el6.x86_64后无法ssh问题

IBM x3750M4服务器 通过yum update进行OS更新之后重启,出现可以ping通,但是ssh无法连接,通过zabbix也无法监控到机器的运行状态。经过IDC机房人员协助,发现机器界面处于CentOS的启动界面。如下图: 后来通过重启进入单用户模式,并且开启网络服务,能够进行远程ssh登陆。但是,排查发现一些无用的kernel(见下列表),通过yum remove kernel-2.6.32-573.*之后,重启os,仍然无法恢复原先的可以ssh登陆同时能够被zabbix监控到...

17
1
发表了问答
2016/06/04 12:07

android 模拟器用3.18的内核无法启动,一直黑屏

模拟器内核使用的是https://android.googlesource.com/kernel/goldfish.git android-goldfish-3.18-dev这个分支,模拟器系统是自己编译的android 6.0.1.然后启动的时候debug信息如下: emulator: Error while connecting to socket '127.0.0.1:1970': 111 -> Connection refusedemulator: ASC 127.0.0.1:1970: Retrying connection. Connector FD = 16 编译时内核和系统都是选的x86架构。 编译6.0.1源码后产生的kernel-qemu可以...

2
0
发表了问答
2015/07/25 22:31

开源中国会不会出现牛人牛事.

像linux 那样抛火的人事.感觉挺有意义的,大家聊聊,我们可以做一件什么样的事情,最有可能一鸣惊人. 我们中间有那样的牛人吗?  谁来试下...int main(int argc, char *argv[]){ ........

5
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
16 评论
348 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部