03.02 從底層(操作系統)的角度來講,Linux和Windows在哪些方面不一樣?

rammstein69


歡迎大家關注我的賬號:EmacserVImer,我會經常和大家分享你關注的互聯網行業動態,計算機技術趨勢,以及最新的籃球足球資訊!

Linux與Windows,一個是服務器領域的主要操作系統,一個是個人PC領域的絕對王者,可以說是最好的兩極。今天我們從底層角度來分析一下兩者的差別。

從系統架構上分析

Linux的內核可配置性、可獨立性非常好。主要完成操作系統最為底層最為核心的一些功能,比如任務調度,TCP/IP,以及驅動設備的管理等等,Linux可以適用於從嵌入式設備、智能移動終端、桌面解決方案、以及服務器端等等眾多的計算機平臺。

Windows是微內核,是目前最成熟、最完善的桌面個人PC解決方案,在服務器領域、移動終端、嵌入式領域Windows的成績非常不佳。甚至微軟公司自己在使用服務器的時候都不得不採用部分Unix服務器來完成Windows沒辦法搞定的事情。

在任務管理方面,Linux可以說完全繼承了Unix的全部優點,Linux是一款多用戶、多任務、並且任務環境安全的操作系統,windows則不具備這樣的特點,Windows的安全性是建立在犧牲了效率的條件下完成的。同時Linux的內核架構十分精簡,一致性非常好,Unix/Linux發展這麼多年,幾乎沒有做出過巨大的結構變動,但是Windows則不一樣,幾乎三五年就要變動一次架構,Windows XP到Windows Vista,Windows7到Windows8,Windows8到Windows10,幾乎每一次大的版本更新,架構都要改變。

從圖形界面來說

Windows的GUI圖形界面是應用程序可以直接通過應用程序調用Windows底層的一些圖形界面函數,而Linux是圖形界面是建立在X-Window上,GUI則是應用程序必須通過socket向X-Window server發送請求才能實現,也就是說,其實只有X-Window server在使用屏幕,這種對於硬件資源的消耗更大,舉個簡單的例子,你用macOS打開活動管理器就能看到,Linux也一樣。但是這樣更穩定,遇到問題只是相當於卡掉一個進行,不至於導致整個操作系統的徹底崩潰。

從開發者生態力來說

Windows是閉源的,而Linux是開源的,Windows下所有的條條框框基本上都被限制死了,當然Windows開發者生態有全世界最好的集成開發環境visual studio,有最好的開發者網絡MSDN,當然現在越來越多的開源解決方案也逐漸移植到Windows上,但是終究你會感覺不那麼順暢。

很多人可能覺得Windows上的工具入門成本耕地,但是Linux下的工具入門的成本確實要高得多,這一點兩者確實不具有可比性,但是一旦你熟悉以後,你會發現Linux才是真正的生產力工具,效率更高,而相反的你會發現Windows下坑越來越多。

而且windows上你需要學習很多的Windows API,得有超過兩三千個,參數非常多,而且都比較複雜,Windows架構也經常變,可以說要痛苦很多。但是Linux下就會好很多,內核API就兩三百個,而且大部分你用不到,只有在寫驅動的時候用得到,做應用開發,你熟悉C語言的API你就發現,好像差不多了。

Linux和Windows畢竟各自定位有差別,Linux從一開始就不是為普通用戶準備的,而Windows最初就是瞄準的普通消費者,Linux很難進入消費者桌面市場,而Windows也很難進入服務器市場。各有各的優勢,各有各的空間。


EmacserVimer


linux與windows的區別就在底層的實現,粗略來說,這兩個操作系統從基因層面就是兩個物種,linux的理念是萬物皆文件,所有的設置都分散在系統某個約定位置。windows卻用註冊表的機制,所有的設置都在註冊表中,不告訴你,你絕對找不到。

由文件系統的不同,導致了其上的所有程序的抽象方式皆不相同,幾乎無需舉例,再加上對進程的管理(也就是對CPU時間的抽象)的不同,每每皆是不同。

最終兩個物種雖然長得很像,但每一個細胞都是有區別的。


大家一定見過電影裡的黑客,黑掉大廈的燈光系統後,用大廈房間的燈光,玩俄羅斯方塊的場面,原理就是首先將大廈的燈光控制系統抽象為相應的顯存,保證顯存裡填入數據時,對應房間的燈光有相應的反應,然後就是對這一塊顯存的操縱。神奇的黑客行為,無非就是對最簡單原理的運用。

我們不妨以這個角度為切入點,看一看沒有操作系統的電腦是如何運行的。



1.首先BIOS會加載硬盤開始的512字節內容,這裡的代碼會告訴BIOS:接下來讀硬盤哪個面哪個區域,設置好所有的寄存器狀態跳轉到32位模式(保護模式)。


2.進入保護模式的計算機,擁有了訪問超越1MB內存的能力(16位的實模式只有20bit位的尋址能力,2的20次方為1 048 576,正好1M,單位是字節,也就是B,所以是1MB)。

可以訪問這樣大的內存,要做什麼自由發揮。最起碼的工作是寫一個顯示驅動程序,讓每一條輸入在顯示器上顯示,這是最基本的交互。

假設,屏幕被劃分為50行,80列的50*80=4000個小格,每一個小格都是一個內存單元,我們讓希望顯示的內容,寫在其中的某個或多個內存單元,屏幕立馬就會顯示出對應的圖像。那4000個小格就是顯存,顯存是顯示器給我們的接口,這個接口把顯示器複雜的光電感應、化學反應過程抽象為4000個小格,讓我們方便操作。


3.我們還需要一箇中斷表,中斷是為了與CPU有交互,否則不能對CPU下指令的電腦是一無用處的,這是對CPU能力的抽象,想象上面顯示器的抽象,這是一樣的道理。永遠在腦海裡有一個抽象的概念,計算機領域就是抽象的不斷實現。


4.實現對磁盤的抽象,我們叫它文件系統,說白了,就是把磁盤的第幾個磁頭指向的第幾個簇第幾磁道抽象為一個文件名,在windows你點擊的圖標,對應的就是這樣的磁道位置。


5.將上面所有的抽象,寫進一個循環程序中,不斷的等待中斷,然後按照中斷指令調用顯示與文件系統,這就是操作系統的最基本形態,到這一步,你能夠通過二進制的方式與計算機交流了,如果需要用匯編語言,還需要實現一個編譯器,來翻譯彙編代碼。


半步江南


Linux和Windows內核的異同點


  • 什麼是內核?


內核是任何操作系統的基礎部分。平凡的外行人幸福地忘記了它的存在。每天有數百萬人使用計算機而不瞭解其實際功能。通常只有程序員才能直接處理內核。安裝設備驅動程序軟件或配置網絡協議可能與大多數人可以訪問內核一樣接近。內核是最低和最基本級別的操作系統的核心。它的功能對幾乎所有操作都至關重要。內核是一個操作系統; 什麼是引擎對汽車。沒有內核,我們可以對我們的計算機做很少或什麼都不做。

  • 相似


Linux和Windows Kernel都通過硬件抽象層(HAL)控制低級系統軟件和與計算機硬件的交互。以這種方式,內核保持操作系統的其餘部分獨立於硬件,這反過來允許更大的可移植性。操作系統內核是用一種稱為C的高級語言編寫的。選擇C語言是因為C已經被移植到現有的幾乎所有硬件平臺上。可移植性對程序員和軟件公司很重要,因為它意味著更少的工作,更少的時間和更少的費用。兩個內核都處理諸如設備驅動程序,緩存,虛擬內存,網絡協議,文件系統,進程創建和終止以及系統調用之類的事情。

  • Linux中的內核


Linux內核指的是在內核模式下運行的所有內容,它由幾個不同的層組成。在最低層,內核通過HAL與硬件交互。在中間層,UNIX內核分為4個不同的區域。這四個區域中的第一個處理字符設備,原始和熟的TTY和終端處理。第二個區域處理網絡設備驅動程序,路由協議和套接字。第三個區域處理磁盤設備驅動程序,頁面和緩衝區高速緩存,文件系統,虛擬內存,文件命名和映射。第四個也是最後一個區域處理進程調度,調度,創建和終止以及信號處理。最重要的是,我們有內核的頂層,包括系統調用,中斷和陷阱。該級別用作每個較低級別功能的接口。程序員使用各種系統調用和中斷來與操作系統的功能進行交互。

  • Windows中的內核和“內核模式”


Windows操作系統中的內核與LINIX的內核略有不同,因為Microsoft對內核的設計採取了一些不同的方法。術語“內核模式”不僅指內核本身,還指HAL和各種系統服務。這將包括底層的HAL (hal.dll),然後是第二層的內核。第三層是內核。在此之上(第四級),我們擁有各種管理器,包括對象,進程,內存,安全性,緩存,即插即用(PnP),電源,配置和I / O. 文件系統和Win32 GDI也處於這個級別。第四級中的許多項目統稱為Windows Executive (ntoskrnl.exe)。在內核模式的頂層和第五層是系統服務。

  • 總結


如您所見,Linux和Windows操作系統都有一個執行類似功能的內核。但是,兩個內核的設計完全不同。在計算機世界; 有很多方法可以實現相同的目標。


世界科技最前沿


首先,我們先對這兩個操作系統有些基本的瞭解:

Linux:以它的高效性和靈活性著稱。它能夠在 PC計算機上實現全部的 Unix特性,

具有多任務、多用戶的能力。

Windows:是最常見的計算機操作系統,目前推出的win10系統相當成熟。Windows操作系統具有人機操作互動性好,支持應用軟件多,硬件適配性強等特點,未來該系統將更加安全、智能、易用。

從操作系統的角度來講,Linux和Windows在以下兩個方面的區別:

第一、Linux的操作比較複雜,windows的比較簡單、易懂。

第二、很多軟件只能在windows裡運行,而不能在Linux系統運行。


cal仔知道一切


從我個人的角度去理解:

區別:

1、免費與收費

在中國,對個人用戶windows和linux都是免費的,對公用戶windows需要收費,linux是免費的。

2、技術支持

Windows提供了較完善的幫助系統,而大多數Linux用戶依靠技術社區來進行技術支持。他們可以從聊天板和論壇得到有用的信息。缺點是,它往往需要較長時間才能得到答案。

3、安全性

安全是一個非常重要的問題。這兩個系統都有漏洞和潛在的安全問題。許多管理員聲稱,Linux比Windows有更多的漏洞,這當然跟它開源有關。不過,如果你有一個好的管理員,安全應該不是一個重大問題,無論您使用的那種操作系統。

4、開源

開源就是指對外部開放軟件源代碼。linux開源,而Windows並不開源。

二、無盤系統,泛指由無盤工作站組成的局域網。相對於普通的PC機,無盤工作站可以在沒有任何外存(軟驅、硬盤、光盤等)支持的情況啟動並運行操作系統。為了支撐這樣的網絡構架,需要採用專門的軟件系統,此類的軟件成為整個無盤系統的組成部分之一。

擴展資料

Linux系統的主要特性:

1、基本思想

Linux的基本思想有兩點:第一,一切都是文件;第二,每個軟件都有確定的用途。其中第一條詳細來講就是系統中的所有都歸結為一個文件,包括命令、硬件和軟件設備、操作系統、進程等等對於操作系統內核而言,都被視為擁有各自特性或類型的文件。至於說Linux是基於Unix的,很大程度上也是因為這兩者的基本思想十分相近。

2、完全免費

Linux是一款免費的操作系統,用戶可以通過網絡或其他途徑免費獲得,並可以任意修改其源代碼。這是其他的操作系統所做不到的。正是由於這一點,來自全世界的無數程序員參與了Linux的修改、編寫工作,程序員可以根據自己的興趣和靈感對其進行改變,這讓Linux吸收了無數程序員的精華,不斷壯大。

3、完全兼容POSIX1.0標準

這使得可以在Linux下通過相應的模擬器運行常見的DOS、Windows的程序。這為用戶從Windows轉到Linux奠定了基礎。許多用戶在考慮使用Linux時,就想到以前在Windows下常見的程序是否能正常運行,這一點就消除了他們的疑慮。

4、多用戶、多任務

Linux支持多用戶,各個用戶對於自己的文件設備有自己特殊的權利,保證了各用戶之間互不影響。多任務則是現在電腦最主要的一個特點,Linux可以使多個程序同時並獨立地運行。


龍泉詩


linux內核架構是宏內核,windows是混合內核


分享到:


相關文章: