【Linux學(xué)習(xí)記錄】Linux系統(tǒng)架構(gòu)與目錄解析讀書筆記_第1至第6章
第一章 Linux啟動流程圖
系統(tǒng)使用mount可產(chǎn)生根目錄
加載示意圖
根目錄:一個目錄中最基本的地址代號,理解為最頂層的目錄。
FHS:FileSystem?Hierarchy?Standard?Group?定義Linux標(biāo)準(zhǔn)的目錄結(jié)構(gòu)
第二章?不同啟動模式的目錄
啟動方式:本地啟動、網(wǎng)絡(luò)啟動
本地啟動與網(wǎng)絡(luò)啟動是由不同的應(yīng)用程序所支持的
本地啟動由GRUB;網(wǎng)絡(luò)啟動由PXE及TFTP
本地啟動目錄?/boot???????????存儲很多有關(guān)啟動時(shí)的信息及所需文件
文件:config-2.6.20**.fc7xen?系統(tǒng)kernel的配置文件
??????Initrd?:initral?RamDisk?系統(tǒng)啟動時(shí)的模塊供應(yīng)主要來源
??????System.map?系統(tǒng)kernel中變量的對應(yīng)表?????Symbols的索引文件:變量或函數(shù)名
??????Vmlinuz?實(shí)際系統(tǒng)所使用的kernel
文件夾:
???????Grub?存放grub在啟動所需要的畫面、配置及各階段的文件
選擇OS的文件?/boot/grub/grub.conf
理解:boot啟動過程中的根目錄為“/boot”?而啟動完成后的根目錄為“/”
/proc/kallsyms?導(dǎo)出/可用內(nèi)核變量或函數(shù)
Kernel?OS的核心程序
Initrd?全名?initial?ram?disk?啟動系統(tǒng)所需要加載的虛擬磁盤
kernel、initrd、System?Module加載順序:kernel-->initrd-->System?Module???(在initrd文件中有執(zhí)行加載模塊的命令)
Initrd目的就是在kernel加載系統(tǒng)認(rèn)識cpu、內(nèi)存信息等后,像接力賽一樣讓系統(tǒng)進(jìn)一步指導(dǎo)“還有那些硬件是啟動所必須使用到的”
遠(yuǎn)程啟動??/tftpboot---->須安裝tftp-server組建才會產(chǎn)生
在client上使用tftp命令時(shí)?TFTP會自動以/tftpboot目錄作為主目錄
??????????????????????發(fā)送DHCP請求
????????????????????????提供網(wǎng)絡(luò)數(shù)據(jù)及下臺主機(jī)地址
???????????????????????????發(fā)出使用tftp請求
???????????????????????????直接提供啟動菜單
?????????????????????????????選擇啟動項(xiàng)目
?????????
??????????????????????????????提供適當(dāng)?shù)膋ernel及initrd
第三章??內(nèi)核空間與用戶空間的橋梁?VFS
在initrd階段?VFS被啟動
空間劃分的作用:1.將系統(tǒng)與用戶隔離開?2.?速度??cat?/proc/iomem查看kernel地址
用戶空間???????????System?Call???????內(nèi)核空間
虛擬文件系統(tǒng)?如:/proc?/sys?/tmp等。有些OS不會直接替用戶預(yù)先掛在這類目錄
設(shè)備文件目錄?/dev
???由Linux的devfs所建立,已被UDEV取代?目的用以存放系統(tǒng)中device的相關(guān)信息,無論使用與否,只要有可能使用到,就會在/dev中建立一個對應(yīng)的設(shè)備文件
/dev/ram0?第一個ramdisk,一般都是用這一設(shè)備作為initrd的ramdisk,當(dāng)然進(jìn)入系統(tǒng)后就已經(jīng)釋放出來
/dev/fd0??Floppy磁盤驅(qū)動器的設(shè)備文件
/dev/hda??IDE硬盤設(shè)備文件
/dev/bus???根據(jù)不同的bus將硬件分類
/dev/disk???存放連接到主機(jī)的所有硬盤信息
/dev/input???存放輸入設(shè)備目錄,主要針對鍵盤和鼠標(biāo)
/dev/net?????僅一個tun文件,建立VPN的Tunnel
/dev/shm?????shm是Linux專門用于分享內(nèi)存的API,方便用戶讀寫數(shù)據(jù)到內(nèi)存?share?memory
/proc?????程序與系統(tǒng)設(shè)置目錄????????由procfs產(chǎn)生
Linux為保障系統(tǒng)的穩(wěn)定度?不論是initrd?rescumode或是Linux均無法讀出?/proc
/proc?對系統(tǒng)而言,主要功能有:
????????????????????????????1.?整理系統(tǒng)內(nèi)部的信息?
????????????????????????????2.?存放主機(jī)的硬件信息?
????????????????????????????3.?調(diào)整系統(tǒng)執(zhí)行時(shí)的參數(shù)??
????????????????????????????4.?檢查及修改網(wǎng)絡(luò)和主機(jī)的參數(shù)??
????????????????????????????5.?檢查及調(diào)整系統(tǒng)的內(nèi)存和性能
基本程序文件:
/proc/cpuinfo?????代表cpu的硬件信息?
/proc/kmsg???????在OS尚未進(jìn)入前的log,進(jìn)入后將其全部寫入/var/log/message
/proc/meminfo????系統(tǒng)的內(nèi)存信息
/proc/modules?????目前使用的模塊(未整理)??lsmod?整理后的
/proc/partitions?????實(shí)時(shí)呈現(xiàn)系統(tǒng)目前所看得到的分區(qū)
??
發(fā)展趨勢:?/proc?被?/sys取代
/proc/sockstat??????查看系統(tǒng)socket的狀態(tài)
重啟:reboot?或?init?6
第四章??應(yīng)用程序目錄
/bin?????存放“所有用戶”必要且共同使用的執(zhí)行文件
/sbin????只有root或服務(wù)程序等級才可使用的執(zhí)行文件
用戶主目錄下的“.bash_profile”?用戶的環(huán)境變量
/lib?????函數(shù)庫目錄:共享的軟件庫
????????一般屬于系統(tǒng)kernel啟動所使用的函數(shù)庫,或執(zhí)行一些在/bin?或/sbin中的命令時(shí)會使用到的函數(shù)庫。?其他開發(fā)或軟件用的的放到?/usr/lib下
/lib/iptables?????iptables軟件要使用到的函數(shù)庫
/lib/modules?????系統(tǒng)可支持的硬件模塊文件
/etc/passwd??/etc/shadow?????用戶登錄密碼
/lost+found??????還原損壞文件目錄
/opt????????????額外安裝軟件目錄??option
/usr????????????用戶共享目錄:可共享的目錄;只可讀取文件
/usr/bin????/usr/sbin?與/bin?/sbin區(qū)別于:前兩個均為非必要性的文件,比較偏應(yīng)用
/usr/include??????用戶會使用到的C語言頭文件
/usr/kerberos??????一種安全機(jī)制
/usr/lib??????????不希望直接被用戶或shell?script所使用的文件
第五章??用戶的主目錄
主目錄是從用戶一開始登錄系統(tǒng)后即被允許在該目錄下做任何事情的目錄
當(dāng)管理員新增用戶時(shí),系統(tǒng)會自動為該用戶新建一個主目錄,取名方式就是以新增用戶名作為該目錄的名字。
Useradd?jcracker???//新增用戶jcracker
對新建主目錄,其默認(rèn)文件跟/etc/skel配置相關(guān)?將其復(fù)制且改變所有者與用戶組
將用戶主目錄搬至?/home平級:1.建立home1??2.?新增用戶paul時(shí)?增加指定主目錄參數(shù)(useradd?paul?-d?/home1)
.bashrc與.bashrc_profile是用戶登錄時(shí)所使用的shell環(huán)境的配置文件
以fedora為例?用戶登錄:
Mingetty(提供tty界面)-->login(提供登陸畫面)-->bash(提供用戶操作界面)?-->bashrc(提供bash環(huán)境中所需使用的別名)-->bash_profile(提供bash環(huán)境所需變量)
若用戶希望在登錄中自動完成一些程序?可以利用bashrc與bashrc_profile文件
Bashrc與bashrc_profile為用戶提供一個彈性空間,讓用戶自定義一些流程,在系統(tǒng)登陸后可自動運(yùn)作。
.bash_history?記錄用戶曾輸入過的所有命令?最多1000條??注意:不是實(shí)時(shí)的記錄文件,而是注銷時(shí)由系統(tǒng)一次性寫入,因此只能查詢上次登陸使用過的命令
使用history可以查看當(dāng)此使用過的命令
.bash_logout?注銷自動化文件
第六章??系統(tǒng)配置目錄
/etc/inittab????啟動時(shí)系統(tǒng)所需要的第一個配置文件
/etc/xinetd.conf??xinetd的主配置文件
/etc/anacrontab 屬于一種計(jì)劃任務(wù)軟件的配置文件
/etc/exports?????NFS服務(wù)的主要配置文件
/etc/group?/etc/gshadow?/etc/passwd?賬號管理
Xinet.d?是一個管理多個服務(wù)的daemon
/etc/uso.conf.d?將系統(tǒng)中的一些函數(shù)庫預(yù)先存放到內(nèi)存中,提供速度
/etc/rc.d????定義在每一個執(zhí)行階段必須要執(zhí)行哪些系統(tǒng)服務(wù)或程序
/etc/rc.d/rc.sysinit?系統(tǒng)一開始啟動時(shí)所遇到的第一個文件
/etc/rc.d/rcX.d????X是當(dāng)初啟動配置的inidefault值??若為3?則?/etc/rc.d/rc4.d