noo*_*oop 117 linux kernel history linux-kernel
Linux只是一个内核,如果用户要使用它,那么他们需要一个完整的发行版。话虽如此,当没有 Linux 发行版时,Linux 的第一个版本是如何使用的?
Rui*_*iro 167
在 Linux 的早期阶段,Linus Torvalds发布了处于 alpha 状态的 Linux 内核源代码,以向其他人发出信号,表明正在开发新的类 Unix 内核。到那时,正如@RalfFriedi 所说,Linux 内核是在 Minix 中交叉编译的。
至于可用软件,Linus Torvalds 还移植了实用程序与 Linux 内核一起分发,以便其他人对其进行测试。这些程序主要是bash和gcc,正如Linus Torvalds在LINUX's History 中所描述的那样。根据 Usenet帖子:
来自:torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds) 新闻组:comp.os.minix 主题:你最想在 minix 中看到什么? 总结:我的新操作系统的小调查 消息 ID:<1991Aug25.205708.9541@klaava.Helsinki.FI> 日期:91 年 8 月 25 日 20:57:08 GMT 机构:赫尔辛基大学大家好,在那里使用 minix -
我正在为 386(486) AT 克隆做一个(免费)操作系统(只是一个爱好,不会像 gnu 那样大而专业)。这从四月就开始酝酿,并开始准备。我希望对人们在 minix 中喜欢/不喜欢的东西有任何反馈,因为我的操作系统与它有些相似
(文件系统的物理布局相同(由于实际原因)等等)。我目前已经移植了 bash(1.08) 和 gcc(1.40),一切似乎都有效。这意味着我会在几个月内得到一些实用的东西,我想知道大多数人想要什么功能。欢迎任何建议,但我不保证我会实施它们:-)
Linus 以软盘格式分发内核和核心实用程序,供用户试用并可能为它做出贡献。
之后是陆海家的Boot-root软盘。如果这可以称为发行版,那么它将成为第一个能够安装在硬盘上的发行版。
这是两个 5¼" 软盘映像,其中包含 Linux 内核和启动所需的最少工具。这些工具要能够从硬盘驱动器引导,需要使用十六进制编辑器编辑其主引导记录,所以这些工具非常少。

最终,实用程序的数量增长到超过了软盘的最大容量。
MCC Interim Linux 是第一个通过引入自动安装和新实用程序(如fdisk.
MCC Interim Linux 是由曼彻斯特大学曼彻斯特计算中心 (MCC) 的 Owen Le Blanc 于 1992 年 2 月首次发布的 Linux 发行版。
MCC Interim Linux 的第一个版本基于 Linux 0.12,并利用 Theodore Ts'o 的 ramdisk 代码将一个小的根映像复制到内存中,从而释放软盘驱动器以用于其他实用程序软盘。[2]
他还表示,他的发行版是“非官方实验”,并将其发行版的目标描述为:
- 提供一个简单的安装程序。
- 提供更完整的安装程序。
- 提供备份/恢复服务。
- 备份他(当时)当前的系统。
- 编译、链接和测试当前版本的内核、gcc 和库下的每个二进制文件。
- 提供一个稳定的基础系统,可以在短时间内安装,并且可以相对较少地添加其他软件。
在 MCC 前身之后,SLS是 1992 年 5 月第一个提供 X Window 系统的发行版。值得注意的是,SLS 的竞争对手、神话般的Yggdrasil于 1992 年 12 月首次亮相。

正如我们今天所知,其他主要发行商紧随其后,特别是1993 年 7 月的Slackware(基于 SLS)和1993 年 12 月的Debian,直到 1995 年 12 月第一个正式版本 1.1 发布。
图片来源:
* 引导/根软盘图片来自:https :
//www.maketecheasier.com/ * yggdrasil 软盘图片来自:https ://yggdrasilblog.wordpress.com/
小智 19
就我而言 (c.1994) Linux 是作为适合 3.5" 软盘 (1.44MB) 的映像构建的,可能是上面提到的 5 1/4" 映像的后续版本,并且每个都有一组特定的驱动程序编译在 (网络、VGA 等)。所以你必须知道你需要什么,并希望你有合适的硬件。
启动后,可以连接到 LAN 或通过调制解调器拨号,然后你去找到你需要的软件(FTP、gopher 等——这正是“网络”的开始,搜索引擎没有真的存在,所以你必须知道去哪里或问谁)并自己构建它。
当我能够启动我的 486DX 并拨入我的大学网络(56k!)并在家里的机器上安装 AFS 共享时,我欣喜若狂……那是那些日子。;)
ctr*_*lor 14
在 Linus 启动他的内核时,Gnu 项目有一个可用的操作系统,除了一个可用的内核。所以当人们环顾四周时,他们发现了他们需要的所有工具:gcc(和朋友:binutils)、bash(和朋友 gnu-utils)、emacs,……
然后,他们将从零件中构建自己的系统。
这就是这个笑话的由来:“如果 MS-Windows 是一架飞机,它会爬升到 10000 英尺,然后爆炸杀死旁边的每个人,但至少你不必在起飞前建造自己的飞机。”
Din*_*ale 12
编辑:消除了对内核如何工作的令人尴尬的缺乏了解,并留下了重要的部分。
GNU 用户空间在 Linux 内核出现之前就已经存在。
https://en.wikipedia.org/wiki/GNU
https://en.wikipedia.org/wiki/Linux_kernel
Peter MacDonald 在很大程度上被公认为创建了第一个“可用”的 GNU/Linux 发行版。
https://en.wikipedia.org/wiki/Peter_MacDonald_(computer_programmer)
https://en.wikipedia.org/wiki/Softlanding_Linux_System
根据我和他的一些讨论的记忆:彼得在政府担任 Unix 系统管理员,并去维多利亚大学攻读硕士学位。彼得想要一种在家工作的方式,但 Unix 桌面许可成本高得令人望而却步。他已经熟悉 GNU 用户空间工具,因此当他在大学网络上看到 Linus Torvalds 的消息时,他充分利用了 GNU 工具并将其连接到新内核。所以真的,最初的问题与你的问题相反:用户空间已经存在,所需要的只是一个内核。
其他一些历史花絮:
小智 12
Linus Torvalds在他的《Just For Fun》一书中提到 Linux 内核最初是一个简单的终端模拟器,用于通过调制解调器连接到远程 Unix 机器:
所以最终我能够改变两个线程,AAAAAAAA 和 BBBBBBB,这样一个线程从调制解调器读取并写入屏幕,另一个从键盘读取并写入调制解调器。我有自己的终端仿真程序。
当我想阅读新闻时,我会放入软盘并重新启动机器,然后使用我的程序从大学计算机上阅读新闻。如果我想进行更改以改进终端仿真包,我会启动到 Minix 并使用它进行编程......
因为我想将文件保存到我的 Minix 文件系统——而且因为 Minix 文件系统无论如何都有很好的文档——我使我的文件系统与 Minix 文件系统兼容......
当我这样做时,很明显该项目正在成为一个操作系统。因此,我将其视为终端模拟器的想法转变为将其视为操作系统。
Linux 最初是作为 Minix 的增强替代品开始的,并用于了解 i386 上的保护模式编程。Minix 附带了源代码,当时有 GNU 用户区实用程序和 BSD 用户区实用程序。两者都有源代码。Linux 尝试兼容 POSIX,因此移植并不困难。第一步是在 Linux 上运行 bash。你可以将早期的Linux视为交叉编译,内核必须在另一个系统上编译。