在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

LINUX是什么?

馬哥Linux運維 ? 來源:未知 ? 作者:工程師李察 ? 2018-07-28 08:53 ? 次閱讀

LINUX是什么?

LINUX是一個免費類unix內核,適用于386-AT計算機,附帶完整源代碼。主要讓黑客、計算機科學學生使用,學習和享受。它大部分用C編寫,但是一小部分是用gnu格式匯編,而且引導序列用的是因特爾086匯編語言。C代碼是相對ANSI的,使用一些GNU增強特性(大多為 __asm__ 和 inline)。

然而有很多可用于386電腦的unices,他們大部分要花很多錢,而且不附帶源碼。因此他們是使用計算機的理想選擇,但是如果你想了解他們如何工作,那是不可能的。

也有一些 Unix 是附帶源碼的。Minix,Andrew S. Tanenbaum編寫的學習工具,已經在大學中作為教學工具使用了很多年了。BSD-386系統是附帶源碼的,但是有版權限制,而且要花很多錢(我記得起始價格為$995)。GNU內核(Hurd)將會是免費的,但是現在還沒有準備好,而且對于了解和學習它們來說有點龐大。

LINUX與Minix是最相似的,由于它很小而且不是非常復雜,因此易于理解(嗯…)。LINUX是基于Minix編寫的,因此有相當多的相同點,任何Minix黑客在使用LINUX的時候都感覺非常熟悉。不過,沒有在項目中使用Minix代碼,因此Minix版權沒有限制到這個新系統。它也是完全免費的,而且它的版權非常寬松。因此不像使用Minix,它不需要幾兆字節大小的區別。

LINUX版權

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

你可以自由復制和重新發布源碼和二進制,只要是:

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

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

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

根據需要你可能會修改源碼,但是如果你發布了新系統的一部分(或者只有二進制),必須將新的代碼包含進去。

除了不包含版權的代碼之外,你可能會做一些小的修改。這由你來定,但是如果能將相關內容或者代碼告訴我,將不勝感激。

對任何使用或者擴展系統的人來說,這應該足夠寬松而不會引起任何擔憂。如果你有朋友真的不想要源碼,只想要一個能運行的二進制,你當然可以給他而不用擔心我會起訴你。不過最好只在朋友之間這么做。

LINUX運行所需的硬件/軟件

LINUX是在一個運行Minix的386-AT上開發的。由于LINUX是一個真正的操作系統,而且需要直接與硬件交互來做一些事情,你必須有一個非常相似的系統來讓他順利運行:

386-AT(PS/2之類是不同的,不能正常運行)

VGA或者EGA屏幕硬件。

標準AT硬盤接口,IDE盤可以運行(實際上我用的就是這個)。

正常實模式BIOS。一些機器看起來是用虛-86模式運行啟動程序,而且在這樣的機器LINUX不會啟動和正常運行。

LINUX會發展成為一個自給自足的系統,現在需要Minix-386才能正常運行。你需要Minix讓初始化啟動文件系統,和編譯OS二進制。在那之后LINUX是一個自給自足的系統,但是為了做文件系統檢查(fsck)和修改之后重編譯系統,推薦使用Minix。

獲取LINUX

LINUX現在可以使用匿名ftp從‘nic.funet.fi’的‘/pub/OS/Linux’目錄獲取。這個目錄包含操作系統的所有源碼,還有一些二進制文件,因此你可以真正使用系統了。

注意!二進制大多是GNU軟件,而且版權比LINUX的嚴格(GNU非盈利性版權)。因此你不能在不發布他們源碼的情況下重新發布他們,可以在/pub/GNU中找到。關于GNU非盈利性版權,從任何GNU軟件包了解更多。

此目錄中各類文件如下:

linux-0.03.tar.Z–系統的完全源碼,16位tar壓縮文件格式。

Linux.tex–這個文件的LATEX源碼。

bash.Z–在LINUX下運行的bash二進制文件。這個二進制文件應該放到預留給LINUX文件系統中的/bin/sh下(參見installation)。

update.Z–更新二進制文件,要放到/bin/update。

gccbin.tar.Z–GNU cc二進制文件需要由一個可運行的編譯器。這個tar壓縮包含有編譯器,加載器,匯編程序和支持程序(nm,strip等)。它還包含一個小型的庫,可用于大部分程序。

include.tar.Z–讓gcc運行的必要include文件。

unistd.tar.Z–unistd庫程序的源碼(即系統調用接口)。通過這個你可以使用系統獨立庫源碼編譯一個大一些的庫。

utilbin.tar.Z–各種GNU工具的二進制文件,包括GNU的fileutils,make和tar。也包含克隆emacs的uemacs。

README, RELNOTES-0.01, INSTALLATION–包含一些(有點過時的)LINUX相關的信息的ascii文件。

讓系統運行的最少文件是OS源碼和bash和更新二進制文件。不過只用這些,你做不了什么事。

安裝

在你拿到了必要LINUX文件之后,你需要編譯系統和創建root目錄。必要的二進制文件需要放到root文件系統中。按如下操作:

1. 備份你的軟件。雖然LINUX從沒有毀壞過我的任何文件,但沒有什么是必然的。安全勝過遺憾。2. 選擇/創建一個標準MinixHD-分區作為新的LINUX root文件系統。3. 在新的root創建必要的設備節點。LINUX與Minix使用相同類型的節點,所以使用Minix的mknod命令創建下面的設備:節點號與在Minix中相同。

/dev/tty

/dev/tty[0-2]

/dev/hd[0-9]

4. 將必要文件放到新的root分區。文件應該放在下面目錄中:希望你現在有一個功能正常的unix,而且你已經root權限登錄。LINUX現在沒有‘init’過程,只要你注銷,系統會同步并等待。使用三指鍵(Ctrl+Alt+Del)重啟機器。

gcc

添加鏈接到你選擇的/usr/local/lib中的文件。我將ld,as,nm,strip和size鏈接到他們相應的 /usr/local/lib/gcc-XXX。

gccbin.tar.Z中的內容,除了gcc

include.tar.Z的內容

utilbin.tar.Z的內容

sh,即bash.Z

update

/bin:

/usr/bin:

/usr/include:

/usr/local/lib:

/usr/local/bin:

編輯系統中的linux/include/linux/config.h。這個文件包含了針對于系統的信息:內存空間,硬盤類型,root分區號(同樣的與Minix中的編號相同),鍵盤類型(現在只有US和Finnish)等。

編譯LINUX源碼。一個簡單技巧就可以完成,在你編輯makefiles為適合你的系統之后(即,刪除-mstring-insnsflag,和修改適合你的路徑。)1.40之前版本gcc的用戶可能需要添加gnulib到makefile中‘LIBS=’一行。

復制產生的鏡像文件到軟盤(即,cp Image /dev/PS0 或者之類的)。

使用新的軟盤重啟。啟動界面應該告訴你系統正在啟動(加載系統…),然后是一些必要的文件系統信息(xxx/XXX inodes/blocks free),接下來是一個確定,還有bash提示(如果你沒有.bashrc文件,則初始化bash#)。

LINUX 缺失/不兼容的東西

LINUX 是打算作為一個全部自給自足的內核,但現在并非如此。作為上面已經提到的,你需要 Minix 來設置啟動設備并且檢查文件系統當它運行起來的時候。這里有一些其它的不足之處:

硬件的不兼容。一些 AT 標準特性當前還沒有支持。最值得注意的是軟盤驅動,利用 LINUX 進行實際工作(備份 etc)當前是不可能的[譯者:這個是 oldlinux,這個是 Linus Torvalds 1991 年 10 月寫的文章,肯定當時是不行的]。還有串行連接的一些特性沒有被實現(2400 bps 波特率的硬連接,沒有掛斷(hang-up)提示等等 )。

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

一些系統調用沒有完全實現。這些設計絕大多數“極少調用”的特性比如調試(誰無論如何需要它的話,你的程序第一次是無法工作的:-))以及其它的特性。

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

387支持[譯者:硬件浮點,當時 Intel 發布了外接式 FPU] 沒有被實現,即使已有一些基礎程序被提供出來?!眓ic.funet.fi” 的 gcc 二進制包使用軟浮點(ie 仿真功能調用)來支持 4 個基礎數學運算操作。387-支持將盡快實現當我的電腦安裝了這個硬件。希望在一個月或者兩個月。

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

如您所見,LINUX還不是一個完整的系統。 感謝您的幫助,使其變得更好。 我對為LINUX重寫的Minix命令不感興趣,除非你自己從頭開始編寫它們。 您當然可以免費(并鼓勵)將您的Minix發行版中的所有內容用于您自己的LINUX系統,但由于Minix的版權,它們無法分發給更廣泛的受眾。

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

LINUX移植軟件

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

盡管LINUX與Minix非常相似,但Minix程序通常并不會比為其他nuix設計的程序更容易移植。因此,我不建議從一個特定程序的Minix版本開始,而應該嘗試從頭開始移植‘’virgin‘’程序。比BSD更接近SYSV,這意味著當給定一個-DUSG或者-DSYSV標識時,大多數程序很容易移植。

移植過程中最困難的一點就是缺少庫函數。這些必須由你來編寫,或者從其他的來源復制(Minix可能是個有緣人)。另外,一些程序(特別是GNU)有各種各樣的標識,這些標識可以定義哪些函數不可用(一旦在Makefile中添加了足夠量的-DXXX_MISSING標識,GNU fileutils將編譯的很好)。

已經移植的程序

下面這些程序已經移植到LINUX:

GNU cc (gcc, cc1, cpp)

GNU assembler (as386)

GNU binutils (ld, ar, nm, size, strip, ranlib)

GNU compress (16-bit)

GNU tar

GNU make

GNU bash (Bourne Again SHell)

GNU sed

GNU bison (yacc-lookalike)

GNU awk

GNU fileutils (ls, cp, rm, mkdir, rmdir, tail etc)

less

uemacs

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

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

技術幫助

LINUX目前有一個郵件列表,您可以通過郵件發送到這個地址訂閱:Linux-activists-request@niksula.hut.fi,并要求包括在列表中。然后你可以通過這個郵箱:Linux-activists@niksula.hut.fi提問題,這將復制你的問題/答案/無論什么,并發送給列表中其他所有人。

請注意Linux-activists和Linux0activists-request的不同——第一個用于給列表中的所有人發送郵件,第二個僅用于訂閱和取消訂閱。

當然,您也可以直接發送郵件至torvalds@kruuna.helsinki.fi。我會盡量在一兩天內回答所有的問題。

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

感謝

我要感謝學院…

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

Alain W Black和Richard Tobin為Minix制作了gcc,沒有它我就無法編譯這個東西。GNU完成了我在Linux下使用的大部分程序。Alfred Leung發送了美國鍵盤補丁。

附:“感謝”wirzeniu@kruuna.helsinki.fi他的“建設性”批評和“詼諧”的評論。他是我第一個alpha-測試者,他應該被授予勇氣獎章。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11347

    瀏覽量

    210437
  • 計算機
    +關注

    關注

    19

    文章

    7544

    瀏覽量

    88664
  • 源碼
    +關注

    關注

    8

    文章

    653

    瀏覽量

    29460

原文標題:Linux 之父如何定義 Linux?

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    干貨來嘍!實用樹莓派Linux編譯指南

    通常情況下,模組對接的Linux協議是USB協議,模組通過USB插入Linux設備后可直接使用,系統會檢測出設備的標識:PID VID。 然而實際運用中,時有新手朋友問: Linux對新手用戶實在
    的頭像 發表于 12-18 16:31 ?208次閱讀
    干貨來嘍!實用樹莓派<b class='flag-5'>Linux</b>編譯指南

    Linux文件查找

    Linux文件查找 1.find查找概述 為什么要有文件查找,因為很多時候我們可能會忘了某個文件所在的位置,此時就需要通過find來查找。 find命令可以根據不同的條件來進行查找文件,例如
    的頭像 發表于 12-03 17:09 ?354次閱讀

    Linux用戶管理詳解

    用戶分為普通用戶和超級用戶,超級用戶在Windows系統中為Administrator在Linux系統中為root。登陸Linux系統需要提供用戶名與密碼,登陸后通過一定的方法管理該系統。
    的頭像 發表于 11-01 09:48 ?233次閱讀

    Linux應用編程的基本概念

    Linux應用編程涉及到在Linux環境下開發和運行應用程序的一系列概念。以下是一些涵蓋Linux應用編程的基本概念。
    的頭像 發表于 10-24 17:19 ?292次閱讀

    Linux實用命令大全

    Linux實用命令大全
    的頭像 發表于 10-23 13:50 ?312次閱讀
    <b class='flag-5'>Linux</b>實用命令大全

    Linux根文件系統的掛載過程

    Linux根文件系統(rootfs)是Linux系統中所有其他文件系統和目錄的起點,它是內核啟動時掛載的第一個文件系統。
    的頭像 發表于 10-05 16:50 ?519次閱讀

    如何構建Linux根文件系統

    構建Linux根文件系統是一個涉及多個步驟和概念的過程,它對于Linux系統的啟動和運行至關重要。
    的頭像 發表于 10-05 16:47 ?353次閱讀

    linux開發板與樹莓派的區別

    定義和用途 Linux開發板:Linux開發板是一種基于Linux操作系統的嵌入式開發板,通常用于工業自動化、物聯網、智能家居等領域。 樹莓派:樹莓派(Raspberry Pi)是一種基于Li
    的頭像 發表于 08-30 15:34 ?1147次閱讀

    linux驅動程序如何加載進內核

    Linux系統中,驅動程序是內核與硬件設備之間的橋梁。它們允許內核與硬件設備進行通信,從而實現對硬件設備的控制和管理。 驅動程序的編寫 驅動程序的編寫是Linux驅動開發的基礎。在編寫驅動程序之前
    的頭像 發表于 08-30 15:02 ?597次閱讀

    Linux內核測試技術

    Linux 內核是Linux操作系統的核心部分,負責管理硬件資源和提供系統調用接口。隨著 Linux 內核的不斷發展和更新,其復雜性和代碼規模也在不斷增加。因此,確保內核的穩定性和可靠性變得尤為重要
    的頭像 發表于 08-13 13:42 ?591次閱讀
    <b class='flag-5'>Linux</b>內核測試技術

    freebsd和linux哪個好用

    操作系統歷史和起源: FreeBSD和Linux都是基于UNIX的操作系統。FreeBSD起源于加州大學伯克利分校的BSD項目,而Linux則是由Linus Torvalds在1991年創建
    的頭像 發表于 08-08 10:29 ?718次閱讀

    Linux添加磁盤創建分區、掛載

    Linux添加磁盤創建分區、掛載
    發表于 04-20 17:49 ?559次閱讀
    <b class='flag-5'>Linux</b>添加磁盤創建分區、掛載

    QNX與Linux基礎差異對比

    對于QNX系統和Linux系統的內核差異,我們拋開宏內核、微內核之類的爭議不談。單純從開發應用的角度而言,QNX和Linux系統的差異到底有多大,在開發的時候需要注意哪些細節問題?
    發表于 04-17 10:52 ?933次閱讀

    linux命令概述

    電子發燒友網站提供《linux命令概述.pdf》資料免費下載
    發表于 03-11 09:18 ?3次下載

    linux多線程編程實例

    linux線程
    的頭像 發表于 02-15 21:16 ?529次閱讀
    <b class='flag-5'>linux</b>多線程編程實例
    主站蜘蛛池模板: 国产欧美久久久精品影院 | 中韩日欧美电影免费看 | 男人的午夜 | 久久国产免费观看精品1 | 国产特级毛片aaaaaa毛片 | 亚洲欧美高清 | 1024你懂的国产欧美日韩在 | 欧美一区二区三区视频 | 国语对白一区二区三区 | 4438x成人网最大色成网站 | 91福利网站 | 韩国在线a免费观看网站 | 欧美1024| 国产美女主播一级成人毛片 | 沟沟人体一区二区 | 亚洲男人精品 | 日本h片在线观看 | 啪啪调教所29下拉式免费阅读 | 欧美日韩亚洲国产一区二区综合 | 国产成人啪午夜精品网站 | 亚洲欧美色视频 | 天堂在线中文字幕 | 色综合天天综合网国产国产人 | 伊人久久大香线蕉综合电影 | 天天操精品 | 丁香网五月 | 毛片新网址 | аⅴ资源天堂8在线 | 国产99在线 | 免费国内精品久久久久影院 | 国产人免费人成免费视频 | 自拍偷拍福利 | 激情五月婷婷综合 | 激情综合网婷婷 | 手机看片日韩国产 | 四虎精品成人a在线观看 | 91夜夜人人揉人人捏人人添 | 四虎午夜剧场 | 色婷婷亚洲精品综合影院 | 小雪被老外黑人撑破了视频 | 成人国产三级精品 |