IT人的十八般武艺-操作系统
生活随笔
收集整理的這篇文章主要介紹了
IT人的十八般武艺-操作系统
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
| 版權(quán)聲明:原創(chuàng)作品,允許轉(zhuǎn)載,轉(zhuǎn)載時(shí)請(qǐng)務(wù)必以超鏈接形式標(biāo)明文章 原始出處 、作者信息和本聲明。否則將追究法律責(zé)任。http://yongyu2000.blog.51cto.com/962342/234809 |
| 操作系統(tǒng),是IT人的任督二脈(之一)。打通這跟筋,便可功力精進(jìn),橫掃天下。為什么這么說(shuō)?為什么操作系統(tǒng)如此重要?原因如下: 1)只要你搞軟件,就離不開(kāi)OS。即便你是玩Cisco的,也還要面對(duì)IOS吧。 2)大規(guī)模架構(gòu)設(shè)計(jì)和系統(tǒng)集成,需要對(duì)底層OS的能力和容量非常熟悉,才能駕輕就熟。 3)診斷糾錯(cuò)需要熟悉操作系統(tǒng)。 4)性能優(yōu)化需要熟悉操作系統(tǒng)。 5)搞計(jì)算機(jī)和網(wǎng)絡(luò)安全更需要懂操作系統(tǒng)。 5)軟件開(kāi)發(fā)需要懂操作系統(tǒng),如果對(duì)OS和API平臺(tái)不熟悉,那就是兩眼一摸黑,出了問(wèn)題立刻抓瞎。 操作系統(tǒng),百度百科上是這么解釋的:操作系統(tǒng)是控制其他程序和后臺(tái)服務(wù)運(yùn)行(控制程序),管理系統(tǒng)軟硬件資源(管理資源)并為用戶(hù)提供操作界面(提供界面)的系統(tǒng)軟件的集合。這句話寫(xiě)得太好了,把OS的三個(gè)職能清晰的展現(xiàn)給我們了:控制程序、管理資源、提供界面(用戶(hù)圖形界面和編程API/SDK)。百度上操作系統(tǒng)這個(gè)詞條寫(xiě)得非常不錯(cuò),大家感興趣可以去看看。我認(rèn)為,修煉操作系統(tǒng),應(yīng)該從兩個(gè)角度入手,分別是靜態(tài)的和動(dòng)態(tài)的。靜態(tài)的,是指熟悉操作系統(tǒng)的基本概念,以及結(jié)構(gòu)和各個(gè)模塊之間的關(guān)系;動(dòng)態(tài)的,是指搞清楚程序在操作系統(tǒng)中運(yùn)行的過(guò)程和方式。 從靜態(tài)的角度看操作系統(tǒng) 操作系統(tǒng)一般分為內(nèi)核模式和用戶(hù)模式。以Windows為例,內(nèi)核模式中主要包括一些對(duì)硬件的管理模塊和對(duì)程序的控制模塊。比如我們熟悉的內(nèi)存管理器、設(shè)備驅(qū)動(dòng)程序管理器、文件系統(tǒng)、安全子系統(tǒng)、注冊(cè)表等等。一些比較重要的概念和模塊是: 1)進(jìn)程的地址空間。這是包括Windows在內(nèi)的現(xiàn)代操作系統(tǒng)最核心的概念之一,MSDN上的定義是:所有32位應(yīng)用程序都有4GB的進(jìn)程地址空間(32 位地址最多可以映射 4 GB 的內(nèi)存)。對(duì)于Windows操作系統(tǒng),應(yīng)用程序可以訪問(wèn)2GB的進(jìn)程地址空間,稱(chēng)為用戶(hù)模式虛擬地址空間。應(yīng)用程序擁有的所有線程都共享同一個(gè)用戶(hù)模式虛擬地址空間。其余2GB為操作系統(tǒng)保留(也稱(chēng)為內(nèi)核模式地址空間)。這個(gè)的很多人不求甚解,往往搞不清楚用戶(hù)模式虛擬地址空間、物理內(nèi)存、虛擬內(nèi)存、內(nèi)存映射、頁(yè)面文件等等之間的關(guān)系。應(yīng)用程序?qū)?nèi)從的申請(qǐng)和使用過(guò)程,也需要理解的非常的透徹,這一部分,在我下面提到的推薦書(shū)籍Windows核心編程中,有非常透徹的講解。 2)進(jìn)程和線程。這些都是操作系統(tǒng)教材上老生常談的概念了,進(jìn)程就不多說(shuō)了,線程很重要,尤其是操作系統(tǒng)對(duì)多線程的實(shí)現(xiàn)和處理方式,這是學(xué)習(xí)服務(wù)器端編程或者其他比較深入工作所必須掌握的知識(shí)。侯捷曾經(jīng)翻譯過(guò)一本《Win32 多線程程序設(shè)計(jì)》,這本書(shū)非常的好,是從另一個(gè)側(cè)面學(xué)習(xí)操作系統(tǒng)的優(yōu)秀教材。 3)驅(qū)動(dòng)程序。你可能不知道,80%以上的Windows藍(lán)屏死機(jī),是由在Windows系統(tǒng)內(nèi)核中運(yùn)行的第三方驅(qū)動(dòng)程序造成的。驅(qū)動(dòng)程序不僅僅包硬件驅(qū)動(dòng),一些防病毒軟件、防火墻,甚至×××軟件的,都會(huì)在Windows中安裝驅(qū)動(dòng)。理解操作系統(tǒng)是如何處理對(duì)硬件的訪問(wèn),驅(qū)動(dòng)程序的類(lèi)型,驅(qū)動(dòng)程序的安裝和加載過(guò)程,這些都很重要。你可以不會(huì)寫(xiě)驅(qū)動(dòng)程序,但是有這些基本的概念。 4)安全子系統(tǒng)。一提到安全,很多人第一個(gè)想到的是***。其實(shí),Windows的安全子系統(tǒng)是非常復(fù)雜的,遠(yuǎn)遠(yuǎn)不是那些僅僅會(huì)使用***工具的偽***所能夠掌握的。安全是一個(gè)非常奧妙的話題,可以一直很深入鉆下去。在自稱(chēng)***之前,請(qǐng)至少先看完《Writing Security Code》。 5)文件系統(tǒng)。隨著大規(guī)模網(wǎng)絡(luò)存儲(chǔ)技術(shù)的普及,需要系統(tǒng)管理員對(duì)操作系統(tǒng)的磁盤(pán)管理,IO管理,各類(lèi)文件系統(tǒng)的支持有非常深入的理解。以NTFS為例,其實(shí)這個(gè)文件系統(tǒng)遠(yuǎn)遠(yuǎn)比你想象的復(fù)雜,類(lèi)似于hardlink、數(shù)據(jù)流、日志等等高級(jí)功能,都有值得深入研究的地方。 6)注冊(cè)表。這個(gè)概念每個(gè)人都知道,但是我們還需要更深入的理解注冊(cè)表,知道它的格式、Windows記錄內(nèi)容的習(xí)慣、注冊(cè)表文件的安全和備份、注冊(cè)表的離線修改和維護(hù),等等。 動(dòng)口不如動(dòng)手,我們可以用Sysinternal工具箱中的一些工具,對(duì)我剛才說(shuō)的這些概念,進(jìn)行一些深入和感性的認(rèn)識(shí)。回家作業(yè):請(qǐng)下載Sysinternals工具箱,并把如下的7個(gè)工具逐一操練,搞清楚通過(guò)這些工具得到的信息有什么用,在診斷排錯(cuò)的時(shí)候,如何選用這些工具。 1)Process Explorer;2)Process Monitor;3)pagedfrg;4)ntfsinfo;5)VMMMap;6)WinObj;7)Diskmon 以下部分尚未完成,把半成品和提綱先行貼出。最近工作非常的忙,只能見(jiàn)縫插針,慢慢地更新了。 在用戶(hù)模式下,是大量的上層應(yīng)用程序控制和管理的組件。比如我們熟悉的用戶(hù)界面、后臺(tái)服務(wù)等等。 也有一些非常重要,但是我們并不太熟悉的模塊,比如會(huì)話管理器、Win32子系統(tǒng)等等。大量的應(yīng)用程序和后臺(tái)服務(wù)都是工作在用戶(hù)模式下,我們也需要對(duì)用戶(hù)模式的各個(gè)模塊和特點(diǎn)有所掌握。 1)服務(wù) 2)會(huì)話管理器 3)Win32子系統(tǒng) 從動(dòng)態(tài)的角度看操作系統(tǒng) 操作系統(tǒng)的啟動(dòng)和關(guān)機(jī) 工具LoadOrd 程序的執(zhí)行和API的調(diào)用 消息隊(duì)列、多線程等基本概念 作為一個(gè)編程平臺(tái) COM,組件 .net虛擬機(jī)環(huán)境 WinDBG是微軟著名的調(diào)試器。用好這個(gè)工具需要相當(dāng)深厚的功力,不過(guò)我們可以拿牛刀來(lái)殺雞,用這個(gè)利器,來(lái)幫助我們更好地理解Windows和Windows上程序的執(zhí)行方式。 回家作業(yè):下載WinDBG,初步掌握一些程序外圍跟蹤和調(diào)試的方法。也許你不會(huì)成為內(nèi)核調(diào)試高手,也沒(méi)辦法看到Windows源代碼,但是可以通過(guò)WinDBG,打開(kāi)一條直通Windwos和應(yīng)用程序執(zhí)行本質(zhì)的橋梁。 一些學(xué)習(xí)和認(rèn)識(shí)誤區(qū) 盲從技巧,忽視本質(zhì)。 假設(shè)在先,不求甚解。 深入細(xì)節(jié),抓住大局。 操作系統(tǒng)的發(fā)展趨勢(shì) Google的Chrom OS也許是未來(lái)的一個(gè)發(fā)展趨勢(shì)(個(gè)人看法,與公司無(wú)關(guān)),它很可能成為操作系統(tǒng)的一個(gè)新興市場(chǎng)和藍(lán)海。如果要做一下未來(lái)展望,我們應(yīng)該首先從操作系統(tǒng)的三個(gè)核心功能出發(fā):控制程序、管理資源、提供界面。 1)在控制應(yīng)用程序方面, 2)對(duì)于資源的管理,動(dòng)態(tài)IT的概念。單機(jī)操作系統(tǒng)的發(fā)展已經(jīng)日趨成熟和完善,從單機(jī)操作系統(tǒng)對(duì)單機(jī)硬件資源的管理,到針對(duì)計(jì)算資源池的動(dòng)態(tài)管理和規(guī)劃。云計(jì)算的本質(zhì)。從消費(fèi)級(jí)別來(lái)看,操作系統(tǒng)的應(yīng)用越發(fā)從PC計(jì)算到擴(kuò)展到各類(lèi)消費(fèi)類(lèi)電子產(chǎn)品,類(lèi)似手機(jī)、游戲機(jī)、數(shù)碼影音設(shè)備等等。 3)提供界面,用戶(hù)界面走向自然化,向NUI過(guò)渡;編程界面更加靈活,跨平臺(tái) 再更進(jìn)一步的擴(kuò)展思路, 推薦讀物 1、Andrew S. Tanenbaum的《Modern Operating Systems》(現(xiàn)代操作系統(tǒng))是我非常推薦的一本“教科書(shū)”。豆瓣上的評(píng)論是這樣的,大家可以參考參考。 2、《Windows Internals》,這是你能買(mǎi)到的有關(guān)Windows操作系統(tǒng)最全面也是最深入的書(shū)籍之一。這本書(shū)是比較難懂的,很多人買(mǎi)來(lái),一般看到第三章就看不下去了。不過(guò)其實(shí)把頭兩章讀懂,已經(jīng)收獲頗多了。另外Mark大牛的Sysinternal工具箱,也應(yīng)該是必備的。 3、說(shuō)道了解程序在OS中的執(zhí)行過(guò)程,我覺(jué)得Jeff Ricard大牛的那本經(jīng)典之作《Windows核心編程》是不能不看的。雖然是Win32時(shí)代的老書(shū)了,但是只要Windows存在一天,只要還有Win32 SDK寫(xiě)的應(yīng)用程序,那本書(shū)就不過(guò)時(shí)。有人評(píng)論說(shuō):“從內(nèi)容來(lái)說(shuō),確實(shí)是一本獨(dú)一無(wú)而的書(shū)。雖然總是從API引出,但卻相當(dāng)深入的介紹了Windows的一些設(shè)計(jì)方面的東西和運(yùn)行機(jī)制。諸如進(jìn)程、線程、內(nèi)存管理等,對(duì)一個(gè)想深入了解Windows的人來(lái)說(shuō)是大有裨益的”。 4、2007年的時(shí)候,我曾在TechNet上邀請(qǐng)微軟內(nèi)部的專(zhuān)家開(kāi)辦了一個(gè)有關(guān)Windows的系列講座,名稱(chēng)是《深入研究Windows內(nèi)部原理系列網(wǎng)絡(luò)廣播》,也算是Windows Internals一書(shū)的真人中文有聲版本,一并推薦給大家。 其實(shí)每次我推薦圖書(shū)資料時(shí)都小心謹(jǐn)慎、如履薄冰,很擔(dān)心對(duì)讀者產(chǎn)生誤導(dǎo)。 因此,最后還要說(shuō)一句,請(qǐng)根據(jù)自己的需要選擇,千萬(wàn)不要犯資料導(dǎo)向型的錯(cuò)誤。 本文出自 “喻勇的博客” 博客,請(qǐng)務(wù)必保留此出處http://yongyu2000.blog.51cto.com/962342/234809本文出自 51CTO.COM技術(shù)博客 |
轉(zhuǎn)載于:https://blog.51cto.com/holy2010/316882
總結(jié)
以上是生活随笔為你收集整理的IT人的十八般武艺-操作系统的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ASP.NET的五大数据控件分析
- 下一篇: 如何删除有病毒的网站?