Linux管理員手冊 1 Linux系統概述

2021-04-12 14:33:44 字數 3981 閱讀 6847

乙個作業系統的不同部分

系統程式使用核心提供的工具實現作業系統要求的不同的服務。系統程式和所有其他程式執行在核心之上,叫做使用者模式user mode。系統程式和應用程式的區別是目的:應用程式意圖完成一些有用的工作(或遊戲),而系統程式則為系統工作而需要。字處理器是應用;telnet 是系統程式。區別經常有些模糊,也許,只是為了強制分類。

雖然程式語言不必是作業系統的一部分,作業系統也可以包括編譯器及其相關的庫(linux下是gcc和c庫)。文件、有時甚至遊戲,可以是作業系統的 一部分。傳統上,作業系統被定義為安裝磁帶或磁碟上的內容;對於linux就更不清楚,因為它分布在全世界的ftp站點上。

核心的重要部件

linux核心包括幾個重要部分:程序管理、儲存器管理、硬體裝置驅動、檔案系統驅動、網路管理和其他不同的部分。圖2.1顯示了它們的一些。

可能核心最重要的部分(沒有它們什麼也不能工作)是儲存器管理和程序管理。儲存器管理負責分配程序的儲存器區域和對換空間區域、核心的部件及buffer cache。程序管理產生程序,用切換處理器上的活動程序來實現多工。

在最低階,核心對它支援的每種硬體包含乙個硬體裝置驅動。因為世界上存在大量不同的硬體,硬體裝置驅動的數量極大。有許多不同的硬體,因此軟體控制方 法不同。但其相似性可能分類驅動,支援相似的操作;每類的每個成員有相同的與核心其他部分介面,但具體實現是不同的。例如,所有的硬碟驅動與核心其他部分 介面相同,即他們都有初始化驅動器、讀n扇區、寫n扇區。

核心自己提供的有些軟體服務有類似的抽象屬性,因此可以抽象分類。例如,不同的網路協議已經被抽象為乙個程式設計介面:bsd socket庫。另乙個例子是虛擬檔案系統virtual filesystem(vfs)層,它從檔案系統操作實現中抽象出檔案系統操作。每個檔案系統型別提供了每個檔案系統操作的實現。當一些實體企圖使用乙個 檔案系統時,請求通過vfs送出,它將請求傳送到適當的檔案系統驅動。

unix系統的主要服務

本節說明一些最重要的unix服務,但不太詳細。以後的章節中將更詳細地說明。

init

unix系統裡最重要的服務是由init 提供的。 init 是每個unix系統在核心引導最後啟動的第乙個程序。 init 啟動後,它做不同的啟動工作繼續引導過程(檢查和mount檔案系統、啟動守侯程式等)

init 做的具體事情的列表依賴於使用者意願; init 有多個啟動選擇。通常提供單使用者模式single user mode的概念,此時沒有使用者能登入,root 在控制台使用乙個shell;通常的模式叫多使用者模式multiuser mode。一般說來這稱為執行級run levels;單使用者和多使用者模式可以理解為2個執行級,還可以有其他執行級,例如,在控制台上執行x。

在普通操作中,init 確認getty 正常執行(允許使用者登入),並收養孤兒程序(父程序已死的程序;unix中,所有程序 必須在一棵樹中,因此孤兒程序必須收養)。

當系統關閉時,init 負責殺死所有其他程序,unmount所有檔案系統並停止處理器,根據設定。

從終端登入

從終端登入(通過序列線)和控制台(當不執行x時)是由getty 程式提供的。 init 為每個允許登入的終端啟動乙個單獨的getty 例項 getty 讀使用者名稱並執行login 程式,由它讀口令。如果使用者名稱和口令正確,login 就執行shell。當shell終止時,即使用者登出,或login 因使用者名稱和口令不對而終止時, init 知道並啟動乙個新的getty 例項。核心沒有登入的概念,這都由系統程式處理。

syslog

核心和許多系統程式會產生錯誤、警告和其他資訊。這些資訊在以後能看經常是很重要的,甚至很久以後,所以它們應該被寫到乙個檔案。這個程式是 syslog 。它能設定成根據輸出資訊的程式或重要程度將資訊排序到不同的檔案。例如,核心資訊經常與其他資訊分開,單獨定向到乙個分離的檔案,因為核心資訊經常更重 要且需要有規律地閱讀以確定問題。

定時執行命令: cron 和at

使用者和系統管理員經常需要定時執行命令。例如,系統管理員可能想執行乙個程式從老檔案中清除暫存檔案的目錄 (/tmp 和/var/tmp ),以免磁碟滿,因為並非所有程式都正確地清除自己的暫存檔案。

cron 服務是做這個的。每個使用者有個crontab ,在這裡列出他要執行的命令和想執行的時間。 cron 守侯程序負責在特定的時間啟動命令。

at 服務與cron 類似,但它只執行一次:命令在給定的時間執行,但不可自動重複。

圖形使用者介面gui

unix和linux不將使用者介面合在核心中,而是用使用者級程式實現。使用者介面同時提供文字和圖形環境。

這樣的安排使系統更靈活,但有容易對每個程式實現不同的使用者介面的缺點,使系統較難學。

linux使用的主要的圖形環境叫x window系統(簡稱x)。 x也不實現使用者介面;它只實現乙個視窗系統,即可以實現圖形使用者介面的工具。 3種最流行的基於x實現的使用者介面風格是athena、motif和open look。

網路網路連線2臺或更多的計算機使之能互相通訊。連線和通訊的實際方法有些複雜,但結果非常有用。

unix作業系統具有許多網路特徵。最基本的服務:檔案系統、列印、備份等都可以通過網路完成。這可使系統管理更簡單,因為它允許集中管理,同時獲得小型機和分布計算的優點,例如降低成本和更好的容錯能力。

然而,本書只概述網路;更多的資訊請見《linux網路管理員指南》,包括乙個網路如何操作的基本說明。

網路登入

網路登入與普通登入有一點不同。可以登入的每個終端各有一條單獨的物理序列線。從網路登入的每個人,有一條單獨的虛擬網路連線,並且可以有任意數量 。因此不可能為每個可能的虛擬連線執行單獨的getty 。通過網路登入有若干不同的方法, telnet 和rlogin 是tcp/ip網路中的主要方法。

網路登入為每種登入方法提供乙個單獨的守侯程式(telnet 和rlogin 使用不同的守侯程式),而不是使用一群getty ,來偵聽所有的輸入的登入企圖。當發現乙個登入企圖,就啟動乙個自己的新例項來處理這個企圖;原來的例項繼續偵聽其他企圖。新例項的工作和getty 類似。

網路檔案系統

網路服務的乙個最有用的東西是通過網路檔案系統network file system共享檔案。這個服務一般用sun公司開發的網路檔案系統network file system,或nfs。

通過網路檔案系統,任何檔案操作可以由一台機器的乙個程式通過網路傳送到其他任何機器。這愚弄了程式,使它以為其他機器上的所有檔案是在程式執行的機器上。這極大地簡化了資訊共享,因為它對程式無須任何修改。

郵件電子郵件通常是通過計算機通訊的最重要的方法。一封電子信件用特定的格式儲存在乙個檔案中,使用特定的郵件程式來收發郵件。

每個使用者有乙個收件箱incoming mailbox(乙個特定格式的檔案),所有新郵件存在這裡。當什麼人傳送郵件時,郵件程式定位收件人的郵箱,並在郵箱檔案中新增信件。如果收件人的郵箱 在另一台機器上,信件就被傳送到那台機器,由它用它覺得最合適的方法來投遞郵箱。

郵件系統包括很多程式。投遞郵件到本地或遠端郵箱使用乙個程式(mail transfer agent或mta,例如,sendmail 或**ail ),而使用者使用的則有很多不同的程式(mail user agent或mua,例如pine 或elm )。郵箱一般存在/var/spool/mail 中。

列印同時只能有乙個人使用某一台印表機,但各使用者不共享印表機是不經濟的。因此印表機由軟體來管理,實現乙個列印佇列print queue:所有的列印任務放進乙個佇列,印表機完成乙個任務後,自動再列印下乙個。這無須使用者來組織列印佇列,迴避了直接控制印表機。

列印佇列軟體也把列印輸出spools到磁碟,即,當任務在佇列中時,列印輸出存在乙個檔案中。這允許應用程式快速地完成乙個列印任務到列印佇列程 序,應用程式無須等到列印任務真正完成就可以繼續下去。這真的很方便,因為它允許列印出乙個版本,無須列印完成,就繼續修改乙個新版本。

檔案系統布局

檔案系統分為許多部分,通常從根檔案系統有: /bin , /lib , /etc , /dev , 及一些其他; /usr 檔案系統包含程式和不改變的資料; /var 檔案系統包含改變的資料(例如log檔案); /home 檔案系統包含每個使用者的個人檔案。依賴於硬體配置和系統管理員的決定,方法不同,甚至所有東西可能在乙個檔案系統中。

3章將更詳細地說明檔案系統布局,linux檔案系統標準(linux filesystem standard)中有更詳細的說明。

Linux 管理員手冊 4

本章說明linux的記憶體管理特徵,即虛擬記憶體和磁碟快取。描述系統管理員應該考慮的東西 工作和目的。什麼是虛擬記憶體?linux支援虛擬記憶體,就是使用磁碟作為ram的擴充套件,使可用記憶體相應地有效擴大。核心把當前不用的記憶體塊存到硬碟,騰出記憶體給其他目的。當原來的內容又要使用時,再讀回記憶體...

mysql管理員手冊 MySQL管理要點

mysql管理要點 對於 mysql 管理員來說,需要掌握的知識要點包括 mysql 安裝 執行 sql 語句 開發技術 儲存引擎 字符集 視覺化管理 使用 phpmyadmin 等視覺化工具管理資料庫 高階維護技術 公升級 客戶端工具使用 日誌管理 備份恢復 監控 優化技術 鎖 連線池 併發引數 ...

Linux 新增管理員使用者

1.先用root新增普通使用者 useradd user 新增乙個名為user的使用者 passwd user 修改密碼 changing password for user chenjiafa.newunix password 在這裡輸入新密碼 retype new unix password 再...