回覆列表
  • 1 # 卡夫卡科技觀察

    中文的作業系統這個詞,其對應英文是Operating System,將Operating翻譯成操作,其實不是很準確,當然想換個更準確的詞也不容易,但我們要知道,這個Operating其實有控制的意思。而OS的本質其實應該是控制,即它是控制計算機的各種資源的系統,OS主要包含四種功能:CPU管理(程序管理),記憶體管理,外存管理和I/O管理。

    不同的體系和生態

    經過華為被禁用GMS服務後,國內很多人都明白了生態對一個作業系統的重要性。我認為對於Windows系統和Linux系統來說,生態不同是其本質的一個區別。

    對於普通的Windows個人使用者來說,現在在Windows平臺上,你幾乎可以找到所有的你需要的軟體,如果你有覺得一個重要需求還得不到滿足,那可以恭喜你,你可能發現了一片藍海,馬上可以組織人馬來開發這方面的軟體了,靠率先推出一種軟體,你發家致富實現財務自由估計是沒問題的。

    而對於普通的Linux使用者來說,現在普通的辦公軟體都還能滿足,但你想一些個人專業軟體或玩熱門遊戲,則幾乎都找不到合適的替代品。簡單說,Linux桌面版還只能作為學習linux的工具,想在上面完成一些專業工作則不可能。

    從伺服器搭建的角度來看,這也是兩個體系:

    在windows系統下,基本上微軟軟體可以把一切都搞定,目前就是Windows Server 2003作業系統+SQL Server的標準版或者企業版,個人伺服器也可以在Windows10下搭建。

    一般Linux系統使用LAMP組合,就是Linux + Php + Mysql + Appache,可以釋出PHP網站。另外也可以支援ASP等。

    兩大作業系統的體系結構不同

    Window體系結構是分層的模組化結構,主要層次有硬體抽象層HAL、核心、執行體和大量的子系統集合。

    1.核心:核心執行Windows作業系統中最基本的操作,主要提供下列功能:執行緒安排和排程、陷阱處理和異常排程、中斷處理和排程、多處理器同步、供執行體使用的基本核心物件。

    核心始終在核心態上,程式碼短小緊湊、可移植性好。通常除了中斷服務例程(ISR),正在執行的程式是不能搶先核心的。

    2.硬體抽象層HAL:為執行在WINDOWS作業系統上的硬體平臺提供低端介面,HAL隱藏各種與硬體有關的細節。

    3.執行體:執行體從使用者態導處並且可以呼叫函式。

    4.系統程序和系統執行緒:系統程序是一種特殊的、只執行在核心態的系統執行緒(只執行在核心態,執行加載於系統空間中的程式碼)宿主。

    系統執行緒沒有使用者程序地址空間,因此必須從系統記憶體堆中分配動態儲存區,系統執行緒只能從核心呼叫。

    linux體系結構可以認為是分成了內外兩塊空間(現在CPU可以執行不同工作模式):

    使用者空間:使用者空間又包含了使用者的應用程式和c庫

    核心空間:核心空間又包括系統呼叫,核心以及平臺架構相關的程式碼

    使用者空間和核心空間是程式執行的兩種不同的狀態,我們可以透過系統呼叫和硬體中斷來完成使用者空間到核心空間的轉移。

    1.Linux核心

    核心是作業系統的核心。

    有:系統呼叫、記憶體管理、程序管理、裝置驅動檔案、檔案系統和網路管理等。

    2.Linux Shell

    Shell是使用者互動介面,提供使用者與核心進行互動的介面。

    3.Linux檔案系統

    檔案系統是檔案儲存在磁碟等儲存裝置上的組織方法。

    4.Linux應用程式

    標準的Linux系統一般都有一套稱為應用程式的程式集,包括:文字編輯器、程式語言、X Window、辦公套件、Internet工具和 資料庫等。

    核心程式碼的可訪問性

    Linux和Windows之間最大的區別之一,就是Linux允許所有使用者都具有完全訪問程式碼的許可權,他們可以做自己喜歡的任何改動。訪問程式碼的好處是,它可以很容易地修復Bug,並改進系統。

    相反,大多數Windows使用者不具有訪問程式碼的許可權,也不允許他們進行修改。

    有些人覺得,公開核心的程式碼,會有一些惡意開發者破壞系統,並降低安全性。

    對於普通使用者來說,訪問核心程式碼其實意義不大,我們其實沒有修改程式碼的能力;但這一點對於一些大公司或重要部門的關鍵應用來說,還是很重要的,他們可以進行有針對性的最佳化。

    熟悉了Linux之後,你會覺得能隨意訪問核心很好,這一切都在自己的控制下。而對於Windows,你要想搞清楚核心到底是什麼樣的,必須精通匯編語言,精通核心函式地址,幾乎非駭客不能做到。

    效能不同

    Linux可以針對機器的配置進行有針對性的最佳化,它對於x86_64的支援也領先Windows 不少。在相同配置下,經過最佳化過的Linux在效能方面確實遠遠超過Windows,所以國內的大部分企業伺服器,使用的都是Linux平臺(當然這與Linux價格便宜也有關係)。

    Windows不能針對配置進行任何的最佳化,只能把所有的模組都固定的安裝上去。不管你是不是跑某種和GUI完全無關的關鍵服務,Windows GUI一定是要執行的,如果一個GUI的BUG導致了系統的崩潰,那隻能怪你自己倒黴了。當然,從普通個人使用者的使用感受來看,windows還是非常出色的,它的圖形操作使用起來還是要簡潔明瞭得多。

    結論:

    對於中小企業來說,Linux和Windows其實相當於代表了兩條技術路線,你選擇了一條之後,短時間內再進行重構的可能性幾乎沒有;而對於普通技術人員來說,也是走了一條路再走另一條的可能性也不大,畢竟要精通一個作業系統還是需要很大精力的。而且真成了某一個體系的高手之後,兩者的思維方式幾乎都不同了。

    很多人說,國內伺服器領域幾乎是Linux一統天下,但其實中小企業也有很多用Windows的,就是很多可能用的是盜版。所以,這兩者學習任何一種,都還是能找到工作的。

  • 2 # 正直筆尖

    深度 Deepin正式版不解決Linux核心隨身碟啟動安裝失敗高達60%機型的重大問題,倡導自主可控替換Windows系統就是一句空話。

    Linux宏核心其實就像是一個龐大的“垃圾填埋場”,什麼都往裡面堆放,不需要的多的臃腫累贅、礙手礙腳,基本需要的卻沒有。相容各種驅動的急需嚴重缺乏,導致deepin、優麒麟等各種發行版只能執行在虛擬機器裡。谷歌看到這一點,裁下一塊Linux核心另起爐灶,成就了世界第一大移動作業系統。

    功能單一,應用狹窄,Linux在伺服器系統領域很滋潤。面向大眾的桌面系統現在Linux核心面對各種五花八門的硬體不能獨當一面,缺陷暴露無遺。現在的Deepin不能算是真正意義上的系統,只能說是叫“奶瓶系統”,要躺在虛擬機器的懷中靠“餵奶”才能正常穩定的執行。

  • 3 # 數通暢聯

    由於開發人員不同,面對的使用者群體不同,Linux系統和Windows系統的區別可以從以下幾方面來看:

    技術層面來看:Linux和Windows最大的區別是Linux允許所有使用者具有完全訪問程式碼的許可權,使用者可以做自己喜歡的任何改動。訪問程式碼的好處是可以很容易地修復Bug,並改進系統。相反,大多數Windows使用者不具有訪問程式碼的許可權,也就說Windows系統不允許使用者進行修改

    使用者定位來看:Windows是個商業系統,更適合“普通人”,這個系統能夠開箱即用,不用進行各種複雜的配置,操作只有那麼固定的幾種,能夠輕鬆的滿足辦公、遊戲等日常需要。而Linux系統作為一類開源系統,更接近底層,開放的東西也更多,更適合IT技術人員使用

    價格角度來看:Linux和Windows伺服器之間有比較明顯的差異,Linux能夠成為流行的Web作業系統之一,主要原因是它相對便宜,Windows則昂貴得多;

    安全形度來看:Linux比Windows有更多的漏洞,但Linux開源軟體開發方式有助於暴露錯誤,用眾人智慧解決問題,各種補丁更新也很快。

  • 4 # 找本好書

    一、就作業系統設計的複雜度上,windows要超過Linux

    如果windows拋棄人機操作的視窗介面,其效能並不比linux差;

    編寫Web瀏覽器的難度要遠大於編寫Web伺服器的難度;

    二、為何大公司喜歡用linux

    1、免費且開源,相對於免費,開源更加重要;

    2、開源意味著更安全;

    3、開源意味著可最佳化;

    因為開源所以透明,因為透明,所以安全,但安全是相對的。

    所謂的安全是針對大公司,是針對那些真正懂linux核心的人。他們可以自己定製化linux,比如加入自己特性化的功能,修改潛在的漏洞,或者他們認為需要完善的地方,甚至可以調優linux來解決自身業務的瓶頸。

    透明是把雙刃劍,對那些只會linux命令的人,開源並不意味著安全,因為你根本搞不清楚自己使用的機器是否被控制, 如果別人給你一個核心中藏有木馬的linux,那麼恭喜你,你可能永遠都會沉浸在自己幻想的所謂安全中。

    換句話說,如果windows開源了,那麼windows對大公司是安全的,他們可以一窺windows核心,並對其增刪改,去掉 所有圖形化元素,將動態載入驅動改為核心態載入,最佳化IOCP並將其發揮到極致,我相信windows也會變成安全、穩定、 可靠、優秀的伺服器,而且會比linux還要優秀。

    但對於絕大部分在windows下做開發的程式設計師來說,windows開不開源其實跟你沒有半毛錢關係,除非你有能力將windows 上千萬行的程式碼耐心看一遍,前提是你要能看懂。首先,你要把組合語言再學習一遍,把作業系統的書多看幾遍,把編譯原理的書也多看幾遍,否則這些程式碼在你面前和天書沒本質區別;其次你要有足夠的時間和足夠耐心;最後,你要真能識別出風險,畢竟windows是最成熟的商業作業系統,如果你認為自己的智商能夠超越微軟那些頂級架構師幾十年的精心設計和打磨,那你還改屁作業系統啊,直接進中科院設計中國產OS為國增光吧。

    記住:對別人的安全並不意味著對你安全!

    開發後臺程式和懂伺服器、懂作業系統,完全是兩個概念,這兩者的差別就像狗和熱狗的差別一樣。 在linux上開發java後臺應用服務,並不意味著這個程式設計師有多瞭解linux,後臺程式跑在Apache、Tomcat、Nginx這些 真正的伺服器上,這些伺服器在幫你的程式優雅的處理高併發、高吞吐量和低延遲,而這些伺服器必須要充分利用 linux核心的效能,這就意味你要真正理解什麼是多執行緒,什麼是執行緒池,select、poll和epoll的區別;

    三、在網路方面,windows的IOCP模型要優於linux的epoll模型

    1、IOCP真正發揮了多核CPU的效能,讓IO操作均衡的負載在不同CPU執行緒上,epoll很可能會讓有的執行緒累死,有的餓死;

    2、IOCP是Proactor非同步IO,epoll是reactor同步IO;

    打個不恰當的比方,IOCP屬於導彈發射後不管,最後通知你擊中目標;epoll屬於發射後需要分階段導航。有人說epoll給了程式設計師更高的自由度處理來自核心的IO資料,畢竟可以手把手的制導導彈,很有成就感,但那是針對高水品程式設計師,如果你的水平一般的話,那結果可能是災難性的。很有可能你會親手把發射的導彈送出地球,或者引發另一場戰爭。實際上IOCP在業務處理上的難度要大於EPOLL,因為非同步IO的原因,你的上層完整的業務已被碎片化了。

    3、windows比linux在伺服器效能上的慢,並不代表IOCP比Epoll差,這是windows定位的問題,如果你要讓使用者易用,那就要在某些方面做些犧牲。

    多說幾句:

    1、我特煩那些人云亦云,一知半解的人,言必談linux好,說來說去就是那麼幾條:linux開源、安全、穩定。你看,很多大公司在用,windows還要經常打補丁,有時還崩潰。linux都特麼開源了,等於人人都可以隨時打補丁,人家偷偷打補丁還要讓你知道麼?如果自己程式碼寫的爛,不管是linux還是windows,都一樣的下場。合著linux就是專門為跑你的爛程式碼設計的,永遠不崩潰跑不死麼?

    2、你要是覺得linux好,那就在linux上寫程式碼、看小電影、上網聊天,最好不要在windows上辦公。你一邊用著windows,一邊鄙視windows,端起碗來吃肉,放下碗就罵娘,有意思麼?

    3、你拿linux伺服器方面的效能比windows 伺服器效能,拿長處比短處;你怎麼不拿windows的人機互動和linux的人機互動做對比啊。當然這種裝逼犯,肯定會自豪的說:我們大牛級猿就喜歡玩這種DOS命令列,你咋不復古去玩打孔卡片互動呢。你幹嘛還用智慧觸屏手機,乾脆腰上掛個BP機,左手小靈通,右手大哥大,不是更拉風麼?

    我特麼明明能用打火機點著的,你非要給我給我展示一段鑽木取火野外求生。說到底計算機、作業系統只是工具,怎麼好用怎麼好,不是讓你噼裡啪啦對著鍵盤一頓敲,自我感覺風騷的一比。我特麼就問你:鍵盤敲出來的命令和滑鼠點出來的命

  • 5 # 精彩一瞬間i

    當我們每個人接觸Linux之前,應該先接觸的都是Windows吧?但是一般我們接觸Linux以後,習慣Linux的管理和使用方法後,我們在回過頭來使用Windows的時候,內心其實是拒絕的。我們會覺得圖形好麻煩,圖形好Low的感覺,這個時候我們差不多是一個Linux的重度愛好者了。

    Windows和Linux的區別:

    1.對於全球使用者群體來說,windows在使用者上領先於Linux,但是windows使用者無法根據自己的需求選擇合適的模組,使用者的專業知識受限、使用需求受限。windows的使用者已經習慣了這種閉源下的作業系統。但是對於技術愛好者而言我們更喜歡Linux這樣更加純淨的系統,我們更喜歡弄清作業系統的本質,使用自己最佳化定製的系統。

    2.windows和MS-DOS都是微軟出的,而Linux不是微軟出的,Linux的最大好處是非商業軟體,他的原始碼是完全公開的,也就是說我們可以隨自己的喜好進行編輯和修改來符合我們的使用習慣或者增強它的功能,它與其他作業系統的最大區別就是它代表著自由和免費精神。

    3.和Linux一樣,windows系列是完全的多工作業系統。它們支援同樣的使用者介面、網路和安全性。但Linux事實上是Unix的一種版本,而且來自Unix的貢獻非常巨大。不進在於對多使用者機器來說,Unix是最流行的作業系統,而且在於它是免費軟體的基礎。在internet上,大量免費軟體都是針對Unix系統編寫的。由於有眾多的Unix廠商,所以Unix也有許多實現方法,沒有一個單獨的組織負責Unix的分發。現在存在一股巨大的力量推動Unix社團以開放系統的形式走向標準化。另一方面windows系列是專用系統,由開發作業系統的公司控制介面和設計。在這個意義上這種公司利潤很高,因為它對程式設計和使用者介面設計建立了嚴格的標準,和那些開放系統社團完全不一樣。一些組織正在試圖完成標準化Unix程式設計介面任務。特別要指出的是,Linux完全相容POSIX.1標準。

    4.Linux提供了相對於windows更好的安全效能,只有一個方面例外(確信度)。

    5.windows更傾向於將更多的功能整合到作業系統內部,並將程式與核心相結合,而Linux不同於windows,它的核心空間與使用者空間有明顯的界限。根據設計架構的不同,兩者都可以使作業系統更加安全。

  • 6 # 指尖上的二進位制

    1.Linux核心為基礎開發的系統都統稱為Linux系統。比如Cent OS、Android、Ubuntu等都可以叫做Linux系統,Linux系統他是一個家族,他們有共同特性。但不同於Windows作業系統。

    2.核心不同,Linux作業系統使用Linux核心,Windows作業系統使用NT核心;Linux核心程式碼開源,NT核心程式碼閉源

    3.Linux是免費的,Windows是收費的

    4.Windows軟體支援豐富,而Linux軟體支援就很少了

    6.市場和安全性,Linux市場主攻伺服器市場,Windows系統主打桌面市場,Linux主要應用於網路,而Windows作業系統最開始應用於列印服務。Linux安全性比Windows安全性高,要求它更加可靠。

  • 7 # AI智慧

    Linux系統與window系統的誕生

    1991 年的十月,當初網路還不像現在這麼普遍,上網的人大部分都隸屬於一些研究機構,或者是大學裡面的學生、教授。有一個名為 Linus Torvalds 的年輕芬蘭大學生10月5號在新聞群組上發表了這樣一封內容不怎麼起眼的 POST:

    Hello everybody out there using minix -I"m doing a (free) operation system (just a hobby,won"t be big and professional like gnu) for 386(486) AT clones.

    而這封郵件也正式的向外宣佈Linux 核心系統誕生,這段訊息可以稱為Linux 的誕生宣言,並且一直廣為流傳。因此10 月5 日對Linux 社群來說是一個特殊的日子,許多後來Linux 的新版本釋出時都選擇了這個日子。

    Microsoft Windows,是美國微軟公司研發的一套作業系統,它問世於1985年,起初僅僅是Microsoft-DOS模擬環境,後續的系統版本由於微軟不斷的更新升級,不但易用、也慢慢的成為家家戶戶最喜愛的作業系統。

    Windows採用了圖形化模式GUI,比起從前的DOS需要鍵入指令使用的方式更為人性化、便捷化。隨著電腦硬體和軟體的不斷升級,微軟的Windows也在不斷升級,從古老的16位、32位再到現在流行的64位, 系統版本從最初的Windows 1.0 到大家熟知的Windows 95、Windows 98、Windows ME、Windows 2000、Windows 2003、Windows XP、Windows Vista、Windows 7、Windows 8、Windows 8.1、Windows 10 和 Windows Server伺服器企業級作業系統,不斷持續更新,微軟一直在致力於Windows作業系統的開發和完善。

    其實從上述可以看到,windows早於linux出世,相當於兄長,但因為Linux的開源讓他顯得更加有活力,Linux的爸爸也是很勵志的,大學期間就能寫出這麼棒的系統核心,著實鼓勵著一大批程式設計師和系統管理員。

    Linux系統與Windows系統的效能之爭

    Linux的效能是非常出色的,可以完全針對機器的配置有針對性的最佳化,而且Linux對於x86_64的支援領先Windows 不是一點半點。在相同平臺上,最佳化過的Linux在效能方面確實遠遠超過Windows,所以國內的大部分企業伺服器,使用的都是Linux平臺。由於其優於windows的效能,讓其成為市場的寵兒。

    另外從Windows的理念就可以知道了:不管你要不要,我都給你。在我看來,這是一種強硬的企業文化,我就是這麼硬,反正你也不怎麼懂我,這可能源於Windows系統對於家庭使用者這些年來的絕對壟斷。不管你是不是跑某種和GUI完全無關的關鍵服務,Windows GUI一定是要執行的,如果一個GUI的BUG導致了系統的崩潰,那隻能說你太倒黴了。還有windows的商業氣息更為嚴重,閉源一定程度影響了windows的發展,雖然Windows在近些年來一直再大力推崇開源。不過想對於普通個人使用者的使用感受,windows還是非常出色的,他們的圖形使用起來簡潔明瞭。

    自從Kernel 2.6之後,Linux對於執行緒的支援也好了很多,效能方面也更加出色,這些都是Linux長足的進步。而且經過全球資深的Linux愛好者的開發、最佳化,Linux確實可以承擔起相當重要的角色了。公平的說一句,Windows的效能和穩定性比以前已經好了很多了,起碼在某些地方完全是與Linux處於同樣層次的。但是Windows的最佳化能力是十分有限的,因為MS為你做了很多事情,雖然你不想讓他這麼做,但是你也沒的選擇。對於多數比較“懶”的使用者來說,這樣也許很好,但是對於系統最佳化擁有固執追求的人來說,Windows並不適合。根據8/2法則,MS這樣做在市場上是很聰明的,但是這種武斷蠻橫的方式,恐怕有不少人無法接受。

    因此對於全球使用者群體來說,windows在使用者上領先Linux。一定程度來說,使用者無法根據自己的需求選擇合適的模組,使用者的專業知識受限,使用者的使用需求限制,windows的使用者已經習慣了這種系統,他們能夠接受這種閉源下的技術黑洞。但對於技術愛好者,我們更喜歡Linux這樣更加純淨的系統,我們更喜歡弄清作業系統的本質,使用自己最佳化且定製的系統。

    做運維是要學習Linux系統還是Windows系統呢?

    學習Linux好,還是學習windows好。這個問題其實不好回答,因為就企業需求來說,windows和Linux伺服器企業都能用到,但Linux依靠安全穩定的應用性,使得其在企業伺服器領域一直佔有很大的優勢,並且存在逐年增加的情況。

    你可以選擇兩個都學習,然後對某一個深入學習,我目前就是這麼一個狀態。我們可能無法預料未來在企業當中,我們主要會遇到Linux還是windows,我們的伺服器可能是做的windows的維護,也可能是linux的維護,當然現在的發展情況,我們更可能接觸基於Linux的服務架構,我本人目前就在學習Linux系統相關知識,我選擇紅帽的rhce認證作為了學習Linux的切入點,我希望透過紅帽這樣一個系統化的培訓過程,能夠讓我對Linux有一個系統化的瞭解,後續的深入探究會顯得容易一些。

    windows和Linux在我們生活中都扮演者重要的角色,他們之間的關係我們不能一概而論,誰好誰差並沒有一個絕對的定論。

    我們可以根據自己的需求,選擇適合自己的作業系統,也正式因為他們之間的比較和戰爭,才能更好的推進作業系統的前行。

    windowns與Linux之間的戰爭就在於差異化滿足人類的需求,他們是競爭者,也是好的同伴,因為感謝彼此的磕磕碰碰,才能彼此變得更加美好。我們無論選擇站在戰爭的哪一方,我們都是受益者,因為這是一場沒有傷害的信仰戰爭。

    上圖:號稱最漂亮的 Linux 系統:Elementary OS

  • 8 # 匯智動力學院

    Linux優點:

    1、穩定。

    Linux是基於Unⅸ的概念開發出來的系統,擁有Unⅸ的穩定且效率的特點。執行一年以上而不宕機、不關機是很平常的事情。這一點Windows很難做到。

    2、支援多種檔案系統。

    如ext2、ext3、ext4、NTFS等。

    3、安全性、漏洞的快速修補。

    由於Linux的免費開源屬性,讓Linux擁有大量的使用者,因此獲得最新的安全資訊共享相對簡單些。

    4、高穩定和安全性

    核心小,設計理念先進,伺服器可以做到一年不關機。

    5、免費/少許費用。

    Linux是基於GPL(GUN專案)授權下的產物,開源、穩定,不像微軟需要不斷更新系統,繳納高額費用。

    6、多工、多使用者。

    Linux系統可以多人同時上線工作,資源分配比較公平。而 windows的單人多工就沒有那麼穩定。

  • 9 # 超級碼農衝呀

    先說結論:最本質的區別就是開源與閉源。

    Linux是開源的作業系統,從系統層面來說,你可以把它移植到其它硬體平臺上去。你可以很方便拿到它的原始碼(下載),經過定製、裁剪,可以移植到幾乎所有的硬體平臺上,如 x86、arm、mips、alpha等,所以從嵌入式(如 android)到伺服器都看到它的身影,有原始碼在手,量身定製很方便。從應用層面來看,你覺得哪個開源軟體不好(比如有BUG,或者你希望擴充套件該軟體功能),你都可以下載它的原始碼進行修復(前提是你有相應的程式設計能力)。

    而Windows系統是閉源的,不管是作業系統還是上面的軟體,發行出來是什麼樣就什麼樣,你都只能被動接受。

    至於其它重要性區別也有,但不算是本質性區別。比如Windows是基於圖形介面的作業系統,Linux是基於指令介面的作業系統。但它倆也有對方的東西(暫不評價好壞),Windows也有cmd, PowerShell,而Linux也有GNOME,KDE。

    再其它的一些功能性的區別就不一一詳談了。

    總結來說,Linux系統的開源特點提供給你更多的可能性,而Windows系統是閉源的,具備商業性。

  • 中秋節和大豐收的關聯?
  • 母豬的發情鑑定技術有哪些?