Linux操作系統(tǒng)的面試題大全及技巧
Linux操作系統(tǒng)的面試題大全及技巧
在面試相關(guān)崗位時(shí)經(jīng)常會(huì)遇到Linux操作系統(tǒng)的相關(guān)問(wèn)題。下面由學(xué)習(xí)啦小編為大家整理了Linux操作系統(tǒng)的面試題大全及技巧,希望對(duì)大家有幫助!
Linux操作系統(tǒng)的面試題大全及技巧
Linux操作系統(tǒng)的面試題大全一
1、進(jìn)程管理
1、進(jìn)程是具有獨(dú)立功能程序在某個(gè)數(shù)據(jù)集合上的一次執(zhí)行過(guò)程。線程是進(jìn)程內(nèi)的一個(gè)執(zhí)行實(shí)體或執(zhí)行單元。
進(jìn)程和線程的區(qū)別:
(a)不同進(jìn)程的地址空間是獨(dú)立的,而同一進(jìn)程內(nèi)的線程共享同一地址空間。一個(gè)進(jìn)程的線程在另一個(gè)進(jìn)程內(nèi)是不可見(jiàn)的。
(b) 在引入線程的操作系統(tǒng)中,進(jìn)程是資源分配和調(diào)度的單位,線程是處理機(jī)調(diào)度和分配的單位,資源是分配給進(jìn)程的,線程只擁有很少資源,因而切換代價(jià)比進(jìn)程切換低。
區(qū)別版本二
1)調(diào)度方面。在傳統(tǒng)的操作系統(tǒng)中,擁有資源和獨(dú)立調(diào)度的基本單位都是進(jìn)程。而在引入線程的操作系統(tǒng)中,線程是獨(dú)立調(diào)度的基本單位,進(jìn)程是資源擁有的基本單位。在同一進(jìn)程中,線程的切換不會(huì)引起進(jìn)程的切換。在不同的進(jìn)程中進(jìn)行線程切換,將會(huì)引起進(jìn)程切換。
2)擁有資源。不論是傳統(tǒng)操作系統(tǒng)還是設(shè)有線程的操作系統(tǒng),進(jìn)程都是擁有資源的基本單位,而線程不擁有系統(tǒng)資源(也有一點(diǎn)必不可少的資源),但線程可以訪問(wèn)其隸屬進(jìn)程的系統(tǒng)資源。
3)并發(fā)性。在引入線程的操作系統(tǒng)中,不僅進(jìn)程之間可以并發(fā)執(zhí)行,而且同一進(jìn)程內(nèi)的多個(gè)線程之間也可以并發(fā)執(zhí)行。
4)系統(tǒng)開(kāi)銷(xiāo)。由于創(chuàng)建進(jìn)程或撤銷(xiāo)進(jìn)程時(shí),系統(tǒng)都要為之分配或回收資源,操作系統(tǒng)所付出點(diǎn)開(kāi)銷(xiāo)遠(yuǎn)大于創(chuàng)建或撤銷(xiāo)線程時(shí)的開(kāi)銷(xiāo)。在進(jìn)行進(jìn)程切換時(shí),涉及到整個(gè)當(dāng)前進(jìn)程CPU環(huán)境的保護(hù)及新調(diào)度到新進(jìn)程的CPU環(huán)境設(shè)置;而線程切換時(shí),只需保護(hù)和設(shè)置少量寄存器內(nèi)存,因此開(kāi)銷(xiāo)很小。另外,由于同一進(jìn)程內(nèi)的多個(gè)線程共享進(jìn)程的地址空間,因此,多線程之間的同步與通信非常容易實(shí)現(xiàn),甚至無(wú)需操作系統(tǒng)的干預(yù)。
程序與進(jìn)程的區(qū)別
(1)進(jìn)程是一個(gè)動(dòng)態(tài)概念,而程序是一個(gè)靜態(tài)概念。
(2)進(jìn)程具有并行特征,而程序不反映執(zhí)行所以沒(méi)有并行特征
(3)進(jìn)程是競(jìng)爭(zhēng)計(jì)算機(jī)系統(tǒng)資源的基本單位,而程序不反映執(zhí)行也就不會(huì)競(jìng)爭(zhēng)計(jì)算機(jī)系統(tǒng)資源
(4)不同的進(jìn)程可以包含同一程序,只要該程序所對(duì)應(yīng)的數(shù)據(jù)集不同。
1、進(jìn)程是并發(fā)過(guò)程中程序的執(zhí)行過(guò)程
2、進(jìn)程的特征:結(jié)構(gòu)特征、動(dòng)態(tài)性、并發(fā)性、獨(dú)立性、異步性
3、臨界區(qū)指在每個(gè)進(jìn)程中訪問(wèn)臨界資源的那段代碼
4,現(xiàn)在操作系統(tǒng)中申請(qǐng)資源的基本單位是進(jìn)程,在CPU得到執(zhí)行的基本單位是線程,進(jìn)程是由程序段、數(shù)據(jù)段、PCB組成的
5,對(duì)臨界資源應(yīng)采取互斥訪問(wèn)方式來(lái)實(shí)現(xiàn)共享
6,P.V操作是一種低級(jí)進(jìn)程通信原語(yǔ)
7,對(duì)于記錄性信號(hào)量,在執(zhí)行一次P操作時(shí),信號(hào)量的值應(yīng)當(dāng)減1,當(dāng)其值為小于0時(shí)進(jìn)程應(yīng)阻塞;在執(zhí)行V操作時(shí),信號(hào)量的值應(yīng)當(dāng)加1;當(dāng)其值小于等于0時(shí),應(yīng)喚醒阻塞隊(duì)列中的進(jìn)程。
9,短作業(yè)優(yōu)先算法,T1<T2<T3平均周轉(zhuǎn)時(shí)間為:T1+2XT2/3+T3/3
10,響應(yīng)比Rp=(等待時(shí)間+要求服務(wù)時(shí)間)/要求服務(wù)器時(shí)間=響應(yīng)時(shí)間/要求服務(wù)時(shí)間
24、什么是死鎖?其條件是什么?怎樣避免死鎖?
死鎖的概念:在兩個(gè)或多個(gè)并發(fā)進(jìn)程中,如果每個(gè)進(jìn)程持有某種資源而又都等待別的進(jìn)程釋放它或它們現(xiàn)在保持著的資源,在未改變這種狀態(tài)之前都不能向前推進(jìn),稱(chēng)這一組進(jìn)程產(chǎn)生了死鎖。通俗地講,就是兩個(gè)或多個(gè)進(jìn)程被無(wú)限期地阻塞、相互等待的一種狀態(tài)。
死鎖產(chǎn)生的原因主要是:
(1)系統(tǒng)資源不足;(2)進(jìn)程推進(jìn)順序非法。
產(chǎn)生死鎖的必要條件:
(1)互斥(mutualexclusion),一個(gè)資源每次只能被一個(gè)進(jìn)程使用;
(2)不可搶占(nopreemption),進(jìn)程已獲得的資源,在未使用完之前,不能強(qiáng)行剝奪;
(3)占有并等待(hold andwait),一個(gè)進(jìn)程因請(qǐng)求資源而阻塞時(shí),對(duì)已獲得的資源保持不放;
(4)環(huán)形等待(circularwait),若干進(jìn)程之間形成一種首尾相接的循環(huán)等待資源關(guān)系。
這四個(gè)條件是死鎖的必要條件,只要系統(tǒng)發(fā)生死鎖,這些條件必然成立,而只要上述條件之一不滿足,就不會(huì)發(fā)生死鎖。
死鎖的解除與預(yù)防:理解了死鎖的原因,尤其是產(chǎn)生死鎖的四個(gè)必要條件,就可以最大可能地避免、預(yù)防和解除死鎖。所以,在系統(tǒng)設(shè)計(jì)、進(jìn)程調(diào)度等方面注意如何不讓這四個(gè)必要條件成立,如何確定資源的合理分配算法,避免進(jìn)程永久占據(jù)系統(tǒng)資源。此外,也要防止進(jìn)程在處于等待狀態(tài)的情況下占用資源。因此,對(duì)資源 的分配要給予合理的規(guī)劃。
死鎖的處理策略:鴕鳥(niǎo)策略、預(yù)防策略、避免策略、檢測(cè)與恢復(fù)策略。
13,若系統(tǒng)采用輪轉(zhuǎn)法調(diào)度進(jìn)程系統(tǒng)采用的是剝奪式調(diào)度
15,資源的有序分配策略可以破壞死鎖的“循環(huán)等待”
16,并非所有的不安全狀態(tài)都必然會(huì)轉(zhuǎn)為死鎖狀態(tài),但當(dāng)系統(tǒng)進(jìn)圖不安全按狀態(tài)后變有可能進(jìn)入死鎖狀態(tài),
Linux操作系統(tǒng)的面試題大全二
2、內(nèi)存管理
17,重定位:在作業(yè)地址空間中使用的邏輯地址變?yōu)閮?nèi)存物理地址
19,適合多道程序運(yùn)行的存儲(chǔ)管理中,存儲(chǔ)保護(hù)是為了防止各道作業(yè)的相互干擾
21,段頁(yè)式存儲(chǔ)管理中的地址映像表是每個(gè)作業(yè)或進(jìn)程一張段表,每個(gè)段一張頁(yè)表
22,在虛擬頁(yè)式存儲(chǔ)管理方案中,完成將頁(yè)面調(diào)入內(nèi)存的工作的是缺頁(yè)中斷處理
23,分段管理和分頁(yè)管理的主要區(qū)別是分頁(yè)管理有存儲(chǔ)保護(hù),分段管理沒(méi)有
25,不使用中斷機(jī)構(gòu)的I/O控制方式是程序I/O方式
26,spooling技術(shù)能獨(dú)占設(shè)備改造成可以共享的虛擬設(shè)備
28,共享設(shè)備指同一時(shí)間內(nèi)運(yùn)行多個(gè)進(jìn)程同時(shí)訪問(wèn)的設(shè)備
29,虛擬設(shè)備:通過(guò)軟件的功能擴(kuò)充,把原來(lái)獨(dú)占的設(shè)備改造成若干個(gè)可共享的設(shè)備
30,DMA方式如果I/O設(shè)備不通過(guò)CPU來(lái)完成
31,設(shè)備獨(dú)立性用戶程序獨(dú)立于具體物理設(shè)備的一種特性
32,虛擬設(shè)備一個(gè)物理設(shè)備變換成多個(gè)對(duì)應(yīng)的邏輯設(shè)備
33,通道是一種特殊的處理機(jī),通道按傳遞數(shù)據(jù)的方式分為:字節(jié)多路通道,數(shù)組選擇通道,數(shù)組多路通道,通道涉及的數(shù)據(jù)結(jié)構(gòu)是設(shè)備控制器,控制器控制塊,通道控制塊,系統(tǒng)設(shè)備表
34,磁盤(pán)高速緩沖設(shè)在內(nèi)存中,目的是提高I/O磁盤(pán)速度
35,磁盤(pán)空間的地址有盤(pán)面號(hào),柱面號(hào),扇區(qū)號(hào)組成。訪問(wèn)磁盤(pán)的時(shí)間有 尋道時(shí)間,旋轉(zhuǎn)等待時(shí)間,讀寫(xiě)時(shí)間
36,將系統(tǒng)段用參數(shù)翻譯成設(shè)備操作命令的工作由設(shè)備無(wú)關(guān)的操作系統(tǒng)完成
37,向設(shè)備寄存器寫(xiě)入控制命令由設(shè)備驅(qū)動(dòng)程序完成
38,尋找設(shè)備驅(qū)動(dòng)程序由設(shè)備無(wú)關(guān)的操作系統(tǒng)軟件完成
39,設(shè)備管理的功能是設(shè)備分配,緩沖區(qū)管理和實(shí)現(xiàn)物理I/O設(shè)備的操作
40,根據(jù)設(shè)備的固有屬性特點(diǎn),設(shè)備可分為獨(dú)占設(shè)備,共享設(shè)備和虛擬設(shè)備
41,引入緩沖區(qū)技術(shù)可提高處理器執(zhí)行程序和設(shè)備的輸入輸出操作的并行程序文件管理
42,物理文件的組織方式是由操作系統(tǒng)確定的,文件的順序存取是按文件的邏輯號(hào)逐一存取
43,系統(tǒng)通過(guò)樹(shù)形目錄結(jié)構(gòu)來(lái)解決重名問(wèn)題
44,在UNIX操作系統(tǒng)中,把輸入輸出設(shè)備看做特殊文件
45,打開(kāi)文件操作的主要工作是把指定的目錄復(fù)制到內(nèi)存指定區(qū)域
46,文件路徑名是指從根目錄到該文件所經(jīng)歷的路徑中各符號(hào)名的集合
47,按邏輯結(jié)構(gòu)劃分,文件主要有兩類(lèi):記錄是文件,流式文件,文件系統(tǒng)的主要目的是實(shí)現(xiàn)對(duì)文件的按名存取
48連續(xù)結(jié)構(gòu)文件必須采用連續(xù)分配方式,而鏈接結(jié)構(gòu)文件和索引結(jié)構(gòu)文件都可采取離散分配方式
49,文件系統(tǒng)中,若文件的物理結(jié)構(gòu)采用連續(xù)結(jié)構(gòu)有關(guān)文件的物理位置的信息包括首塊地址和文件長(zhǎng)度
50,位示圖可用于磁盤(pán)空間管理,在文件系統(tǒng)中,為實(shí)現(xiàn)文件保護(hù),一般采用口令,密碼和訪問(wèn)控制
4、什么是操作系統(tǒng)的基本功能?
1).處理機(jī)管理。在多道程序或多用戶的情況下,要組織多個(gè)作業(yè)同時(shí)運(yùn)行,就要解決對(duì)處理機(jī)分配調(diào)度策略、分配實(shí)施和資源回收等問(wèn)題。
2).存儲(chǔ)管理。存儲(chǔ)管理的主要工作是對(duì)內(nèi)部存儲(chǔ)器進(jìn)行分配、保護(hù)和擴(kuò)充和管理。
3).設(shè)備管理。涉及到通道、控制器、輸入輸出設(shè)備的分配和管理以及設(shè)備獨(dú)立性。
4).信息管理(文件系統(tǒng)管理) 是對(duì)系統(tǒng)的軟件資源的管理。
5).用戶接口。操作系統(tǒng)還為用戶提供一個(gè)友好的用戶接口。一般來(lái)說(shuō),操作系統(tǒng)提供兩種方式的接口來(lái)為用戶服務(wù)。
5、分級(jí)調(diào)度分為4級(jí):
(1) 作業(yè)調(diào)度 (2) 交換調(diào)度 (3) 進(jìn)程調(diào)度 (4) 線程調(diào)度。
7、頁(yè)式管理的基本原理是什么?
(1)進(jìn)程的虛擬空間被劃分成長(zhǎng)度相等的頁(yè)。
(2)內(nèi)存空間也按頁(yè)的大小劃分成長(zhǎng)度相等的頁(yè)面。
(3)采用請(qǐng)求調(diào)頁(yè)或預(yù)調(diào)技術(shù)實(shí)現(xiàn)內(nèi)外存儲(chǔ)器的統(tǒng)一管理。
8、進(jìn)程調(diào)度有哪些功能?
(1)記錄系統(tǒng)中所有進(jìn)程的執(zhí)行情況。
(2)選擇占有處理機(jī)的進(jìn)程
(3)進(jìn)行進(jìn)程上下文切換
9、批處理操作系統(tǒng)、分時(shí)操作系統(tǒng)和實(shí)時(shí)操作系統(tǒng)的特點(diǎn)各是什么?
(1) 批處理操作系統(tǒng)的特點(diǎn):成批處理,系統(tǒng)吞吐量高,資源利用率高,用戶不能直接干預(yù)作業(yè)的執(zhí)行。
(2)分時(shí)操作系統(tǒng)的特點(diǎn):多路性、獨(dú)立性、及時(shí)性、交互性。
(3)實(shí)時(shí)操作系統(tǒng)的特點(diǎn):及時(shí)響應(yīng)、快速處理;高可靠性和安全性;不要求系統(tǒng)資源利用率。
11、Windows消息調(diào)度機(jī)制是(C)
A)指令隊(duì)列;B)指令堆棧;C)消息隊(duì)列;D)消息堆棧
解析:
處理消息隊(duì)列的順序。首先Windows絕對(duì)不是按隊(duì)列先進(jìn)先出的次序來(lái)處理的,而是有一定優(yōu)先級(jí)的。優(yōu)先級(jí)通過(guò)消息隊(duì)列的狀態(tài)標(biāo)志來(lái)實(shí)現(xiàn)的。首先, 最高優(yōu)先級(jí)的是別的線程發(fā)過(guò)來(lái)的消息(通過(guò)sendmessage);其次,處理登記消息隊(duì)列消息;再次處理QS_QUIT標(biāo)志,處理虛擬輸入隊(duì)列,處理 wm_paint;最后是wm_timer。
12、描述實(shí)時(shí)系統(tǒng)的基本特性
在特定時(shí)間內(nèi)完成特定的任務(wù),實(shí)時(shí)性與可靠性。
所謂“實(shí)時(shí)操作系統(tǒng)”,實(shí)際上是指操作系統(tǒng)工作時(shí),其各種資源可以根據(jù)需要隨時(shí)進(jìn)行動(dòng)態(tài)分配。由于各種資源可以進(jìn)行動(dòng)態(tài)分配,因此,其處理事務(wù)的能力較強(qiáng)、速度較快。
13、中斷和輪詢(xún)的特點(diǎn)
對(duì)I/O設(shè)備的程序輪詢(xún)的方式,是早期的計(jì)算機(jī)系統(tǒng)對(duì)I/O設(shè)備的一種管理方式。它定時(shí)對(duì)各種設(shè)備輪流詢(xún)問(wèn)一遍有無(wú)處理要求。輪流詢(xún)問(wèn)之后,有要求的,則加以處理。在處理I/O設(shè)備的要求之后,處理機(jī)返回繼續(xù)工作。盡管輪詢(xún)需要時(shí)間,但輪詢(xún)要比I/O設(shè)備的速度要快得多,所以一般不會(huì)發(fā)生不能及時(shí)處理的問(wèn)題。當(dāng)然,再快的處理機(jī),能處理的輸入輸出設(shè)備的數(shù)量也是有一定限度的。而且,程序輪詢(xún)畢竟占據(jù)了CPU相當(dāng)一部分處理時(shí)間,因此,程序輪詢(xún)是一種效率較低的方式,在現(xiàn)代計(jì)算機(jī)系統(tǒng)中已很少應(yīng)用。
程序中斷通常簡(jiǎn)稱(chēng)中斷,是指CPU在正常運(yùn)行程序的過(guò)程中,由于預(yù)先安排或發(fā)生了各種隨機(jī)的內(nèi)部或外部事件,使CPU中斷正在運(yùn)行的程序,而轉(zhuǎn)到為響應(yīng)的服務(wù)程序去處理。
輪詢(xún)——效率低,等待時(shí)間很長(zhǎng),CPU利用率不高。
中斷——容易遺漏一些問(wèn)題,CPU利用率高。
14、什么是臨界區(qū)?如何解決沖突?
每個(gè)進(jìn)程中訪問(wèn)臨界資源的那段程序稱(chēng)為臨界區(qū),每次只準(zhǔn)許一個(gè)進(jìn)程進(jìn)入臨界區(qū),進(jìn)入后不允許其他進(jìn)程進(jìn)入。
(1)如果有若干進(jìn)程要求進(jìn)入空閑的臨界區(qū),一次僅允許一個(gè)進(jìn)程進(jìn)入;
(2)任何時(shí)候,處于臨界區(qū)內(nèi)的進(jìn)程不可多于一個(gè)。如已有進(jìn)程進(jìn)入自己的臨界區(qū),則其它所有試圖進(jìn)入臨界區(qū)的進(jìn)程必須等待;
(3)進(jìn)入臨界區(qū)的進(jìn)程要在有限時(shí)間內(nèi)退出,以便其它進(jìn)程能及時(shí)進(jìn)入自己的臨界區(qū);
(4)如果進(jìn)程不能進(jìn)入自己的臨界區(qū),則應(yīng)讓出CPU,避免進(jìn)程出現(xiàn)“忙等”現(xiàn)象。
15、說(shuō)說(shuō)分段和分頁(yè)
頁(yè)是信息的物理單位,分頁(yè)是為實(shí)現(xiàn)離散分配方式,以消減內(nèi)存的外零頭,提高內(nèi)存的利用率;或者說(shuō),分頁(yè)僅僅是由于系統(tǒng)管理的需要,而不是用戶的需要。
段是信息的邏輯單位,它含有一組其意義相對(duì)完整的信息。分段的目的是為了能更好的滿足用戶的需要。
頁(yè)的大小固定且由系統(tǒng)確定,把邏輯地址劃分為頁(yè)號(hào)和頁(yè)內(nèi)地址兩部分,是由機(jī)器硬件實(shí)現(xiàn)的,因而一個(gè)系統(tǒng)只能有一種大小的頁(yè)面。段的長(zhǎng)度卻不固定,決定于用戶所編寫(xiě)的程序,通常由編輯程序在對(duì)源程序進(jìn)行編輯時(shí),根據(jù)信息的性質(zhì)來(lái)劃分。
分頁(yè)的作業(yè)地址空間是一維的,即單一的線性空間,程序員只須利用一個(gè)記憶符,即可表示一地址。分段的作業(yè)地址空間是二維的,程序員在標(biāo)識(shí)一個(gè)地址時(shí),既需給出段名,又需給出段內(nèi)地址。
16、說(shuō)出你所知道的保持進(jìn)程同步的方法?
進(jìn)程間同步的主要方法有原子操作、信號(hào)量機(jī)制、自旋鎖、管程、會(huì)合、分布式系統(tǒng)等。
20、什么是中斷?中斷時(shí)CPU做什么工作?
中斷是指在計(jì)算機(jī)執(zhí)行期間,系統(tǒng)內(nèi)發(fā)生任何非尋常的或非預(yù)期的急需處理事件,使得CPU暫時(shí)中斷當(dāng)前正在執(zhí)行的程序而轉(zhuǎn)去執(zhí)行相應(yīng)的事件處理程序。待處理完畢后又返回原來(lái)被中斷處繼續(xù)執(zhí)行或調(diào)度新的進(jìn)程執(zhí)行的過(guò)程。
21、你知道操作系統(tǒng)的內(nèi)容分為幾塊嗎?什么叫做虛擬內(nèi)存?他和主存的關(guān)系如何?內(nèi)存管理屬于操作系統(tǒng)的內(nèi)容嗎?
操作系統(tǒng)的主要組成部分:進(jìn)程和線程的管理,存儲(chǔ)管理,設(shè)備管理,文件管理。虛擬內(nèi)存是一些系統(tǒng)頁(yè)文件,存放在磁盤(pán)上,每個(gè)系統(tǒng)頁(yè)文件大小為4K,物理內(nèi)存也被分頁(yè),每個(gè)頁(yè)大小也為4K,這樣虛擬頁(yè)文件和物理內(nèi)存頁(yè)就可以對(duì)應(yīng),實(shí)際上虛擬內(nèi)存就是用于物理內(nèi)存的臨時(shí)存放的磁盤(pán)空間。頁(yè)文件就是內(nèi)存頁(yè),物理內(nèi)存中每頁(yè)叫物理頁(yè),磁盤(pán)上的頁(yè)文件叫虛擬頁(yè),物理頁(yè)+虛擬頁(yè)就是系統(tǒng)所有使用的頁(yè)文件的總和。
22、線程是否具有相同的堆棧?dll是否有獨(dú)立的堆棧?
每個(gè)線程有自己的堆棧。
dll是否有獨(dú)立的堆棧?這個(gè)問(wèn)題不好回答,或者說(shuō)這個(gè)問(wèn)題本身是否有問(wèn)題。因?yàn)閐ll中的代碼是被某些線程所執(zhí)行,只有線程擁有堆棧。如果dll中 的代碼是exe中的線程所調(diào)用,那么這個(gè)時(shí)候是不是說(shuō)這個(gè)dll沒(méi)有獨(dú)立的堆棧?如果dll中的代碼是由dll自己創(chuàng)建的線程所執(zhí)行,那么是不是說(shuō)dll 有獨(dú)立的堆棧?
以上講的是堆棧,如果對(duì)于堆來(lái)說(shuō),每個(gè)dll有自己的堆,所以如果是從dll中動(dòng)態(tài)分配的內(nèi)存,最好是從dll中刪除;如果你從dll中分配內(nèi)存,然后在exe中,或者另外一個(gè)dll中刪除,很有可能導(dǎo)致程序崩潰。
23、什么是緩沖區(qū)溢出?有什么危害?其原因是什么?
緩沖區(qū)溢出是指當(dāng)計(jì)算機(jī)向緩沖區(qū)內(nèi)填充數(shù)據(jù)時(shí)超過(guò)了緩沖區(qū)本身的容量,溢出的數(shù)據(jù)覆蓋在合法數(shù)據(jù)上。
危害:在當(dāng)前網(wǎng)絡(luò)與分布式系統(tǒng)安全中,被廣泛利用的50%以上都是緩沖區(qū)溢出,其中最著名的例子是1988年利用fingerd漏洞的蠕蟲(chóng)。而緩沖區(qū)溢出中,最為危險(xiǎn)的是堆棧溢出,因?yàn)槿肭终呖梢岳枚褩R绯?,在函?shù)返回時(shí)改變返回程序的地址,讓其跳轉(zhuǎn)到任意地址,帶來(lái)的危害一種是程序崩潰導(dǎo)致拒絕服務(wù),另外一種就是跳轉(zhuǎn)并且執(zhí)行一段惡意代碼,比如得到shell,然后為所欲為。通過(guò)往程序的緩沖區(qū)寫(xiě)超出其長(zhǎng)度的內(nèi)容,造成緩沖區(qū)的溢出,從而破壞程序的堆棧,使程序轉(zhuǎn)而執(zhí)行其它指令,以達(dá)到攻擊的目的。
造成緩沖區(qū)溢出的主原因是程序中沒(méi)有仔細(xì)檢查用戶輸入的參數(shù)。
Linux操作系統(tǒng)的面試題大全三
Q.1: Linux 操作系統(tǒng)的核心是什么?
Shell
Kernel
Command
Script
Terminal
答: 內(nèi)核(Kernel)是Linux 操作系統(tǒng)的核心。Shell是一個(gè)命令行解釋器,命令(Command)是針對(duì)計(jì)算機(jī)的指令,腳本(Script)是存儲(chǔ)在文件中的命令的集合,終端(Termial)是命令行接口。
Q.2: Linus Torvalds 都創(chuàng)建過(guò)什么東東?
Fedora
Slackware
Debian
Gentoo
Linux
答: Linux Torvalds 創(chuàng)建了Linux,Linux是所有上述操作系統(tǒng)的核心,同樣也是其他一些Linux 操作系統(tǒng)的核心。
Q.3: Torvalds,使用C++語(yǔ)言編寫(xiě)了Linux內(nèi)核的大部分代碼,是這樣嗎?
答: 不! Linux內(nèi)核包含了12,020,528行代碼,其中注釋占去了2,151,595 行。因此剩下的9,868,933 行就是純代碼了。而其中7,896,318行都是用C語(yǔ)言寫(xiě)的。
剩下的1,972,615行則是使用C++,匯編,Perl, Shell Script, Python, Bash Script, HTML, awk, yacc, lex, sed等。
注:代碼行數(shù)每天都在變動(dòng),平均每天超過(guò)3,509行代碼添加到內(nèi)核。
Q.4: 起初,Linux 是為 Intel X86 架構(gòu)編寫(xiě)的,但是后來(lái)比其他操作系統(tǒng)移植的硬件平臺(tái)都多,是這樣嗎 ?
答: 是的,我同意。Linux那時(shí)候是為x86機(jī)器寫(xiě)的,而且現(xiàn)已移至到所有類(lèi)型的平臺(tái)。今天超過(guò)90%的超級(jí)計(jì)算機(jī)都在使用Linux。Linux在移動(dòng)手機(jī)和平板電腦領(lǐng)域前景廣闊。事實(shí)上我們被Linux包圍著,遠(yuǎn)程遙控,太空科學(xué),研究,Web,桌面計(jì)算等等,舉之不盡。
Q.5: 編輯 Linux 內(nèi)核合法嗎?
答: 是的,內(nèi)核基于GPL發(fā)布,任何人都可以基于GPL允許的權(quán)限隨意編輯內(nèi)核。Linux內(nèi)核屬于免費(fèi)開(kāi)源軟件(FOSS)。
Q.6: UNIX和Linux操作系統(tǒng),本質(zhì)上的不同在哪里?
答: Linux操作系統(tǒng)屬于免費(fèi)開(kāi)源軟件,內(nèi)核是由 Linus Torvalds 和開(kāi)源社區(qū)共同開(kāi)發(fā)的。當(dāng)然我們不能說(shuō)UNIX操作系統(tǒng)和免費(fèi)開(kāi)源軟件(FOSS)無(wú)關(guān),BSD 就是基于 FOSS 范疇的 UNIX 的變種。而且大公司如 Apple,IBM,Oracle,HP等,都在為UNIX內(nèi)核貢獻(xiàn)代碼。
Q. 7: 挑出來(lái)一個(gè)與眾不同的來(lái).
HP-UX
AIX
OSX
Slackware
Solaris
答 : Slackware。 HP-UX, AIX, OSX, Solaris 分別是由 HP, IBM, APPLE, Oracle 開(kāi)發(fā)的,并且都是UNIX的變種. Slackware 則是一個(gè)Linux操作系統(tǒng).
Q.8: Linux 不會(huì)感染病毒嗎?
答 : 當(dāng)然會(huì)! 這個(gè)地球上不存在不會(huì)感染病毒的操作系統(tǒng)。但是Linux以迄今為止病毒數(shù)量少而著稱(chēng),是的,甚至比UNIX還要少。Linux榜上有名的病毒只有60-100個(gè),而且沒(méi)有一個(gè)病毒在傳播蔓延。Unix粗略估計(jì)有85-120個(gè)。
Q.9: Linux 屬于哪種類(lèi)型的操作系統(tǒng)?
多用戶
多任務(wù)
多線程
以上所有
以上都不是
答 : 以上所有。Linux是一個(gè)支持多用戶,可以同時(shí)運(yùn)行多個(gè)進(jìn)程執(zhí)行多個(gè)任務(wù)的操作系統(tǒng)。
Q.10: 一般的 Linux 命令的語(yǔ)法格式是:
command [選項(xiàng)] [參數(shù)]
command 選項(xiàng) [參數(shù)]
command [選項(xiàng)] [參數(shù)]
command 選項(xiàng) 參數(shù)
答 : Linux 命令的正確語(yǔ)法是, Command [選項(xiàng)] [參數(shù)]。
Q.11: 挑出來(lái)一個(gè)與眾不同的來(lái)。
Vi
vim
cd
nano
答 : cd 與其他命令不同。Vi,vim和 nano都是編輯器,用于編輯文檔,而cd是用于切換目錄的命令。
補(bǔ)充:Linux操作系統(tǒng)面試技巧
一:知己知彼
面試之前一定要對(duì)自己有一個(gè)了解,目前l(fā)inux在各個(gè)行業(yè)都是非常火熱的,畢業(yè)的同學(xué)們非常清楚自己的技術(shù)層面,可以勝任哪些公司的哪些職位,都可以做什么。linux專(zhuān)業(yè)的定義在心中要十分的明確。還有就是了解對(duì)方,去面試之前一定要了解一下這家公司,做不到50%也要了解到30%,這樣跟經(jīng)理聊得時(shí)候才可以說(shuō)出你的想法和需要改進(jìn)的地方,而且都是從實(shí)際出發(fā)的,并不是自己一個(gè)套路套出所有公司的方案,人家會(huì)覺(jué)得你很專(zhuān)業(yè),對(duì)公司很上心。
二:征服HR
有句老話講的好,前三腳要踢開(kāi)。你的面試官?zèng)]有咱們的老師和藹可親,他們都是想通過(guò)各種奇怪的問(wèn)題來(lái)考察你的專(zhuān)業(yè)性,從而判斷你是否可以勝任公司的職位。所以如何瞬間征服你的面試官,是一個(gè)很值得研究的問(wèn)題。一見(jiàn)面肯定是禮貌性的寒暄一下就馬上進(jìn)入正題開(kāi)始自我介紹,這里有個(gè)小技巧,不要按著你的簡(jiǎn)歷說(shuō)。因?yàn)槟銇?lái)之前你的信息面試官肯定已經(jīng)了解了大概,如果你原封不動(dòng)的背誦一遍,面試官肯定要睡著了。一定要找出重點(diǎn)對(duì)你的簡(jiǎn)歷進(jìn)行潤(rùn)色一番,這樣能勾起面試官對(duì)你的興趣。
三:掌握主動(dòng)權(quán)
面試跟談判一樣,一定要把握主動(dòng)權(quán)。面試官提問(wèn)是正常的,因?yàn)樗麑?duì)你不了解肯定通過(guò)一些問(wèn)題來(lái)對(duì)你加深了解。但是千萬(wàn)不要把面試過(guò)程造成一問(wèn)一答的節(jié)奏,一定要掌握主動(dòng)權(quán),了解到了他的需求點(diǎn)以后,就給他幾次準(zhǔn)確的回復(fù)。然后提出一些良性的有建設(shè)性的意見(jiàn),是非常重要的。不要忘記阿里巴巴公司對(duì)面試員工的第一條規(guī)定,那就是主人翁意識(shí),你所提出的想法和建議,都是建立在你已經(jīng)入職為公司良性發(fā)展所考慮的。我們所做的都會(huì)影響我們的未來(lái),所以現(xiàn)在努力就等于投資未來(lái),加油吧!