linux是自由的、開(kāi)放源代碼的Unix-like操作系統(tǒng),于1991年由芬蘭的大學(xué)生linus torvalds設(shè)計(jì),后來(lái)和全世界各地的志愿者一起實(shí)現(xiàn)和設(shè)計(jì)這款操作系統(tǒng)。
linux是一個(gè)基于posix的類unix操作系統(tǒng),它是多用戶、多任務(wù)的操作系統(tǒng),可以安裝在各種計(jì)算機(jī)硬件設(shè)備中,比如:手機(jī)、PDA、路由器、平板電腦、各種計(jì)算機(jī)上;
(以下出自baidu)
1
1965 年,Bell 實(shí)驗(yàn)室、MIT、GE(通用電氣公司)準(zhǔn)備開(kāi)發(fā) Multics 系統(tǒng),為了同時(shí)支持 300 個(gè)終端訪問(wèn)主機(jī),但是 1969 年失敗了;
(剛開(kāi)始并沒(méi)有鼠標(biāo)、鍵盤,輸入設(shè)備只有卡片機(jī),因此如果要測(cè)試某個(gè)程序,則需要將讀卡紙插入卡片機(jī),如果有錯(cuò)誤,還需要重新來(lái)過(guò); Multics:Multiplexed Information and Computing Service)
2
1969 年,Ken Thompson(C語(yǔ)言之父)利用匯編語(yǔ)言開(kāi)發(fā)了 FIle Server System(Unics,即 UNIX 的原型)
(因?yàn)閰R編語(yǔ)言對(duì)于硬件的依賴性,因此只能針對(duì)特定硬件; 只是為了移植一款“太空旅游”的游戲;)
3
1973 年,Dennis Ritchie 和 Ken Thompson 發(fā)明了 C 語(yǔ)言,而后寫(xiě)出了 UNIX 的內(nèi)核
(將 B 語(yǔ)言改成 C 語(yǔ)言,由此產(chǎn)生了 C 語(yǔ)言之父; 90% 的代碼是 C 語(yǔ)言寫(xiě)的,10% 的代碼用匯編寫(xiě)的,因此移植時(shí)只要修改那 10% 的代碼即可;)
4
1977 年,Berkeley 大學(xué)的 Bill Joy 針對(duì)他的機(jī)器修改 UNIX 源碼,稱為BSD(Berkeley Software Distribution)
(Bill Joy 是 Sun 公司的創(chuàng)始人;)
5
1979 年,UNIX 發(fā)布 System V,用于個(gè)人計(jì)算機(jī);
1984 年,因?yàn)?UNIX 規(guī)定:“不能對(duì)學(xué)生提供源碼”,Tanenbaum 老師自己編寫(xiě)兼容于 UNIX 的Minix,用于教學(xué);
6
1984 年,Stallman 開(kāi)始 GNU(GNU's Not Unix)項(xiàng)目,創(chuàng)辦 FSF(Free Software Foundation)基金會(huì);
(產(chǎn)品:GCC、Emacs、Bash Shell、GLIBC; 倡導(dǎo)“自由軟件”; GNU 的軟件缺乏一個(gè)開(kāi)放的平臺(tái)運(yùn)行,只能在 UNIX 上運(yùn)行; 自由軟件指用戶可以對(duì)軟件做任何修改,甚至再發(fā)行,但是始終要掛著 GPL 的版權(quán); 自由軟件是可以賣的,但是不能只賣軟件,而是賣服務(wù)、手冊(cè)等;)
7
1985 年,為了避免 GNU 開(kāi)發(fā)的自由軟件被其他人用作專利軟件,因此創(chuàng)建 GPL(General Public License)版權(quán)聲明;
1988 年,MIT 為了開(kāi)發(fā) GUI,成立了 XFree86 的組織;
1991 年,芬蘭赫爾辛基大學(xué)的研究生 Linus Torvalds 基于 gcc、bash 開(kāi)發(fā)了針對(duì) 386 機(jī)器的 Linux 內(nèi)核;
8
1994 年,Torvalds 發(fā)布 Linux-v1.0;
1996 年,Torvalds 發(fā)布 Linux-v2.0,確定了 Linux 的吉祥物:企鵝;
完整的操作系統(tǒng)包括內(nèi)核和應(yīng)用程序;
OS的接口有兩類:
????GUI:Graphic User Interface
????????GNome:c, gtk(開(kāi)發(fā)環(huán)境,開(kāi)發(fā)庫(kù),圖形庫(kù))
????????KDE: c++, qt
????CLI:Command Line Interface
????????bash
????????zsh
????????sh
????????csh
????????tcsh
????????ksh
操作系統(tǒng)的功能:
????驅(qū)動(dòng)程序
????進(jìn)程管理
????安全機(jī)制
????網(wǎng)絡(luò)功能
????內(nèi)存管理
????文件系統(tǒng)
????.......
API: Application Program Interface
????程序員面對(duì)的編程接口
????????POSIX: Portable Operating System
????????可移植操作系統(tǒng)
ABI: Application Binary Interface
????程序應(yīng)用者面對(duì)運(yùn)行程序的接口
GNU:
源碼:編譯成為 二進(jìn)制格式
gcc, glibc, vi, linux
發(fā)行版:數(shù)百種之多;
Debian
????ubuntu
????????mint
????knopix
Slackware
????S.u.S.E
????????SLES
????????OpenSUSE
RedHat:
????Redhat 9.0:
????RedHat Enterprise Linux: RHEL
????????CentOS: Community ENTerprise OS
????Fedora Core:6個(gè)月,
Gentoo
ArchLinux
軟件程序:版本號(hào);
major.minor.release
Linux:0.99, 2.2, 2.4, 2.6, 3.0, 4.0
www.kernel.org
GNU:
vi
gcc
發(fā)行版本也有自己的版本號(hào):
RHEL: 5.x, 6.x, 7.x
Fedora 23
Debian:8.x
OpenSuSE: 13.x