匯編語言基於linux環境
1. linux Kernel是什麼
Linux kernel 譯為linux 內核,其基礎為linux平台,linux為C語言編寫的內核,基於此內核又衍生出了具體的Red hat linux 、open suse linux等具體的操作系統,一套基於Linux內核的完整操作系統叫作Linux操作系統,或是GNU/Linux。
對於linux kernel,先看它的目錄結構,這里只挑幾個重要的說明。
arch 包括所有和體系結構相關的核心代碼。從裡面我們能看到arm、alpha、i386、mips、ia64這些文件夾,每種處理器架構都有不一樣的硬體模塊,這里就是要針對不同的架構進行不同的初始化。
init包含內核的初始化代碼(不是系統的引導代碼),其中有一個main.c文件,用於執行內核所有的初始化工作(包括初始化內存、初始化所有硬體、創建第一個任務task0,設置中斷允許標志位),然後移到用戶模式調用fork()函數創建新進程,並在控制台運行shell。
kernel 包含內核管理的核心代碼,瞅這名就知道,這貨是個重量級目錄,所有的處理任務的程序,包括fork、exit、調度程序(sched.c)以及一些系統調用(sys.c)、信號處理(signal.c)、時間函數(time.c),還有中斷異常處理、電源管理等等一系列調用關系錯綜復雜的函數。
mm 包含所有的內存管理代碼。其中包括實現進程的邏輯地址到實際物理地址的映射,實現分頁、分段機制,實現內存頁面異常中斷處理程序等。
drivers包含系統中所有的設備驅動程序,比如什麼cdrom啊bluetooth啊pci、i2c這些。
ipc 包含核心進程間的通信代碼。
fs 存放Linux支持的文件系統代碼,裡面有ext2、ext3、ext4、fat、ntfs等等一堆目錄。
net 內核的網路部分代碼,其每個子目錄對應於網路的一個方面,比如ieee80211、ipv4、ipv6這些目錄。
lib 包含核心的庫代碼,什麼strcpy、sprintf、sort這些函數都在裡面。更多Linux知識可參考《Linux就該這么學》。
2. 什麼是UNIX和L inux平台有什麼特點謝謝啦 !!
UNIX ,是一個強大的多用戶、多任務操作系統,支持多種處理器架構,最早由Ken Thompson、Dennis Ritchie和Douglas McIlroy於1969年在AT&T的貝爾實驗室開發。經過長期的發展和完善,目前已成長為一種主流的操作系統技術和基於這種技術的產品大家族。由於UNIX具有技術成熟、可靠性高、網路和資料庫功能強、伸縮性突出和開放性好等特色,可滿足各行各業的實際需要,特別能滿足企業重要業務的需要,已經成為主要的工作站平台和重要的企業操作平台。
曾經是伺服器操作系統的首選,占據最大市場份額,但最近在跟WINDOWS SERVER以及Linux的競爭中有所失利。
詳細介紹:
Ken和Dennis最早是在貝爾實驗室開發Unix的,此後的10年,Unix在學術機構和大型企業中得到了廣泛的應用,當時的UNIX擁有者AT&T公司以低廉甚至免費的許可將Unix源碼授權給學術機構做研究或教學之用,許多機構在此源碼基礎上加以擴充和改進,形成了所謂的Unix「變種 (Variations)」,這些變種反過來也促進了Unix的發展,其中最著名的變種之一是由加州大學Berkeley分校開發的BSD產品。
後來AT&T意識到了Unix的商業價值,不再將Unix源碼授權給學術機構,並對之前的Unix及其變種聲明了版權權利。變種BSD Unix在Unix的歷史發展中具有相當大的影響力,被很多商業廠家採用,成為很多商用Unix的基礎。BSD使用主版本加次版本的方法標識,如 4.2BSD,4.3BSD,在原始版本的基礎上還有派生版本,這些版本通常有自己的名字,如4.3BSD-Net/1,4.3BSD-Net/2等。其不斷增大的影響力終於引起了AT&T的關注,於是開始了一場曠日持久的版權官司,這場官司一直打到 AT&T將自己的Unix系統實驗室賣掉,新接手的Novell公司採取了一種比較開明的做法,允許伯克利自由發布自己的BSD,但是前提是必須將來自於AT&T的代碼完全刪除,於是誕生了4.4 BSD Lite版,由於這個版本不存在法律問題,4.4BSD Lite成為了現代BSD系統的基礎版本。盡管後來,非商業版的UNIX系統又經過了很多演變,但其最終,都是建立在BSD版本上(Linux除外)。所以從這個角度上,4.4 BSD又是所有自由版(Free版)Unix的基礎,它們和Unix V及Linux等共同構成Unix操作系統這片璀璨的星空。
BSD在發展中也逐漸衍生出3個主要的分支:FreeBSD,OpenBSD和NetBSD。
此後的幾十年中,Unix仍在不斷變化,其版權所有者不斷變更,授權者的數量也在增加。Unix的版權曾經為AT&T所有,之後Novell擁有了Unix,再之後Novell又將版權出售給了SCO(這一事實雙方尚存在爭議)。有很多大公司在取得了Unix的授權之後,開發了自己的Unix產品,比如IBM的AIX,HP的HPUX,SUN的Solaris和SGI的IRIX。
Unix因為其安全可靠,高效強大的特點在伺服器領域得到了廣泛的應用。直到GNU/Linux流行開始前,Unix也是科學計算、大型機、超級計算機等所用操作系統的主流。
歷史
初創期
Unix的誕生和Multics(Multiplexed Information and Computing System)是有一定淵源的。Multics是由麻省理工學院,AT&T貝爾實驗室和通用電氣合作進行的操作系統項目,被設計運行在GE-645大型主機上,但是由於整個目標過於龐大,糅合了太多的特性,Multics雖然發布了一些產品,但是性能都很低,最終以失敗而告終。
AT&T最終撤出了投入Multics項目的資源,其中一個開發者,Ken Thompson則繼續為GE-645開發軟體,並最終編寫了一個太空旅行游戲。經過實際運行後,他發現游戲速度很慢而且耗費昂貴——每次運行會花費75美元。
在Dennis Ritchie的幫助下,Thompson用PDP-7的匯編語言重寫了這個游戲,並使其在DEC PDP-7上運行起來。這次經歷加上Multics項目的經驗,促使Thompson開始了一個DEC PDP-7上的新操作系統項目。Thompson和Ritchie領導一組開發者,開發了一個新的多任務操作系統。這個系統包括命令解釋器和一些實用程序,這個項目被稱為UNICS(Uniplexed Information and Computing System),因為它可以支持同時的多用戶操作。後來這個名字被改為UNIX。
發展期
最初的Unix是用匯編語言編寫的,一些應用是由叫做B語言的解釋型語言和匯編語言混合編寫的。B語言在進行系統編程時不夠強大,所以Thompson和Ritchie對其進行了改造,並與1971年共同發明了C語言。1973 年Thompson和Ritchie用C語言重寫了Unix。在當時,為了實現最高效率,系統程序都是由匯編語言編寫,所以Thompson和 Ritchie此舉是極具大膽創新和革命意義的。用C語言編寫的Unix代碼簡潔緊湊、易移植、易讀、易修改,為此後Unix的發展奠定了堅實基礎。
1974年,Thompson和Ritchie合作在ACM通信上發表了一片關於UNIX的文章,這是UNIX第一次出現在貝爾實驗室以外。此後UNIX被政府機關,研究機構,企業和大學注意到,並逐漸流行開來。
1975年,UNIX發布了4、5、6三個版本。1978年,已經有大約600台計算機在運行UNIX。1979年,版本7發布,這是最後一個廣泛發布的研究型UNIX版本。20世紀80年代相繼發布的8、9、10版本只授權給了少數大學。此後這個方向上的研究導致了Plan 9的出現,這是一個新的分布式操作系統。
1982年,AT&T基於版本7開發了UNIX System Ⅲ的第一個版本,這是一個商業版本僅供出售。為了解決混亂的UNIX版本情況,AT&T綜合了其他大學和公司開發的各種UNIX,開發了UNIX System V Release 1。
這個新的UNIX商業發布版本不再包含源代碼,所以加州大學Berkeley分校繼續開發BSD UNIX,作為UNIX System III和V的替代選擇。BSD對UNIX最重要的貢獻之一是TCP/IP。BSD 有8個主要的發行版中包含了TCP/IP:4.1c、4.2、4.3、4.3-Tahoe、4.3-Reno、Net2、4.4以及 4.4-lite。這些發布版中的TCP/IP代碼幾乎是現在所有系統中TCP/IP實現的前輩,包括AT&T System V UNIX 和Microsoft Windows。
其他一些公司也開始為其自己的小型機或工作站提供商業版本的UNIX系統,有些選擇System V作為基礎版本,有些則選擇了BSD。BSD的一名主要開發者,Bill Joy,在BSD基礎上開發了SunOS,並最終創辦了Sun Microsystems。
1991年,一群BSD開發者(Donn Seeley、Mike Karels、Bill Jolitz 和 Trent Hein)離開了加州大學,創辦了Berkeley Software Design, Inc (BSDI)。BSDI是第一家在便宜常見的Intel平台上提供全功能商業BSD UNIX的廠商。後來Bill Jolitz 離開了BSDI,開始了386BSD的工作。386BSD被認為是FreeBSD、OpenBSD 和 NetBSD的先輩。
AT&T繼續為UNIX System V增加了文件鎖定,系統管理,作業控制,流和遠程文件系統。1987到1989年,AT&T決定將Xenix(微軟開發的一個x86-pc上的UNIX版本),BSD,SunOS和System V融合為System V Release 4(SVR4)。這個新發布版將多種特性融為一體,結束了混亂的競爭局面。
1993年以後,大多數商業UNIX發行商都基於SVR4開發自己的UNIX變體了。
現況
UNIX System V Release 4發布後不久,AT&T就將其所有UNIX權利出售給了Novell。Novell期望以此來對抗微軟的Windows NT,但其核心市場受到了嚴重傷害,最終Novell將SVR4的權利出售給了X/OPEN Consortium,後者是定義UNIX標準的產業團體。最後X/OPEN和OSF/1合並,創建了Open Group。Open Group定義的多個標準定義著什麼是以及什麼不是UNIX。
實際的UNIX代碼則輾轉到了Santa Cruz Operation,這家公司後來出售給了Caldera Systems。Caldera原來也出售Linux系統,交易完成後,新公司又被重命名為SCO Group。
1127部門的解散
根據一項報導指出,當年負責研發UNIX與後續維護工作的貝爾實驗室1127部門已於2005年8月正式宣告解散。Ken Thompson已退休,現居加州;Dennis Ritchie調到別的部門;Douglas McIlroy在達特茅斯學院擔任教授等等。
標准
從1980年代開始,POSIX,一個開放的操作系統標准就在制定中,IEEE制定的POSIX標准現在是UNIX系統的基礎部分。
自由的類Unix系統
Richard Stallman建立了GNU項目,要創建一個能夠自由發布的類UNIX系統。20年來,這個項目不斷發展壯大,包含了越來越多的內容。現在,GNU項目開發的產品,比如Emacs,GCC等已經成為各種其他自由發布的類UNIX產品中的核心角色。
1990年,Linus Torvalds決定編寫一個自己的Minix內核,初名為Linus' Minix,意為Linus的Minix內核,後來改名為Linux,此內核於1991年正式發布,並逐漸引起人們的注意。當GNU軟體與Linux內核結合後,GNU軟體構成了這個POSIX兼容操作系統GNU/Linux的基礎。今天GNU/Linux已經成為發展最為活躍的自由/開放源碼的類Unix操作系統。
1994年,BSD Unix走上了復興的道路。BSD的開發也走向了幾個不同的方向,並最終導致了FreeBSD、OpenBSD和NetBSD的出現。
類Unix操作系統
A/UX | AIX | BSD | DragonFly BSD | FreeBSD | GNU | HP-UX | IRIX | Linux | LynxOS | Mac OS X | Minix | NetBSD | NEXTSTEP | OpenBSD | QNX | SCO OpenServer | Solaris | System V | Tru64 | Xenix | 更多... |
Linux操作系統(Linux),是一種計算機操作系統。Linux操作系統的內核的名字也是「Linux」。Linux操作系統也是自由軟體和開放源代碼發展中最著名的例子。
嚴格來講,Linux這個詞本身只表示Linux內核,但在實際上人們已經習慣了用Linux來形容整個基於Linux內核,並且使用GNU 工程各種工具和資料庫的操作系統(也被稱為GNU/Linux)。基於這些組件的Linux軟體被稱為Linux發行版。一般來講,一個Linux發行套件包含大量的軟體,比如軟體開發工具,資料庫,Web伺服器(例如Apache),X Window,桌面環境(比如GNOME和KDE),辦公套件(比如OpenOffice.org),等等。
Linux內核最初是為英特爾386微處理器設計的。現在Linux內核支持從個人電腦到大型主機甚至包括嵌入式系統在內的各種硬體設備。
在開始的時候,Linux只是個人狂熱愛好的一種產物。但是現在,Linux已經成為了一種受到廣泛關注和支持的一種操作系統。包括IBM和惠普在內的一些計算機業巨頭也開始支持Linux。很多人認為,和其他的商用Unix系統以及微軟Windows相比,作為自由軟體的Linux具有低成本,安全性高,更加可信賴的優勢。
概述
絕大多數基於Linux內核的的操作系統使用了大量的GNU軟體,包括了一個shell程序、工具、程序庫、編譯器及工具,還有許多其他程序,例如Emacs。正因為如此,GNU計劃的開創者理查德·馬修·斯托曼博士提議將Linux操作系統改名為GNU/Linux。但有些人只把操作系統叫做"Linux"。
大多數系統還包括了像提供GUI界面的XFree86之類的曾經運行於BSD的程序。
除了一部分專家之外,大多數人都不自己選擇每一樣組件或自行設置,而是直接使用Linux套件。
1983年,理察·馬修·斯托曼(Richard Stallman)創立了GNU計劃(GNU Project)。這個計劃有一個目標是為了發展一個完全免費自由的 Unix-like 操作系統。自1990年代發起這個計劃以來,GNU 開始大量的產生或收集各種系統所必備的元件,像是——函式庫(libraries)、編譯器(compilers)、偵錯工具(debuggers)、文字編輯器(text editors)、網頁伺服器(web server),以及一個Unix的使用者介面(Unix shell)——除了執行核心(kernel)仍然付闕外。1990年,GNU計劃開始在馬赫微核(Mach microkernel)的架構之上開發系統核心,也就是所謂的GNU Hurd,但是這個基於Mach的設計異常復雜,發展進度則相對緩慢。
Linux內核最初只是由芬蘭人林納斯·托瓦茲(Linus Torvalds)在赫爾辛基大學上學時出於個人愛好而編寫的,當時他並不滿意Minix這個教學用的操作系統。最初的設想中,Linux 是一種類似Minix這樣的一種操作系統。Linux的第一個版本在1991年9月被大學FTP server管理員Ari Lemmke發布在Internet上,最初Torvalds 稱這個核心的名稱為 "Freax" ,意思是自由( "free") 和奇異( "freak") 的結合字,並且附上了"X"這個常用的字母,以配合所謂的 Unix-like 的系統。但是FTP server管理員嫌原來的命名「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.
歷史
Linux 的歷史是和GNU緊密聯系在一起的。從1983年開始的GNU計劃致力於開發一個自由並且完整的類Unix操作系統,包括軟體開發工具和各種應用程序。到1991年 Linux 內核發布的時候,GNU已經幾乎完成了除了系統內核之外的各種必備軟體的開發。在Linus Torvalds和其他開發人員的努力下,GNU組件可以運行於Linux內核之上。整個內核是基於 GNU 通用公共許可,也就是GPL(GNU General Public License,GNU通用公共許可證)的,但是Linux內核並不是GNU 計劃的一部分。1994年3月,Linux1.0版正式發布,Marc Ewing成立了 Red Hat 軟體公司,成為最著名的 Linux 分銷商之一。
Unix & Linux歷史源流早期Linux的開機管理程序(boot loader)是使用LILO(Linux Loader),存在著一些難以容忍的缺陷,例如無法識別8G以外的硬碟,後來新增GRUB(GRand Unified Bootloader)克服了這些缺點,具有『動態搜尋核心檔案』的功能,可以讓您在開機的時候,可以自行編輯您的開機設定系統檔案,透過 ext2 或 ext3 檔案系統中載入 Linux Kernel。
Linux 的標志和吉祥物是一隻名字叫做 Tux 的 企鵝,標志的由來是因為Linus在澳洲時曾被一隻動物園里的企鵝咬了一口,便選擇了企鵝作為Linux的標志。Linux的注冊商標是Linus Torvalds所有的。這是由於在1996年,一個名字叫做William R. Della Croce的律師開始向各個 Linux 發布商發信,聲明他擁有Linux商標的所有權,並且要求各個發布商支付版稅,這些發行商集體進行上訴,要求將該注冊商標重新分配給 Linus Torvalds。Linus Torvalds 一再聲明 Linux 是免費的,他本人可以賣掉,但 Linux 絕不能賣。
Linux 的某些版本是不需要安裝就能使用的版本,他們稱為 LiveCD。
用戶群
GNU/Linux愛好者設計的宣傳圖,並使用GPL授權
GNU/Linux社群設計的立體圖,並使用GPL授權傳統的Linux用戶一般都安裝並設置自己的操作系統,他們往往比其他操作系統,例如微軟Windows和Mac OS的用戶更有經驗。這些用戶有時被稱作「黑客」或是「極客」(geek)。然而隨著Linux越來越流行,越來越多的原廠委託製造(OEM)開始在其銷售的電腦上預裝上Linux,Linux的用戶中也有了普通電腦用戶,Linux系統也開始慢慢搶占桌面電腦操作系統市場。同時Linux也是最受歡迎的伺服器操作系統之一。Linux也在嵌入式電腦市場上擁有優勢,低成本的特性使Linux深受用戶歡迎。使用Linux主要的成本為移植、培訓和學習的費用,早期由於會使用Linux的人較少,這方面費用較高,但這方面的費用已經隨著Linux的日益普及和Linux上的軟體越來越多、越來越方便而降低。
KDE和GNOME等桌面系統使Linux更像是一個Mac或Windows之類的操作系統,提供完善的圖形用戶界面,而不同於其他使用命令行界面(Command Line Interface,CLI)的類Unix操作系統。
未來軟體界的方向
Linux 作為較早的源代碼開放操作系統,將引領未來軟體發展的方向。
基於 Linux 開放源碼的特性,越來越多大中型企業及政府投入更多的資源來開發 Linux。現今世界上,很多國家逐漸的把政府機構內部門的電腦轉移到 Linux 上,這個情況還會一直持續。Linux 的廣泛使用為政府機構節省了不少經費,也降低了對封閉源碼軟體潛在的安全性的憂慮。
Linux的英文發音
根據Torvalds的說法,Linux的發音和「Minix」是押韻的。
「Li」中「i」的發音類似於「Minix」中「i」的發音,而「nux」中「u」的發音類似於英文單詞「profess」中「o」的發音。依照國際音標應該是['linэks]。
有一份Torvalds本人說話的音頻,音頻內容為「Hello, this is Linus Torvalds, and I pronounce Linux as Linux」。
應用
運行在SUSE上的KDE桌面環境。過去,Linux主要被用作伺服器的操作系統,但因它的廉價、靈活性及Unix背景使得它很合適作更廣泛的應用。傳統上,以Linux為基礎的「LAMP(Linux, Apache, MySQL, Perl/PHP/Python的組合)」技術,除了已在開發者群體中廣泛流行,它亦是現時提供網站務供應商最常使用的平台。
基於其低廉成本與高度可設定性,Linux常常被應用於嵌入式系統,例如機頂盒、行動電話及行動裝置等。在行動電話上,Linux已經成為Symbian OS的主要競爭者;而在行動裝置上,則成為Windows CE與Palm OS外之另一個選擇。目前流行的TiVo數位攝影機使用了經過客制化後的Linux。此外,有不少硬體式的網路防火牆及路由器,例如部份LinkSys的產品,其內部都是使用Linux來驅動、並採用了操作系統提供的防火牆及路由功能。
採用Linux的超級電腦亦愈來愈多,根據2005年11月號的TOP500超級電腦列表,現時世上最快速的兩組超級電腦都是使用Linux作為其操作系統。而在表列的500套系統里,採用Linux為操作系統的,佔了371組(即74.2%),其中的前十位者,有7組是使用Linux的。
2006年開始發售的SONY PlayStation 3亦使用Linux的操作系統。之前,Sony亦曾為他們的PlayStation 2推出過一套名為PS2 Linux的DIY組件。至於游戲開發商雅達利及id Software,都有為其旗下的游戲推出過Linux桌面版本。此外,Linux Game Publishing亦有專門為Linux平台撰寫游戲,並致力於把其他在Windows平台編撰的游戲程序碼轉攜至Linux平台,及為轉攜游戲提供使用授權。
而一個打算對所有生活在發展中國家孩子提供手提電腦的名為每孩子皆有一部手提電腦(OLPC)的項目,正是使用Linux作為預設的操作系統。
發行版
Linux 主要作為Linux 發行版(通常被稱為"distro")的一部分而使用。這些發行版由個人,鬆散組織的團隊,以及商業機構和志願者組織編寫。它們通常包括了其他的系統軟體和應用軟體,以及一個用來簡化系統初始安裝的安裝工具,和讓軟體安裝升級的集成管理器。發行版為許多不同的目的而製作, 包括對不同計算機結構的支持, 對一個具體區域或語言的本地化,實時應用,和嵌入式系統,甚至許多版本故意地只加入免費軟體。目前,超過三百個發行版被積極的開發,最普遍被使用的發行版有大約十二個.
一個典型的Linux發行版包括:Linux內核,一些GNU程序庫和工具,命令行shell,圖形界面的X Window系統和相應的桌面環境,如KDE或GNOME,並包含數千種從辦公套件,編譯器,文本編輯器到科學工具的應用軟體。
Linux與其他操作系統區別
Linux可以與MS-DOS、OS/2、Windows等其他操作系統共存於同一台機器上。它們均為操作系統,具有一些共性,但是互相之間各有特色,有所區別。
目前運行在PC機上的操作系統主要有Microsoft的MS-DOS、Windows、Windows NT、IBM的OS/2等。早期的PC機用戶普遍使用MS-DOS,因為這種操作系統對機器的硬體配置要求不高,而隨著計算機硬體技術的飛速發展,硬體設備價格越來越低,人們可以相對容易地提高計算機的硬體配置,於是開始使用Windows、Windows NT等具有圖形界面的操作系統。Linux是新近被人們所關注的操作系統,它正在逐漸為PC機的用戶所接受。那麼,Linux與其他操作系統的主要區別是什麼呢?下面從兩個方面加以論述。
Linux與MS-DOS之間的區別
在同一系統上運行Linux和MS-DOS已很普遍,就發揮處理器功能來說,MS-DOS沒有完全實現x86處理器的功能,而Linux完全在處理器保護模式下運行,並且開發了處理器的所有特性。Linux可以直接訪問計算機內的所有可用內存,提供完整的Unix介面。而MS-DOS只支持部分Unix的介面。
就使用費用而言,Linux和MS-DOS是兩種完全不同的實體。與其他商業操作系統相比,MS-DOS價格比較便宜,而且在PC機用戶中有很大的佔有率,任何其他PC機操作系統都很難達到MS-DOS的普及程度,因為其他操作系統的費用對大多數PC機用戶來說都是一個不小的負擔。Linux是免費的,用戶可以從internet上或者其他途徑獲得它的版本,而且可以任意使用,不用考慮費用問題。
就操作系統的功能來說,MS-DOS是單任務的操作系統,一旦用戶運行了一個MS-DOS的應用程序,它就獨佔了系統的資源,用戶不可能再同時運行其他應用程序。而Linux是多任務的操作系統,用戶可以同時運行多個應用程序。
Linux與OS/2、Windows、Windows NT之間的區別
從發展的背景看,Linux與其他操作系統的區別是,Linux是從一個比較成熟的操作系統發展而來的,而其他操作系統,如Windows NT等,都是自成體系,無對應的相依託的操作系統。這一區別使得Linux的用戶能大大地從Unix團體貢獻中獲利。因為Unix是世界上使用最普遍、發展最成熟的操作系統之一,它是七十年代中期發展起來的微機和巨型機的多任務系統,雖然有時介面比較混亂,並缺少相對集中的標准,但還是發展壯大成為了最廣泛使用的操作系統之一。無論是Unix的作者還是Unix的用戶,都認為只有Unix才是一個真正的操作系統,許多計算機系統(從個人計算機到超級計算機)都存在Unix版本,Unix的用戶可以從很多方面得到支持和幫助。因此,Linux做為Unix的一個克隆,同樣會得到相應的支持和幫助,直接擁有Unix在用戶中建立的牢固的地位。
從使用費用上看,Linux與其他操作系統的區別在於Linux是一種開放、免費的操作系統,而其他操作系統都是封閉的系統,需要有償使用。這一區別使得我們能夠不用花錢就能得到很多Linux的版本以及為其開發的應用軟體。當我們訪問Internet時,會發現幾乎所有可用的自由軟體都能夠運行在Linux系統上。有來自很多軟體商的多種Unix實現,Unix的開發、發展商以開放系統的方式推動其標准化,但卻沒有一個公司來控制這種設計。因此,任何一個軟體商(或開拓者)都能在某種Unix實現中實現這些標准。OS/2和Windows NT等操作系統是具有版權的產品,其介面和設計均由某一公司控制,而且只有這些公司才有權實現其設計,它們是在封閉的環境下發展的。
展望
一個打算對所有生活在發展中國家孩子提供手提電腦的名為每孩子皆有一部手提電腦(OLPC)的項目,正是使用Linux作為預設的操作系統。
什麼是Linux簡單地說,Linux是一套免費使用和自由傳播的類Unix操作系統,它主要用於基於Intel x86系列CPU的計算機上。這個系統是由全世界各地的成千上萬的程序員設計和實現的。其目的是建立不受任何商品化軟體的版權制約的、全世界都能自由使用的Unix兼容產品。
Linux的出現,最早開始於一位名叫Linus Torvalds的計算機業余愛好者,當時他是芬蘭赫爾辛基大學的學生。他的目的是想設計一個代替Minix(是由一位名叫Andrew Tannebaum的計算機教授編寫的一個操作系統示教程序)的操作系統,這個操作系統可用於386、486或奔騰處理器的個人計算機上,並且具有 Unix操作系統的全部功能,因而開始了Linux雛形的設計。
Linux以它的高效性和靈活性著稱。它能夠在PC計算機上實現全部的Unix特性,具有多任務、多用戶的能力。Linux是在GNU公共許可許可權下免費獲得的,是一個符合POSIX標準的操作系統。Linux操作系統軟體包不僅包括完整的Linux操作系統,而且還包括了文本編輯器、高級語言編譯器等應用軟體。它還包括帶有多個窗口管理器的X-Windows圖形用戶界面,如同我們使用Windows NT一樣,允許我們使用窗口、圖標和菜單對系統進行操作。
Linux之所以受到廣大計算機愛好者的喜愛,主要原因有兩個,一是它屬於自由軟體,用戶不用支付任何費用就可以獲得它和它的源代碼,並且可以根據自己的需要對它進行必要的修改,無償對它使用,無約束地繼續傳播。另一個原因是,它具有Unix的全部功能,任何使用Unix操作系統或想要學習 Unix操作系統的人都可以從Linux中獲益。
3. 什麼是linux kernel有什麼作用
Linux內核(英語:Linux kernel)是一種開源的類Unix操作系統宏內核。
工作於平板電腦、智能手機及智能手錶的Android操作系統同樣通過Linux內核提供的服務完成自身功能。
一個計算機系統是一個硬體和軟體的共生體,它們互相依賴,不可分割。計算機的硬體,含有外圍設備、處理器、內存、硬碟和其他的電子設備組成計算機的發動機。但是沒有軟體來操作和控制它,自身是不能工作的。
完成這個控制工作的軟體就稱為操作系統,在Linux的術語中被稱為「內核」,也可以稱為「核心」。Linux內核的主要模塊(或組件)分以下幾個部分:存儲管理、CPU和進程管理、文件系統、設備管理和驅動、網路通信,以及系統的初始化(引導)、系統調用等。
整個Linux操作系統家族基於該內核部署在傳統計算機平台(如個人計算機和伺服器,以Linux發行版的形式)和各種嵌入式平台,如路由器、無線接入點、專用小交換機、機頂盒、FTA接收器、智能電視、數字視頻錄像機、網路附加存儲(NAS)等。
工作於平板電腦、智能手機及智能手錶的Android操作系統同樣通過Linux內核提供的服務完成自身功能。盡管於桌面電腦的佔用率較低,基於Linux的操作系統統治了幾乎從移動設備到主機的其他全部領域。截至2017年11月,世界前500台最強的超級計算機全部使用Linux。
(3)匯編語言基於linux環境擴展閱讀:
編程語言
Linux是用C語言中的GCC版(這種C語言有對標准C進行擴展)寫的,還有幾個用匯編語言(用的是GCC的"AT&T風格")寫的目標架構短段。因為要支持擴展的C語言,GCC在很長的時間里是唯一一個能正確編譯Linux的編譯器。
有許多其他的語言用在一些方面上,主要集中在內核構建過程中(這里指從源代碼創建可引導鏡像)。包括Perl、Python和多種腳本語言。有一些驅動可能是用C++、Fortran或其他語言寫的,但是這樣是強烈不建議的。
編譯器兼容性
GCC是Linux內核源代碼的預設編譯器。在2004年,Intel主張通過修改內核,以便Intel C++編譯器能正確編譯內核。在2009年,有通過修改內核2.6.22版而成功編譯的報告(並帶來平均8-9%性能增長)。
自從2010年,已經開始進行使用Clang建造Linux內核的努力,Clang是一個可作為替代的C語言編譯器;截止2014年4月12日,官方內核幾乎可以完全用Clang編譯。致力於這個目標的計劃叫做「LLVMLinux」,得名於Clang所基於的LLVM編譯器下部構造。
LLVMLinux不意圖復制Linux內核或LLVM,因此它是由最終提交給上游計劃的補丁構成的一個元計劃。使Linux內核可以用Clang編譯最大的好處是比GCC有更快的編譯速度,內核開發者可以得益於由此而來的更快的工作流程
4. linux系統分為哪幾類
第一類:root(超級管理員),UID為0,這個用戶有極大的許可權,可以直接無視很多的限制,包括讀寫執行的許可權。
第二類:系統用戶,UID為1~499。一般是不會被登入的。
第三類就是普通用戶,UID范圍一般是500~65534。這類用戶的許可權會受到基本許可權的限制,也會受到來自管理員的限制。不過要注意nobody這個特殊的帳號,UID為65534,這個用戶的許可權會進一步的受到限制,一般用於實現來賓帳號。
當前市面上流行的Linux系統主要分為Readhat和Debian兩大系列,而android底層直接用linux原版內核。
一、Redhat系列
Redhat:主要是伺服器型Linux,商用收費;RHEL是Red Hat Enterprise Linux的縮寫。
CentOS:Redhat的100%復製版本,不收版權費用。
二、Debian系列
Debian:主要是桌面型Linux,代表為Ubuntu。這只是簡單的概括,專更詳細的分類總結及Linux知識介紹和應用可以看看相屬關書籍及資料,推薦一本Linux書籍《Linux就該這么學》。
CentOS:可靠的伺服器發行版。是一個重新編譯可安裝的Red Hat Enterprise Linux(RHEL)代碼,並提供及時的安全更新的所有套裝軟體升級為目標的社區項目。目前很多互聯網企業在用的發行版本。
Red Hat(紅帽):培訓、學習、應用、知名度比較高的Linux發行版本。對硬體兼容性來說也比較不錯,版本更新很快,對新硬體和新技術支持較好。Red Hat的開放源碼模式提供跨物理、虛擬和雲端環境的企業運算解決方案,以幫助企業降低成本並提升效能、穩定性與安全性。
Ubuntu:流行的桌面Linux發行版。朝著發展一種「易用和免費」的桌面操作系統做出了極大的努力和貢獻,能夠與市場上任何一款個人操作系統相競爭。Ubuntu的優勢是固定的發布周期和支持期限、易於初學者學習、具有豐富的文檔。
SUSE:擁有讓用戶滿意的漂亮的桌面環境,優秀的系統 管理工具,同時為那些購買盒裝版的用戶提供最好的印刷品與任何可用的文檔。
Debian:優勢是非常穩定、擁有卓越的質量控制、超過20,000數量的軟體、比任何其他的Linux發行支持更多的處理器架構。
5. 學習嵌入式開發需要學習ARM匯編語言嗎
學習嵌入式開發基本不需要學習ARM匯編語言,原因如下:
1、C語言的發展已經成熟,其編譯器編譯出的代碼文件無論從體積、執行效率都已直逼匯編語言。
2、ARM匯編語言編程本身並不難,由於數據寬度擴展,代碼效率更高,執行速度更快,但維護和移植卻比C語言程序困難得多。
3、ARM單片機動輒上百個寄存器,雖然功能強大,但卻給操作和記憶帶來極大挑戰,使得用匯編語言編程比51困難許多,編程效率更為低下。
4、匯編語言編程越來越小眾化,這就使得可利用資源少,可參考借鑒的資料很少,凡事靠自己,困難不易克服。
當然,如果有時間有精力有能力學習ARM匯編語言,會比不會好。