Windows 為什麼可以相容那麼多不同電腦的不同的硬體?

時間 2021-05-31 02:30:22

1樓:乙個大壞蛋

前面已經有人說了,大體意思就是並不是windows 相容所有硬體,而是所有的硬體都是按照Microsoft 的標準去生產的,你看arm系列的處理器就不相容,不過現在也在開發了

2樓:

除了微軟在hal層的努力外其實還有就是一些列的標準acpi,pcie,等等

intel負責硬體標準,ms負責軟體標準。各個廠家照著標準做軟硬體就好了

手機市場因為基本沒有pnp這種換硬體的需求。所以相關標準也沒什麼人做

3樓:馮東

當一件事情形成標準了,就進入了良性迴圈。如果你生產出來的硬體在 Windows 下用不了,不用 Microsoft 說你自己就要著急了。同樣的問題還有,為什麼 C 語言在幾乎所有 CPU 上都有 compiler?

如果你做 CPU 的做不出來乙個 C compiler 也就甭混了。

4樓:叛逆者

首先是 @Tim Chen 說的,Windows裡有HAL、驅動體系和開發工具,實現上層和硬體隔離。所有穿透的行為都得經過驅動。這樣上層只要把Windows做好,下層廠商把驅動提供好,理論上就能支援各種裝置。

第二是其實即便如此,仍然很依賴於廠商驅動。很多廠商驅動的質量非常差,測試也不完備,以至於在一些並非不常見的情況下也會崩潰。這時候就需要在驅動外面再包一層,把具體特定硬體/驅動的bug給繞開或者hack掉。

這樣做很暴力,但沒辦法。微軟對廠商驅動無控制權。重災區是PCIE。

幾乎每乙個硬體/驅動都有嚴重bug,以至於Windows的PCIE子系統裡包含了乙個資料庫,內含上萬條針對不同vendor ID/device ID做出的hack方法。在別的帖子我也說過,高通的顯示卡驅動裡有個bug,dxgkrnl不得不在41個地方做了修補,然而他們漏了一處,正好被我趕上了,呵呵。

第三是目前的趨勢來看,驅動模型內的組成也在修改,把廠商驅動壓得更底層,不同廠商之間共享的部分又微軟完成。例子之一是顯示卡驅動裡的視訊記憶體分配。XP時代這是廠商驅動完成的,NVIDIA做的不錯,AMD就是稀爛一坨,分配效率不高還經常出錯。

Vista+的WDDM裡面,視訊記憶體分配由dxgkrnl完成,廠商驅動只需要實現返回視訊記憶體大小和標記是否占用之類的介面就行。一開始惹了很多麻煩,過了和廠商的磨合期之後,穩定性和效能都比以前有提公升。3D列印驅動更徹底。

廠商驅動就剩下噴和不噴的控制了。噴頭路徑規劃、voxelization之類全都由微軟的3D列印驅動完成。

Windows的系統那麼優秀,為什麼還有那麼多的人選擇Mac系統?

Mr J 定義一下,啥叫優秀?幾十萬一塊的機械手錶優秀不?還是幾百塊各種實用功能的手環優秀?這方便還是東北人活出了真諦,面子大於天 2021年 Pro Tools在Windows下依然經常崩潰Carbon和HDX箱依然沒有Win驅動 2020.12更新了黑暗模式,Win閹割了多屏依舊缺席。這咋用?根...

為什麼 Windows 不推出可以選擇貼上多次複製目標的操作功能?

怎麼判定以下問題 1 ctrl c A 然後ctrl c B 後是要放棄A複製B 確實有需要,我手滑選錯了 還是要複製A和B 你的需求 2 是一次ctrl v後黏貼A和B,還是兩次ctrl v,要先黏貼B後黏貼A 先進後出 還是先黏貼A在黏貼B 先進先出 3 此時如果我繼續ctrl v,改怎麼處理,...

Xbox One 為什麼不向下相容?

Fisher 我想跑個題,說說向下相容得問題,個人覺得家用機應該有向下相容得特點,你看,遊戲初期確實新主機遊戲不多,你不能要求新主機一出就有上世代哪怕一半得遊戲量,作為乙個一直支援你得玩家,我客廳電視下面從ps3換成了ps4,為啥不能把ps3得遊戲插進去玩?這個道理放xbo上也適用,而且更新主機以後...