幾個 G 大的 Windows 操作系統純代碼核心部分有多大?
遇到一台 2000 年左右的古董台式機,裝的是 Windows me,如此古董還以為要半天才開機,結果發現按下電源鍵 20 秒不到就出現桌面了!而現在用的 i7 8G 內存台式機開機從來都是一分鐘以上。這應該是操作系統軟體越做越龐大造成的。
有一個疑問:幾個 G 大的 Windows 操作系統純代碼核心部分有多大? 比如 Windows 操作系統從之前的兩三百 M 到現在的幾個 G, 難道增加了這麼多代碼?還是增加的大部分都是非核心功能有關的東西,比如圖標特效之類。有沒有可能搞出一個純凈的 Windows 操作系統,去掉所有圖標等並非必不可少的功能,比如『計算機』就只顯示『計算機』三個字,不要圖標,只保留所有實際有用的功能,這樣是不是可以做到只有幾十 M,開機達到秒開?
如果問Windows內核有多大,其實真不大,不到10M。
Windows內核文件是:NTOSKRNL.EXE,位於C:Windowssystem32文件夾,單核CPU和多核CPU的大小不同,自Windows2000以來一直都在這個地方。我用的Win7版本的內核文件大概只有5M多。
但是,題主,你對操作系統的理解有問題,你如果只有一個操作系統的內核,那麼基本上相當於你什麼都做不了。Windows是一個微內核(準確的說是混合內核)結構,有相當一部分系統服務在內核文件之外。
內核之外的東西包括:
1、驅動:這是一個大頭,幾百M到上G不等。你說它算不算核心?不算嗎?好,沒了驅動你幾百塊錢的顯卡就是廢品。大型遊戲也沒得玩了。你想只要顯卡驅動?那音效卡的?網卡呢?內存呢?……當然,如果題主你很精於修改操作系統,你可以把Windows的驅動精簡到只適合你當前的PC,多餘的全扔掉。但問題是,你不能換硬體,你換了新硬體,又不能正常工作了。
為什麼Windows安裝文件越來越大,因為要支持更多的硬體,因為新硬體越來越多,Windows安裝DVD里大部分都是驅動。
2、系統服務庫、子系統等等:你以為你點的按鈕都是內核提供的支持嗎?不是,這是圖形庫和子系統的貢獻。雖然也有內核參與,但像小到按鈕、菜單、圖標,大到各種標籤、窗口,都是圖形庫的支持。比如有些遊戲會要求你安裝.Net frameworks x.x之類的,就是增強圖形庫用的。
你說你不想要這些東西,對不起,不行。你不需要,但是軟體需要。缺了這些,office運行不起來,網頁不能正常瀏覽,遊戲也沒得玩,這樣的電腦你買回來幹啥用?
因為做軟體的人沒那麼多心思自己寫一套圖形庫,都是系統提供什麼,它才用什麼。
-----------------------------------
那麼回到題主的問題,有沒有可能做出一個題主要求的純凈的Windows,理論上沒問題,但沒人給你做。
題主要求的純凈的Windows,理論上微軟是能裁剪出來的。但裁剪掉的功能必須加到應用軟體里,並且要專門適配題主你的硬體,你覺得你會有錢讓微軟以及你所用的所有軟體商都給你做這樣的事情?先拿錢來吧。
你去掉了圖標庫和圖形庫,那麼所有應用軟體就必須自帶圖形庫,我不相信題主你能說服軟體商干這事情。
實際上精簡的Windows不是沒有,比如WinPE系統,這種系統就是Windows的精簡版,問題是這個系統很多軟體裝不上,很多遊戲用不了,只能用來做系統維護,題主你確定這是你要的?
Windows啟動慢是因為載入的驅動越來越多,說到底是你裝的東西太多,又因為有些軟體設計上的不好的習慣,刪除的時候卸載不幹凈,導致開機載入的驅動和服務越來越多(自己查,在註冊表:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservices,這裡,基本上都是幾百項),所以開機才慢。你如果一方面希望你的機器能幹各種各樣的事情,另一方面又希望它能快點,你覺得你這個要求是不是太高了點?換SSD吧。「這應該是操作系統軟體越做越龐大造成的。」
黑人問號臉.jpg ????正確姿勢:先問是不是,再問為什麼. 這對解決問題很有幫助的.高票答案全是乾貨,完美解答,最後說說共鳴:
朋友,你知道我這輩子買的最值的東西是什麼嗎?大一自己省了三個月生活費給自己電腦上加的128G 固態硬碟.你知道我這輩子掙得第二筆工資幹什麼了么?大三給自己電腦上加的765G 固態硬碟.用一點點錢,給自己電腦瞬間換血,日常使用無比流暢,這種體驗是升級CPU,升級內存,升級顯卡換不來的.
------------------反對某答案的分割線---------------------------評論字數限制(&<1000),我把它移動到了這裡@宋紫達 反對你的答案我真是忍住了噴你的衝動寫下這些(原因:大家都是在認真答題沒有鄙視也沒有譏諷甚至你說錯了知乎的政治正確).知乎的政治正確只有: 換SSD,別用國產流氓軟體.你見到哪個答案推薦題主用DOS了? 你見到哪個答案說系統臃腫就是正常的了?然後你在黑Windows的同時不免又黑了一把Android, Android:系統臃腫怪我咯?我開源繼承Linux怪我咯?Linux內核由Linus寫成 ,Linus:當年買不到SSD怪我咯? 所以,一切因為當年技術達不到的東西都叫歷史包袱咯? 那答主我提醒你一句,我們現在編程是因為計算機不能直接聽懂人類說話,多年以後你告訴計算機想做什麼它就會去做,那你說這叫當今的計算機設計不嚴密? 你只能叫做這是歷史的自然發展過程.如果您不同意以上觀點那底下的話當我沒說,您還是別回復我了. 暫且算您對.回到正題:
我說一下你給我們解釋的邏輯上有什麼錯誤:1.沒錯題主問的是核心代碼.關於什麼能稱為核心這種非客觀問題咱們爭論不出結果,我覺得你有必要去看看&<計算機組成原理&>&<計算機操作系統&>, 這本書還是很客觀的. 還真不是拿這本書壓你,如果你要說這本書壓住你了你也不應該來寫出這個引戰答案.2.你把矢量圖都搬出來了......話說你應該做過美工對吧.可是你只知道矢量圖能代替一部分[圖標庫],你不知道什麼是[圖形庫].每一個圖形庫都是一個巨大的系統,當然在Windows下的圖形庫是一個強聯繫的子系統,你所有要顯示到屏幕上不顯示到屏幕上的操作全部要經過圖形庫來處理渲染繪製.你看到的矢量圖標是怎麼躍然於屏幕上的呢?難道你繪製這個圓形的時候你使用0和1來Code出來的嗎?3.驅動,嗯你說的很對,你知道的驅動是可以從網上下載的. 但是,你知道的驅動和高票答案所說驅動不是一種東西,具體是什麼,請自行到C:WindowsSystem32Drivers下查看,順便如果你有時間,可以搜索.sys是做什麼的.4."卸載不幹凈" 你可以給我找一個卸載乾淨的系統,Linux下安裝軟體要依賴,然後多少人罵依賴,說裝個軟體都這麼複雜,垃圾系統! 卸載某些軟體以後以後Linux都不能正常使用,然後多少人又開始噴,說卸載個軟體都這麼多事,垃圾系統! Windows折衷把依賴要麼打包扔在Windows下要麼要開發者自行打包用戶解壓安裝,然後用戶又開始說:你看這破軟體,卸載都卸載不幹凈, 肯定是Microsoft設計不到位,垃圾公司設計出來的垃圾系統 ! "註冊表問題" 什麼?你是怎麼知道註冊表的?難道還要用360定期過一遍註冊表?regedit這東西如果你不裝malware會出問題? 中了virus怪Microsoft當年沒設計好Windows咯?敢情MacOS和Linux就沒有病毒了? 在軟體管理上我同意MacOS的包管理器是很好的一種方式,但我從不覺得Windows的註冊表設計的很差以至於你們來亂噴. "垃圾系統服務": 有的服務就是對你來說是垃圾,對別人來說就是命根子. 有的服務對你來說就是命根子,對別人來說就是垃圾. 你要Windows去專屬化定製你個人需求? 我覺得短期之內不太現實. 並且你所說的垃圾系統服務,很多都是因為你不知道他的作用而稱之為垃圾,或許當你打開QQ聊天的那一剎那,當你打開LOL激戰正酣拿到5殺的時候,當你的Word文檔寫了一半斷電的時候,當你享受屏幕上電影給你帶來的高清畫面時,某個被你認為是垃圾的系統服務正在背後默默為你賣力. 就這樣,評論里這麼多反駁你的我都看了,大家都是為了回答這個問題來的,從來沒有譏諷也沒有嘲笑,你上來就知乎的政治正確........... 隨你.i7 8G 內存台式機開機從來都是一分鐘以上,一定是你軟硬體出問題了。我公司的機器,這個配置的,10秒之內,還是機械硬碟。我家裡的機器,i7 16G,也是機械硬碟,啟動項少,6秒。
我的測試平台,i5 670,4GB內存,西數1TB硬碟,為了做環境抗性裝滿了各種垃圾軟體,啟動Win10 Pro只要35秒左右。你是如何做到一分多鐘的…
回答問題:核心不大,編譯後10MB不到,但這和系統啟動速度並沒有那麼單純的關係。WinME啟動快因為它啥都沒做,包括各種安全措施、處理器的高級特性支持、某些設備的啟動統統沒做。如果拿WinME和Win10比較的話,前者的特性支持不足後者的10%。
然而即便如此,Win10啟動速度依舊可以快過WinME,不需要SSD的前提下。Win10對應的硬體平台即便使用Pentium這種新時代的Celeron,都可以依賴一系列新的硬體特性實現15秒開機。
簡單說,題主的問題討論前提是錯誤的。個人感覺,PC的Windows經歷過兩次大的變動:第一次是Win2000之後引入NT內核,從此Windows不再是個DOS馬甲。第二次是在Vista之後普遍使用基於上下文的許可權系統,更改了GUI渲染框架,這之後Windows的用戶許可權控制更完備,安全性能比之前要高得多,基本上就是現在Windows的樣子了。
你用的Windows me,基本上就是win98拉皮。。。
代碼的核心部分,當然這個說法不等於內核,但是我們又看不到代碼,所以怎麼辦呢……
我們用linux來類比一下吧……The Linux Kernel Archives
我們發現linux 4.10代碼在xz壓縮以後是89.9m,不過其中驅動佔了一大部分,當然驅動也是很重要的……而windows的驅動向……drivers目錄100+mb,driverstore目錄……3gb……好吧從理論上來說我們把整個driverstore刪了也能量機……所以……強行非核心向的(不過裡面確實很多非核心向的東西,比如數據機驅動,印表機驅動,A卡驅動……)
我們再看看gnu/linux的其他的重要組成部分。
0.bootloader……不過這東西不大。
1.Arch Linux - base (x86_64) - Group Details
這裡列出了arxhlinux的"base"軟體包組。我們看到這裡都是一些很重要的東西,不過以規模較小的程序居多,我們看gnu/linux必不可少的bash,安裝大小僅為7.5mb,而bash的代碼gz壓縮後僅有8.9mbIndex of /gnu/bash,而類似的,coreutils的安裝大小是14.4mb,而且這玩意是個「合集」。當然這個列表裡面並沒有列出所有必須的軟體包,比如glibc就作為多個軟體的依賴被安裝而不是直接出現在base中。而glibc作為重要的runtime,安裝大小為37.7mb,算是比較大的了。(而對於windows來說,msvcrt需要安裝不止一個版本(想想viaual studio有幾個版本吧,而且windows系統嚴重依賴32位應用),而且功能也比glibc多一些,所以佔用掉幾百mb也是合情合理的,再加上.net的開銷,我們發現windows的runtime lib占的空間非常恐怖,著名的三大媽合集的下載大小就有8t0mb,而安裝大小豈不上G了)。
估算下來,基本卡包……啊不對基本軟體包加上內核以及bl,再加點別的,大都可以控制在300mb以內的,但是對於windows來說,到這一步應該已經上2G了吧。
2.我們再來看看經典卡包……嗯……比如xorg-server……3.6mb,不過這玩意還有點其他的依賴……而且這個對於windows來說沒啥可比性,你懂的……但是對windows我們也沒什麼好的估算。
嗯……gnome本體gnome-desktop是3.1mb,當然完整的gnome也就幾百mb吧,kde本體plasma-desktop是31mb……不過這兩個數和windows的DE同樣是沒有可比性的……鑒於windows在這裡下的功夫不小,我覺得這玩意得1G起。
嗯……所以綜上所述,windows安裝佔用幾個GB還是很正常的……至於核心向,如果我們再精簡一下桌面環境的話,3g左右吧(不加driverstore),然後由於winsxs機制,這個數字還可能有些減少(針對單個版本)。
然後,我實際看了一下,我的winsxs目錄一共6gb,其中32位文件是1.46gb(強行非核心向,但是windows離不開32位啊),.net文件160mb,64位文件4gb(其實這裡面倒是有不少非核心向的文件),所以我猜……我估算應該不是很離譜吧……
至於……「有沒有可能搞出一個純凈的 Windows 操作系統,去掉所有圖標等並非必不可少的功能,比如『計算機』就只顯示『計算機』三個字,不要圖標,只保留所有實際有用的功能,這樣是不是可以做到只有幾十 M,開機達到秒開?」
當然這取決於你如何定義「必不可少」了……當然,簡單來說,是的,但是未必和你想像的一樣。買了個巴法絡的路由器,操作系統幾兆,然而需要實現某些功能/連上某樣特殊的硬體就要自己安裝一大堆東西。要命的是有的得自己輸入代碼……都快把我搞崩潰了。
沒錯,我們普通人在硬體配置和需求確定的時候,所真正用到的系統文件真沒多少,然而你真的能忍受那種換個耳機/顯示器/印表機/手機/內存/讀卡器/顯卡/cpu就要拿著一大堆程序重新安裝的日子嗎?
win pe,100+mb,然後要什麼高級功能自己寫一個加進去
至於樓主有沒有感受過PC機開機時間超過2分鐘,還是附帶PCIe SSD的那種。
首先,我要指出的是按下電源那一刻操作系統並沒有被載入。讓我這半桶水的來科普下吧,錯了不要怪我。
一開始,這個時候才開始載入BIOS。如果這個時候內存有問題,CPU不兼容,主板會嗶嗶叫。因為一堆東西都還沒有啟動,只是保證能正常載入BIOS來進行下一步操作。這就是為什麼內存出問題了之類的只會嗶嗶叫而不會有POST碼。
之後就是主板的固件在加電初始化硬體(或者說POST),這個時間取決於你的主板。高端的主板一般會自檢很多東西,而且檢查所有板載設備時間花費超級長。如果主板有自檢碼,你會看見一對數字在狂跳(每個數字對應的意義都能在主板說明書上找到)。等所有硬體都返回正常之後,BIOS會從硬碟裡面讀取啟動分區裡面的啟動程序,這個過程叫做「引導」。
然而此時內核實際上還沒有載入。CPU在跑的是一個操作系統載入器。你看到的什麼「進入安全模式」,「請選擇操作系統」,或者是「上次沒有正確關機」 就是這個玩意乾的。Linux下常用的是GRUB,Windows的話是BootMgr (Vista之前是NTLDR)。這個載入器主要是分配硬體資源和載入操作系統內核。分配硬體資源例如設置中斷表什麼的,切換CPU工作模式什麼的(16bit -&> 32bit);然後再載入操作內核之前,首先要為操作系統搭建好運行環境,載入文件IO驅動什麼的。如果這個過程失敗的話,載入器會提示你「插入操作系統光碟進行修復」之類的。我個人理解是硬體越多越高端,這個過程就越慢。
等到OS Loader載入完操作系統內核需要的依賴之後,就會載入內核(ntoskrnl.exe)。內核會首先進一步完善初始運行環境以及創建進程(Idle和System進程就是這個時候創建的)。載入各種硬體驅動,這個時候載入的驅動就是操作系統相關了(老黃的負優化顯卡驅動什麼的)。這個時候出問題就會藍屏。
內核完成載入之後就會載入用戶態程序。(中間省略一個很重要的過程,主要是我不知道怎麼講好。)這個過程的結束的標誌就是看見桌面或者登錄界面了。
形象點: 電源鍵 -&> BIOS -&> C: -&> C:WindowsSystem32 -&> 開機完成 -&> "你的開機時間超過了98%的人"
如果操作系統太過於簡單,其中很多過程都會省略掉,因為不支持。
個人認為,你操作系統越簡單,載入的硬體越少,開機速度越快。機械硬碟下開機30秒是完全沒有問題的,正常情況是30秒,一分鐘開機的是一個圓多少度什麼的拖慢了吧。減少POST時間,或者開啟主板fast boot模式也是會有很高提升。少裝點東西,什麼都好說。
這也就是伺服器開機時間為什麼那麼長,主板自檢和硬體初始化就已經佔掉幾分鐘了。
至於Windows內核多大?這裡Win10為例,7.5MB不到。
這裡我推薦看看張奎銀老師的書《格蠹彙編——軟體調試案例集錦》,裡面有一章詳細分析過按下電源鍵之後都在做什麼操作(印象中CSDN紙質版上也有刊登過)。
本答案基本上是基於張老師的文章總結出來,這書我大概是5年前度過吧。不過現在NT6之後還是那樣,應該差別不大。至於UEFI什麼的還不是很了解,估計有點出入。
對於 Windows,參考 Windows PE。
題主除了需要一塊ssd之外,還應當把這個管家,那個衛士給清理乾淨。
關於系統內核的已經有人說了,我只是告訴樓主,裝win8+SSD,uefi啟動,在我沒裝錯驅動前只要兩秒開機。裝錯了一個莫名其妙的東西變成8秒了。買來至今沒重裝過,依然半秒未減。
可以試試自己定製Windows Embedded
i7都用上了,竟然不捨得買個固態硬碟,這裝機水平,差評。
NT4泄露源代碼包大小15G,安裝iso640M2K泄露源代碼包大小30G,安裝iso800M目前只有這兩個OS泄露了源碼
裝個SSD什麼都解決了,不要把時間浪費在花一點點錢就可以解決的問題上。
第一部分,關於去掉圖標:無論是Windows me,常見的pe,還是Windows 95,「我的電腦」都是有圖標的。
畢竟圖標是GUI的一個重要的部分,是有利於使用者體驗的。去掉圖標當然可以,但是,為什麼?尤其系統圖標,並不是很大,早期的系統圖標解析度很低,現在的系統圖標倒是很清晰(不確定是解析度高了還是矢量圖)。第二部分:關於你說的「i7 8g 開機慢」。畢竟現在為了開機快有快速啟動了....環境良好系統,就算是機械硬碟,開機也不至於一分鐘,而且現代系統對於內存的管理,核心的調度,硬碟讀寫的速度,都有長足的進步。當然,更重要的是,現在的系統外觀美麗,有著很多看似花里胡哨的功能。的確其中許多功能不會被使用。但現在的電腦硬體已經很發達了,目前的CPU/顯卡在運行系統時幾乎是空載。只要有ssd,系統就會流暢無比。前提是環境良好的系統。正是因為這個原因,系統的開機啟動服務才越來越多,而且確實開機時間很短。不算普通BIOS的自檢時間,在ssd的機器上,快速啟動10秒以下,普通啟動15秒以下差不多是正常水平。我覺得你可能裝了360...
Windows 10 Stable 用戶,整機不算顯卡也就三千塊,我從按下電源鍵到出現登陸,超過十五秒肯定是哪裡出問題了
windows xpe( Windows XP Embedded) 可以裁剪。
推薦閱讀:
※Windows 系統下最好用的 Python 文本編輯器是哪一個?為什麼?
※32 位 Windows 系統是否能夠使用 4GB 及以上的內存?
※Windows 8 失敗了嗎?
※哪些使用方式會讓 Windows 7/8 變得不流暢、不穩定?
※為什麼 Android 因為過於「碎片化」而飽受詬病,但 Windows 卻沒有類似困擾?
TAG:MicrosoftWindows | 操作系統 | 計算機 |