Linux系統學習筆記:序,linux學習筆記
Linux系統學習筆記:序
Linux是一套免費使用和自由傳播的類Unix作業系統,是一個基於POSIX和UNIX的多使用者、多任務、支援多線程和多CPU的作業系統。它能運行主要的UNIX工具軟體、應用程式和網路通訊協定。它支援32位和64位硬體。Linux繼承了Unix以網路為核心的設計思想,是一個效能穩定的多使用者網路作業系統。
本人使用的Linux為Ubuntu,主要以《APUE》(第3版)為學習藍本。
1. Unix/Linux 體繫結構
:
核心的介面被稱為系統調用。公用函數庫構建在系統調用介面之上,應用程式既可以使用公用函數庫,也可使用系統調用。Shell是一個特殊的應用程式,為運行其他應用程式提供了一個介面。
2. Linux 核心的主要模組2.1 進程調度 SCHED
進程調度指的是系統對進程的多種狀態之間轉換的策略。Linux下的進程調度有3種策略:
* SCHED_OTHER 分時調度策略
* SCHED_FIFO 即時調度策略,先到先服務
* SCHED_RR 即時調度策略,時間片輪轉
2.2 記憶體管理 MMU
記憶體管理是多個進程間的記憶體共用策略。在Linux系統中,記憶體管理的主要概念是虛擬記憶體。
2.3 虛擬檔案系統 VFS
Linux支援多種檔案系統,最常用的檔案格式是ext2和ext3(ext4是ext3的改進版),ext2檔案系統用於固定檔案系統和可活動檔案系統,ext3在ext2的基礎增加了日誌功能。兩者可以互相轉換。
2.4 網路介面
Linux支援多種網路介面和協議。網路介面分為網路通訊協定和驅動程式,網路通訊協定是一種網路傳輸的通訊標準,而網路驅動則是對硬體裝置的驅動程式。
2.5 處理序間通訊
Linux作業系統支援多進程,進程之間需要進行資料的交流才能完成控制、協同工作等功能,Linux下的進程間的通訊方式主要有管道方式、訊號方式、訊息佇列方式、共用記憶體和通訊端等方法。
3. Linux的分類樹結構