计算机的二三事——软件篇
計算機的二三事——軟件篇
- 寫在前面
- 第一部分 操作系統
- 1.1 操作系統(OS)
- Windows
- MacOS
- Linux
- 1.2 操作系統的架構(x86(32位)/x64(64位)/arm(64位))
- 1.3 驅動程序
- 1.4 軟件運行庫
- 第二部分 使用軟件(windows篇)
- 2.1 系統軟件
- 如何使用系統軟件
- 文件資源管理器(explorer.exe)
- 任務管理器(taskmgr.exe)
- 系統啟動配置(msconfig.exe)
- 系統信息(msinfo32.exe)
- 命令提示行(cmd.exe)
- windows關機進程(shutdown.exe)
- windows進程殺死程序(taskkill.exe)
寫在前面
其實從我們對使用計算機的目的來看,我們使用計算機的首要目的無非就是使用軟件罷了。無論是想要去瀏覽網頁,玩個游戲,甚至是編個程序,我們都在使用軟件。為了能讓你們感受到這篇文章的親切感,就從與我們接觸最為密切的軟件層面開始講起好了。
第一部分 操作系統
1.1 操作系統(OS)
問:被使用次數最多的軟件是什么?
答:肯定是 瀏覽器 操作系統啦
操作系統有哪些我也不再多說,都被說爛了,就是Linux Unix Windows(MacOS和IOS的內核是Unix的分支,因此我就算他是Unix的了,Android就不用說了,運行在Linux下的。 但凡用些安卓終端的都會知道,不知道的我也算你知道了 )。他們之間的關系和發展史我也不是很想多說,有興趣的可以百度去查一查,或者我有興趣了在后面雜談里面會說一些。
這篇文章只是為了實用而去編寫的,為了介紹起來能更加輕松些,所以就從windows、Linux、MacOS這些內容來講。
Windows
作為市場份額最大,使用人數最多,軟件環境最為多樣化(病毒也是)的免費 付費的操作系統。Windows在桌面端是絕對的王者(我沒有在罵windows phone,我沒有在罵windows phone,我沒有在罵windows phone ),這樣的體量相信不需要我多介紹了。
所以對于windows,我更愿意去跟大家介紹windows的前身——DoS系統。其實DoS系統可以看做是一切操作系統的鼻祖。現在的操作系統中也總是能找到類似于DoS的身影——終端或者命令提示行的形式存在著。可以說是操作系統的“活化石”了。
MacOS
MacOS顧名思義,是給蘋果的Mac系列電腦使用的操作系統,Unix操作系統的典型。總所周知,MacOS只適用于Mac系統。這一點和Unix家其他的系統例如AIX、HP-UX一樣,軟硬件之間存在著配套的聯系。這也是Unix家族與Linux家族之間最大的差別。至于原因嘛,很簡單,Linux開源,開源的利弊在將Linux的時候在著重去講。
說回到MacOS,我相信有很多人認為MacOS是非常安全的系統。事情也的確如此,適用于MacOS的病毒確實少之又少,但也不代表沒有,所以MacOS也不是絕對安全的系統。至于去討論原因,有人肯定會非常自信的說,是因為蘋果開發環境的封閉性鑄就了蘋果設備的安全性。如果我們在這里討論的是IOS或者是IpadOS的話,的確如此,但是我們討論的卻是MacOS,那么這個理由就不太準確了。實際上,蘋果封閉的只是移動端的應用來源,而MacOS,蘋果一直是允許用戶下載并安裝互聯網資源的。因此,從理論上來講MacOS在安全性上,和windows沒什么太大差別,但要比Linux強,至于原因,也是因為開源。
那么MacOS相對“安全”的真正原因是什么呢?
其實是因為使用MacOS的人數不多,并且系統環境也還算封閉。至少比起windows和linux來說級別算是最高的了。研究和開發Mac軟件還必須要使用MacOS,開發成本一下就比其他系統高很多,因此專門研究MacOS系統漏洞的人相對就少了很多。因此營造出了MacOS系統漏洞很少,能夠使用的惡意軟件數量也很少的假象。
Linux
Linux,強大、開源、免費的最熱門的操作系統,擁有無數的分支開發版本。優點就是它開源,缺點嘛…也是它開源。
Linux——成于開源,敗于開源的經典。
我相信有很多人會說,現在不就是擁抱開源的時代么,多少多少多少家軟件公司現在都在擁抱開源。但其實,開源,并不是完全的利好。
反正先說優點。開源,擁抱開發者,開源給Linux系統也帶來了無限的客制化空間,包括驅動、系統、圖形化界面等等等等。只有你想不到的,沒有開源系統客制化范圍所覆蓋不到的。并且,開放的源代碼讓用戶和企業在系統的安全性上不需要考慮太多。更關鍵的問題是開源部分免費的問題,比起收費的windows而言,那個老版不會喜歡免費又讓人放心的Linux呢。
再來說一說缺點。開源,把系統的開發權讓給了開發者,那么,系統的易用性就基本取決于系統開發者的勤快程度了。當然,Linux在這一方面做的確實有那么一丟丟的糟糕。暫且拋開目前的發行版(當然,現在隨著Linux發行版越來越多,也越來越親民,Linux也開始擁抱普通用戶了),安裝和使用Linux的過程是什么樣的呢。制作安裝盤,安裝系統(推薦使用全命令行的安裝,巴斯滴很 ),重啟。安裝好之后你以為會像windows一樣給你一個welcome的界面?想多了,人家不帶圖形化界面的,開機就幾行英文,所有操作全靠終端指令。在現在,如果你想體驗DOS系統的魅力?那Linux的部分發行版真的能給予你一樣的體驗。還有最最最關鍵的問題,源代碼的開放,讓所有的程序員能夠最為直觀的看到內核源代碼。這對于系統安全而言,這是最為致命的問題。因為作為一個漏洞而言,如果漏洞在內核位置被發現,那么通過這個漏洞能夠做到其他所有類型漏洞都能做到的事情,甚至能夠讓你無法發現。
其實縱觀Linux和Linux的發行版的發展歷史。我們不難得出一個結論:開源并不代表把自己的一切都交給了使用它的人。決定用戶數量多少的,不是你的軟件本身的公開透明,而依舊是軟件是否簡單易用。開發者擁抱開源,是因為他們有足夠的能力去對軟件進行定制化操作。而普通用戶擁抱開源,只是希望自己使用的軟件更加安全罷了,但這一條件的前提,是他們能夠正常的去使用和操作軟件。
1.2 操作系統的架構(x86(32位)/x64(64位)/arm(64位))
說完了操作系統,現在開始講操作系統的一個最重要的參數——操作系統的系統架構,其實按理說應該叫cpu架構的,但是因為有x86_64位架構的cpu運行x86_32位架構的操作系統情況的存在,因此就按照操作系統的架構來介紹。
x86和x64都是x86架構下的兩個不同版本,在日常生活中,操作系統都會提供x86和x64兩個選項的系統鏡像來讓我們選擇安裝。所以電腦小白們經常會問一個問題——到底是選擇x86還是選擇x64呢,其實最簡單的方法就是看內存大小,內存在4GB及以上的電腦都要使用x64的操作系統,反之小于4GB的x86就足夠了。
至于arm架構的用戶嘛,恭喜你們,沒有這樣的選擇困難啦,因為它只有64位的表示方式(強迫癥人狂喜)。
但是如果你是以為專業人士,這樣的答案絕對是不夠的,那么為什么要這樣區分呢,那就要從x86和x64的含義說起了。
隨著x86架構的發展,x86經歷過三個版本的迭代。分別是x86_16位、x86_32位和x86_64位。同樣的,在發展的過程中因為程序規模的不斷擴大,x86_16位版本退出了歷史的舞臺。x86指代x86_32位,x64指代x86_64位。
那么x86的迭代迭代了什么?其實通過將x86和x64展開解釋之后就會發現是位數的變化,從32位變成了64位,那么,是什么位數的變化呢,其實是cpu的寄存器。
那既然系統架構的區分是根據cpu寄存器來的,那為什么和內存扯上關系了?
因為cpu寄存器內存放的,正是保存在內存之中相應指令以及數據的地址。
因此,所有的謎團就都解開了。為什么32位架構只能支持到4GB呢?因為32位二進制數只能表示232 個地址,每個地址塊存放一個字節(即一個8位二進制數的集合,縮寫為B,區分大小寫),那么共計4294967296個字節,根據存儲單位的換算法則,就可以表示出232 B=222 KB=212 MB=22 GB=4GB了。因為32位的二進制數只能表示4GB的內存地址,因此超出4GB的部分無法表示,也就無法使用4GB以外的空間,再加上系統本身需要保留的內存空間來維持自身的運作。因此在windows下可用空間就只剩下3.XXGB了。
那么同理,64位最大支持多大的內存呢,有興趣的可以自己算一算,我就直接給答案了,17179869184 GB。
講到這里,其實不免能夠發現一個問題,那就是64位架構是能夠表示32位架構內所有內容的,那么為什么不直接淘汰32位架構直接替換成64位架構呢。其實理由也很簡單,64位架構,意味著cpu執行一個指令,都需要按照64位的地址來進行處理。原本32位便可以處理的問題需要向前填充32位0后再繼續處理,因此64位對cpu的處理能力要求更高。但是64位能夠表示的內容也變得更多,軟件規模才得以進一步的拓展。總而言之就是,32位的性能要優于64位,但是內容豐富度和軟件規模上64位更勝一籌。
說完了x86,再順便提一嘴ARM架構。因為ARM架構是近幾年才興起的一個處理器架構,因此它沒有x86那樣坎坷曲折的發展過程,出道及巔峰(同樣也沒有什么好啰嗦的 ),也就暫時沒有了位數的分別。和上面提到的Linux一樣,ARM架構的開源的,同樣也意味著ARM架構是可以根據CPU自身進行定制化的。這樣的特性使得Intel和AMD長年的技術封鎖得以被突破,誕生出了高通和Apple等一系列的cpu業界"新星"。
1.3 驅動程序
了解完了操作系統,根據我們做系統的步驟,我們來到了安裝驅動程序這一步。
操作系統是虛擬的,你把握不住 但是電腦自身的硬件(cpu、內存、顯卡等),電腦周邊(鍵盤、鼠標、屏幕)等都是實實在在存在的。那么如何將虛擬的帶到實際,讓邏輯成為實際的工作,或將實際的動作轉換成系統的操作?承擔這樣的轉換工作的就是這些硬件的驅動程序。驅動程序根據測試和分發商的不同,分為==OEM(Original Equipment Manufacturer,設備原始制造商)和WHQL(Windows Hardware Quality Lib,windows硬件設備質量實驗室)==兩個版本。電腦小白推薦使用設備品牌商官網提供的經過設備制造商測試過的驅動程序,這種程序最為穩定。但由于測試步驟和周期要比WHQL更長,因此更新較慢。希望嘗鮮的大佬們則可以選擇WHQL驅動,能夠更早的收到更新但是風險較大。甚至需要重做系統。
至于驅動程序的獲取方式,目前一共有四種:
第一種最為方便和簡單,就是通過windows的更新來獲取設備驅動。在windows10或更高版本中,OEM廠商可以通過微軟提供的平臺上傳。當然缺點也是有的,一是有些廠商對于某些設備只提供一次驅動包,也就是說驅動版本無法保證最新。第二點就是當從做系統后因網卡驅動的丟失導致電腦無法連接到網絡,這個辦法也是無法使用的。
第二種是通過第三方軟件獲取。不過從以往經驗看來翻車率最高。
第三種是訪問設備制造商官網,比如筆記本品牌官網。適用于品牌整機和筆記本。
第四種是訪問硬件制造商,比如Intel?驅動程序和支持助理,英偉達驅動下載,AMD官網等。只能獲取到WHQL驅動。
因為面向的設備不同,驅動程序的編寫方式也大不相同,在此就不做深層次的介紹。對某一個硬件驅動或對驅動本身感興趣的同學可以自行百度了解。
1.4 軟件運行庫
在使用軟件的過程中,相信大部分同學都遇到過XXX.dll丟失的問題,而這類問題一般都是因為軟件自身所需的軟件運行庫缺失導致的。
作為一個全新的操作系統,一開始是不帶任何軟件運行庫的,需要用戶自行去補充安裝。常用的軟件運行庫為微軟的C/C++系列運行庫和.Net運行庫,以及游戲專用API——DirectX。
當然解決方法也很簡單——缺什么補什么就好了。不知道這個dll在哪個包里?百度都能告訴你答案的。
那么軟件運行庫到底是什么?我們為什么需要軟件運行庫?
其實言簡意賅的說,軟件運行庫就是對代碼的進一步解釋和轉換。隨著第三代編程語言的興起,軟件的代碼從原來的機器碼或匯編指令逐步封裝,變成了如今一個函數就可以承載幾十行甚至上百行的指令。但是CPU能夠接受的運算指令依舊是機器碼。軟件運行庫所提供的,就是類似于翻譯的功能。軟件編碼的過程,其實就是不斷調用運行庫內提供的已經翻譯好的命令,亦或者是對某個函數的進一步解釋。當然,如果在軟件運行的過程中這個翻譯缺失或者不完整,就會導致翻譯出的結果存在問題,cpu無法通過運算得出正確的結果,最終導致軟件甚至系統的崩潰。
當然,因為語言的不同,所需要的翻譯也不同。因為時間的不同,能夠翻譯的內容也不同。因此軟件運行庫也是變得五花八門十分臃腫。為保證系統的便攜性,是不會帶有所有運行庫的。所以就會出現運行老軟件時提示XXX.dll文件缺失的情況了。
第二部分 使用軟件(windows篇)
2.1 系統軟件
操作系統是一個軟件的集合,自然也會有為我們準備一些讓我們的系統更加方便使用的軟件。在此介紹一些我們平時常用的系統軟件。
如何使用系統軟件
操作系統系統軟件在windows默認設置下,已經包含在系統環境變量設置中,因此只需按下windwos+R鍵輸入對應的英文名即可打開對應的系統軟件。同理也可以自己在環境變量中添加自己的路徑,實現相同的效果。
文件資源管理器(explorer.exe)
或許對于小白來說,文件資源管理器是使用時長最長但是存在感卻非常低的一個軟件了。其實,桌面、任務欄、默認的文件夾視圖窗體都是文件資源管理器的組成部分。
任務管理器(taskmgr.exe)
解決卡死軟件好幫手,同時擁有進程管理的較高權限,強力殺掉惡意進程。同樣也是各路病毒和惡意軟件的頭號通緝目標。任務管理器不光可以管理進程,還可以查看系統資源的使用狀態,管理開機啟動項(不會像360他們那樣全,但是也絕對夠用),管理系統用戶的狀態。還有一個隱藏功能,就是可以在文件資源管理器掛掉的時候打開啟動窗口,進而進行一系列的操作。并且還可以十分方便的使用管理員身份運行(某些系統崩潰場景下的救命稻草)。
系統啟動配置(msconfig.exe)
為防止windows在某些情況下可能出現的異常行為,windows預留了很多的啟動方式。當然這些啟動方式都可以通過在windows RE環境下執行并啟動,也可以在msconfig中進行自定義的啟動設置。
msconfig同時還提供了引導管理、啟動服務管理以及一些常用的系統工具入口,方便用戶進行相應的操作。
系統信息(msinfo32.exe)
msinfo32里面記載了系統所需的所有軟硬件資源信息,甚至有一些參數只能在msinfo32中查詢的到。雖然里面的信息多到略顯多余,但是相信總有一天他會為你提供有用的參考信息。
命令提示行(cmd.exe)
終端,或者叫命令提示行是操作系統中最為古老并且最為重要的軟件。對于現在而言命令提示行依舊承載著所有軟件運行(并且是對于沒有界面的軟件而言最為便捷的結果輸出途徑)的重任。系統中的所有操作都可以轉換成命令提示行中的一條條指令。至于具體的指令內容完全可以另寫一篇文章進行介紹。而“運行”本身也可以視為是命令提示行的簡化版。他們的區別就是在使用“運行”執行結束后會自動關閉命令提示行對話框,而命令提示行本身不會。所以使用"運行"往往是看不見運行結果的。
windows關機進程(shutdown.exe)
接下來要介紹的軟件,和上面幾個具有高大上界面的軟件不同,這類軟件并沒有操作界面,只能通過相應的參數來實現相應的功能,通過“運行”和命令提示行使用并運行。了解windows關機進程的主要目的就是當遇到一些突發情況導致任務欄無法使用時,可以使用windows關機進程即可實現關機、注銷、重啟等操作。
接下來是shutdown命令組合和相關參數釋義:
用法:shutdown [/i | /l | /s | /sg | /r | /g | /a | /p | /h | /e | /o] [/hybrid] [/soft] [/fw] [/f] [/m \\computer][/t xxx][/d [p|u:]xx:yy [/c "comment"]]
用法解釋:
1.當shutdown后不接任何參數時,默認輸出shutdown的使用幫助,這和在后面輸入/?參數是一致的。
2.shutdown后接/i,/l,/s,/sg,/r,/g,/a,/p,/h,/e,/o用于表示具體操作內容,參數釋義如下:
/i:顯示操作界面(太過于專業導致一般用戶用不上,但可以用于遠程操作)。
/l:注銷用戶,不能與/m和/d搭配使用,即不能遠程注銷計算機或填寫注銷原因。
/s:關閉計算機。
/sg:關閉計算機,并在開機后重啟關機前仍在運行中的軟件。
/r:重啟計算機。
/g:重啟計算機,并重啟重啟計算機前仍在運行中的軟件。
/a:取消shutdown指令。注意當需要取消帶有/fw的指令時,/a需和/fw搭配使用,以取消向主板固件(BIOS)的引導。
/p:屏蔽計時關機指令的計時提醒并在計時結束后關機。
/h:休眠計算機。
/e:記錄計算機意外關閉的原因。
/o:轉到高級啟動選項菜單并重新啟動計算機。必須與/r一起使用。
3.在解釋2的前提下可以后接/hybrid,/soft,/fw,/f,/m,/t,/d,/c等參數對命令操作進行額外說明,由于不太常用之列出可能會用到的幾個參數進行解釋:
/hybrid:與/s聯合使用,下次開機時電腦將以快速啟動的方式進行啟動。
/fw:下次開機時將引導到主板固件界面。
/t xxx:命令執行計時器,xxx表示時間,單位為秒,若不帶此參數則默認為60秒,時間為0則立即執行。在命令計時期間可以輸入shutdown -a取消相關指令。
windows進程殺死程序(taskkill.exe)
顧名思義,taskkill是用來強制殺死某項進程的程序。同樣的它也是病毒和惡意軟件的頭號目標。除了能夠及時阻止惡意程序的繼續執行以外,也可以用來解除特定文件占用。這在刪除文件時也能給予相當大的幫助。taskkill也沒有圖形界面,只能通過“運行”和命令提示行進行使用。
用法:TASKKILL [/S system [/U username [/P [password]]]]{ [/FI filter] [/PID processid | /IM imagename] } [/T] [/F]
釋義:
/?:顯示taskkill幫助信息。
/s:指定任務所在的遠程計算機(一般不填,默認本機,下面兩個為對/s的進一步指定,同理)。
/u:指定遠端客戶機執行命令的用戶名。
/p:遠端機用戶密碼。
/fi:利用篩選器篩選目標進程。可搭配*進行模糊篩選(慎用)
| STATUS | eq, ne | RUNNING ,NOT RESPONDING , UNKNOWN | 進程狀態 |
| IMAGENAME | eq, ne | 映像名稱 | 映像名稱 |
| PID | eq, ne, gt, lt, ge, le | PID 值 | 進程號 |
| SESSION | eq, ne, gt, lt, ge, le | 會話編號 | 會話號 |
| CPUTIME | eq, ne, gt, lt, ge, le | CPU 時間,格式為 hh:mm:ss | 軟件運行時間 |
| MEMUSAGE | eq, ne, gt, lt, ge, le | 內存使用量,單位為 KB | 軟件內存使用量 |
| USERNAME | eq, ne | 用戶名,格式為 [domain]user | 使用進程的用戶名 |
| MODULES | eq, ne | DLL 名稱 | 解除動態庫的占用 |
| SERVICES | eq, ne | 服務名稱 | 使用該服務的進程 |
| WINDOWTITLE | eq, ne | 窗口標題 | 關閉該窗口的進程 |
說明
1) 只有在應用篩選器的情況下,/IM 切換才能使用通配符 '’。
2) 遠程進程總是要強行 (/F) 終止。
3) 當指定遠程機器時,不支持 “WINDOWTITLE” 和 “STATUS” 篩選器。
/pid:利用PID指定目標進程(pid可通過tasklist指令獲取)
/IM:利用進程名指定目標進程,可以使用*進行模糊篩選(慎用)
/T:終止指定的進程和由它啟用的子進程。
/F: 指定強制終止進程。
總結
以上是生活随笔為你收集整理的计算机的二三事——软件篇的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 迅捷PDF转换器如何将PDF文档转成Wo
- 下一篇: tablewidget