天天看點

x86、Linux、GNU、GNOME是什麼

一、指令集架構:

指令集架構(英語:Instruction Set Architecture,縮寫為ISA),又稱指令集或指令集體系,是計算機體系結構中與程式設計有關的部分,包含了基本資料類型,指令集,寄存器,尋址模式,存儲體系,中斷,異常處理以及外部I/O。指令集架構包含一系列的opcode即操作碼(機器語言),以及由特定處理器執行的基本指令。

指令集體系與微架構(一套用于執行指令集的微處理器設計方法)不同。使用不同微架構的電腦可以共享一種指令集。例如,Intel的Pentium和AMD的AMD Athlon,兩者幾乎采用相同版本的x86指令集體系,但是兩者在内部設計上有本質的差別。

一些虛拟機器支援基于Smalltalk,Java虛拟機,微軟的公共語言運作時虛拟機所生成的位元組碼,他們的指令集體系将bytecode(位元組碼)從作為一般手段的代碼路徑翻譯成本地的機器語言,并通過解譯執行并不常用的代碼路徑,全美達以相同的方式開發了基于x86指令體系的VLIW處理器。

二、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://minimal.idzona.com/​​

​​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://superuser.com/questions/668061/can-linux-kernel-be-installed-alone-without-any-other-existing-os​​

​​https://unix.stackexchange.com/questions/175386/run-only-the-linux-kernel-and-user-programs​​

​​https://stackoverflow.com/questions/22610448/how-to-install-a-bare-linux-kernel-without-any-distribution-to-study-it​​

​​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

繼續閱讀