① linux中的快照技術的原理是什麼
快照就是一種資料庫技術。快照,其本質類似於資料庫的照片,也就是在創建快照的時間點給資料庫拍個照放在那兒。但是這個照片是一個新的資料庫,可以應用SQL語句。快照資料庫里的數據是不變的.創建快照後,系統會對原資料庫的所有數據頁做個標識,如果數據頁在創建快照後被修改,會復制一個數據頁出來,沒有修改的數據頁則不會有快照。因此快照存在的時間越長,要維護的數據頁就越多,系統的壓力也越來越大。所以不能用快照來替代備份,因為備份只是一個bak文件,它不是資料庫,只有通過還原操作才能對它進行查詢。
② linux基本原理
計算機體系結構:運算器 控制器 存儲器 輸入設備 輸出設備
詳解:存儲即內存:編址的存儲單元。即每一個存儲單元在都有一個編址。
控制器告訴運算器加數在存儲器的哪個存儲單元。
poll:(拉的機制)CPU不停地查看誰發生的電信號
interrupt:(中斷,即硬體通知機制)敲完鍵盤:鍵盤會通知CPU,CPU就來看看鍵盤幹了什麼事。
CPU通過控制晶元知道是哪個設備發出的信號。一根線上有不同的設備。
為了充分利用CPU,多任務利用,(想第一件事10秒,想第二件事10秒,然後接著想第一件事。那麼第一件事的10秒記憶存儲在內存中)。那麼就需要劃分了,cpu被切分為一個個slice。內存分成多個段。這都是由操作系統完成的。
32位操作系統:最多物理內存2^
程序:放在操作系統上,只要不刪就一直存在。執行入口,進程:是有生命周期的,一定時間過後就消失。
.庫:一堆的程序,自己不能獨立執行,只提供調用介面,可被程序調用執行。
操作系統:有了操作系統之後,任何一個進程要跟硬體打交道,都得經過操作系統。操作系統通過最底層的調用:system call(系統調用)。然後封裝之後,形成了庫。
shell:人機交互介面
③ linux 管道原理
Linux原理的學習,我打算由淺入深,從上之下,也就是先了解個大概再逐個深入。先了解一下Linux的進程先。
一、Linux進程上下文
Linux進程上下文,我理解就是進程組成元素的集合。包括進程描述符tast_struct,正文段,數據段,棧,寄存器內容,頁表等。
1)tast_struct
它是一種數據結構,存儲著進程的描述信息,例如pid,uid,狀態,信號項,打開文件表等。是進程管理和調度的重要依據。
2)用戶棧和核心棧
顧名思義,用戶棧是進程運行在用戶態使用的棧,含有用戶態執行時候函數調用的參數,局部變數等;核心棧是該進程運行在核心態下用的棧,保存調用系統函數所用的參數和調用序列。這兩個棧的指針都保存在tast_struct結構中。
3)寄存器
保存程序計數器,狀態字,通用寄存器,棧指針。
4)頁表
線性地址到物理地址的映射
5)正文段,數據段。
二、Linux進程的狀態
Linux中進程共有5個狀態:就緒,可中斷睡眠,不可中斷睡眠,暫停,僵死。也就是說,linux不區分就緒和運行,它們統一叫做就緒態。進程所處的狀態記錄在tast_struct中。
三、進程的控制
1)進程樹的形成
計算機啟動後,BIOS從磁碟引導扇區載入系統引導程序,它將Linux系統裝入內存,並跳到內核處執行,Linux內核就執行初始化工作:初始化硬體、初始化內部數據結構、建立進程0。進程0創建進程1,進程1是以後所有創建的進程的祖先,它負責初始化所有的用戶進程。進程1創建shell進程,shell進程顯示提示符,等待命令的輸入。
2)進程的創建
任何一個用戶進程的創建都是由現有的一個進程完成的,進程的創建要經過fork和exec兩個過程。Fork是為新進程分配相應的數據結構,並將父進程的相應上下文信息復制過來。Exec是將可執行文件的正文和數據轉入內存覆蓋它原來的(從父進程復制過來的),並開始執行正文段。
3)進程的終止
系統調用exit()就可自我終結,exit釋放除了tast_struct以外的所有上下文,父進程收到子進程終結的消息後,釋放子進程的tast_struct。
4)進程的調度
進程的調度是由schele()完成的,一種情況是,當處理機從核心態向用戶態轉換之前,它會檢查調度標志是否為1,如果是1,則運行schele(),執行進程的調度。另一種情況是進程自動放棄處理機,時候進行進程調度。
進程的調度過程分為兩步,首先利用相關策略選擇要執行的進程,然後進行上下文的切換。
四、進程的通信
進程的通信策略主要有,消息,管道,消息隊列,共享存儲區和信號量。
1)信息
消息機制主要是用來傳遞進程間的軟中斷信號,通知對方發生了非同步事件。發送進程將信號(約定好的符號)發送到目標進程的tast_struct中的信號項,接收進程看到有消息後就調用相應的處理程序,注意,處理程序必須到進程執行時候才能執行,不能立即響應。
2)管道
我理解就是兩個進程使用告訴緩沖區中的一個隊列(每兩個進程一個),發送進程將數據發送到管道入口,接收進程從管道出口讀數據。
3) 消息隊列
消息隊列是操作系統維護的一個個消息鏈表,發送進程根據消息標識符將消息添加到制定隊列中,接收進程從中讀取消息。
4)共享存儲區
在內存中開辟一個區域,是個進程共享的,也就是說進程可以把它附加到自己的地址空間中,對此區域中的數據進行操作。
5)信號量
控制進程的同步。
④ 安裝linux系統實驗原理
1) 啟動vmware虛擬機
2) 單擊「文件—>新建?虛擬機」,出現「安裝虛擬機向導」對話框,單擊「下一步」,選「典型」;
3)「客戶機操作系統」選擇安裝linux,版本選「redhat linux」,單擊「下一步」;
4) 在「虛擬機名稱」處:輸入「linux」, 創建指定位置(不要選擇在c盤)的磁碟映像文件linux.vmx單擊「下一步」,出現「網路連接」 設置界面,選擇「使用橋接網路」 單擊下一步;
5) 磁碟容量為8g, 單擊「完成」;
6)編輯虛擬機設置:
雙擊設備欄「cd-rom」,選擇「使用iso鏡像」;指定鏡像文件路徑,例如: d:\redhatlinux_isofiles\redhatlinux9_i386_disc1.iso ;
floppy設備欄取消「打開電源時連接「
7) 配置步驟完成,啟動系統。
⑤ linux文件怎麼個執行原理。。
因為你的
環境變數
$PATH里沒有包含/opt/x/y這個路徑,系統找不到文件,如果你cd進去運行,一定要在前面加./指定當前目錄為搜索路徑
⑥ linux原理與應用
靠近醫院里的和英文的時候,所以這個證書像我們非常可能更好減少的時候,所以應該直接連接在一起還更好,就是這部分錢20分鍾
⑦ linux shell:能從原理上給我講講為什麼要寫 ((a=$a+1))
a=3
假如不加兩個括弧,系統以為是字元串的形式,結果為
「3+1」,這個是字元串
加了兩個括弧,讓系統知道了裡面的值要進行運算,結果為
「4」
至於為什麼加一個括弧不行,是因為運算的格式就是要加兩個括弧
因為一個括弧的格式代表其他的作用
⑧ Linux文件系統的系統原理
Linux 最早的文件系統是Minix,但是專門為Linux 設計的文件系統——擴展文件系統第二版或EXT2被設計出來並添加到Linux中,這對Linux產生了重大影響。EXT2文件系統功能強大、易擴充、性能上進行了全面優化,也是所有Linux發布和安裝的標准文件系統類型。
每個實際文件系統從操作系統和系統服務中分離出來,它們之間通過一個介面層:虛擬文件系統或VFS來通訊。VFS使得Linux可以支持多個不同的文件系統,每個表示一個VFS 的通用介面。由於軟體將Linux 文件系統的所有細節進行了轉換,所以Linux核心的其它部分及系統中運行的程序將看到統一的文件系統。Linux 的虛擬文件系統允許用戶同時能透明地安裝許多不同的文件系統。
在Linux文件系統中,作為一種特殊類型/proc文件系統只存在內存當中,而不佔用外存空間。它以文件系統的方式為訪問系統內核數據的操作提供介面。/proc文件系統是一個偽文件系統,用戶和應用程序可以通過/proc得到系統的信息,並可以改變內核的某些參數。
在Linux文件系統中,EXT2文件系統、虛擬文件系統、/proc文件系統是三個具有代表性的文件系統,本論文試圖通過對他們的分析來研究Linux文件系統機制。並且在分析這三種文件系統的基礎上對Linux文件系統操作進行了解、研究(本論文選取了open和close兩種操作進行研究)。在第二部分中將介紹EXT2文件系統;第三部分論述虛擬文件系統的特點;第四部分簡要介紹/proc文件系統;最後,介紹兩種具體文件系統操作的實現。
⑨ 描述Linux下文件刪除的原理
磁碟中有一專門的區域,採用點陣圖(也就是bit位標識)來標記所有block塊的狀態,例如如果被使用標記為1,沒使用標記為0。
刪除文件的Inode號的同時會該區域中inode使用的block相對應的點陣圖標記為0,不會對實際的block去做清理或者其他工作。
當後面有新的inode在查找空間的block時,會去該區域中進行查找被標記為0的塊。
關於更多Linux的知識,請查閱書籍《Linux就該這么學》
⑩ linux中的/dev/null 原理是什麼
1,在linux中,一切皆文件,/dev/null也是如此
2,對文件的讀寫,都不能由普通應用程序直接進行,需要通過工作在內核態的驅動程序來完成。
3,普通程序進入這種內核模式的入口叫系統調用
4,open和write都離不開系統調用
5,在內核模式,負責處理write調用的驅動程序,只要簡單的把數據都丟棄,就形成這個黑洞