- Linux操作系統基礎案例教程
- 旭日 嚴作明 李占平
- 1596字
- 2019-09-30 13:25:29
2.2 Linux的特點
不管使用什么版本的Linux,對大家而言共同的代碼是Linux內核。雖然內核能夠被修改,使其包含你所要的特點,但每種Linux內核都能提供下列特征。
(1)開源
由于Linux系統的開發從一開始就與GNU項目緊密地結合起來,所以它的大多數組成部分都直接來自GNU項目。任何人、任何組織只要遵守GPL條款,就可以自由使用Linux源代碼,為用戶提供了最大限度的自由度。這一點也正投嵌入式系統所需要的,因為嵌入式系統應用千差萬別,設計者往往需要針對具體的應用對源碼進行修改和優化,所以是否能獲得源代碼對于嵌入式系統的開發是至關重要的。加之Linux的軟件資源十分豐富,每種通用程序在Linux上幾乎都可以找到,并且數量還在不斷增加。這一切就使設計者在其基礎之上進行二次開發變得非常容易。另外,由于Linux源代碼公開,也使用戶不用擔心有“后門”等安全隱患。同時,源代碼開放給各教育機構提供極大的方便,從而也促進了Linux的學習、推廣和應用。
(2)模塊化程度高
Linux的內核設計非常精巧,分成進程調度、內存管理、進程間通信、虛擬文件系統和網絡接口五大部分。其獨特的模塊機制可根據用戶的需要,實時地將某些模塊插入或從內核中移走,使得Linux系統內核可以裁剪得非常小巧,很適合于嵌入式系統的需要。
(3)符合POSIX 1003.1標準
POSIX 1003.1標準定義了一個最小的UNIX操作系統接口,任何操作系統只有符合這一標準,才有可能運行UNIX程序??紤]到UNIX具有豐富的應用程序,當今絕大多數操作系統都把滿足POSIX 1003.1標準作為實現目標,Linux也不例外,它完全支持POSIX 1003.1標準。另外,為了使UNIX System V和BSD上的程序能直接在Linux上運行,Linux還增加了部分System V和BSD的系統接口,使Linux成為一個完善的UNIX程序開發系統。
(4)支持多用戶訪問和多任務編程
Linux是一個多用戶操作系統,不僅可以有很多的用戶,還可以讓這些用戶同時登錄系統并且在上面工作。用戶可以按照其需要準備工作環境:存儲文件的主目錄和桌面環境(包括圖標、菜單和與它們對應的應用)。用戶的賬號可以有密碼保護,這樣就能控制訪問的應用和數據。可以同時運行多個程序,這意味著不僅可以同時運行多個程序,Linux操作系統本身還可以有很多運行在后臺的程序。很多這樣的系統進程使Linux作為一臺服務器進行工作成為可能,它們監聽網絡上的各種請求:如登錄系統、瀏覽Web頁、打印文檔或者復制文件。
(5)采用頁式存儲管理
頁式存儲管理使Linux能更有效地利用物理存儲空間,為用戶提供了更大的存儲空間。
(6)支持多種文件系統
Linux能支持多種文件系統。目前支持的文件系統有:ext2、ext、XIAFS、ISOFS、HPFS、MSDOS、UMSDOS、PROC、NFS、SYSV、MINIX、SMB、UFS、NCP、VFAT、AFFS等。Linux最常用的文件系統是ext2,它的文件名長度可達255字符,并且還有許多特有的功能,使它比常規的UNIX文件系統更加安全。
(7)支持TCP/IP、SLIP和PPP
在Linux中,用戶可以使用所有的網絡服務,如網絡文件系統、遠程登錄等。SLIP和PPP能支持串行線上的TCP/IP協議的使用,這意味著用戶可用一個高速Modem通過電話線連入Internet網中。
(8)圖形用戶接口
圖形用戶接口(X Window系統)——在Linux下開發圖形應用程序的強大框架被稱為X Window系統(或簡稱X)。X的功能主要是打開基于X的圖形用戶接口(GUI)應用,然后顯示在X服務器進程上。
(9)硬件支持
可以為每種能夠連上計算機的硬件配置相應的支持,這些支持包括軟盤驅動器、CD-ROM、DVD-ROM、手寫輸入、聲卡、磁帶設備、顯卡還有其他能想到的設備。當計算機內加入USB之類的設備接口時,這些設備的支持也被相應地加入了Linux。
(10)網絡連接
Linux提供了對很多種局域網卡、Modem和串行設備的支持。除了像Ethernet一樣的局域網協議,大部分流行的高層網絡協議都是可以內建的。這其中最流行的協議是TCP/IP(用來連接因特網),除此之外還有其他協議,如IPX(用來連接Novell網絡)和X.25(一種在歐洲流行的包交換網絡類型)。
(11)網絡服務器
Linux做得最好的就是給局域網或者整個因特網上的客戶端計算機提供網絡服務。用戶可以使用各種各樣的軟件包來把Linux作為打印服務器、文件服務器、FTP服務器、郵件服務器、Web服務器、新聞組服務器或工作組服務器(DHCP或NIS)。
- 深入淺出Electron:原理、工程與實踐
- 跟老齊學Python:輕松入門
- 深度強化學習算法與實踐:基于PyTorch的實現
- Learning Apache Kafka(Second Edition)
- PostgreSQL Replication(Second Edition)
- Python機器學習經典實例
- Windows Forensics Cookbook
- WebRTC技術詳解:從0到1構建多人視頻會議系統
- 深入理解C指針
- Orleans:構建高性能分布式Actor服務
- Python全棧開發:基礎入門
- Learning Shiny
- Python數據可視化之matplotlib實踐
- Hands-On Artificial Intelligence with Unreal Engine
- Swift編程實戰:iOS應用開發實例及完整解決方案