Linux之父如何定義Linux!主要想讓黑客、計算機學生使用和學習!

2020-12-17 騰訊網

LINUX是什麼?

LINUX是一個免費類unix內核,適用於386-AT計算機,附帶完整原始碼。

主要讓黑客、計算機科學學生使用,學習和享受。

它大部分用C編寫,但是一小部分是用gnu格式彙編,而且引導序列用的是因特爾086彙編語言。

C代碼是相對ANSI的,使用一些GNU增強特性(大多為 __asm__ 和 inline)。

然而有很多可用於386電腦的unices,他們大部分要花很多錢,而且不附帶源碼。

因此他們是使用計算機的理想選擇,但是如果你想了解他們如何工作,那是不可能的。

也有一些 Unix 是附帶源碼的。Minix,Andrew S. Tanenbaum編寫的學習工具,已經在大學中作為教學工具使用了很多年了。

LINUX與Minix是最相似的,由於它很小而且不是非常複雜,因此易於理解(嗯…)。

LINUX是基於Minix編寫的,因此有相當多的相同點,任何Minix黑客在使用LINUX的時候都感覺非常熟悉。

不過,沒有在項目中使用Minix代碼,因此Minix版權沒有限制到這個新系統。它也是完全免費的,而且它的版權非常寬鬆。因此不像使用Minix,它不需要幾兆字節大小的區別。

LINUX版權

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

你可以自由複製和重新發布源碼和二進位,只要是:

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

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

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

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

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

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

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#)。

相關焦點

  • 黑客神器-kali linux
    想成為一名黑客其實並不難,入門特別舒服,但是要成為大佬,起碼要會一門語言比如java、c、c++這些,腳本也要會,還有其他的。其實在入門級的只要會使用各種工具就可以了,但是想要年薪百萬,迎娶白富美,住上小洋房的話,還是需要學習一些語言的。反正命令就是逃不了。
  • 在計算機軟體領域 C語言之父和Linux之父誰更偉大
    後來學術和政府組織中都在使用Unix,也正是由於Unix的風靡與興盛,帶動了C語言被廣泛的傳播、使用。 在1980年代,C語言的使用廣泛傳播,並且幾乎所有機器體系結構和作業系統都可以使用編譯器。尤其是,它已成為個人計算機的編程工具,無論是用於這些機器的商業軟體製造商,還是對編程感興趣的最終用戶,都非常受歡迎。
  • Linux-1.1.1 Linux與開源軟體(背書連載)
    很多新手都有一個疑惑的問題:「linux我聽過,但是學習之後能用來幹什麼呢?或者說linux能具體做什麼呢?」帶著這個疑問,本書開篇先概述linux與開源軟體的關係以及linux的應用領域和未來的發展方向。
  • 從串口驅動到Linux驅動模型,想轉Linux的必會!
    以在本次調研中最主要目的為主線。如果讀者您對這些概念已經有很深入的理解。可以直接閱讀後面的代碼分析:1、什麼是Linux作業系統 ?Linux是一套免費使用和自由傳播的類Unix作業系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的作業系統。它能運行主要的UNIX工具軟體、應用程式和網絡協議。它支持32位和64位硬體。
  • 在Linux作業系統裡使用xargs命令
    如果有過,那你肯定會深有感觸這是多麼的無聊和效率低下。還好有種簡單的方式,可以在基於Unix的作業系統中使用xargs命令解決這個煩惱。通過這個命令你可以有效地處理多個文件,節省你的時間和精力。在這篇教程中,你可以學到如何一次性對多個文件執行命令或腳本操作,再也不用擔心像單獨處理無數個日誌或數據文件那樣嚇人的任務了。
  • 學習Linux系統需要明白的一些事情
    直到有一次找工作的時候,看見一個公司招運維人員,抱著試試的態度去跟面試官了解了解,比較幸運的是人家願意試用3個月,然後就正式邁出人生職業的第一步,在實習當中才接觸到linux,然後跟著師父一步一步的深入了解linux,我也以我6年的運維經歷及學習linux的經驗跟大夥分享下我的一些看法,當然,在IT行業,分享是一種精神,也是一種美德。
  • 如何成為一名黑客
    什麼是黑客?黑客最初是指水平高超的電腦專家,而駭客就是我們常見的愛搞破壞的傢伙。黑客和駭客有什麼區別呢?黑客需要無休止的找bug..改代碼..運行。如果你能做到這幾點,並且想成為一名黑客1、學會編程首先做一名黑客必須先學會編程。Python和java選一個學。建議先學python,因為到後期寫腳本的時候,基本都用python。
  • vxworks和linux有什麼區別
    Linux作業系統也是自由軟體和開放原始碼發展中最著名的例子。嚴格來講,Linux這個詞本身只表示Linux內核,但在實際上人們已經習慣了用Linux來形容整個基於Linux內核,並且使用GNU 工程各種工具和資料庫的作業系統。Linux得名於計算機業餘愛好者Linus Torvalds。
  • 《Linux就該這麼學》與《鳥哥的linux私房菜》哪個更適合初學者?
    時不時在一起聚會中也會說到一些關於linux的話題,談及關於linux「升級」話題時,一致的表示linux是一個「先苦後甜」系統。學習使用的時候非常難,但是一旦學習成功,那就是步入一馬平川之境界。在這樣的發展形勢下,很多人開始學習Linux,無疑Linux是複雜的,由於版本過多,讓初學者感到迷惑,不知從何入手。在Linux中使用圖形界面和命令一樣能搞定許多重要任務。不過,命令一直就是Linux高階用戶的不二選擇,今後也不例外。建議二:實踐是檢驗真理的唯一標準在我們日常生活當中,實際上我們是用理論來檢驗實踐的。以牛頓定律為例。
  • 親身感受黑客必備Kali linux安裝:使用不當,或將面臨牢獄之災!
    Kali是基於Debian的Linux發行版作業系統,一開始是由Offensive Security的Mati Aharoni和Devon Kearns通過重寫BackTrack來完成,用來進行數字取證。而且它擁有超過300個滲透測試工具,擁有開源Git樹等,甚至還集成了600多種黑客工具,完全可以想像到它的強大性。
  • 使用Prometheus 和 Grafana 監控 Linux 進程
    orgId=1&refresh=5s這篇入門文章旨在如何為 Linux 系統管理員創建一個完整的監控儀錶盤該儀錶盤會展示完全可定製並且可擴展到分布式架構的多個實例的不同面板。現在我們大體瀏覽了將要學習哪些東西,讓我們介紹一些當前 Unix 系統中目前已有的內容。
  • linux系統工控機-ubuntu烏班圖嵌入式工業電腦
    計算機系統有很多種可以選擇,比如蘋果系統,微軟系統,烏班圖系統,谷歌的安卓系統以及目前華為公司出品的鴻蒙系統等。linux系統工控機-807A正面Linux是自由的免費開源的,它是以unix為原型改造的,一個多用戶多任務的作業系統,任何人都可以修改其代碼和頁面,其中主要的目的就是為了不收商業化的限制,而我們將伺服器部署在linux系統上會更加高效穩定、安全(註:UNIX作業系統(尤尼斯),是一個強大的多用戶、多任務作業系統,支持多種處理器架構
  • linux基礎04:linux用戶相關的命令有哪些?怎樣切換用戶?
    通過前面的幾節課,我們在windows系統中安裝好了linux虛擬機,也通過xshell遠程終端連接上了linux虛擬。從今天開始,我們就可以正式開始學習linux的知識了。今天,我們主要介紹的是用戶相關的一些命令,如:創建用戶命令、用戶退出登錄命令、用戶切換命令等。
  • linux-ssh配置和使用
    全新安裝的linux因為默認都是國外源. 首先第一步換源這樣下載軟體速度會快一點.1.由於debian系統穩定性下面列舉華為和阿里的鏡像源cd /etc/apt&&cp sources.list sources.list.bak&&vi sources.list#vimj基本操作可以直接刪除原來所有源地址直接shift+insert
  • Linux內核學習:簡單的字符設備驅動
    學習Linux內核最好的入門方式之一是從字符設備驅動開始模仿(來自於《奔跑吧 Linux內核——入門篇》)。對於我們日常生活中存在的大量設備,如攝像頭,USB充電器,藍牙,Wi-Fi等,這些設備在電氣特性和實現原理均不相同,對Linux系統來說如何抽象和描述他們呢?Linux很早就根據設備共同特徵將其劃分為三大類型:1,字符設備;塊設備;網絡設備。
  • linux各個目錄代表什麼
    :存放所有用戶都可以使用的linux基本操作命令;(目錄中多是可執行的二進位文件)/dev:設備文件目錄,虛擬文件系統,主要存放所有系統中device的相關信息,不論是使用的或未使用的設備,只要有可能使用到,就會在/dev中建立一個相對應的設備文件;設備文件分為2種類型:字符設備文件和塊設備文件(目錄中基本上都是設備文件,如硬碟設備文件
  • Unix和Linux作業系統有什麼區別?
    FreeBSD系統,這個系統算是一個非常穩定的Unix版本,它有點學習Linux的開源方法,它在BSD許可協議下,允許任何人在保留版權和許可協議信息的前提下,隨意使用和發行。所以,它至今還衍生了很多優秀的系統出來。比如,蘋果公司的OSX就是基於FreeBSD開發而來,而據說,很多網絡交換機也是在這個系統基礎上開發而來。
  • Arch Linux 2018.08.01 更新發布,使用Linux Kernel 4.17.11
    一個新的Arch Linux安裝鏡像已經發布,即Arch Linux 2018.08.01,適用於那些希望在他們的個人計算機上安裝最受歡迎的輕量級GNU/Linux發行版之一的最新ISO映像的用戶。Arch Linux 2018.08.01是流行的基於Linux的作業系統的最新安裝介質,包含自Arch Linux 2018.07.01 ISO發布以來在2018年7月發布的所有軟體更新和安全補丁,和一個新的內核版本,即Linux 4.17.11。
  • Linux基礎教程:CentOS開機流程詳解
    ROM晶片 上的程序,保存著計算機最重要的基本輸入輸出的程序、開機後自檢程序和系統自啟動程序,可從CMOS中讀寫系統設置的具體信息。 MBR: Master Boot Record,主要引導記錄區。 Boot Loader:啟動引導程序。
  • kali linux在它面前頓然失色
    對計算機安全和網絡安全感興趣的網友來說,擁有一套自己熟悉、稱手好用的安全工具很重要,不少人在攻防實踐過程中收藏整理了很多工具,這些工具有的歷久彌堅,有的則需要不斷更新甚至是更換。一些人傾向於選擇kali linux,利用它集成的眾多安全軟體,但對於有一定實戰戰經驗的人來說,一定有個性化定製需要,此時,kali linux必然無法滿足這種需要,選擇black archlinux會方便很多。