Linux内核
目录
Linux内核
Linux 内核是一个免费、开源、单片、模块化、多任务、类 Unix 操作系统内核。 它最初由 Linus Torvalds 于 1991 年为他的基于 i386 的 PC 编写,并很快被采用为 GNU 操作系统的内核,该操作系统被编写为 Unix 的免费 (libre) 替代品。
Linux 仅在 GNU 通用公共许可证版本 2 下提供,但它包含其他兼容许可证下的文件。
自 20 世纪 90 年代后期以来,它已作为大量操作系统发行版的一部分包含在内,其中许多通常也称为 Linux。
Linux 部署在各种计算系统上,例如嵌入式设备、移动设备(包括在 Android 操作系统中的使用)、个人计算机、服务器、大型机和超级计算机。 它可以使用一系列简单命令针对特定架构和多种使用场景进行定制(即,无需在编译前手动编辑其源代码); 特权用户还可以在运行时微调内核参数。 大多数 Linux 内核代码是使用 GCC 对标准 C 编程语言的 GNU 扩展编写的,并在内核的有限部分使用特定于体系结构的指令 (ISA)。 这会生成一个在内存空间利用率和任务执行时间方面高度优化的可执行文件 (vmlinux)。
日常开发讨论在 Linux 内部邮件列表 (LKML) 上进行。 使用版本控制系统 git 跟踪更改,该系统最初由 Torvalds 编写,作为 BitKeeper 的免费软件替代品。
历史
1991 年 4 月,时年 21 岁的 Linus Torvalds 是芬兰赫尔辛基大学计算机科学专业的一名学生,他开始研究一些受 UNIX 启发的操作系统的简单想法,用于个人计算机。 他从使用 Intel 80386 汇编语言的任务切换器和终端驱动程序着手。 1991 年 8 月 25 日,Torvalds 在 Usenet 上的新闻组 comp.os.minix 上发布了以下内容:
我正在为 386(486) AT 克隆做一个(免费)操作系统(只是一个爱好,不会像 gnu 那样大而专业)。 这从四月份就开始酝酿了,现在已经开始准备好了。 我想要任何关于人们喜欢/不喜欢 minix 的东西的反馈,因为我的操作系统有点像它(文件系统的相同物理布局(由于实际原因)等等)。我目前移植了 bash( 1.08) 和 gcc(1.40),一切似乎都正常。 这意味着我将在几个月内得到一些实用的东西 […] 是的——它没有任何 minix 代码,而且它有一个多线程 fs。 它不可盈利(使用 386 任务切换等),并且它可能永远不会支持除 AT 硬盘以外的任何东西,因为这就是我所拥有的:-(。
1991 年 9 月 17 日,Torvalds 准备了 0.01 版 Linux 并安装了 ftp.funet.fi——芬兰大学和研究网络 (FUNET) 的 FTP 服务器。 它甚至不可执行,因为它的代码仍然需要 Minix 来编译和播放。
1991 年 10 月 5 日,Torvalds 发布了 Linux 的xxx个正式版本,即 0.02 版。 此时,Linux 能够运行 Bash、GCC 和其他一些 GNU 实用程序:
[正如] 我在一个月前提到的,我正在为 AT-386 计算机开发一个免费版本的 Minix-lookalike。 它终于达到了甚至可以使用的阶段(尽管可能不取决于您想要什么),并且我愿意提供源代码以进行更广泛的分发。 它只是 0.02 版……但我已在其下成功运行 bash、gcc、gnu-make、gnu-sed、compress 等。
之后,尽管早期版本的功能有限,但 Linux 迅速获得了开发者和用户。 许多人为该项目贡献了代码,包括一些来自 MINIX 社区的开发人员。 当时,GNU 项目已经创建了免费的 UNIX 替代品 GNU 操作系统所需的许多组件,但它自己的内核 GNU Hurd 还不完整。 出于这个原因,它很快也采用了 Linux 内核。 Berkeley Software Distribution 尚未摆脱法律障碍,也没有在免费操作系统内核领域展开竞争。
Torvalds 将版本 0 分配给内核以表明它主要用于测试而不是用于生产用途。 1991 年 12 月发布的 0.11 版是xxx个自托管 Linux,因为它可以由运行相同内核的计算机编译。

当 Torvalds 在 1992 年 2 月发布 0.12 版本时,他采用了 GNU 通用公共许可证版本 2 (GPLv2) 而不是他之前自行起草的许可证,该许可证不允许商业再分发。 与 Unix 不同,Linux 的所有源文件都可以免费获得,包括设备驱动程序。 Linux 最初的成功是由全世界的程序员和测试人员推动的。 在 POSIX API 的支持下,通过 libC(无论是否需要,它充当内核地址空间的入口点),Linux 可以运行已经开发的软件和应用程序。