A. 簡述linux有技術特點 急
一、 Linux的主要特點 1.符合POSIX 1003.1標准POSIX 1003.1標準定義了一個最小的Unix操作系統介面,任何操作系統只有符合這一標准,才有可能運 行Unix程序。考慮到Unix具有豐富的應用程序,當今絕大多數操作系統都把滿足POSIX 1003.1標准作為實現 目標,Linux也不例外,它完全支持POSIX 1003.1標准。另外,為了使Unix System V和BSD上的程序能直接在 Linux上運行, Linux還增加了部分System V和BSD的系統介面,使Linux成為一個完善的Unix程序開發系統。 CT6itug
CT6itug
2.支持多用戶訪問和多任務編程Linux是一個多用戶操作系統,它允許多個用戶同時訪問系統而不會造成用戶之間的相互干擾。另外, Linux還支持真正的多用戶編程,一個用戶可以創建多個進程,並使各個進程協同工作來完成用戶的需求. CT6itug
CT6itug
3.採用頁式存儲管理 頁式存儲管理使Linux能更有效地利用物理存儲空間,頁面的換入換出為用戶提供了更大的存儲空間。 CT6itug
CT6itug
4.支持動態鏈接用戶程序的執行往往離不開標准庫的支持,一般的系統往往採用靜態鏈接方式--即在裝配階段就已將 用戶程序和標准庫鏈接好,這樣,當多個進程運行時,可能會出現庫代碼在內存中有多個副本而浪費存儲 空間的情況。Linux 支持動態鏈接方式,當運行時才進行庫鏈接,如果所需要的庫已被其它進程裝入內存, 則不必再裝入,否則才從硬碟中將庫調入。這樣能保證內存中的庫程序代碼是唯一的。 CT6itug
CT6itug
5.支持多種文件系統 Linux能支持多種文件系統。目前支持的文件系統有:EXT2、EXT、XIAFS、ISOFS、HPFS、MSDOS、UMSDOS、 PROC、NFS、SYSV、MINIX、SMB、UFS、NCP、VFAT、AFFS。Linux最常用的文件系統是EXT2,它的文件名長度可 達255字元,並且還有許多特有的功能,使它比常規的Unix文件系統更加安全。 CT6itug
CT6itug
6.支持TCP/IP、SLIP和PPP在Linux中,用戶可以使用所有的網路服務,如網路文件系統、遠程登錄等。SLIP和PPP能支持串列線上的 TCP/IP協議的使用,這意味著用戶可用一個高速Modem通過電話線連入Internet網中。 CT6itug
CT6itug
除了上述基本特徵外,Linux還具有其獨有的特色: CT6itug
CT6itug
1.支持硬碟的動態Cache 這一功能與MS DOS中的Smartdrive相似。所不同的是,Linux能動態調整所用的 Cache存儲器的大小,以適合當前存儲器的使用情況,當某一時刻沒有更多的存儲空間可用時,Cache將被減少, 以增加空閑的存儲空間,一旦存儲空間不再緊張,Cache的大小又將增加。2.支持不同格式的可執行文件 Linux具有多種模擬器,這使它能運行不同格式的目標文件。其中,DOS和 MS Windows正在開發之中,iBCS2模擬器能運行SCO Unix的目標程序。(iBCS2 模擬器不是Linux標准核心的 一部分,但可從ftp.informatik.hu berlin.de:/pub/os/linux下載) CT6itug
CT6itug
二、 Linux的主要構成 CT6itug
CT6itug
Linux採用頁式存儲管理機制,每個頁面的大小隨處理機晶元而異。例如,Intel 386處理機頁面大小 可為4KB和2MB兩種,而Alpha處理機頁面大小可為8KB、16KB、32KB和64KB。頁面大小的選擇對地址變換算 法和頁表結構會有一定的影響,如Alpha的虛地址和物理地址的有效長度隨頁面尺寸的變化而變化,這種變 化必將在地址變換和頁表項中有所反映。在Linux中,每一個進程都有一個比實際物理空間大得多的進程虛擬空間,為了建立虛擬空間和物理空 間之間的映射,每個進程還保留一張頁表,用於將本進程空間中的虛地址變換成物理地址。頁表還對物理頁 的訪問許可權作出了規定,定義了哪些頁可讀寫,哪些頁是只讀頁,在進行虛實變換時,Linux將根據頁表中規 定的訪問許可權來判定進程對物理地址的訪問是否合法,從而達到存儲保護的目的。 Linux存儲空間分配遵循的是不到有實際需要的時候決不分配物理空間的原則。當一個程序載入執行時, Linux只為它分配了虛空間,只有訪問某一虛地址而發生了缺頁中斷時,才為它分配物理空間,這樣就可能 出現某些程序運行完成後,其中的一些頁從來就沒有裝進過內存。這種存儲分配策略帶來的好處是顯而易見的,因為它最大限度地利用了物理存儲器。盡管Linux對物理存儲器資源的使用十分謹慎,但還是經常出現物理存儲器資源短缺的情況。Linux有一 個名為kswapd的守護進程專門負責頁面的換出,當系統中的空閑頁面小於一定的數目時,kswapd將按照一定的淘 汰演算法選出某些頁面,或者直接丟棄(頁面未作修改),或者將其寫回硬碟(頁面已被修改)。這種換出方式不 同於較舊版本Unix的換出方式,它是將一個進程的所有頁全部寫回硬碟。相比之下,Linux的效率更高。 CT6itug
CT6itug
2.進程管理在Linux中,進程是資源分配的基鏡ノ唬 凶試炊際且越 濤 韻罄唇 蟹峙淶摹?在一個進程的生 命期內,它會用到許多系統資源,會用CPU運行其指令,用存儲器存儲其指令和數據,它也會打開和使用文件 系統中的文件,直接或間接用到系統中的物理設備,因此,Linux設計了一系列的數據結構,它們能准確地描 述進程的狀態和其資源使用情況,以便能公平有效地使用系統資源。Linux的調度演算法能確保不出現某些進程 過度佔用系統資源而導致另一些進程無休止地等待的情況。 CT6itug
CT6itug
進程的創建是一個十分復雜的過程,通常的做法需為子進程重新分配物理空間,並把父進程空間的內容全 盤復制到子進程空間中,其開銷非常大。為了降低進程創建的開銷,Linux採用了Copy on write技術,即不 拷貝父進程的空間,而是拷貝父進程的頁表,使父進程和子進程共享物理空間,並將這個共享空間的訪問許可權 置為只讀。當父進程和子進程的某一方進行寫操作時,Linux檢測到一個非法操作,這時才將要寫的頁進行復制 。這一做法免除了只讀頁的復制,從而降低了開銷。Linux目前尚未提供用戶級線程,但提供了核心級線程,核心線程的創建是在進程創建的基礎上稍做修改, 使創建的子進程與父進程共享虛存空間。從這一意義上講,核心線程更像一個共享進程組。CT6itug
CT6itug
3.文件系統Linux最重要的特徵之一就是支持多個不同的文件系統,前面我們已經看到,Linux目前支持的文件系統 多達十餘種,隨著時間的推移,這一數目還在不斷增加。在Linux中,一個分離的文件系統不是通過設備標識 (如驅動器號或驅動器名)來訪問,而是 把它合到一個單一的目錄樹結構中,通過目錄來訪問,這一點與Unix十分相似。Linux用 安裝命令將一個新的文件系統安裝到系統單一目錄樹的某一目錄下,一旦安裝成功,該目錄下的所有內容將 被新安裝的文件系統所覆蓋,當文件系統被卸下後,安裝目錄下的文件將會被重新恢復。CT6itug
CT6itug
Linux最初的文件系統是Minix。該文件系統對文件限制過多,並且性能低下,如文件名長度不能超過14 個字元、文件大小不能超過64MB。為了解決這些問題,Linux的開發者們設計了一個Linux專用的文件系統EXT。 EXT對文件的要求放鬆了許多,但在性能上並沒有大的改觀,於是就有了後面的EXT2文件系統。EXT2文件系統 是一個非常成功的文件系統,它無論是對文件的限制還是在性能方面都大大優於EXT文件系統,所以,EXT2自 從推出就一直是Linux最常用的文件系統。為了支持多種文件系統,Linux用一個被稱為虛擬文件系統(VFS)的介面層將真正的文件系統同操作系統及 系統服務分離開。VFS掩蓋了不同文件系統之間的差異,使所有文件系統在操作系統和用戶程序看來都是等同的。VFS允許用戶同時透明地安裝多個不同的文件系統。 CT6itug
CT6itug
4.進程間通信Linux提供了多種進程間的通信機制,其中,信號和管道是最基本的兩種。除此以外,Linux也提供 System V的進程間通信機制,包括消息隊列、信號燈及共享內存。為了支持不同機器之間的進程通信, Linux還引入了BSD的Socket機制。 CT6itug
CT6itug
三、 Linux的不足及發展趨勢Linux從出現到現今只經歷了短短七年的時間,但其發展速度是驚人的,這與它的開放性和優良的性能 是密不可分的。不過我們應該看到,作為一個由學生開發的系統,Linux還有許多先天不足,它的設計思想 過多地受到傳統操作系統的約束,沒有體現出當今操作系統的發展潮流,具體表現在以下幾個方面: CT6itug
CT6itug
不是一個微內核操作系統;是一個分布式操作系統;不是一個安全的操作系統;沒有用戶線程;不支持實時處理; CT6itug
CT6itug
代碼是用C而不是C++這樣的現代程序設計語言編寫的。盡管Linux有這樣和那樣的不足,但其發展潛力不容低估,其發展的動力就是遍布全球、為數眾多的 Linux熱心者。今後Linux將會朝著完善功能、提高效率的方向發展,包括允許用戶創建線程、增加實時處 理功能、開發適合多處理機體系結構的版本。我們相信,Linux、Unix及NT三足鼎立的時代將為期不遠。 Linux主要由存儲管理、進程管理、文件系統、進程間通信等幾部分組成,在許多演算法及實現策略上, Linux借鑒了Unix的成功經驗,但也不乏自己的特色。 CT6itug
CT6itug
1.存儲管理 作為一個操作系統,Linux幾乎滿足當今Unix操作系統的所有要求,因此,它具有Unix操作系統的基本特徵。
B. 怎樣在Win10中使用Linux命令
一、使用方法
1,首先,點擊屏幕左下角的Win圖標,然後在彈出的菜單中選擇「所有應用」。
二、注意事項
1,Windows PowerShell 支持絕大部分 Linux 內置命令,但有些命令例外。具體來說有:
1)命令簡寫(或稱命令別名)
例如,不支持 Linux 下的文件查看命令 ll 。該命令作用為以詳細信息方式查看當前目錄下文件,它實質是 ls -l 命令的簡寫。
2)需要調用 linux 系統中的程序才能執行的命令,如 vim
由於 Windows 系統中並沒有內置 vim 程序,故而與 vim 有關的命令無法啟用。
3)幫助命令
在 Linux 系統中,如果要知道某條命令的用法,可以使用幫助命令了。但在 Windows 中,默認是沒有安裝Linux中的幫助命令的。如果想使用該命令,可以聯網安裝或在線查看。
C. linux中如何解決文件已刪除但空間不釋放的案例
一般來說不會出現刪除文件後空間不釋放的情況,但是也存在例外,比如文件被進程鎖定,或者有進程一直在向這個文件寫數據等,要理解這個問題,就需要知道Linux下文件的存儲機制和存儲結構。
一個文件在文件系統中的存放分為兩個部分:數據部分和指針部分,指針位於文件系統的meta-data中,在將數據刪除後,這個指針就從meta-data中清除了,而數據部分存儲在磁碟中。在將數據對應的指針從meta-data中清除後,文件數據部分佔用的空間就可以被覆蓋並寫入新的內容,之所以在出現刪除access_log文件後,空間還沒釋放,就是因為httpd進程還在一直向這個文件寫入內容,導致雖然刪除了access_log文件,但是由於進程鎖定,文件對應的指針部分並未從meta-data中清除,而由於指針並未刪除,系統內核就認為文件並未刪除,因此通過df命令查詢空間並未釋放也就不足為奇了。
通過這個命令可以獲取一個仍然被應用程序佔用的已刪除文件列表,命令執行如下:
[root@localhost ~]# lsof | grep delete
最好的方法是在線清空這個文件,具體可以通過如下命令完成:
[root@localhost~]#echo"">/tmp/acess.log