开发者 | 社区贡献者,包括创始人林納斯·托瓦茲 |
---|---|
编程语言 | C语言和少量汇编语言、Rust語言(自6.1版開始) [1] |
作業系統家族 | 類Unix系統 |
運作狀態 | 支援中 |
源码模式 | 自由及开放源代码软件 |
首次发布 | 1991年的0.01版(代號“Freax”) |
当前版本 | |
最新預覽 | Kernel: 6.2-rc5[4](2023年1月21日 )[±] |
市場取向 | 桌面、服务器、嵌入式设备、移动设备等 |
支持的语言 | 多種 |
支援平台 | Alpha, ARC, ARM, Hexagon, Itanium, m68k, MicroBlaze, MIPS, Nios II, OpenRISC, PA-RISC, PowerPC, RISC-V, S390, SuperH、SPARC, x86(含x86-64), Xtensa等 |
内核类别 | 整塊性核心 |
默认用户界面 | 命令列、图形(X Window系統,Wayland)等多種 |
许可证 | GPL等多種[5]("Linux"商標由林納斯·托瓦茲持有,由Linux基金會管理。)[6] |
官方網站 | www.kernel.org |
Linux是一種自由和開放源碼的類UNIX作業系統。该操作系统的内核由林纳斯·托瓦兹在1991年10月5日首次发布[7][8],再加上使用者空間的應用程式之後,就成為了Linux作業系統。Linux也是自由软件和开放源代码软件发展中最著名的例子。只要遵循GNU 通用公共许可证(GPL),任何个人和机构都可以自由地使用Linux的所有底层源代码,也可以自由地修改和再发布。大多數Linux系統還包括像提供GUI的X Window之類的程序。除了一部分專家之外,大多數人都是直接使用Linux 發行版,而不是自己選擇每一樣組件或自行設置。
Linux嚴格來說是單指作業系統的内核,因作業系統中包含了許多用戶圖形介面和其他实用工具。如今Linux常用来指基于Linux的完整操作系统,內核則改以Linux内核稱之。由于这些支持用户空间的系统工具和库主要由理查德·斯托曼于1983年发起的GNU计划提供,自由软件基金会提议将其组合系统命名为GNU/Linux[9][10],但Linux不屬於GNU計劃,這個名稱並沒有得到社群的一致認同。
Linux最初是作为支持英特尔x86架构的个人电脑的一个自由操作系统。目前Linux已经被移植到更多的计算机硬件平台,远远超出其他任何操作系统。Linux可以运行在服务器和其他大型平台之上,如大型计算机和超级计算机。世界上500个最快的超级计算机已100%运行Linux发行版或变种[11]。Linux也广泛应用在嵌入式系统上,如手机(Mobile Phone)、平板电脑(Tablet)、路由器(Router)、电视(TV)和电子游戏机等。在移动设备上广泛使用的Android操作系统就是建立在Linux内核之上。
通常情况下,Linux被打包成供个人计算机和服务器使用的Linux发行版,一些流行的主流Linux发布版,包括Debian(及其衍生版本Ubuntu、Linux Mint)、Fedora(及其相关版本Red Hat Enterprise Linux)和openSUSE等。Linux发行版包含Linux内核和支撑内核的实用程序和库,通常还带有大量可以满足各类需求的应用程序。个人计算机使用的Linux发行版通常包含X Window和一个相应的桌面环境,如GNOME或KDE。桌面Linux操作系统常用的应用程序,包括Firefox网页浏览器、LibreOffice办公软件、GIMP图像处理工具等。由于Linux是自由软件,任何人都可以创建一个符合自己需求的Linux发行版。
UNIX操作系统(英語:UNIX),是美国AT&T公司贝尔实验室于1969年完成的操作系统。最早由肯·湯普遜(Ken Thompson),丹尼斯·里奇(Dennis Ritchie),道格拉斯·麥克羅伊(Douglas McIlroy),和喬伊·歐桑納于1969年在AT&T贝尔实验室开发。于1971年首次发布,最初是完全用汇编语言编写。后来,在1973年用一个重要的开拓性的方法,Unix被丹尼斯·里奇用编程语言C(内核和I/O例外)重新编写[12]。高级语言编写的操作系统具有更佳的兼容性,能更容易地移植到不同的计算机平台。
1983年,理查德·馬修·斯托曼創立GNU計劃。這個計劃有一個目標,是為了發展一個完全自由的類Unix作業系統。自1984年發起這個計劃以來[13],在1985年,理查德·馬修·斯托曼發起自由軟體基金會並且在1989年撰寫GPL。1990年代早期,GNU開始大量地產生或收集各種系統所必備的元件,像是——函式庫、編譯器、偵錯工具、文字編輯器,以及一個Unix的使用者介面(Unix shell)——但是像一些底層環境,如硬體驅動、守護進程、系统核心(kernel)仍然不完整和陷于停顿,GNU計劃中是在Mach微内核的架構之上開發系統核心,也就是所謂的GNU Hurd,但是這個基於Mach的設計異常複雜,發展進度則相對緩慢。[14]林納斯·托瓦茲曾說過如果GNU核心在1991年時可以用,他不會自己去寫一個。[15]
386BSD涉及的法律問題直到1992年還沒有解決,NetBSD和FreeBSD是386BSD的後裔,早于Linux。林纳斯·托瓦兹曾说,当时如果有可用的386BSD,他就可能不會編寫Linux。[16]
MINIX是一個轻量小型并采用微内核(Micro-Kernel)架构的類Unix作業系統,是安德鲁·斯圖爾特·塔能鲍姆為在電腦科學用作教學而設計的。
1991年,林納斯·托瓦茲在赫爾辛基大學上學时,對作業系統很好奇[17]。他對MINIX只允許在教育上使用很不滿(在当时MINIX不允許被用作任何商業使用),於是他便開始寫他自己的作業系統,這就是後來的Linux核心。
林納斯·托瓦茲開始在MINIX上開發Linux內核,為MINIX寫的軟體也可以在Linux內核上使用。[18]后来使用GNU軟體代替MINIX的軟體,因為使用從GNU系統來的原始碼可以自由使用,這對Linux的发展有益。使用GNU GPL協議的原始碼可以被其他項目所使用,只要這些項目使用同樣的協議發布。為了讓Linux可以在商業上使用,林納斯·托瓦茲決定更改他原來的協議(這個協議會限制商業使用),以GNU GPL協議來代替。[19]之后许多開發者致力融合GNU元素到Linux中,做出一個有完整功能的、自由的作業系統。[14]
Linux的第一個版本在1991年9月被大學FTP server管理員Ari Lemmke發佈在網際網路上,最初Torvalds稱這個核心的名稱為"Freax",意思是自由("free")和奇異("freak")的結合字,並且附上"X"這個常用的字母,以配合所謂的類Unix的系統。但是FTP伺服器管理員嫌原來的命名「Freax」的名稱不好聽,把核心的稱呼改成「Linux」,當時僅有10000行程式碼,仍必須執行於Minix作業系統之上,並且必須使用硬碟開機;隨後在10月份第二個版本(0.02版)發佈,同時這位芬蘭赫爾辛基的大學生在comp.os.minix上發佈一則訊息
Hello everybody out there using minix- I'm doing a (free) operation system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones.
使用minix的各位,大家好。我正在为386(486)AT兼容机制作一个(免费的/自由的) 操作系统(仅仅是个人爱好,不会像GNU那样完善、专业)。
Linux的標誌和吉祥物是一隻名字叫做Tux的企鵝,標誌的由來是因為Linus在澳洲時曾被一座動物園裡的小蓝企鹅咬了一口[20],便選擇企鵝作為Linux的標誌,但更容易被接受的說法是:企鵝代表南極,而南極又是全世界所共有的一塊陸地。這也就代表Linux是所有人的Linux。
1994年3月,Linux1.0版正式發佈,Marc Ewing成立Red Hat軟件公司,成為最著名的Linux經銷商之一。早期Linux的開機管理程式(boot loader)使用LILO(Linux Loader),早期的LILO存在著一些難以容忍的缺陷,例如無法識別1024柱面以後的硬碟空間,後來的GRUB(GRand Unified Bootloader)克服這些缺點,具有『動態搜尋核心檔案』的功能,可以讓用户在開機的時候,自行編輯開機設定系統檔案,透過ext2或ext3檔案系統中載入Linux Kernel(GRUB通過不同的文件系統驅動可以識別幾乎所有Linux支援的文件系統,因此可以使用很多文件系統來格式化核心文件所在的磁區,並不侷限於ext文件系統)。
今天由Linus Torvalds带领下,众多开发人员共同参与开发和维护Linux内核。[21]理查德·斯托曼领导的自由软件基金会,继续提供大量支持Linux内核的GNU组件。[22]一些个人和企业开发的第三方的非GNU组件也提供对Linux内核的支持,这些第三方组件包括大量的作品,有内核模块和用户应用程序和库等内容。Linux社区或企业都推出一些重要的Linux发行版,包括Linux内核、GNU组件、非GNU组件,以及其他形式的软件包管理系统软件。
基于Linux的系统是一个模块化的类Unix操作系统。Linux操作系统的大部分设计思想来源于20世纪70年代到80年代的Unix操作系统所建立的基本设计思想。Linux系统使用宏内核,由Linux内核负责处理进程控制、网络,以及外围设备和文件系统的访问。在系统运行的时候,设备驱动程序要么与内核直接整合,要么以加载模块形式添加。
Linux具有设备独立性,它内核具有高度适应能力,从而给系统提供了更高级的功能。GNU用户界面组件是大多数Linux操作系统的重要组成部分,提供常用的C函数库,Shell,还有许多常见的Unix实用工具,可以完成许多基本的操作系统任务。大多数Linux系统使用的图形用户界面建立在X窗口系统之上,由X窗口(XWindow)系统通过软件工具及架构协议来建立操作系统所用的图形用户界面。
已安装Linux操作系统包含的一些组件:
Linux發行版指的就是通常所說的「Linux作業系統」,它一般是由一些組織、团体、公司或者個人制作并發行的。Linux内核主要作為Linux發行版的一部分而使用。通常來講,一個Linux發行版包括Linux核心,以及將整個軟體安裝到電腦上的一套安裝工具,还有各種GNU軟體,和其他的一些自由軟體,在一些Linux發行版中可能会包含一些專有軟體。發行版為許多不同的目的而製作,包括對不同電腦硬體結構的支援,对普通用户或开发者使用方式的调整,针对實時應用或嵌入式系統的开发等等。目前,超過三百個發行版被積極的開發,最普遍被使用的發行版有大約十多個。較為知名的有Debian、Ubuntu、Fedora、Red Hat Enterprise Linux、Arch Linux和openSUSE等。[23]
一個典型的發行版包括:Linux核心,GNU函式庫和各种系统工具,命令行Shell,圖形界面底层的X Window系統和上层的桌面環境等。桌面环境有如KDE或GNOME等,並包含數千種從辦公套件,編譯器,文字編輯器,小遊戲,兒童教育軟體,到科學工具的應用軟體。
很多發行版含有LiveCD的方式,就是不需要安裝,放入系统光碟或其它介质進行启动,就能够在不改变现有系统的情况下使用。比較著名的有MX Linux、PCLinuxOS等。LiveCD的相關技術進步至此,很多的發行版本身的安裝光碟也有LiveCD的功能。
今天各種場合都有使用各種Linux套件,從嵌入式設備到超級電腦(Super Computer),[24][25]並且在伺服器領域確定了地位,通常伺服器使用LAMP組合。[26]基於其低廉成本與高度可設定性,Linux常常被應用於嵌入式系統,例如機上盒、行動電話及行動裝置等。在行動電話上,基於Linux的Android已經成為IOS的主要競爭者;而在行動裝置上,則成為Windows CE與Palm OS之外另一個選擇。目前流行的TiVo數位攝影機使用了經過客製化後的Linux。此外,有不少硬體式的網路防火牆及路由器,例如部份LinkSys的產品,其內部都是使用Linux來驅動、並採用了作業系統提供的防火牆及路由功能。
大多數廣泛使用的自由軟體都有Windows平台版本和相應的Linux版本,例如LibreOffice、Mozilla Firefox、Apache OpenOffice、Pidgin、VLC、GIMP、Blender;部分流行的专有软件也有相應的Linux版本,如Adobe Flash Player、Adobe Reader、Google Earth、Nero Burning ROM、Opera、Maple、MATLAB、Skype、Maya、SPSS、Google Chrome。
目前仍有較多能在Windows或Mac OS上執行的應用軟體沒有Linux的版本,不過在Linux平台上通常可以找到類似功能的應用軟件。Linux使用的增多也使得Windows開源軟體(Open Source)向Linux移植,比如Filezilla。Linux下也有相當多不能在Windows平台下執行的軟體,主要是依靠X Window系統和其他Windows無法利用的資源,或者是因為穩定性等其他方面的考慮並不準備支援Windows。
另外,相當多的Windows應用程式可以通過Wine和一些基於Wine的項目如CrossOver正常運行和工作。如Microsoft Office、Adobe Photoshop、暴雪娛樂的遊戲、Picasa其中對於Photoshop的Crossover(Wine)相容性工作有Disney、DreamWorks、Pixar投資支援,等。Google大力參與Wine項目改進,Picasa的GNU/Linux版本也是經Wine測試的Windows平台編譯版本。[27]
Linux發行版同樣在上网本市場很受歡迎,像ASUS Eee PC和Acer Aspire One,銷售時安裝有訂製的Linux發行版。
Linux发行版一直被用来作为服务器的操作系统,并且已经在该领域中占据重要地位。根据2006年9月Netcraft的报告显示,十个最大型的网络托管公司有八个公司基于Linux发行版运行其Web服务器。
Linux发行版是构成LAMP(Linux,Apache,MySQL,Perl / PHP / Python)的重要部分,现在更为常见的是 LNMP(N指Nginx);极低的硬件需求使 LAMP/LNMP 成为一个常见的网站托管平台,在开发者中普遍使用。对应Windows则有XAMPP。
由于其Linux核心对非统一内存访问(NUMA)的原生支持,Linux发行版也经常被作为超级计算机的操作系统。2010年11月公布的超级计算机前500强,有459个(91.8%)运行Linux发行版[28]。曾经是世界上最强大的超级计算机[29]——IBM的红杉(IBM Sequoia),已於2011年交付勞倫斯利福摩爾國家實驗室,並於2012年6月开始运作,也是选择Linux作为操作系统。[30]
在智能手机、平板电脑等移动设备方面,Linux也得到重要发展,基于Linux内核的Android操作系统已经超越Apple的iOS操作系统,成为当今全球最流行的智能手机操作系统。在2010年第三季度,销售全球的全部智能手机中使用Android的占据25.5%(所有的基于Linux的手机操作系统在这段时间为27.6%)。
从2007年起,手机和掌上电脑上运行基于Linux的操作系统变得更加普遍,例如:OpenMoko的Neo1973、摩托罗拉的ROKR E8。Palm(后来被HP公司收购)推出了一个新的基于Linux的webOS操作系统,并使用在新生产的Palm Pre智能手机上。
Maemo是诺基亚基于Linux Kernel、X11、QT技术开发的手机系统。设备包括平板如诺基亚 N800、诺基亚 N810(maemo4)、较为人熟知的是 N900(maemo5)。
MeeGo为Maemo的继任者,由诺基亚和英特尔于2010年2月联合推出,诺基亚也推出了使用MeeGo操作系统的N9手机。2011年9月28日,继诺基亚宣布放弃开发MeeGo之后,英特尔也正式宣布将MeeGo与LiMo合并成为新的系统Tizen。Jolla Mobile公司成立并推出了由MeeGo发展而来的Sailfish操作系统。
Firefox OS [31]为Mozilla于2012年推出基於Linux核心的操作系统。
Linux的低成本、强大的定制功能以及良好的移植性能,使得Linux在嵌入式系统方面也得到广泛应用。流行的TiVo数字视频录像机还采用了定制的Linux,思科在网络防火墙和路由器也使用了定制的Linux。Korg OASYS、Korg的KRONOS、雅马哈的YAMAHA MOTIF XS/Motif XF音乐工作站、雅马哈的S90XS/S70XS、雅马哈MOX6/MOX8次合成器、雅马哈MOTIF-RACK XS音源模块,以及Roland RD-700GX数码钢琴均运行Linux。Linux也用于舞台灯光控制系统,如WholeHogIII控制台。
Linux發行版在各地和各國政府中日益受到歡迎。有消息指出,俄羅斯軍方正在創建自己的Linux發行版,並已有G.H.ost項目作為成果。印度Kerala州甚至已經規定所有州立高中的電腦都必須運行Linux。中國專門使用Linux作為其龍芯處理器家族的操作系統,以實現技術獨立。在西班牙,一些地區開發了自己的Linux發行版,在教育和官方機構中被廣泛使用,例如埃斯特雷馬杜拉的gnuLinEx和安達盧西亞的Guadalinex。法國和德國也開始採用Linux。朝鮮的Red Star OS,從2002年開始開發,基於Fedora Linux的一個版本。
傳統的Linux使用者一般都是專業人士。他們願意安裝並設置自己的作業系統,往往比其他作業系統的用戶花更多的時間在安裝並設置自己的作業系統。這些用戶有時被稱作「駭客」或是「極客」。使用Linux主要的成本為移植、培訓和學習的費用,早期由於會使用Linux的人較少,並且在軟體設計時並未考慮非專業者的使用,導致這方面費用極高。但這方面的費用已經隨著Linux的日益普及和Linux上的軟體越來越多、越來越方便而降低,但專業仍是使用Linux的主要成本。
Linux在歐洲、美國和日本的流行程度較高,歐美地區還發行Linux平台的遊戲和其他家用軟體。Linux開源社群方面也是以歐洲、美國、日本等已開發國家的人士居多。在家庭與企業中使用Linux套件的情況越來越多。[32][33][34][35][36][37][38]整個亞洲,比较缺乏對Linux的支援,硬體和應用程式皆只考量微軟作業系統設計的需求。例如:Internet Explorer及ActiveX需求、Microsoft Office相容性、網絡遊戲以及一般用戶都傾向於使用Windows。轉換作業系統的開銷在於,自由開源意識形態與商業用途的衝突、缺乏強而有力的推廣廠商、缺乏對特殊的硬件和應用程序的支援、電腦技術人員不願再花費時間重覆學習、對已有平台的依賴,是制約Linux被採納的主要因素。
然而隨著Linux慢慢開始流行,有些原始設備製造商(OEM)開始在其銷售的電腦上預裝上Linux,Linux的用戶中也有了普通電腦用戶,Linux系統也開始慢慢出現在個人電腦作業系統市場。儘管目前大部分的筆記型電腦搭載Windows系統,目前仍有一些筆電預設搭載Linux系統,如Musicha 音創筆電預設搭載Ubuntu Mate。近年來,Linux下常见的部份软件也开始不斷向Windows移植。有如KDE SC、Cinepaint正在進行向Windows的移植。
很多開源軟體的定量研究聚焦在市場佔有率(雖然多數不算作市場中的商品)和可靠性,包括數不清的Linux分析報告。Linux份額成長迅速。IDC的2008年第二季度報告指出,Linux在所有伺服器市場的市佔率已經達到29%,比該研究機構在2007年的調查大幅增加了12個百分點。這個估計數字基於Linux伺服器的銷售額。所以,Linux的市佔率是不可小覷的。Netcraft報告,在2010年二月,每10台可靠的伺服器中Linux發行版占6台,FreeBSD占2台,Windows占1台。而Debian、CentOS兩個至關重要的發行版並不銷售。
Linux在政府中也很受歡迎,巴西聯邦政府因支持Linux而世界聞名。[39][40]有新聞報導俄羅斯軍隊自己製造的Linux發行版,做為G.H.ost項目已經取得成果。[41]印度的喀拉拉邦計劃在向全聯邦的高中推廣使用Linux。[42][43]中華人民共和國為取得技術獨立,在龍芯過程中排他性地使用Linux。[44] 在西班牙的一些地區開發了自己的Linux發行版,並且在政府與教育領域廣泛使用,如埃斯特雷马杜拉地區的gnuLinEx和安達盧西亞地區的Guadalinex。葡萄牙同樣使用自己的Linux發行版Caixa Mágica,用於Magalhães筆記型電腦[45]和e-escola政府軟體。[46]法國和德國同樣開始逐步採用Linux。[47]
每個孩子一台筆記型電腦這一項目正在催生新的更為龐大的Linux用戶群,計劃將包括發展中國家的幾億學童、他們的家庭和社區。在2007年,已經有六個國家訂購了至少每個國家一百萬台以上免費發放給學生。Google、Red Hat和eBay是該項目的主要支持者。
Linux的註冊商標是Linus Torvalds所有的。這是由於在1996年,一個名字叫做William R. Della Croce的律師開始向各個Linux發佈商發信,聲明他擁有Linux商標的所有權,並且要求各個發佈商支付版稅,這些發行商集體進行上訴,要求將該註冊商標重新分配給Linus Torvalds。Linus Torvalds一再聲明Linux是自由且免費的,他本人可以賣掉,但Linux絕不能賣。
“GNU/Linux”此名稱是GNU计划的支持者与开发者,特别是其创立者理查德·斯托曼對於Linux作業系統的主張。由于此类操作系统使用了众多GNU程序,包含Bash(Shell程式)、函式庫、編譯器等等作為Linux核心上的系統套件,理查德·斯托曼认为应该将该操作系统称为「GNU/Linux」或「GNU+Linux」較為恰当,但現今多數人仍稱其為Linux。就1997年之前的Linux來看,一間CD-ROM的供應商所提供的資料顯示在他们的“Linux 发行版”中,GNU 软件所占最大的比重,大约占全部源代码的28%,且还包括一些关键的部件,如果没有这些部件,系统就无法工作,而Linux 本身占大约3%。[48]
Linux社群中的一些成員,如埃里克·雷蒙、林纳斯·托瓦兹等人,偏好Linux的名稱,认为Linux朗朗上口,短而好记,拒绝使用「GNU/Linux」作为操作系统名称。并且认为Linux並不屬於GNU計劃的一部份,斯托曼直到1990年代中期Linux开始流行后才要求更名。有部分Linux套件,如Debian,采用了「GNU/Linux」的称呼。但大多数商业Linux套件依然将操作系统称为Linux。而有些人则认为「操作系统」一词指的只是系统的内核(Kernel),其他程序都只能算是应用软件,因而,该操作系统应叫Linux,但Linux系统套件是在Linux內核的基础上加入各种GNU软件套件集合而成的。
在這兩個主要名稱之外,也有其他名稱的提議。1992年,Yggdrasil Linux主張命名為Linux/GNU/X,因為除了GNU計劃軟體之外,很多Linux還採用了X视窗系统。
The Linux copyright will change: I've had a couple of requests to make it compatible with the GNU copyleft, removing the “you may not distribute it for money” condition. I agree. I propose that the copyright be changed so that it confirms to GNU ─ pending approval of the persons who have helped write code. I assume this is going to be no problem for anybody: If you have grievances ("I wrote that code assuming the copyright would stay the same")mail me. Otherwise The GNU copyleft takes effect since the first of February. If you do not know the gist of the GNU copyright ─ read it.