如果Linux只是一个内核,那么如何使用它的第一个版本(没有发行版)?


112

Linux只是一个内核,如果用户要使用它,则需要完整的发行版。话虽如此,在没有Linux发行版的情况下,如何使用Linux的第一个版本?


66
您的问题的前提是有缺陷的。您不需要发行版即可使用Linux。您需要Linux内核和一些用户区代码。而已。“分配”就是我们所谓的“分配”,当别人将它们分配给您时,而不是您自己做。
约尔格W¯¯米塔格

9
实际上,由于缺乏像样的特定用户土地工具,开始时更多的是鸡与蛋的问题。一旦MCC Interim Linux的幕后黑手破解了这个鸡蛋,并亲自编写了多个工具,至少fdisk其他人就可以轻松地提出自己的Linux设置了。
Rui F Ribeiro



Answers:


162

在Linux的早期阶段,Linus Torvalds以Alpha状态发布了Linux内核源,以向其他开发人员发出信号,表示正在努力开发类似Unix的新内核。到那时,正如@RalfFriedi所说,Linux内核是在Minix中交叉编译的。

至于可用的软件,Linus Torvalds还移植了实用程序以与Linux内核一起分发,以便其他人对其进行测试。这些项目主要是bashgcc,如所描述由Linus Torvalds LINUX的历史。根据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以软盘格式分发了内核和核心实用程序,以供用户尝试并可能对其做出贡献。

此后,有HJ Lu的Boot-root软盘。如果可以将其称为发行版,那么它将成为第一个能够安装在硬盘上的发行版而闻名。

这是两个5¼英寸软盘映像,其中包含Linux内核和入门所需的最少工具。要使这些工具能够从硬盘启动,这些工具的最低要求是使用十六进制编辑器编辑其主启动记录。

引导根

最终,实用程序的数量超过了软盘的最大容量。

MCC Interim Linux是第一个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系统。值得注意的是,神话般的Yggdrasil是SLS的竞争对手,于1992年12月问世

伊格德拉西尔

今天我们所知道的其他主要发行商也紧随其后,特别是1993年7月的Slackware(基于SLS)和1993年12月的Debian,直到1995年12月第一个正式版本1.1发行。

图片来源:
* Boot / Root软盘映像来自:https :
//www.maketecheasier.com/ * yggdrasil软盘映像来自:https ://yggdrasilblog.wordpress.com/


4
假定从在线某个地方存档,最好链接到最基本的原始来源的那些电子邮件。
通配符

2
@Wildcard在一个声称是Linus Torvald页面的网站上发现了该电子邮件。
Rui F Ribeiro

2
@slm实际上,从较早的时候起,我就搬了很多次,而且我父母的储物空间很有限。我曾经有386BSD / FreeBSD早期的软盘,以及93-95(也许是95)的PCworld CD,其中包含整套的Linux软盘(请记住发行版)。我还曾经拥有一整套完整的SCO V安装盘,带有在486中运行的有效密钥。我当时有非常高级的硬件规格,我曾在一家计算机主要供应商工作。
Rui F Ribeiro

28
“(只是一种爱好,不会像gnu那样大而专业)” Hah。
F. George

9
just a hobby, won't be big and professional like gnu哦,男孩,您是不是错了
Alvaro

17

就我而言(约于1994年),Linux是作为适用于3.5英寸软盘(1.44MB)的映像而构建的,可能是上述5 1/4英寸映像的后继映像,并且每个映像都有一组特定的驱动程序,这些驱动程序编译为(网络,VGA等)。因此,您必须知道您需要什么,并希望您拥有合适的硬件。

引导后,可以连接到LAN或通过调制解调器拨号,然后就找到所需的软件(FTP,gopher等)-这恰好是在“网络”的开始,搜索引擎却没有确实存在,因此您必须知道去哪里或问谁)并自行构建。

当我能够启动486DX并拨入我的大学网络(56k!)并在家里的计算机上安装AFS共享时,我感到欣喜若狂。;)


2
假设您在1994年完成了所有这些工作,那么大概是28.8k ...好时光!
GuitarPicker

在1994年,您不必再弄软盘了。我从同年开始使用Linux,但是Slackware已经在CD上发布了完整发行版。
加博尔

您必须从杂志上购买CD。当时CD刻录机很昂贵。至于RH,我记得下载通过FTP中的所有文件在一个周末在一个梦幻般的共享256Kbps的连接,建立一个CD映像,然后刻录工作中的CD,也许周围96
瑞˚F里贝罗

@GuitarPicker,那可能是乐观的。我们中的许多人仍在1200,2400上,并且在1992年,Linux通常落入了学术机构的管子。与Linus一样,我们的互联网访问是通过拨号连接到大学。我们有Usenet和Gopher,但没有图形(马赛克)WWW。在1992年,并不是每个人都拥有386。我有一个Olivetti M24(AT&T)8086盒子,带有运行Windows 1的单色屏幕(效果不佳)。Minix是业余爱好者或学术追求者,并非免费。Linux被认为是占用带宽的工具,但是确实确实使容量不断增加。对于程序员来说,Linux在Campus上是一件大事。
mckenzm

12

短版

在Linus启动其内核时,Gnu项目具有一个正常工作的操作系统,但工作内核除外。因此,当人们环顾四周时,他们发现了所需的所有工具:gcc(和朋友:binutils),bash(和朋友gnu-utils),emacs等…

然后,他们将从各个部分构建自己的系统。

这就是开玩笑的来源:“如果MS-Windows是一架飞机,它将爬升至1万英尺,然后爆炸,炸死所有人,但至少在出发前不必建造自己的飞机。”


8
这就是为什么如果遵循GNU和FSF,大多数发行版都称为GNU / Linux发行版的原因。
Nemo

否。GNU没有好的libc库。过去的Linux使用不同的libc库。只是相对较晚,我们才有了一个好的glibc库。开始时,使用了minix工具(部分由GNU生产)。
Giacomo Catenazzi

@GiacomoCatenazzi确实了解libc。但是它确实具有大多数用户登陆工具。我记得在1992年编译了可在Sun Solaris上运行的GNU工具。(直到过渡到glibc之前,我才开始使用Linux。)这些工具已经存在了一段时间(在Linux之前)。
ctrl-alt-delor

是的 我也是从Solaris开始的,比起Sun,他们更喜欢GNU工具。从那里,我想要更多,所以我去了Linux(我的第一个发行版没有任何X系统。RedHat客户可以使用商业X。直到后来,我们有了XFree86。向真正的免费(主要是GNU)系统的过渡需要多年(内核只是一个步骤,但最“民主”的步骤[电脑+基本的UNIX终于为大家(或更好地为学生))。
贾科莫Catenazzi

12

Linus Torvalds 在他的《Just For Fun》一书中提到Linux内核最初是一个简单的终端仿真器,用于通过调制解调器连接到远程Unix计算机:

因此,最终我能够更改AAAAAAAA和BBBBBBB这两个线程,以便一个从调制解调器读取并写入屏幕,另一个从键盘读取并写入调制解调器。我有自己的终端仿真程序。

当我想阅读新闻时,我会放入软盘并重新启动计算机,然后使用程序从大学计算机中阅读新闻。如果我想进行更改以改善终端仿真程序包,则可以启动Minix并将其用于编程...

而且由于我想将文件保存到我的Minix文件系统中-并且因为无论如何Minix文件系统都有充分的文档记录-我使我的文件系统与Minix文件系统兼容...

到我这样做的时候,很明显该项目正在成为操作系统。因此,我将其从终端仿真器的思想转变为将其作为操作系统的思想。


10

编辑:消除了人们对内核如何工作的缺乏理解的尴尬,并保留了重要的部分。

GNU用户区在Linux内核之前就已经存在。

https://zh.wikipedia.org/wiki/GNU

https://zh.wikipedia.org/wiki/Linux_kernel

Peter MacDonald被广泛认为创建了第一个“可用” GNU / Linux发行版。

https://en.wikipedia.org/wiki/Peter_MacDonald_(computer_programmer)

https://zh.wikipedia.org/wiki/Softlanding_Linux_System

记起我和他的一些讨论:Peter当时是政府的Unix系统管理员,后来去了维多利亚大学攻读硕士学位。Peter想要一种在家工作的方式,但是Unix桌面许可证的费用太高了。他已经熟悉GNU用户界面工具,因此,当他在大学网络上看到Linus Torvalds的消息时,便充分利用了GNU工具并将其连接到新内核。因此,实际上,最初的问题是您的问题的反面:用户区已经存在,而所需的只是一个内核。

其他一些历史花絮:

  • 彼得没有发行SLS Linux,也没有为该软件收费。SLS由他的妻子Colleen分发,费用用于刻录CD以邮寄出去的昂贵且耗时的过程。
  • Peter为内核做出了许多巨大的贡献,其中包括动态模块加载和改进的内存管理,这些都从未得到认可。
  • 该软件“笨拙”,因为他正在工作,上学,抚养两个孩子并试图使Linux用户满意。我们都知道让Linux用户满意是多么容易...
  • 对于其他人声称导致安装Slackware和Debian的裂痕的安装程序脚本,Peter没有回想起“争论” /“分歧”。

2
如果您可以将内核加载到内存中并执行映像,则它会死机,因为它无法执行/ sbin / init。init已经是一个userland工具。C语言中使用内核API的任何程序都是一个userland程序。
RalfFriedl

天哪!好点子。我想说的是,内核运行不需要用户通常与之交互的工具。我会重新考虑和更新...
Dinsdale

尽管有充分的文献记载,Peter既不是发行内核+用户土地使用程序的第一人,也不是发行第二人的,但作为Linux社区,我们有很多努力将Linux发行版打包为我们今天所知的东西。
Rui F Ribeiro

2

Linux最初是作为Minix的增强替代产品启动的,旨在了解i386上的保护模式编程。Minix附带了源代码,当时有GNU userland实用程序和BSD userland实用程序。两者都有源。Linux试图与POSIX兼容,因此移植并不是那么困难。第一步之一是在Linux上运行bash。您可以将Linux的早期视为交叉编译,而内核则必须在另一个系统上进行编译。


2
该内核正在Minix中交叉编译。
Rui F Ribeiro

17
说Linux是“作为Minix的扩展开始的”是误导。是的,Linus当时确实在使用Minix,但是Linux并不与Minix共享一行代码,并且遵循不同的设计理念(微内核与单片)。Minix当时还没有正式用于386,而Linux内核是从一开始就为386编写的。由于兼容性,Linux的第一个文件系统是Minix文件系统,但这也是一个完整的重新实现。
约翰·迈恩(JohanMyréen)

10
Linus和Minix的作者都同意它不是Minix也不基于它。
ctrl-alt-delor

@JohanMyréen当然,任何简短的文字都不是全部。甚至维基百科也仅包含简短的介绍。而且我知道Linux是由于Minix的缺点而启动的。如果有i386的Minix,那么今天可能没有Linux。另一方面,Linux受Minix的启发,第一个受支持的文件系统是Minix。但是我同意扩展名不是正确的工作,所以我改变了这句话。
RalfFriedl
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.