操作系統(OS:operating system)是計算機用戶和計算機硬件之間的接口。操作系統是一種執行所有基本任務的軟件,如文件管理、內存管理、進程管理、處理輸入和輸出以及控制外圍設備(如磁盤驅動器和打印機)。
操作系統是使應用程序能夠與計算機硬件交互的軟件。包含操作系統核心組件的軟件稱為內核。操作系統的主要目的是使應用程序(software)能夠與計算機硬件交互并管理系統的硬件和軟件資源。
一些流行的操作系統包括Linux操作系統、Windows操作系統、VMS、OS/400、AIX、z/OS等。
Linux系統下面又分為Ubuntu, Debian, Centos, Respbian等;
今天,操作系統幾乎出現在所有設備中,如手機、個人計算機、大型計算機、汽車、電視、玩具等。
通常不同操作系統上運行的軟件是不同的,一些軟件如果運行在虛擬機上,則可以跨平臺執行,如果直接運行在操作系統上,可能需要針對各個運行環境進行編譯,然后生成對應的文件,比如windows下對應exe, android下對應apk等。
么是分布式系統以及為什么要關心?基本上分布式系統不是集中式系統。什么是中心化系統?集中式系統是系統狀態和程序存儲在一臺計算機上的系統。例如您可能正在使用您面前計算機上的microsoft word對此視頻進行筆記。為了記錄這些筆記,word會將文檔存儲在內存中,并定期將您的狀態保存到磁盤。
如果你的電腦壞了,那你就倒霉了。您不能再做筆記,也不能閱讀筆記,除非您足夠幸運有備份,并且可以從備份恢復到新計算機上。在分布式系統中,程序的狀態和程序本身被分配到多臺計算機上。
回到word的例子,如果您沒有將文檔保存在本地磁盤上,而是將文檔存儲在dropbox中,那么如果您的計算機出現故障,您可以借用朋友的計算機從dropbox加載文檔,然后繼續工作。太好了,你開心就好。
您的系統具有容錯能力,因為你的狀態不僅僅只是由一臺計算機來劃分的。您正在利用dropbox擁有的所有計算機,如果他們的一臺計算機出現故障,他可能也會將您的文檔復制到不止一臺計算機上,你可以繼續前進。
所以集中式系統更簡單,他們更容易理解。因為您只需考慮一臺計算機中發生的情況,對于單個用戶來說,他們可以更快,因為運行他們時不涉及網絡往返。但相比之下,分布式系統可以更可靠。如果計算機出現故障,并不意味著您就完蛋了,你可以在多種類型的失敗中繼續努力。
分布式系統往往更具可擴展性。我的意思是由于時間共享的奢侈,您可以用更少數量的計算機為更多用戶提供服務。分布式系統的缺點是他們更加復雜。現在等一下,您可能會擔心因為復雜性不好,對嗎?復雜性很難構建一個實際上也更可靠的復雜系統。我可以承認你是對的,復雜的系統很難正確構建。
這就是分布式系統被認為是計算機科學中的高級主題的原因之一。這是因為我不會粉飾它,這很難,這很值得。您可以使用分布式系統解決一些非常重要的問題,而使用集中式系統無法解決這些問題。即使他們失敗了,后果往往也是非常糟糕的。這只是因為人們只使用分布式系統作為解決非常重要問題的工具。
所以當他們失敗時,當然是很糟糕的。這是因為他們很重要。讓我們考慮一些分布式系統的例子,為了觀看該視頻,您必須訪問一個網站,并且為了查找該網站,例如youtube.com,您必須使用dns或域名服務進行查找。dns是一個由主機名到ip地址的分布式表,該表分布在全球的許多計算機上,以便總有一臺。靠近您的計算機可以在其中進行查找。您可以將dns作為分布式緩存一致性的一個很好的例子來研究,這是我們稍后會討論的內容。
facebook和google在內部廣泛使用分布式系統,它們用它們來存儲您的數據,它們使用它們來處理大量計算機云上的數據。當你每天與這些服務交互時,它們使用它們來實現你與之交互的服務系統。這些公司和更多公司都已經證明可以構建真正大規模的分布式系統,其速度足以解決一大類非常重要的問題,而且它們可以變得非常可靠。
如果您曾經發送過電子郵件,那么這就是您利用分布式系統的另一個地方。全球各地都有相互通信的郵件服務器,您的電子郵件在到達目的地時會通過一系列服務器進行轉發。如果其中一臺服務器發生故障,每個人的電子郵件都不會停止,它只是停止等待,將通過故障服務器中計的消息的用戶子籍,當它恢復時一切又開始工作。
現在您可能會有這樣的印象,分布式系統是為了解決互聯網規模問題而開發的。而且事實上分布式系統作為一個領域最初并不是為互聯網開發的,它是在互聯網出現之前開發的。分布式系統是我們歸類為分布式系統問題的問題。最初解決這個問題是為了建立基于固定電話的網絡,這實際上是一個全球性的非常可靠容錯的網絡。
后來我們添加了更多技術來處理移動節點,已構建手機網絡。所以也許你可以說分布式系統對于網絡系統最有用。是的,只不過網絡比你想象的要多。例如您的汽車中至少有一個網絡,也許不止一個網絡。使用所謂的can總線協議,汽車中的所有電子元件都聯網在一起。
例如您可能正在駕駛汽車打開音響,但汽車音響崩潰了。您最不想做的事情就是在can總線網絡上發送一條消息,該消息會使您的發動機控制單元崩潰,從而導致發動機故障。這可能會導致汽車實際崩潰,那會很糟糕。因此在汽車內部使用分布式系統技術來幫助故障隔離。
分布式系統也用于交通運輸的其他領域,大城市的交通信號燈通常聯網在一起,以便以容錯的方式使整個城市的交通順暢。列車控制網絡用于確保列車準時運行,并且不會在同一軌道上同時運行兩列列車。
飛機是我最喜歡的寵物粒子,因為我是一名飛行員和航空極客。如果你觀察飛機內部,你會發現飛機上的所有航空電子設備通常都是連接在一起的,各個航空電子設備之間通常通過rs232總線進行連接。例如在這架飛機上gps知道飛機在哪里以及飛行員打算飛往哪里。
發動機監視器跟蹤發動機及其所有參數、燃油流量、廢棄溫度、氣缸溫度,它基本上是在觀察發動機的健康狀況。發動機監視器必須做的事情之一是如果它認為您在到達目的地之前將耗盡燃料,它必須警告飛行員,它怎么能做到這一點?它從gps中了解目的地在哪里以及到達目的地需要多長時間,并且通過自己的監控了解當前消耗了多少燃料,這是簡單的數學。
但如果gps出現故障怎么辦?發動機監視器無法再完成這項工作,所以它有一個容錯策略,它只是告訴飛行員:我不能再進行這種計算了,請查看燃油表并使用計算器自行計算。偉大的,這并不是飛機上。使用分布式系統的唯一地方。
空中交通管制是人力分布式系統的一個例子,系統和程序的狀態在參與的飛行員、空中交通管制員以及空中交通管制員用于相互通信和協調所有交通的計算機之間劃分。實際上一旦您開始尋找分布式系統,您就會開始在各處看到他們。
我試圖為這次演講想出好的例子,然后我開始認為現在正處于選舉季節,美國選舉投票系統真的只是具有拜暫停容錯能力的分布式共識的一個例子嗎?我說的太過分了,對不起。正如您所知,我對分布式系統感到非常興奮。
實際上自從獲得博士學位以來,我在過去的十年里一直致力于分布式系統的工業研究,試圖使他們更具可擴展性,更快,更易于使用。我希望通過這一系列視頻讓他們更容易理解,希望在看完這些視頻后您將知道應該如何以及何時構建自己的分布式系統,并更好的理解他們的工作原理。
除桌面圖標箭頭小技巧。
一招去除win10桌面圖標小箭頭。上期視頻教大家win11的操作方法,今天這期是win10系統的操作方法,大家看好自己的系統,不要弄錯。
·首先在桌面創建一個記事本,復制粘貼這段代碼或文本中。
·然后打開記事本左上角文件,點擊另存為,選擇保存類型為所有類型,文件名設置為text.bat,然后點擊保存。
·此時桌面上的記事本格式就從TXT格式轉換成bat格式了,右鍵點擊test.bat文件,選擇以管理員身份運行。
·運行之后系統會出現幾個彈窗,依次點擊是即可。由于我是win11系統,就不為大家演示了。
·最后結束回到桌面,快捷方式圖標的小箭頭就順利去掉了。
下期為大家分享小箭頭回來的方法。關注我每天分享電腦小技巧。