從操作系統本身來看Linux是否比Windows優秀?
不談軟體生態,驅動支持等等外部因素,單從操作系統本身的內在設計來看,Linux是否更加優秀?比如更加完善的許可權管理等等?
還是說實際上Windows更優秀或者各有所長?可能是我問題沒描述清楚,大家都在說使用場景問題。我想表達的是,假如Linux有如Windows般完善的軟體生態,這兩個操作系統你們會選擇誰?
不考慮價格等等因素,只考慮這兩個操作系統本身的優劣。
顯然windows更優秀啊. 這是知乎的政治正確啊.
我一直都有發現, 當linux下驅動有問題的時候, 大家都噴linux. 而windows下藍屏死機之類的, 大家都明確的說這是驅動廠商的問題. 顯然這是因為windows提供了優秀的設計啊.
Linux 是個龐大的設計集合,裡邊有各種方面獨到之處跟 Windows 不一樣。
Windows 也一樣,並且是一個閉源的龐大的充斥著跟 Linux 設計不一致的集合。
這兩者根本無法比較出高低,因為你限定範圍太大:「系統本身」。
你可以比較 Windows 的 IOCP 和 Linux 的 epoll 誰更優秀,但是 「系統本身」 怎麼比?把無數個點列舉出來,一一比較,最後誰優秀方面多誰勝利?
—— 低端的引戰啊
題主,你先給我解釋解釋什麼叫「兩個操作系統本身的優劣」。
衡量一個操作系統的優劣指標都是什麼?安全指標?性能參數?API數量?
普通用戶選擇操作系統不就是看應用程序的數量(軟體生態)么?你買智能手機難道只是為了打電話?不是為了用APP?
以安全指標為例:要是推薦給用戶一個電腦,跟用戶說這個電腦上的系統超級安全,但office不能用,遊戲不能玩,用戶會買?
衡量安全指標的標準倒是有,就是EAL規範(Evaluation Assurance Level),Windows 2000 SP3在2002年就通過了EAL-4認證,之後的XP,Vista,7都有認證,而Linux只有Red Hat 6.2在2011年才通過了EAL-4認證。你說誰更安全?
比Windows認證等級更高的倒是也有,Green Hill的一個RTOS達到了EAL-6,但這玩意跑在嵌入式板子上,你怎麼給用戶用?這玩意是給飛機之類的用的(Integrity-178B)。
至於「更加完善的許可權管理」這一句,你真的不是在黑Linux?你要說的是SELinux,這個我信,你是普通版本的Linux許可權管理比Windows更豐富?我覺得你是沒用過Windows。
用戶不使用Windows許可權管理和Windows不支持許可權管理是兩碼事吧?
你不知道Windows有許可權管理和Windows支持不支持許可權管理也是兩碼事吧?
以上不是繞口令。
Linux的文件系統和網路性能確實比Windows要好,但圖形和驅動的數量比不上Windows啊,大多數用戶買電腦回來是用來玩的,不是用來搭伺服器的。
所有 Unix-like 系統的優點都是需要解決什麼問題直接從業界主流的方案借鑒就可以了。除了像通用 UI 這種需要非常巨大投資來建立生態的項目,其它方面都很成功。而 Windows 的情況就是借著 Microsoft 還算有錢,不斷的重新「發明」車輪(注意是發明不是造)。在別人已經有 solution 的情況下這是巨大的開發資源和用戶的學習資源浪費。
如果都生態完整,那當然還是Windows優秀。因為Windows有WSL,而Linux上沒法有等價的東西。
顯然性價比高無限倍。
兩者在許多優秀的設計上其實是共通的,比如大家都知道Linux上幾乎一切都被抽象為文件,但其實在Windows上也有許多設備被抽象為文件,如物理磁碟、管道等,不過Windows上抽象為文件的一般是流式設備(Stream)或塊設備(Block),而Linux就要廣泛得多了。再比如內核模塊化,動態鏈接,許可權控制的ACL(雖然Windows的功能要強大得多)等。
Windows在多媒體上要比Linux強得多,不管是音頻、視頻還是實時圖像計算,因為有DirectX等廣泛得到廠商支持的通用介面。Windows對於硬體的兼容性考慮得遠比Linux周到,有專門的HAL層用來處理硬體差異。UI設計這些就不說了。
Windows有一套系統級別的消息投遞+非同步調用的框架,這組框架讓進程間交互、尤其是GUI間交互變得容易。Linux下的進程間交互只能使用管道之類的方式,想像一下如果點下滑鼠需要創建個管道,那這個GUI一般來說是不能用的……統一的消息機制方便GUI之間的互操作,比如說Windows下任意兩個程序之間一般都可以實現很方便的拖放操作。
操作系統終究只是工具,不是藝術品,於是優秀與否自然而然就是建立在使用人數多不多這條原則上。
舉個例子:聊天軟體,我個人更傾向於 LINE 這種簡約、輕量級的,要知道 LINE 剛打入中國市場時也掀起了一段小高潮,可後來的結果大家也都知道了。於是,和中國人聊天,明顯是 QQ、微信更優秀;與日本妹子聊天,明顯是 LINE、Skype 這一類更優秀,和軟體設計無關。
只有當由不同的主子開發出的多個同質化的、彼此共享同一生態圈的多個本質上同樣的事物擺在我們面前時,我們才會根據細節選擇最適合自己的一款。比如輸入法,中國市面上現在就有搜狗、百度、訊飛、必應,以及面向海外市場的,主打多語言輸入的 GO、觸寶等,每個產品都有自己一定的用戶群,很少見到某一款碾壓另一款的現象。
再比如,視頻網站,國內的愛奇藝、樂視、騰訊視頻、優酷土豆等打得熱火朝天,但有那麼一位後起之秀,在這片同質化產品爭相出現的紅海上打出了自己的一片天地,同時還搶去了前幾位不少生意——它的名字叫嗶哩嗶哩,簡稱 B 站。很明顯它用優質化的服務獲得了用戶的忠誠度,其中最重要的一點就是沒有那些垃圾頁游廣告,然後就是支持 HTML5,不用忍受 Flash 的各種卡頓。真的好產品是會獲得用戶忠誠度的,B 站上已經有很多人自願 donate。
操作系統的話,Linux 就算像它宣傳的那樣多麼地優秀,但是很多人就是因為一個「不能上 QQ」或者「不能打遊戲」或者「裝個軟體都這麼麻煩」而一票否決掉它了。這就又回到了最開始說的,操作系統只是一個工具,就算你再怎麼優秀,我不會用,那就神馬都是浮雲。而由於 Windows 有很多私有技術且閉源,所以很難有第二者造出一個和 Windows 體驗非常相近的操作系統。
我在win下編程,在Linux下運行。其實他們沒有什麼優劣,只是看個人的習慣
我錯了,前兩天win10掛了,現在在用ubuntu修改回答。
ps: efi 安裝的ubuntu死活沒法引導,最後是從bios裏手動添加了efi文件才啟動
nt內核水平更高
比如說,nt可以有wsl,人家真的是subsystem,而linux下的wine呢……
講道理,windows 10可能會成為最好的linux發行版。比如說linux的驅動是內核模塊,直接和內核一塊跑,一掛全掛,windows下的驅動可以是獨立的,驅動掛內核不一定掛。
嘛……反正……微內核無論如何也要比宏內核有一定的優勢吧……nt存在了多長時間,linux才存在多長時間……講道理nt現在的版本號是10,linux版本號才是4哎,如果nt 10比不過linux 4,那ms可以直接倒閉了好吧:-),怎麼著也得用linux 10來戰nt 10才公平吧:-)
當然你可以說windows存在過度設計,過於龐大而無法理解什麼的……但是linux難道不是設計不足么……
不過linux的兩大優點:誰都能改,非商業性……而且就潛力而言, linux的道路一片光明嘛:)什麼樣的場景就有什麼樣的產品,你不會拿牙刷刷廁所,也不會拿潔廁刷刷牙。
不問使用場景去評判一個產品都是扯蛋。
如果你非要問的話,
是。
如果是在伺服器環境下,Linux確實表現得比win更好,Linux可以在更低的配置上實現相同甚至更好的性能表現。得益於開源,Linux的可控性更高一點(比如可以根據需要定製一個內核,win好像做不到),對複雜硬體支持更好(超算500強用的幾乎都是Linux就可見一斑,win很難支持那麼複雜的設備的),性能上也更好(個人感覺)。
如果是在個人使用環境下,Linux完敗,看電影時有Flash 和解碼器問題,辦公缺乏和office的兼容(誰叫微軟office是老大呢),遊戲……更不用說了,光一個驅動就夠頭大了。
有人說win的安全性不好,其實win的安全性相當高——只是為了易用性,很多設置默認沒有開
就個人感覺來說,兩者都很牛,就看應用環境了。
微軟考慮的問題是怎麼通過Windows直接或間接賺更多的錢,讓更多的人離不開自己的軟體;
Linux開發者們考慮的是如何通過Linux展示新的技術和想法,讓更多的人能自由地使用軟體。
然後,Windows收穫了金錢,Linux收穫了名聲。
從性能上來講,Linux理論上確實比Windows好,這個N年前微軟搞內核的程序員發過文章介紹過原因,大意是在微軟內部改進內核性能而修改API啥的反而會被同事抱怨,而在Linux社區要能把某個組件性能提升10%就會被奉為大神。
但是將操作系統作為一個整體比較,本身就沒有可比性。Linux和Windows點技能樹的第一個枝就點的不一樣。Linux點了命令行,搞出了pipeline和包管理器等等開掛級功能。Windows點了圖形界面,關注的是圖形化操作體驗。顯然,讓管理員在Windows上高效部署維護服務並不科學,至於讓普通用戶用Linux,每次開機Xorg先崩潰兩次的路過……
如果不談生態,linux根本不可能是win的對手,linux的生態才是win最大的痛處
不懂內核設計,只用過一點api。姑且談談api的風格。
linux的api沿襲自上古的unix,往往體現出快糙猛的實用主義色彩。從功能性說,posix api遺留問題多,正交性差。給了windows陣營不少黑點。syscall返回一坨整數和void*,不注重類型安全,名字也比較有槽點,比如dup2,accept4這種,放在現代軟體工程中可能都是要挨批評的。但大家這麼多年,也用慣了。
關於吹了這麼多年的一切皆文件,我認為實用主義色彩強於哲學性。io設備抽象為fd是符合直覺的,但是現代linux里,singal是fd,event是fd,timer也是fd,各種東西攪成一坨都拿去poll或者ioctl,從理念上說恐怕不那麼美觀。當然,我現在倒是挺希望所有的thread也做成fd,說不定更為實用。linux設計比Windows差遠了。linux有設計嗎?就優雅性來說,linux可以用一團糟來形容。但是又怎麼樣呢,能用就好了。linux內核為了實現一些特性,提高性能,各種hack。還有linux的宏,實在是太多太厲害了,這個要是拿到公司代碼規範來討論,都是差評。
以下為我個人的觀點。從操作系統底層內核來看,Linux當然是更好的。我非常喜歡Linux樹形的文件系統,還有就是命令行用起來超順手!我最大的愛好就是計算機網路,而Linux在計算機網路中有著非常重要的地位。還有不知道為什麼,我自從用了macOS之後,就愛上了Linux,然後就越來越討厭Windows。
Windows最反人類的地方就是!註冊表!註冊表!註冊表!
經常看見類似的這種問題,其實答案也很明顯:各有所長
用Linux的大部分用戶是很清楚Linux要幹什麼,能幹什麼。
推薦閱讀:
※為什麼很多人覺得瀏覽器會成為下一代操作系統,而不認為操作系統會成為下一代瀏覽器?
※為什麼列印店的電腦都特別喜歡用XP或者最多win7的系統?
※請問這一段代碼的加鎖原理是什麼?
※有限條件下怎樣舉辦一場知名度高、吸引大牛的編程比賽?
※為什麼有軟體可以繞過UAC?
TAG:MicrosoftWindows | 操作系統 | Linux | 系統架構 | 釣魚廣義的 |