Linux 之父如何定義 Linux?

2021-10-22 16:35:05 字數 3688 閱讀 9759

linux是乙個免費類unix核心,適用於386-at計算機,附帶完整源**。主要讓黑客、電腦科學學生使用,學習和享受。它大部分用c編寫,但是一小部分是用gnu格式彙編,而且引導序列用的是因特爾086組合語言。c**是相對ansi的,使用一些gnu增強特性(大多為 __asm__ 和 inline)。

也有一些  unix 是附帶原始碼的。minix,andrew s. tanenbaum編寫的學習工具,已經在大學中作為教學工具使用了很多年了。bsd-386系統是附帶原始碼的,但是有版權限制,而且要花很多錢(我記得起始**為$995)。gnu核心(hurd)將會是免費的,但是現在還沒有準備好,而且對於了解和學習它們來說有點龐大。

linux與minix是最相似的,由於它很小而且不是非常複雜,因此易於理解(嗯…)。linux是基於minix編寫的,因此有相當多的相同點,任何minix黑客在使用linux的時候都感覺非常熟悉。不過,沒有在專案中使用minix**,因此minix版權沒有限制到這個新系統。它也是完全免費的,而且它的版權非常寬鬆。因此不像使用minix,它不需要幾兆位元組大小的區別。

雖然是免費的發布版,我還是從以下幾個方面限制了linux的使用:

完全開源。因此不能單獨發布二進位制,即使你只修改了一點。

你不能從發布版獲取利益。事實上甚至「裝卸費用」都是不被接受的。

你要保持完整的適當版權。

linux是在乙個執行minix的386-at上開發的。由於linux是乙個真正的作業系統,而且需要直接與硬體互動來做一些事情,你必須有乙個非常相似的系統來讓他順利執行:

linux會發展成為乙個自給自足的系統,現在需要minix-386才能正常執行。你需要minix讓初始化啟動檔案系統,和編譯os二進位制。在那之後linux是乙個自給自足的系統,但是為了做檔案系統檢查(fsck)和修改之後重編譯系統,推薦使用minix。

linux現在可以使用匿名ftp從『nic.funet.fi』的『/pub/os/linux』目錄獲取。這個目錄包含作業系統的所有原始碼,還有一些二進位制檔案,因此你可以真正使用系統了。

此目錄中各類檔案如下:

讓系統執行的最少檔案是os原始碼和bash和更新二進位制檔案。不過只用這些,你做不了什麼事。

在你拿到了必要linux檔案之後,你需要編譯系統和建立root目錄。必要的二進位制檔案需要放到root檔案系統中。按如下操作:

1. 備份你的軟體。雖然linux從沒有毀壞過我的任何檔案,但沒有什麼是必然的。安全勝過遺憾。

2. 選擇/建立乙個標準minixhd-分割槽作為新的linux root檔案系統。

3. 在新的root建立必要的裝置節點。linux與minix使用相同型別的節點,所以使用minix的mknod命令建立下面的裝置:節點號與在minix中相同。

4. 將必要檔案放到新的root分割槽。檔案應該放在下面目錄中:

希望你現在有乙個功能正常的unix,而且你已經root許可權登入。linux現在沒有『init』過程,只要你登出,系統會同步並等待。使用三指鍵(ctrl+alt+del)重啟機器。

linux 缺失/不相容的東西

linux 是打算作為乙個全部自給自足的核心,但現在並非如此。作為上面已經提到的,你需要 minix 來設定啟動裝置並且檢查檔案系統當它執行起來的時候。這裡有一些其它的不足之處:

硬體的不相容。一些 at 標準特性當前還沒有支援。最值得注意的是軟盤驅動,利用 linux 進行實際工作(備份 etc)當前是不可能的[譯者:這個是 oldlinux,這個是 linus torvalds 1991 年 10 月寫的文章,肯定當時是不行的]。還有序列連線的一些特性沒有被實現(2400 bps 波特率的硬連線,沒有結束通話(hang-up)提示等等 )。

標準 c 庫的不相容。gcc 分發版的 libc.a 沒有完成,我對免費可發布的庫功能很感興趣。

一些系統呼叫沒有完全實現。這些設計絕大多數「極少呼叫」的特性比如除錯(誰無論如何需要它的話,你的程式第一次是無法工作的:-))以及其它的特性。

如上所述,沒有登陸和初始化程序。當前 linux 啟動在單使用者模式,以 root 作為控制台使用者。對於一些移植工作足夠了,但不是實際可用的。

387支援[譯者:硬體浮點,當時 intel 發布了外接式 fpu] 沒有被實現,即使已有一些基礎程式被提供出來。」nic.funet.fi」 的 gcc 二進位製包使用軟浮點(ie **功能呼叫)來支援 4 個基礎數**算操作。387-支援將盡快實現當我的電腦安裝了這個硬體。希望在乙個月或者兩個月。

現在還沒有重要的系統管理命令實現在 linux 中。這些包括 mkfs, format, fsck, mknod 等。這些命令需要的核心特性還沒有實現(format, mknod),一些命令只需要實現它。作為乙個庫,我歡迎任何免費分發檔案。

這裡提到的一些問題將由我(即lines/387/floppy支援)盡快修復,但我希望得到庫函式的支援。感謝你們提交的錯誤報告及補丁還有願望清單,如果你真的有針對問題的補丁,我會立即嘗試去修復它。 小的更改將作為補丁形式傳送到郵件列表,並在nic.funet.fi'上設定,如果經過大量重寫,或者修復大的補丁,整個系統將在nic.funet.fi』更新。

linux被設計得讓移植相對容易。因此,就有了完整的termios實現和一些posix庫。我所移植的(誠然相對較少)程式沒有任何問題。

儘管linux與minix非常相似,但minix程式通常並不會比為其他nuix設計的程式更容易移植。因此,我不建議從乙個特定程式的minix版本開始,而應該嘗試從頭開始移植『』virgin『』程式。比bsd更接近sysv,這意味著當給定乙個-dusg或者-dsysv標識時,大多數程式很容易移植。

移植過程中最困難的一點就是缺少庫函式。這些必須由你來編寫,或者從其他的**複製(minix可能是個有緣人)。另外,一些程式(特別是gnu)有各種各樣的標識,這些標識可以定義哪些函式不可用(一旦在makefile中新增了足夠量的-d***_missing標識,gnu fileutils將編譯的很好)。

下面這些程式已經移植到linux:

所有上述程式都能在『nic.funet.fi』(主要在』/pub/gnu』)中找到,大多數liinux-binaries都可以在『/pub/os/linux』目錄中找到。包括gcc(cc1)有一些我自己增強的功能,所有這些程式都在沒有變化的情況下編譯的。先嘗試自己編譯,遇到問題可以將差異或者資源發郵件給我。

另外,我提起過明確地gnu差異編譯和執行。

請注意linux-activists和linux0activists-request的不同——第乙個用於給列表中的所有人傳送郵件,第二個僅用於訂閱和取消訂閱。

當然,您也可以直接傳送郵件至 [email protected]。我會盡量在一兩天內回答所有的問題。

儘管『nic.funet.fi』可能會保持合理的更新狀態,但是它還有些問題(即,我無法因為個人得到檔案,但可以通過幾個人)。因此,如果郵件列表上的人想要補丁或二進位制檔案,他們將會更快得到。

我要感謝學院…

說真的,如果沒有其他人的幫助,這個系統將永遠不會有曙光,甚至會變得更糟。bruce evans 幫助我找到了需要更改的位置,以便gcc能正確地處理浮點數,並提供許多有用的想法/建議(他的minix-386用於構建系統)。此外,earl chew 的estdio包被用於標準的io庫。像這樣更自由地分發包!

alain w black和richard tobin為minix製作了gcc,沒有它我就無法編譯這個東西。gnu完成了我在linux下使用的大部分程式。alfred leung傳送了美國鍵盤補丁。

linus torvalds ([email protected])  2023年10月10日

Linux之父Linus Torvalds宣布退休

在核心郵件列表上,linus torvalds 宣布發布 linux 4.19 rc4,同時宣布了乙個重大訊息 他將抽身離開反思一段時間,為過去的言行向社群道歉,他已經要求穩定版核心維護者 greg kroah hartman 接替他完成 4.19 的工作。torvalds 因為弄錯了核心維護者峰會...

Linux新手入門之如何登入登出Linux作業系統

linux作業系統對於新手來說可能略有困難,但是登入登出,就非常簡單了,它類似於很多資料庫的登入登出,不過當然也有著質的區別,現在給大家詳細的梳理一下linux作業系統登入登出所運用到的 linux系統命令 供初學者參考。一.linux進入與退出系統 進入linux系統 必須要輸入使用者的賬號,在系...

如何在Linux終端同時執行多個Linux命令

在一行中執行兩個或多個命令可以節省大量時間,並在linux中提高效率。在linux中,有三種方法可以在一行中執行多個命令 使用 符號執行多條命令 其中最簡單的是分號 使用方式如下 cmd1 cmd2 cmd3cmd1將首先執行,不管cmd1執行成功還是出現錯誤,cmd2都會在它之後執行,當cmd2命...