linux-鳥哥私房菜學習筆記
linux-開機流程中的BIOS與UEFI開機自檢程式
作業系統會控制所有的硬體,並提供核心功能。
但是,作業系統也是軟體,我們的計算機是如何識別這個作業系統軟體,並執行它的呢?
明明開機時我的計算機還有沒任何軟體,它是如何識別作業系統的呢?
基本上,目前的主機系統在載入硬體驅動方面的程式,主要有早起的BIOS與新的UEFI兩種機制。
BIOS就是在開機時,計算機會區執行的第一個程式。BIOS去找到計算機裡能夠開機的硬碟,並且到該硬碟裡去讀取第一個扇區的MBR位置。這個MBR僅有446bytes的硬碟容量,裡面存放了最基本的開機管理程式。此時,BIOS工作完成,接下來。就是MBR裡的開機管理程式的工作了。
這個開機管理程式的目的是載入(load)核心檔案。開機管理程式是安裝的作業系統自帶的,當載入完核心檔案時,開機管理程式的任務也完成了。之後的工作就由作業系統來負責了!
簡單的說,整個開機流程為:
1. BIOS:開機主動執行的程式,會找到第一個可開機的裝置;
2. MBR:主要啟動記錄模組,位於第一個可開機裝置的第一個扇區內的,內含開機管理程式boot loader;
3. 開機管理程式(boot loader):一個可讀取核心檔案來執行的軟體;
4. 核心檔案:開始作業系統的功能...
boot loader 的幾個主要任務:
1. 提供選單:使用者可以選擇不同的開機專案,這也是多重引導的重要功能!
2.載入核心檔案:直接指向可開機的程式區段,來開始作業系統;
3.轉交其他loader:將開機管理功能轉交給其他loader負責。
分析第3點,也即是說,每個系統槽內都有一個loader,loader只認識本槽內的開即核心檔案和其他loader。
假設你的個人計算機只有一個硬碟,裡面切成了四個分割槽槽。其中第一、第二分割槽槽分別安裝了Windowns和Linux系統,你要如何在開機的時候選擇用Windows還是用Linux開機呢?
MBR的開機管理程式,會提供幾個選項,比如,
選項1:載入Windows核心檔案來開機
選項2:將開機管理權交給另一個分割槽槽的啟動扇區(boot sector)
當使用者在開機時選擇選項2時,整個開機管理工作就交給第二分割槽槽的開機管理程式了!當第二個開機管理程式啟動後,該開機程式只有一個開機選項,因此,就會載入Linux的核心檔案開機了!
簡言之,記住兩點:
1:開機需要開機管理程式
2:開機管理程式可以安裝在MBR及Boot Sector兩個位置
UEFI
UEFI用來取代BIOS,常稱為UEFI BIOS。
但是UEFI好像也有好多不足。。。
檔案系統與目錄樹的關係(掛載)
所謂掛載,就是利用一個目錄作為進入點,將磁碟分割槽槽的資料存放在該目錄下;也就是說,進入該目錄就可以讀取該分割槽槽。這個動作,我們稱為掛載。那個進入點的目錄我們稱為掛載點。由於整個Linux最重要是根目錄,因此根目錄一定需要掛載到某個分割槽槽。其他目錄,可以根據使用者需求,掛載到不同的分割槽槽。
上圖中,假設我們的硬碟分為兩個槽,partition1是掛載到根目錄的,partition2是掛載到/home這個目錄。也就是說,當我的資料存放在/home內的各次目錄時,資料是存放在partition2的。如果資料放在根目錄/下的次目錄,資料就會被存放到partition1.
檔案擁有者
Linux的任何檔案都有owner、group、others三種身份的許可權
ls [list]的意思,顯示檔案的檔名與相關屬性。
-al 表示累出所有的檔案詳細的許可權與屬性,包括隱藏檔案(第一個字元為[. ]的檔案)
第一個字元,代表這個檔案是[目錄、檔案、連結]等
d 表示目錄檔案
- 表示一般檔案
l 表示連結檔(link file)
b 表示為裝置檔案裡面的可供儲存的介面裝置
c 表示裝置檔案裡面的串列埠裝置,例如鍵盤、滑鼠
接下來,第一組為owner許可權,第二組為group許可權,第三組為others許可權
如何改變檔案的許可權與屬性
chgrp : 改變檔案所屬組 change group
chown : 改變檔案擁有者
chmod : 改變檔案的許可權,SUID,SGID,SBIT等特性
改變所屬群組:chgrp (change group)
注意:要被改變的組名必須要在/etc/group 檔案內才行,否則就會報錯。也就是說,組名都是放在/etc/group檔案裡的,要是這個檔案沒組名x,那組名x是不會被找到的,所以會報錯。
改變檔案擁有者,chown (change owner)
注意:使用者必須是已經存在系統中的賬號,也就是在/etc/passwd這個檔案中有記錄的使用者名稱才能改變。
-R 是進行遞迴的持續變換成變更,即連同次目錄下的所有檔案都變更。
那,什麼時候要用到chgrp和chown呢?
舉個例子:假如你要將mytext拷貝成text給Tim。
由於cp這個命令,會複製檔案的許可權和屬性,即檔案的所有者和群組還是你的。這時候,就要用chgrp和chownlai來改變檔案屬性了!
改變許可權,chmod
數字型別改變許可權
規定的許可權分數:
r:4
w:2
x:1
例如:owner=rwx=4+2+1=7
group=rwx=4+2+1=7
other=- - -=0+0+0=0
變更語法:
-R是遞迴,xyz是對應的owner、group、other的許可權得分
將.bashrc的所有許可權都設為啟用,命令為:
符號型別改變檔案許可權
u,g,o分別表示:user,group,others;
a表示全部all
表示所有人,用寫的許可權!
目錄的許可權:如果你在某目錄下不具備x的許可權,那麼你就無法切換到該目錄下,也就無法執行該目錄下的任何指令,及時你具有該目錄的r或w的許可權。記住,對於目錄的許可權,x才是關鍵!
指令 cat 檔名 表示將某檔案內容讀出來
檔案種類
正規檔案 -
純文字檔案:ASCII
二進位制檔案:binary
資料格式檔案:data 這種檔案使用cat讀時,會亂碼
目錄檔案 d
連結檔 l (類似Windows的快捷方式)
裝置與裝置檔案 (通常在/dev目錄下)
區塊(block)裝置檔: 第一個屬性為 b 硬碟、軟盤等
字元裝置檔案:第一個屬性為 c 一些串列埠的介面裝置,如滑鼠、鍵盤等。
資料介面檔案(sockets):第一個屬性為 s
資料輸送檔案(FIFO,pipe):第一個屬性為 p
副檔名:只是讓你瞭解該檔案可能的用途,而已!
linux檔案雖然不需要副檔名。但有時候,我們也用適當的副檔名來表示該檔案的意義:
*.sh : 指令碼或批處理檔案,因為批處理檔案是使用shell寫的,所以,副檔名就寫成 .sh
*Z, *.tar ,*.tar.gz , *.zip, *.tgz :經過打包的壓縮檔案。
*.html ,*.php :網頁相關的檔案 , .html可以用瀏覽器直接開啟
Linux目錄配置--FHS
/根目錄的意義與內容
/(root,根目錄):與開機系統有關。由於根目錄很重要,所以FHS希望根目錄不要放在太大的分割槽槽,因為越大的分割槽槽,你會放入越多的資料,導致根目錄所在的分割槽槽就可能有較多發生錯誤的機會。
因此FHS標註建議是:根目錄(/)分割槽槽應該越小越好,且應用程式所安裝的軟體最好不要與根目錄放在同一個分割槽槽內,保持根目錄越小越好。這樣,不但效能交佳,根目錄所在的檔案系統也不容易發生問題。
鑑於上述說明,FHS定義出根目錄(/)底下應該要有以下這些此目錄,即使沒有實體目錄,FHS也希望至少有連結檔存在。
相關文章
- 鳥哥私房菜學習筆記(第零章)筆記
- 鳥哥私房菜-基礎篇小筆記筆記
- 鳥哥的Linux私房菜筆記第六章Linux筆記
- 鳥哥的Linux私房菜--CPU種類Linux
- 鳥哥的Linux私房菜 -- 電子書(pdf)Linux
- 鳥哥的LINUX私房菜_基礎學習篇(第三版)Linux
- PJzhang:鳥哥的linux私房菜-shell指令碼-上Linux指令碼
- 「Linux」鳥叔私房菜第五章讀書筆記Linux筆記
- Android菜鳥學習js筆記一AndroidJS筆記
- 鳥哥的Linux私房菜基礎篇 第十三章 shell scriptsLinux
- 鳥哥的Linux私房菜基礎篇 第十章認識和學習bash這個shellLinux
- 【菜鳥筆記|機器學習】神經網路筆記機器學習神經網路
- 【菜鳥教程筆記】Python字串筆記Python字串
- 好程式設計師web前端分享菜鳥Vue學習筆記(二)程式設計師Web前端Vue筆記
- 【筆記】王興權:從菜鳥變大咖的高效學習方法筆記
- 菜鳥也想學習JSON解析JSON
- 菜鳥教程python 學習進度Python
- 菜鳥學習筆記:Java基礎篇1(基礎語法、物件導向)筆記Java物件
- python菜鳥教程學習1:背景性學習Python
- 菜鳥筆記之資料結構(24)筆記資料結構
- 菜鳥筆記之PWN入門(1.0.0)前言筆記
- 菜鳥的資訊保安學習之路
- python菜鳥教程學習9:函式Python函式
- 鳥哥的Linux私房菜基礎篇 第十二章 正規表示式與檔案格式化處理Linux
- 菜鳥筆記之計算機網路(4)筆記計算機網路
- 《鳥哥的Linux私房菜:伺服器架設篇 第三版.pdf》PDF高清完整版-免費下載Linux伺服器
- JavaScript 非同步及Promise 菜鳥學習心得JavaScript非同步Promise
- python菜鳥教程學習13:檔案操作Python
- python菜鳥教程學習5: python運算子Python
- 菜鳥筆記之pwn工具篇--Pwndbg基礎使用筆記
- 鳥哥的linux基礎學習實訓教程Linux
- 跟著菜鳥學pythonPython
- 【菜鳥讀原始碼】halo✍原始碼學習 (一)原始碼
- python菜鳥教程學習3:基礎語法Python
- 一個菜鳥管理的學習和思考(一)
- 一個菜鳥管理的學習和思考(二)
- 產品經理的私房菜 - 騰訊產品模型 - 學習能力篇模型
- 【菜鳥教程筆記】python基礎之元組的使用筆記Python