一、指令集架構:
指令集架構(英語:Instruction Set Architecture,縮寫為ISA),又稱指令集或指令集體系,是計算機體系結構中與程序設計有關的部分,包含了基本數據類型,指令集,寄存器,尋址模式,存儲體系,中斷,異常處理以及外部I/O。指令集架構包含一系列的opcode即操作碼(機器語言),以及由特定處理器執行的基本命令。
指令集體系與微架構(一套用於執行指令集的微處理器設計方法)不同。使用不同微架構的電腦可以共享一種指令集。例如,Intel的Pentium和AMD的AMD Athlon,兩者幾乎采用相同版本的x86指令集體系,但是兩者在內部設計上有本質的區別。
一些虛擬機器支持基於Smalltalk,Java虛擬機,微軟的公共語言運行時虛擬機所生成的字節碼,他們的指令集體系將bytecode(字節碼)從作為一般手段的代碼路徑翻譯成本地的機器語言,並通過解譯執行並不常用的代碼路徑,全美達以相同的方式開發了基於x86指令體系的VLIW處理器。
參考:
https://zh.wikipedia.org/wiki/%E6%8C%87%E4%BB%A4%E9%9B%86%E6%9E%B6%E6%A7%8B
二、x86和x64分別指什么:
- 關於x86的32位元架構(常被稱為i386、x86-32或是x86),請見“IA-32”。
- 關於x86的64位元架構(向前相容於16位及32位的x86架構,常稱AMD64或 Intel 64),請見“x86-64”。
x86是一個指令集架構家族,最早由英特爾在1978年面市的“Intel 8086”CPU上開發出來。
x86-64(簡稱x64)是64位版本的x86指令集,向后兼容於16位及32位的x86架構。x64於1999年由AMD設計,AMD首次公開64位集以擴充給x86,稱為“AMD64”。其后也為英特爾所采用,現時英特爾稱之為“Intel 64”。Apple和rpm以“x86-64”或“x86_64”稱呼此64位架構。甲骨文公司及Microsoft稱之為“x64”。BSD家族及其他Linux發行版則使用“amd64”,32位版本則稱為“i386”(或i486/586/686),Arch Linux用x86_64稱呼此64位架構。
參考:
https://zh.wikipedia.org/wiki/X86
https://zh.wikipedia.org/wiki/X86-64
三、Linux是什么
Linux是一種自由和開放源代碼的類UNIX操作系統。Linux嚴格來說是單指操作系統的內核,因操作系統中包含了許多用戶圖形接口和其他實用工具。如今Linux常用來指基於Linux的完整操作系統,內核則改以Linux內核稱之。而包含了許多用戶圖形接口和其他實用工具的Linux系統被成為Linux發行版,比如Ubuntu、Debian等。
參考:
https://zh.wikipedia.org/wiki/Linux
四、GNU是什么
GNU是一個自由操作系統,其內容軟件完全以GPL方式發布。這個操作系統是GNU計划的主要目標,名稱來自GNU's Not Unix!的遞歸縮寫,因為GNU的設計類似Unix,但它不包含具著作權的Unix代碼。作為操作系統,GNU的發展仍未完成,其中最大的問題是具有完備功能的內核尚未被開發成功。
用的最多的應該是GPL,即GNU通用公共許可協議(GNU General Public License),是廣泛使用的免費軟件許可證 ,可以保證終端用戶得自由運行,學習,共享和修改軟件。
或者通俗點說:GNU由於操作系統沒發展起來,然而先從軟件做起,比如先在Unix系統上開發基於GNU協議的軟件,最有名的GCC編譯器這些。然后早期Linux在當時發展需要,就集成了GNU這些軟件,使操作系統能實現我們工作需要的功能。
參考:
https://zh.wikipedia.org/wiki/GNU
https://zh.wikipedia.org/wiki/GNU%E9%80%9A%E7%94%A8%E5%85%AC%E5%85%B1%E8%AE%B8%E5%8F%AF%E8%AF%81
五、Linux與GNU的名字相爭
Linux的完整操作系統中,由於這些支持用戶空間的系統工具和庫主要由理查德·斯托曼於1983年發起的GNU計划提供,自由軟件基金會提議將其組合系統命名為GNU/Linux,但Linux不屬於GNU計划,這個名稱並沒有得到社區的一致認同。
六、Linux與GNU的詳細發展歷史
參考鳥叔的Linux私房菜:http://cn.linux.vbird.org/linux_basic/0110whatislinux.php
七、Linux發行版匯總
參考:https://linux.cn/article-4130-1.html
八、單獨安裝Linux內核可以嗎?
答案當然可以的,但是如果單單是內核,那么只能啟動到init的第一個進程,然后系統什么都干不了。那么要使內核能跑起來,需要做如下幾點:
1、硬件啟動到BIOS時,再到硬盤,此時需要一個程序去引導,然后再啟動內核。那么這個引導程序是需要集成到內核去,幫助從BIOS過來之后能成功調用起內核。
2、啟動到了內核的第一個集成init之后,就應該啟動其它進程來實現工作需要,比如集成一些實用的工具來保證完整性。
通過以上幾點,參考下面站點看Linux內核是如何組裝成完整的操作系統的,有點像Linux發行版:
https://github.com/ivandavidov/minimal-linux-script
https://github.com/ivandavidov/minimal
參考:
http://bbs.csdn.net/topics/80151778
https://gxnotes.com/article/19587.html
http://techqa.info/programming/question/27582166/How-to-run-only-the-LINUX-kernel-and-User-programs
https://superuser.com/questions/290808/running-linux-kernel-0-01-in-a-virtual-machine
https://unix.stackexchange.com/questions/175386/run-only-the-linux-kernel-and-user-programs
https://unix.stackexchange.com/questions/17122/is-it-possible-to-install-the-linux-kernel-alone
九、GNOME是什么
GNOME是一個完全由自由軟件組成的桌面環境。它的目標操作系統是Linux,但是大部分的BSD系統亦支持GNOME。
通俗的說:比如內核啟動到了init進程之后,然后再經過一些列進程之后,再到GNOME這個進程被調用,就能在屏幕上顯示出桌面,有鼠標有顯示的圖形界面。如果沒有這個圖形界面就只能在命令行上操作。(從中是很復雜的一個過程)
對於桌面環境還有很多,隨着發展可能會更多,常用的如下所示:
- GNOME
- KDE
- Xfce
- LXDE
- CDE
- Unity(Ubuntu基於GNOME2往上開發的新型桌面環境,最后還是放棄了)
- Enlightenment
- Ambient
- Étoilé
- IRIX Interactive Desktop
- Project Looking Glass
- Workbench
- OpenWindows
- Mezzo
- ROX Desktop
- Sugar
- UDE
- EDE
參考:
https://zh.wikipedia.org/wiki/GNOME
https://zh.wikipedia.org/wiki/%E6%A1%8C%E9%9D%A2%E7%8E%AF%E5%A2%83