成 人 网 站国产免费观看

<p id="lkccd"></p>

    <td id="lkccd"></td>
    <acronym id="lkccd"></acronym>
    <table id="lkccd"><ruby id="lkccd"></ruby></table>
    <td id="lkccd"></td>
    <p id="lkccd"><strong id="lkccd"></strong></p>

    dvbbs
    聯系我 收藏本頁
    聯系我們
    論壇幫助
    dvbbs

    深圳印刷論壇世界網絡-網絡技術網絡技術 → 認識FreeBSD操作系統結構


      共有16773人關注過本帖樹形打印

    主題:認識FreeBSD操作系統結構

    帥哥喲,離線,有人找我嗎?
    止談風月
      1樓 個性首頁 | QQ | 信息 | 搜索 | 郵箱 | 主頁 | UC


    加好友 發短信 止談風月
    等級:管理員 貼子:1542 積分:16633 威望:5 精華:0 注冊:2007-3-17 22:33:59
    認識FreeBSD操作系統結構  發貼心情 Post By:2008-11-6 19:36:18

    上期和大家交流FreeBSD的安裝過程,本次和大家一起認識FreeBSD操作系統結構, 讀取這些內容,您將了解:

    ? 怎樣在FreeBSD使用 “虛擬控制臺”。

    ? 在 UNIX 中文件權限如何運作, 以及理解 FreeBSD 中的文件標志。

    ? FreeBSD 默認文件系統的架構。

    ? FreeBSD磁盤架構。

    ? 怎樣掛接或卸下文件系統。

    ? 什么是進程、守護進程、信號。

    ? 什么是shell,應當怎樣去改變登錄進入的默認環境。

    ? 什么是設備,什么是設備節點。

    ? 怎樣使用 man 手冊并取得更多資訊。

    1 虛擬控制臺和終端

    可以用多種不同的方式使用 FreeBSD, 在文本終端輸入命令是其中之一。通過使用這種方式, 您可以容易地使用 FreeBSD 來獲得 UNIX? 操作系統的靈活而強大的功能。 這一節將介紹 “終端” 和 “控制臺”, 以及如何在 FreeBSD 中使用它們。

    1.1 控制臺

    假如您沒有設置 FreeBSD 在啟動期間開啟圖形登錄界面,那么系統將在引導和啟動腳本正確運行完成后,給您一個登錄的提示。您會看到類似這樣的界面:

    Additional ABI support:.             

    Local package initialization:.       

    Additional TCP options:.             

                                         

    Fri Sep 20 13:01:06 EEST 2002        

                                         

    FreeBSD/i386 (pc3.example.org) (ttyv0)

                                         

    login:                               

    這些信息可能和您的系統稍微有點不同,但不會有很大差別。 最后兩行是我們感興趣的,理解這一行:

    FreeBSD/i386 (pc3.sky-test.net) (ttyv0)

    這一行是您剛才啟動的系統信息其中一塊, 您所看到的是一個“FreeBSD”控制臺,運行在一個Intel或兼容的x86體系架構上面。 這臺計算機的名字 (每臺 UNIX 計算機都有自己的名字) 叫 pc3.sky-test.net, 就是現在這個系統控制臺──這個 ttyv0 終端的樣子。在最后,最后一行一直保持這樣:

    login:                                

    這里, 您將可以輸入用戶名 “username” 并登錄到 FreeBSD 系統中。 接下來的一節,將介紹如何登錄系統。

    1.2 進入FreeBSD

    FreeBSD是一個多用戶多任務的系統, 換句話來說就是一個系統中可以容納許多不同的用戶,而這些用戶都可以同時在這臺機器中運行大量的程序。

    每一個多用戶系統都必須在某方面去區分 “user”, 在 FreeBSD 里 (以及 類-UNIX 操作系統), 完成這方面工作是有必要的, 因而,每位使用者在運行程序之前都必須首先 “登錄”, 而每位用戶都有與之對應的用戶名 (“username”) 和密碼 (“password”)。 FreeBSD 會在用戶進入之前作出詢問這兩項信息。

    當 FreeBSD 引導并運行完啟動腳本之后,它會給出一個提示,并要求輸入有效的用戶名:

    login:                                

    舉個例子更容易理解,我們假設您的用戶名叫 john。在提示符下輸入 john 并按 Enter,此時您應該看到這個提示 “password”:

    login: john                           

    Password:                             

    現在輸入 john的密碼并按下 Enter。輸入密碼時是 不回顯的! 不必為此擔心, 這樣做是出于安全考慮。

    假如您輸入的密碼是正確的, 這時你應該已進入 FreeBSD,并可以開始嘗試可用的命令了。

    您應該看見 MOTD 或者出現一個命令提示符 (#、$ 或 % 字符). 這表明您已成功登錄進入FreeBSD。

    1.3 多個控制臺

    在一個控制臺運行 UNIX 命令雖說很好, 但 FreeBSD 具有一次運行 多個程序的能力。 僅使用一個控制臺只會浪費 FreeBSD 同時運行多任務的能力。 而 “虛擬控制臺” 在這方面發揮強大的功能。

    FreeBSD 能配置出給您不同需求的虛擬控制臺,在鍵盤上您用一組鍵就能從各個虛擬控制臺之間切換。 各個控制臺有自己的傳輸通道,當您從各個控制臺切換時 FreeBSD 會切換到合適的鍵盤傳輸通道和顯示器傳輸通道。

    FreeBSD 各個控制臺之間可利用特殊組鍵切換并保留原有控制臺,您可這樣做: Alt-F1, Alt-F2, 一直到 Alt-F8 在FreeBSD里切換到其中一個虛擬控制臺。

    1.4 /etc/ttys文件

    FreeBSD 虛擬控制臺的默認配置為8個,但并不是硬性設置,您可以很容易設置虛擬控制臺的個數增多或減少。 虛擬控制臺的的編號和設置在 /etc/ttys 文件里。

    您可以使用 /etc/ttys 文件在 FreeBSD 下配置虛擬控制臺。文件里每一未加注釋的行都能設置一個終端或虛擬控制臺 (當行里含有 # 這個字符時不能使用) 。 FreeBSD 默認配置是配置出9個虛擬控制臺而只能啟動8個, 以下這些行是 ttyv 一起啟動:

    # name getty type status comments                    

    #                                                    

    ttyv0 "/usr/libexec/getty Pc" cons25 on secure       

    # Virtual terminals                                  

    ttyv1 "/usr/libexec/getty Pc" cons25 on secure       

    ttyv2 "/usr/libexec/getty Pc" cons25 on secure       

    ttyv3 "/usr/libexec/getty Pc" cons25 on secure       

    ttyv4 "/usr/libexec/getty Pc" cons25 on secure       

    ttyv5 "/usr/libexec/getty Pc" cons25 on secure       

    ttyv6 "/usr/libexec/getty Pc" cons25 on secure       

    ttyv7 "/usr/libexec/getty Pc" cons25 on secure       

    ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure

    如果要了解這個文件中每一列的詳細介紹, 以及虛擬控制臺上所能使用的配置,請參考聯機手冊 ttys。

    1.5 單用戶模式的控制臺

    關于 “單用戶模式”當您運行單用戶模式時只能使用一個控制臺, 沒有多個虛擬控制臺可使用。單用戶模式的控制臺同也可以在 /etc/ttys 文件設置,可在這行找到要啟動的控制臺:

    # name getty type status comments                                           

    #                                                                           

    # If console is marked "insecure", then init will ask for the root password 

    # when going to single-user mode.                                           

    console none unknown off secure                                             

    注意: 這個 console 已經注釋掉, 您可編輯這行把 secure 改為 insecure。 這樣,當用單用戶進入 FreeBSD 時, 它仍然要求提供 root 用戶的密碼。

    在把這個選項改為 insecure 的時候一定要小心, 如果您忘記了 root用戶的密碼, 進入單用戶會有點麻煩。 盡管仍然能進入單用戶模式,但如果您不熟悉它就會非常令人頭疼。



    ▓止談風月(www.zonaiam.com)

    我們的口號:沒有最高質量的產品我們無法生存

                      沒有非常的創意我們不如不干
    支持(0中立(0反對(0單帖管理 | 引用 | 回復 回到頂部
    帥哥喲,離線,有人找我嗎?
    止談風月
      2樓 個性首頁 | QQ | 信息 | 搜索 | 郵箱 | 主頁 | UC


    加好友 發短信 止談風月
    等級:管理員 貼子:1542 積分:16633 威望:5 精華:0 注冊:2007-3-17 22:33:59
      發貼心情 Post By:2008-11-6 19:36:35

    2 權限

    FreeBSD,是 BSD UNIX? 的延續, 并基于幾個關鍵的 UNIX 觀念。 從一開始就多處提到 FreeBSD 是一個多用戶的操作系統, 它能分別處理幾個同時工作的用戶所分配的毫無關聯任務。并負責為每位用戶的硬件設備、 外設、 內存和 CPU 處理時間作出合理安排。

    因為系統有能力支持多用戶, 在每一方面系統都會作出誰能讀、 寫和執行的資源權力限制。這點權限以三個八位元的方式儲存著, 一個是表示文件所屬者, 一個是表示文件所屬群組,一個是表示其他人。 這些數字以下列方式表示:

    數值 權限 目錄列表
    0 不能讀,不能寫,不能執行 ---
    1 不能讀,不能寫,可執行 --x
    2 不能讀,可寫,不能執行 -w-
    3 不能讀,可寫,可執行 -wx
    4 可讀,不能寫,不能執行 r--
    5 可讀,不能寫,可執行 r-x
    6 可讀,可寫,不能執行 rw-
    7 可讀,可寫,可執行 rwx

    使用命令的 -l (ls(1)) 參數可以顯示出文件的所屬者、 所屬組和其他人等屬性。 請看以下的例子:

    % ls -l                                                 

    total 530                                               

    -rw-r--r-- 1 root wheel 512 Sep 5 12:31 myfile          

    -rw-r--r-- 1 root wheel 512 Sep 5 12:31 otherfile       

    -rw-r--r-- 1 root wheel 7680 Sep 5 12:31 email.txt      

    ...                                                     

    使用 ls -l 在每行的開始出現了:

    -rw-r--r--                                              

    從左邊起的第一個字,告訴我們這個文件是一怎樣的文件: 普通文件?目錄?特殊設備?socket?或是設備文件? 在這個例子, - 表示一個普通文件。 接下來三個字是 rw- 是文件擁有者的權限。再接下來的三個字是 r-- 是文件所屬群組的權限。 最後三個字是 r-- 是其他人的權限。以這一個文件為例,他的權限設定是擁有者可以讀寫這個文件、群組可以讀取、其他使用者也能讀取這個文件。 根據上面的表格, 用數字表示這個文件其三部分的權限應該是 644。

    這樣很好,但系統怎樣對設備進行權限控制的? 事實上 FreeBSD 將大部份設備(的每一個設備)當作一個文件看待,用程序能打開、讀取、寫入數據就如其他的文件一樣。 而設備文件放在 /dev 目錄。

    目錄也視為一種文件,也有讀取、寫入、執行的權限。但目錄的執行權限意義并不與普通文件相同, 實際上執行權限是進入權限。當一個目錄是被標示可以執行的時, 表示可以進入它, 或者換言之, 利用 “cd” (改變當前目錄) 進入它。 此外, 這也表示有權進入目錄的用戶, 可以訪問其下的已知名字的文件 (當然目錄下的文件也受到訪問限制)。

    詳細方面,想讀取一個目錄的列表就必須設為可讀權限,同時想刪除一個已知的文件,就必須把目錄下這個文件設為可寫 和 執行權限。

    還有更多權限設定, 但是他們大多用在特殊狀況下如一個setuid的執行文件和粘貼性目錄,如果想要得知有關文件權限和如何設定的更多資訊,請看手冊chmod。

    2.1 權限的符號化表示

    Contributed by Tom Rhodes.

    權限符號,某些時候就是指符號表達式, 使用八進制的字符給目錄或文件分配權限。權限符號的使用語法是 (誰) (作用) (權限)。 看看下列數值的在那些地方所起什么樣的作用:

    選項 字母 介紹
    (誰) u 用戶
    (誰) g 所屬群體
    (誰) o 其他人
    (誰) a 所有人(“全部”)
    (作用) + 增加權限
    (作用) - 減少權限
    (作用) = 確定權限
    (權限) r 可讀
    (權限) w 可寫
    (權限) x 執行
    (權限) t 粘貼位
    (權限) s 設置UID或GID

    這些數值 chmod 以習慣標定的。 舉個例子,用以下命令阻止其他人訪問 FILE文件:

    % chmod go= FILE                            

    如果需要對文件一次進行多項變動, 則可用逗號分開, 在下面的例子中, 將去掉 FILE 文件的群體和 “全體其他用戶” 可寫權限,并為所有人增加可執行權限:

    % chmod go-w,a+x FILE             



    ▓止談風月(www.zonaiam.com)

    我們的口號:沒有最高質量的產品我們無法生存

                      沒有非常的創意我們不如不干
    支持(0中立(0反對(0單帖管理 | 引用 | 回復 回到頂部
    帥哥喲,離線,有人找我嗎?
    止談風月
      3樓 個性首頁 | QQ | 信息 | 搜索 | 郵箱 | 主頁 | UC


    加好友 發短信 止談風月
    等級:管理員 貼子:1542 積分:16633 威望:5 精華:0 注冊:2007-3-17 22:33:59
      發貼心情 Post By:2008-11-6 19:37:13

    3. FreeBSD 文件標志

    文件標志可以通過使用 chflags 工具來修改, 其用戶界面很簡單。 例如, 要在文件 file1 上應用系統禁刪標志, 應使用下述命令:

    # chflags sunlink file1                                     

    要禁用系統禁刪標志, 只需在前述命令中的 sunlink 標志前加 “no”。 例如:

    # chflags nosunlink file1                                   

    要顯示文件上的標志, 應使用命令 ls 的 -lo 參數:

    # ls -lo file1                                              

    ……                                                        

    輸出結果應類似于:

    -rw-r--r-- 1 trhodes trhodes sunlnk 0 Mar 1 05:54 file1     

    許多標志只可以由 root 用戶來增加, 而另一些,則可以由文件的所有者來增加。 建議管理員仔細閱讀 chflags 和 chflags聯機手冊,以對其加深理解。

     

    4 目錄架構

    理解 FreeBSD 的目錄層次結構對于建立對系統整體的理解十分重要的基礎。 其中,最重要的概念是根目錄, “/”。 這個目錄是系統引導時掛借的第一個目錄,它包含了用以準備多用戶操作所需的操作系統基礎組件。根目錄中也包含了用于在啟動時轉換到多用戶模式之前掛接其他文件系統所需的掛接點。

    掛接點 (mount point) 是新增的文件系統在接入現有系統時的起點位置 (通常是根目錄)。 標準的掛接點包括 /usr、 /var、 /tmp、 /mnt, 以及 /cdrom。 這些目錄通常會在 /etc/fstab 文件中提及。 /etc/fstab 是一張包含系統中各個文件系統及掛接點的表。 在 /etc/fstab 中的絕大多數文件系統都會在啟動時由 rc 腳本自動掛接,除非特別指定了 noauto 選項。

    您可以通過 hier來了解完整的文件系統層次說明。 現在, 讓我們先來看一看絕大多數的常見的目錄以供參考。

    目錄 介紹
    / 文件系統的根目錄。
    /bin/ 在單個用戶和多用戶環境下的基本工具目錄。
    /boot/ 在操作系統在啟動加載期間所用的程序和配置。
    /boot/defaults/ 默認每步引導啟動的配置內容,請查閱loader.conf。
    /dev/ 設備節點,請查閱 intro。
    /etc/ 系統啟動的配置和腳本。
    /etc/defaults/ 系統默認的啟動配置和腳本,請參考 rc 。
    /etc/mail/ 關系到郵件系統運作的配置, 請參考 sendmail。
    /etc/namedb/ named 配置文件,請參考 named。
    /etc/periodic/ 每天、每星期和每月周期性地運行的腳本, 請通過cron查閱periodic。
    /etc/ppp/ ppp配置文件,請查閱ppp。
    /mnt/ 由管理員習慣使用掛接點的臨時空目錄。
    /proc/ 運行中的文件系統,請參閱 procfs 和 mount_procfs。
    /rescue/ 用于緊急恢復的一組靜態聯編的程序; 參見 rescue。
    /root/ root用戶的Home(主)目錄。
    /sbin/ 在單個用戶和多用戶環境下的存放系統程序和管理所需的基本實用目錄。
    /tmp/ 臨時文件。 /tmp 目錄中的內容,一般不會在系統重新啟動之后保留。 通常會將基于內存的文件系統掛在 /tmp 上。 這一工作可以用一系列 tmpmfs 相關的 rc.conf 變量來自動完成。 (或者, 也可以在 /etc/fstab 增加對應項; 參見 mdmfs)。
    /usr/ 存放大多數用戶的應用軟件。
    /usr/bin/ 存放實用命令,程序設計工具,和應用軟件。
    /usr/include/ 存放標準 C include 文件.
    /usr/lib/ 存放庫文件。
    /usr/libdata/ 存放各種實用工具的數據文件。
    /usr/libexec/ 存放系統實用或后臺程序 (從另外的程序啟動執行)。
    /usr/local/ 存放本地執行文件, 庫文件等等, 同時也是 FreeBSD ports 安裝的默認安裝目錄。 /usr/local 在 /usr 中的目錄布局大體相同,請查閱 hier。 但 man 目錄例外, 它們是直接放在 /usr/local 而不是 /usr/local/share 下的, 而 ports 說明文檔在 share/doc/port。
    /usr/obj/ 通過聯編 /usr/src 得到的目標文件。
    /usr/ports/ 存放 FreeBSD 的 Ports Collection (可選)。
    /usr/sbin/ 存放系統后臺程序 和 系統工具 (由用戶執行)。
    /usr/share/ 存放架構獨立的文件。
    /usr/src/ 存放 BSD 或者本地源碼文件。
    /usr/X11R6/ 存放 X11R6 可執行文件、 庫文件、 配置文件等的目錄(可選)。
    /var/ 多用途日志、 臨時或短期存放的, 以及打印假脫機系統文件。有時會將基于內存的文件系統掛在 /var 上。 這一工作可以通過在 rc.conf 中設置一系列 varmfs 變量 (或在 /etc/fstab 中加入一行配置; 參見 mdmfs) 來完成。
    /var/log/ 存放各種的系統記錄文件。
    /var/mail/ 存放用戶mailbox(一種郵件存放格式)文件。
    /var/spool/ 各種打印機和郵件系統spooling(回環)的目錄。
    /var/tmp/ 臨時文件。 這些文件在系統重新啟動時通常會保留, 除非 /var 是一個內存中的文件系統。
    /var/yp/ NIS 映射。


    ▓止談風月(www.zonaiam.com)

    我們的口號:沒有最高質量的產品我們無法生存

                      沒有非常的創意我們不如不干
    支持(0中立(0反對(0單帖管理 | 引用 | 回復 回到頂部
    帥哥喲,離線,有人找我嗎?
    止談風月
      4樓 個性首頁 | QQ | 信息 | 搜索 | 郵箱 | 主頁 | UC


    加好友 發短信 止談風月
    等級:管理員 貼子:1542 積分:16633 威望:5 精華:0 注冊:2007-3-17 22:33:59
      發貼心情 Post By:2008-11-6 19:37:44

    5 磁盤組織

    FreeBSD 查找文件的最小單位是文件名。 而文件名區分大小寫,這就意味著 readme.txt 和 README.TXT 是兩個不相同的文件。 FreeBSD 不憑文件擴展名 (.txt) 去識別這個文件是 程序、 文檔, 或是其他格式的數據。

    各種文件存放在目錄里。 一個目錄可以含有許許多多的文件,允許含有其他的目錄,同樣允許您添加不同層次的目錄在里面。 可以輕松地組織您的數據。

    可以通過文件或目錄名來指定文件和目錄, 在目錄名后面加上一個斜線, /, 如果需要的話。 如果您有一個名為 foo 的目錄, 它包含另一個目錄 bar, 后者包括一個叫 readme.txt 的文件, 則全名, 或者說到文件的 路徑 就是 foo/bar/readme.txt。

    在文件系統里目錄和文件的作用是存儲數據。 每一個文件系統都有且只有一個頂級目錄 根目錄, 這個根目錄則可以容納其他目錄。

    您也許在其他的一些操作系統碰到類似這里的情況, 當然也有不同的情況。 舉些例子, MS-DOS? 是用 \ 分隔文件名或目錄名, 而 Mac OS? 則使用:。

    FreeBSD在路徑方面不使用驅動器名符號或驅動器名稱, 在FreeBSD里您不能這樣使用: c:/foo/bar/readme.txt。

    為了代替(驅動器名符號), 一個文件系統會指定 根 文件系統,根文件系統的根目錄是 /。 其他每一個文件系統 掛接在根文件系統下。 無論有多少磁盤在FreeBSD 系統里,每個磁盤都會以目錄的方式加上。

    假設您有三個文件系統, 名為 A、 B 和 C。 每個文件系統有一個根目錄,而各自含有兩個其他的目錄, 名為 A1, A2 ( B1, B2 和 C1, C2)。

    看看 A 這個根文件系統。 假如您用 ls 命令來查看這個目錄您會見到兩個子目錄: A1 和 A2。 這個目錄樹是這個樣子:

    一個文件系統必須掛到另一個文件系統的某一目錄, 所以現在假設把 B 文件系統掛到 A1目錄, 那 B 根目錄因此代替 了 A1,而顯示出 B 目錄(的內容):

    無論B1 或 B2 目錄在那里而延伸出來的路徑必須為 /A1/B1 或 /A1/B2。 而在 /A1 里原有的文件會臨時隱藏。 想這些文件再出現把 B 從 A 掛接釋放。

    把 B 掛接在 A2 那圖表的樣子就是這樣子:

    這個路徑分別是 /A2/B1 和 /A2/B2 。

    文件系統能把頂部掛接上另一個文件系統上。 繼續這個例子, 把 C 文件系統掛接在 B 文件系統里的 B1 目錄, 排列如下:

    或者把 C 文件系統掛接在 A 文件系統里的A1目錄:

    假如您熟悉 MS-DOS 并知道 join 命令, 盡管不相同,其實是相似的。

    這方面不是普通知識而且涉及到您自己所關心的, 當您安裝FreeBSD并在以后添加新磁盤時,您必須知到該如何新建文件系統和掛接上。

    (FreeBSD系統)它有一個主要的根文件系統, 不需要另外新建立,但當需要手工處理時,這是一個有用的知識。

    多樣性文件系統的益處

    ? 不同的文件系統可用不同的 掛接參數。 舉些例子, 仔細想一下,根文件系統能用只讀的方式掛接上, 防止不經意刪除或編輯到一個危險的文件。把各用戶能寫入的文件系統分開, 像/home這樣,由另外的文件系統分別用 nosuid 參數掛接,這個參數防止 suid/guid 在執行這個文件系統中的文件時生效, 從而緩解了一些安全問題。

    ? FreeBSD 對一個文件系統的文件布局自動優化, 并依賴文件系統的使用習慣。所以一個文件系統應有一個針對大量小型文件頻繁寫入的優化,另外大型文件系統的優化也應落實。

    ? FreeBSD 的文件系統能夠在斷電時盡可能避免損失。 然而,在關鍵點時的電源失效仍然可能會破壞文件系統的結構。 將您的文件系統分成多個有助于分散風險,并方便備份和恢復。

    統一文件系統的益處

    ? 文件系統是固定大小的。 當安裝FreeBSD時新建一個文件系統并設定一個大小,您會在稍后發覺到必須去建一個大的分區。 如果配置不當, 則需要備份、 重新創建文件系統,然后再恢復數據。

    重要: FreeBSD 提供了 growfs 命令。這使得能夠實時地調整文件系統的大小, 因而不再受其限制。

    文件系統是和分區一一對應的。 這里的分區和常用的術語分區 (例如, MS-DOS 分區) 的意思并不一樣, 這是由于 FreeBSD 的 UNIX? 傳統造成的。 每一個分區使用一個從 a 到 h 的字母來表示。每個分區只能包含一個文件系統,這意味著文件系統通?梢杂伤鼈冊谖募到y目錄結構中的掛接點, 或對應的分區字母來表示。

    FreeBSD 的 交換分區 也需要使用磁盤空間。 交換分區是給 FreeBSD 作 虛擬內存 使用的,這樣能令您的計算機有更多的內存可使用, 當FreeBSD在運行而內存不夠的時候,它會把其他一些可轉移的數據轉移到交換分區, 空出內存的位置以供使用。

    某些 partitions 的用途是確定的。

    分區 約定
    a 通常指定為根文件系統
    b 通常指定為交換分區
    c 通常它和所在的 slice 大小相同。 c 分區上工作時必定會影響到事整個 slice (舉個例子,壞塊掃描器)。您通常不愿意在這個partition建立文件系統。
    d 分區 d 曾經有特殊的含義,不過這種意義在現時的系統上已不再適用, 因此 d 可以和任何其它普通的分區一樣使用了。

    每一個包含了文件系統的分區被保存在 FreeBSD 稱為 slice 的部分上。 Slice 是一個 FreeBSD 術語, 通常被叫做分區, 再次強調, 這是由于 FreeBSD 的 UNIX 背景。 Slices 有其編號, 從1到4。

    Slice 編號在設備名后面, 并有一個 s 前綴, 從 1 開始。因此 “da0s1” 是第一個 SCSI 驅動器的第一個 slice。 每個磁盤上只能有四個物理的 slices, 但您可以在物理 slice 中使用適當的類型來創建邏輯 slice。 這些擴展 slice 編號從 5 開始, 因此 “ad0s5” 是第一個 IDE 磁盤中的第一個 擴展 slice。 文件系統所使用的設備應該占滿 slice。

    Slices, “專項指定” 物理驅動器, 和其他驅動器都包含partitions, 那幾個的partitions都是用字母從 a 到 h來標定的,而這些字母都在驅動器名字之后,所以 “da0a” 是指首個da設備的 a partition, 而那個就是 “專項指定”。 “ad1s3e” 是指IDE磁盤第三個slice的第五個partition。

    從在系統里的首個IDE磁盤圖表可以顯示出FreeBSD的見解。假設磁盤大小為4 GB,它里面包含了兩個2 GB 大小的slices (但在MS-DOS叫partitions)。 首個slice是一個MS-DOS磁盤叫C:,而第二個slice是FreeBSD配置好的slice。 FreeBSD配置好的slice有三個partitions和另一個交換分區。

    這三個partitions各自控制一個文件系統。 partitiona 用于根文件系統, partitione 用于 /var 目錄層, partitionf 用于 /usr 目錄層。



    ▓止談風月(www.zonaiam.com)

    我們的口號:沒有最高質量的產品我們無法生存

                      沒有非常的創意我們不如不干
    支持(0中立(0反對(0單帖管理 | 引用 | 回復 回到頂部
    帥哥喲,離線,有人找我嗎?
    止談風月
      5樓 個性首頁 | QQ | 信息 | 搜索 | 郵箱 | 主頁 | UC


    加好友 發短信 止談風月
    等級:管理員 貼子:1542 積分:16633 威望:5 精華:0 注冊:2007-3-17 22:33:59
      發貼心情 Post By:2008-11-6 19:38:29

    6 文件系統的掛接和卸下

     這種文件系統就像一棵樹那樣用/確立根部,是比較理想的文件系統。 而/dev、 /usr和其他目錄 就是根目錄的分枝, 另外這些目錄可以再分枝,例如/usr/local。

    應該考慮給某些目錄一些空間從而分散文件系統。 /var 之下包含目錄 log/,目錄spool/,和不同類型的臨時文件,很可能把它塞滿。 把什么都塞進根文件系統不是一個好主意,好的做法是應該把 /var 從 /分離出去。

    另一個要考慮的是,給物理設備或虛擬磁盤這些自帶空間的文件系統確定目錄結構樹。 例如 網絡文件系統 或光驅的掛接。

    6.1 fstab 文件

    在 引導過程 期間, 自動掛上/etc/fstab所列出的文件系統。 (除非他們注明為noauto 選項)。

     /etc/fstab 文件包含的各行的列表格式如下:

    device /mount-point fstype options dumpfreq passno         

    device:

    mount-point

    目錄 (目錄必須存在), 用在那個掛接上的文件系統上。

    fstype

    文件系統類型,請通過mount查閱。默認的FreeBSD文件系統類型是ufs。

    options

    設為可讀寫文件系統的rw選項, 或設為只讀文件系統的ro選項, 或其他一些選項,可隨意選一個。 一個常用的選項 noauto 用在不需在引導過程期間掛接的文件系統。

    dumpfreq

    dump 使用這項去決定那個 文件系統必須移貯。假如缺少這項,默認的數值為0。

    passno

    這一項決定文件系統的檢查順序, 文件系統想跳過檢查應將passno設為0。 根文件系統(那個是在每方面開始之前必須檢查的) 應該將它的 passno 設為1, 其他文件系統的 passno 必須把數值設到大于1。假如多個文件系統的passno的值相同, 那么 fsck 在允許的情況下將嘗試并行地去檢查文件系統。

    請參閱 fstab 聯機手冊,以獲得關于 /etc/fstab 文件格式,以及其中所包含的選項的進一步信息。

    6.2 mount 命令

    這個 mount命令是掛接文件系統的基本運用。

    使用最多的基本格式:

    # mount device mountpoint                      

    它的選項非常多,而mount 手冊同樣提及, 但常用的都在這里:

    掛接的各種選項

    -a

    掛接/etc/fstab里所有列出的文件系統。 除非標記為 “noauto” 或作了排除在外的 -t 類型標記,或者在這之前已掛上。

    -d

    除了實際上系統調用以外,可以完成任何事情,這個選項是和 -v參數一起連在一塊使用.

    -f

    強制去掛接一個未知的文件系統(會有危險),或當把一個文件系統掛接狀態由可讀寫降為只讀時,強制撤消可寫通道。

    -r

    以只讀方式掛接文件系統。 這和在指定了 -o 選項配合 ro (對于 FreeBSD 5.2 之前的版本來說, 則是 rdonly) 參數的效果是一樣的。

    -t fstype

    根據給出的文件系統類型掛接文件系統, 假如給于-a選項,僅掛接這個類型的文件系統。

    “ufs” 是默認的文件系統類型。

    -u

    在文件系統上修改掛接選項。

    -v

    版本模式。

    -w

    以可讀寫方式掛接文件系統。

    The -o 選項采用一個逗號分開以下多個選項:

    noexec

    不允許文件系統上的二進制程序執行。這也是一個有用的安全選項。

    nosuid

    不允許文件系統上的 setuid 或 setgid 標記生效。這也是一個有用的安全選項。

    6.3 umount 命令

    umount 命令同樣采用一個參數、一個掛接點、一個設備名。 或采用-a選項,又或采用-A選項。

    所有格式都可采用 -f 去強行卸下, 或采用-v 用那適當的版本。 但警告,采用 -f并不是一個好主意,強行卸下文件系統可能損壞計算機或破壞文件系統上的數據。

    -a 和 -A 會卸下所有已掛接的文件系, 可能通過-t后面列出的文件系統進行修改, 但無論如何,-A都不會嘗試去卸下根文件系統。



    ▓止談風月(www.zonaiam.com)

    我們的口號:沒有最高質量的產品我們無法生存

                      沒有非常的創意我們不如不干
    支持(0中立(0反對(0單帖管理 | 引用 | 回復 回到頂部
    帥哥喲,離線,有人找我嗎?
    止談風月
      6樓 個性首頁 | QQ | 信息 | 搜索 | 郵箱 | 主頁 | UC


    加好友 發短信 止談風月
    等級:管理員 貼子:1542 積分:16633 威望:5 精華:0 注冊:2007-3-17 22:33:59
      發貼心情 Post By:2008-11-6 19:39:27

    7 進程

    FreeBSD 是一個多任務操作系統。 這就意味著好像一次可以運行一個以上的程序。每個占用一定時間運行的程序就叫process。每個程序啟動運行時至少有一個新進程,并在所有運行的時候保持有一個系統進程的編號,而一直由系統對它監管。

    每個進程用來標識的一個編號就叫 進程 ID, 或叫 PID。 而且,就像文件那樣,每個進程也有所屬用戶和所屬群體。所屬用戶和所屬群體使用在這方面:確定這個進程可以打開那些文件和那些設備,從而在初期使用文件的權限。 多數的進程都同樣有一個父進程, 而進程是依靠父進程來啟動的。例如,假如您把命令輸入到shell里那shell是一個進程,而您運行的各個命令同樣是進程,那么,shell就是您各個運行進程的父進程。 而這方面有一個例外的進程就叫init。 init始終是首個進程,,所以他的PID始終是1, 而init在FreeBSD起動時由內核自動啟動。

    在系統上,有兩個命令對進程觀察非常有用:ps 和 top。 這個ps命令作用是觀察當前運行進程的狀態,顯示他們的PID,使用了多少內存,它們啟動的命令行。 而top命令則是顯示所有運行進程,并在以秒計的短時內更新數據。您能交互式的觀察您計算機的工作。

    默認情況下, ps僅顯示出您自己所運行的命令。 例如:

    % ps                                                                       

    PID TT STAT TIME COMMAND                                                   

    298 p0 Ss 0:01.10 tcsh                                                     

    7078 p0 S 2:40.88 xemacs mdoc.xsl (xemacs-21.1.14)                         

    37393 p0 I 0:03.11 xemacs freebsd.dsl (xemacs-21.1.14)                     

    48630 p0 S 2:50.89 /usr/local/lib/netscape-linux/navigator-linux-4.77.bi   

    48730 p0 IW 0:00.00 (dns helper) (navigator-linux-)                        

    72210 p0 R+ 0:00.00 ps                                                     

    390 p1 Is 0:01.14 tcsh                                                     

    7059 p2 Is+ 1:36.18 /usr/local/bin/mutt -y                                 

    6688 p3 IWs 0:00.00 tcsh                                                   

    10735 p4 IWs 0:00.00 tcsh                                                  

    20256 p5 IWs 0:00.00 tcsh                                                  

    262 v0 IWs 0:00.00 -tcsh (tcsh)                                            

    270 v0 IW+ 0:00.00 /bin/sh /usr/X11R6/bin/startx -- -bpp 16                

    280 v0 IW+ 0:00.00 xinit /home/nik/.xinitrc -- -bpp 16                     

    284 v0 IW 0:00.00 /bin/sh /home/nik/.xinitrc                               

    285 v0 S 0:38.45 /usr/X11R6/bin/sawfish                                    



    ▓止談風月(www.zonaiam.com)

    我們的口號:沒有最高質量的產品我們無法生存

                      沒有非常的創意我們不如不干
    支持(0中立(0反對(0單帖管理 | 引用 | 回復 回到頂部
    帥哥喲,離線,有人找我嗎?
    止談風月
      7樓 個性首頁 | QQ | 信息 | 搜索 | 郵箱 | 主頁 | UC


    加好友 發短信 止談風月
    等級:管理員 貼子:1542 積分:16633 威望:5 精華:0 注冊:2007-3-17 22:33:59
      發貼心情 Post By:2008-11-6 19:39:50

    8 Shells

    在FreeBSD里,每日有一大堆工作是在命令行的界面完成的,那就叫做shell。一個shell的主要功能就是從輸入是取得命令然后去執行他。許多的shell同樣能幫我們完成內建的每日功能,例如:文件管理、文件尋找、命令行編輯、宏指令和環境變量。FreeBSD內含了一些shell,例如:sh、Bourne Shell、 tcsh和改良過的C-shell。另外也有些shell也可在FreeBSD的Ports得到,例如:zsh和bash。

    您想使用那一種shell取決于您的喜好, 假如您是C程序設計師,您可能選擇一個C-like shell例如tcsh。假如您是從Linux過來的或是一個命令行的新手,您可能會試一下bash。這一點告訴我們每一個shell都有各自的特性,可能適用于您的工作環境,也可能不適用于您的工作環境。

    每個shell都有一個共通點就是文件名補全。 輸入命令或文件名的前幾個字,然后按Tab鍵,就能靠shell的自動補全功能得出命令或文件名。這里有一個例子,假設您有兩個文件叫 foobar 和foo.bar,而您想刪除 foo.bar,可這樣在鍵盤上輸入 rm fo[Tab].[Tab]。

    那么shell就會輸出 rm foo[BEEP].bar。

    這個[BEEP] 是這控制臺鈴聲,那個是告訴我們它不能完成文件名補全,因為有多個文件名符合。 foobar 和 foo.bar 都是以 fo開頭, 它只可以補全到 foo。 輸入 .并再按一次 Tab,shell才把其余的文件名全部顯示出來。

    另一個特點就是shell利用環境變量運行。環境變量是貯存在shell環境空間上相對應的鍵和可變值,這個空間能夠補程序從shell里讀出,而且包含了許多程序的配置。這個一個常用環境變量列和其含義的列表:

    變量 說明
    USER 當前登錄進入的用戶名。
    PATH 搜索程序路徑,以兩點的冒號分隔開。
    DISPLAY 假如有這個變量的話,就是X11顯示器的網絡名稱。
    SHELL 當前所用的shell。
    TERM 用戶終端的名字,通常用在確定終端的能力。
    TERMCAP 各種終端功能所用終端分離編碼的基本數據項目。
    OSTYPE 操作系統類型,默認是FreeBSD。
    MACHTYPE 是指系統上運行的CPU體系結構。
    EDITOR 用戶首選的文本編輯器。
    PAGER 用戶首選的文本頁面調度程序 。
    MANPATH 搜索聯機手冊路徑,以兩點的冒號分隔開。

    不同的shell設置環境變量也不相同。舉個例子, 在如tcsh 和 csh這樣的C-Style shell, 您必須使用setenv去設置環境變量。 而在如sh和bash這樣的Bourne shell, 您必須使用export去設置當前環境變量。 再舉個例子,要去設置或改變EDITOR環境變量, 在csh或tcsh下將EDITOR設為 /usr/local/bin/emacs:

    % setenv EDITOR /usr/local/bin/emacs                       

    而在Bourne shell下,則是:

    % export EDITOR="/usr/local/bin/emacs"                     

    您也可以在命令行上加一個$字符在變量之前從而取得環境變量。舉個例子,用echo $TERM 就會顯示出$TERM的設定值, 其實就是shell取得$TERM并傳給echo來顯示的。

    shell里有許多特別的字符代表著特別的資料,我們把叫做meta-characters。最常用的就是*字符,它可代表文件名的任何字符。這些特別字符應用到文件名全域方面。假如,輸入 echo *和輸入 ls的效果是相同的,其實就是 shell 取得了全部符合 *的文件名,并傳給 echo 在命令行下顯示出來。

    為了防止shell去分析這些特別字符, 我們可在它之前加一個 \字符去說明它只是普通字符。 echo $TERM就會顯示出您的終端情況, 而 echo \$TERM 就會顯示出 $TERM 這幾個字。

    8.1 改變您用的Shell

    改變您的Shell的最簡單方法是使用 chsh 命令。 執行 chsh 將根據您設定的EDITOR 環境變量進入到那個編輯器,假如沒有設定,就會進入vi編輯器。請改變“Shell:”這行對應值。

    您可使用chsh 的-s選項,這樣就能設置您的shell卻又不用編輯器。假如您想把shell改為bash 可用下面的技巧。

    % chsh -s /usr/local/bin/bash                             

    注意: 您使用的shells必須 在/etc/shells 文件里列出。 假如您從 ports里裝一個shell, 那就不用做這步了。假如您手工裝一個shell,那就要手工添加進去。

    舉個例了子,假如您手工把 bash裝到 /usr/local/bin里,您還要進行這一步:

    # echo "/usr/local/bin/bash" >> /etc/shells               

    然后運行chsh。



    ▓止談風月(www.zonaiam.com)

    我們的口號:沒有最高質量的產品我們無法生存

                      沒有非常的創意我們不如不干
    支持(0中立(0反對(0單帖管理 | 引用 | 回復 回到頂部
    帥哥喲,離線,有人找我嗎?
    止談風月
      8樓 個性首頁 | QQ | 信息 | 搜索 | 郵箱 | 主頁 | UC


    加好友 發短信 止談風月
    等級:管理員 貼子:1542 積分:16633 威望:5 精華:0 注冊:2007-3-17 22:33:59
      發貼心情 Post By:2008-11-6 19:40:15

    9 設備和設備節點

    在一個系統里,硬件描述通常用法就是一個設備對應一個術語,包括磁盤、打印機、顯卡和鍵盤。當 FreeBSD 啟動過程中,大多數的設備都能探測到并顯示出來, 您也可以查閱/var/run/dmesg.boot, 引導時所有信息都在里面。

    例如, acd0 就是 首個 IDE 光盤設備, 而 kbd0 則代表鍵盤。

    在UNIX?操作系統里,大多數設備存在的特殊訪問文件就是叫做設備節點,他們都定位在/dev目錄里。

    9.1 建立設備節點

    當在系統中添加新設備或將附加設備的支持編譯進內核之后,都必須為其建立設備節點。

    9.2 DEVFS (DEVice 文件系統)

     這個設備文件系統, 或叫 DEVFS,為內核的設備命名在整體文件系統命名里提供通道, 并不是建立或更改設備節點, DEVFS只是為您的特別文件系統進行維護。

    10 聯機手冊

    最詳細的使用說明文檔莫過于 FreeBSD 里的聯機手冊了。幾乎每一個程序都會附上一份簡短說明, 以介紹這個程序的的基本功能以及參數的用法。我們能通過 man 命令來閱讀這些說明, 而使用 man 命令卻是簡單的事情:

    % man command                   

    command 就是您要了解的命令命稱。 舉個例子,想了解 ls 命令就輸入:

    % man ls                        



    ▓止談風月(www.zonaiam.com)

    我們的口號:沒有最高質量的產品我們無法生存

                      沒有非常的創意我們不如不干
    支持(0中立(0反對(0單帖管理 | 引用 | 回復 回到頂部

    返回版面帖子列表

    認識FreeBSD操作系統結構








    簽名  

    本站聯系電話:0755-25925567
    成 人 网 站国产免费观看

    <p id="lkccd"></p>

      <td id="lkccd"></td>
      <acronym id="lkccd"></acronym>
      <table id="lkccd"><ruby id="lkccd"></ruby></table>
      <td id="lkccd"></td>
      <p id="lkccd"><strong id="lkccd"></strong></p>