一、cpu架構
計算機體系結構:
運算器、控制器(cpu還包含寄存器)、存儲器(內存)、輸入設備(鍵盤、硬盤等)、輸出設備(顯示器、硬盤等)
cpu組成:
核心部件:運算器(加法器)、控制器()、寄存器(由于數據總線復用,為cpu保存現場,過程數據記錄)。
輔助部件:一、二、三級緩存:彌合CPU和內存速率不匹配。頻率控制器?
地址總線:內存尋址。
數據總線:存儲器傳輸數據至運算器的帶寬。
控制總線:存儲器傳輸控制指令至運算器的帶寬。
前端總線:cpu與北橋相連的帶寬
存儲器:”物理內存“采用數字平面編址、”邏輯內存“采用三維分段編址?!碧摂M地址空間大小“,32bit系統下內存大小默認1G給OS,3G給程序。由”內核“轉換至物理地址
北橋:高速總線。早期連接內存,顯卡等。目前架構,內存直連CPU,ssd,flash等,無北橋。設備+總線+設備取最低速率。南橋:低俗總線。連接IO設備等
頻率:1次操作過程或事件的工作時間
cpu計算過程:
”程序指令“使用”復用線路“由”控制器“協調將某存儲地址段數據加載至”運算器“,”運算器“需要將數據保存至”寄存器“,然后讀取下一個值。將兩者運算,輸出結果由”控制器“存放在某內存段??刂浦噶詈蛿祿旁诖鎯ζ?/p>
程序移植:
程序–>api(彌合不同cpu的匯編語言,庫或systemcall,不同os庫是不同的,所以不能跨os)–>匯編編譯器–>微碼(廠商提供的匯編語言)–>二進制編譯器–>cpu(二進制即針腳變化)
程序組成:
指令+數據。由系統提供的”庫“彌合底層硬件不同。庫:api,源碼+gcc編譯的二進制。一大堆功能函數組成,整合systerm call的功能函數塊
程序運行過程:程序調用”庫“功能(系統調用的某些功能集),通過”內核“代為對硬件進行控制
程序源碼+編譯器(彌合硬件不同)–>二進制程序(gcc和glibc一致才能在不同OS間使用,和內核沒關系)+鏈接相關共享庫(重新開發后可在不通OS移植)
計算機速率:
cpu–1級緩存2級緩存(時間【訪問之后再次被訪問概率大】和空間【訪問目標周圍被訪問概率大】局部性)–內存(線性地址–邏輯地址–虛擬內存地址)–硬盤緩存–硬盤
post–bios通過”硬件邏輯“方式自啟動,將rom存儲的指令映射至ram最低一段(DMZ??)
io中斷–>cpu–>內核–>應用程序
硬件中斷號表示不同設備的IO中斷
操作系統:
負責管理硬件資源,將硬件計算能力抽象出來,并行多任務:cpu通過時間片。內存通過虛擬內存地址。io設備通過模擬??監視應用程序。啟動、結束、銷毀、回收、切換進程。
程序+shell–>程序庫–>內核–>system庫–>硬件
后臺服務:提供OS運行環境
cpu有ring0-3,內核運行在ring0,硬件虛擬化將敏感程序剝離至-1,應用程序無法訪問0級別的內存。即bios的最底層內存,系統內存空間,應用內存空間
內存碎片
內核功能:進程管理。內存管理。文件系統。網絡功能。硬件驅動。安全機制
批處理:單線程處理。并行計算:多任務
虛擬終端、物理終端、模擬終端
二、linux發行版本
最好的回歸發行版:openSUSE
openSUSE背后的SUSE公司是最老的 Linux 企業,它成立于 Linus Torvalds宣布放出Linux的一年后。它其實早于Red Hat的誕生,它也是社區主導的發行版openSUSE的贊助商。在2015,openSUSE團隊決定靠攏SUSE Linux企業版(SLE)以便用戶可以共享企業服務版本的DNA,就像CentOS和 Ubuntu 一樣。之后,openSUSE變成了 openSUSE Leap,直接基于 SLE SP1。這兩個發行版將共享代碼庫以互惠互利,SUSE將吸取openSUSE的優秀內容,openSUSE也拋棄了常規的發行周期,一個新的版本將和SLE保持一致。這意味著每個版本將有更長的生命周期。這一舉措的結果是openSUSE將變成一個非常重要的發行版,因為潛在的SLE用戶可以使用openSUSE Leap 。這還不是全部,openSUSE同時發布了一個純粹的滾動發行版——Tumbleweed。可以參考Linux Story 聞其詳撰寫的這篇文章《生命、宇宙以及Linux系統的終極答案?openSUSE Leap 42.1華麗發布》,所以現在用戶可以使用超穩定的openSUSE Leap和始終保持最新的 openSUSE Tumbleweed 。
最可定制的發行版: Arch Linux
Arch Linux是一個為那些想了解Linux一切的人準備的發行版,因為你必須手動安裝一切,它會讓你學會基于Linux的操作系統的每個部分。Arch Linux是最可定制的發行版,你獲得的只是一個基礎系統,然后你可以在它上面建立屬于你個人的發行版。不論好壞,它都不像openSUSE和 Ubuntu ,它沒有額外的補丁和整合內容,你甚至可以獲得上游開發者創建的內容。Arch Linux也是最好的滾動發行版之一。他總是更新,用戶始終使用最新的軟件包,并且他們還可以通過穩定的存儲庫運行預發布軟件。Arch也因優異的文檔聞名。Arch Wiki可以讓我得到任何Linux相關的資料。Arch中的內容是它提供的所有的包和軟件都可在“任何”Linux發行版上運行。感謝Arch User Repository(AUR)。
最好看的發行版:elementary OS
不同的Linux發行版有不同的側重點,在大多數情況下這都是技術差異。在很多Linux發行版中外觀和感覺是無足輕重的——更像是一個邊緣項目。不管什么角度,Linux Story 一直覺得它是一個非常漂亮的系統。elementary OS 正試圖改變這一切。在它里面,設計走在了前列,其原因是很明顯的。該發行版漂亮的圖標是Linux世界聞名的設計師們設計開發的。elementary OS非常嚴格要求整體的外觀和感覺。開發者已經創建了包括桌面環境在內的自己的組件,此外,他們只選擇那些符合自己設計模式的應用程序??梢栽谠撓到y上看到Mac OS X的影子。
最佳新人:Solus
Solus 操作系統最近已經獲得了相當多的關注,它是一個從頭開始創建的前瞻性操作系統。它并不是Debian或 Ubuntu 的衍生物。它搭配了為集成GNOME從頭開始構建的Budgie桌面環境。Solus 有和Google Chrome OS 相同的極簡主義方法。Linux Story 完全認同Solus 為最佳新人。Solus不是一個“新的”操作系統,它曾經以不同的形式和名稱存在。但是整個項目的新名稱是在2015年才提出的。
最好的教育操作系統:ezgo Linux
ezgo 是一套開源、公益、免費、面向教育的電腦操作系統,基于Linux而開發,它包含有豐富的互動教學軟件和開放教材、知識,涵蓋了物理、化學、地理、天文、生物、數學、計算機等學科,矢志幫助學校的學生和教師的教育信息化,幫助孩子們和家長、老師以最方便最有效的方式接觸、獲取全世界最先進的知識和智慧,這是一個發源于臺灣的開源項目,目前在國內是ezgo中國社區,重慶Linux用戶組ChongqingLUG在維護、開發和推廣。搜集了包括PhET在內的大量開源教材,Linux Story 有幸也曾經報道過跟ezgo 有關的消息,它的官方網站是 http://ezgolinux.org/。關心教育的家長、學生和老師值得關注。
最好的云操作系統:Chrome OS
Chrome OS不是一個典型的基于Linux的發行版,因為它是一個為在線活動設計的基于瀏覽器的操作系統。而且,由于它基于Linux同時它的源碼是供所有人編譯,所以它也很有吸引力。我每天都使用Chrome OS,這是一個對純粹為網絡活動而設計的極好的,免維護的,不斷更新的操作系統。Chrome OS和Android一起值得所有的新人來實現PC和其他平臺的Linux普及。Linux Story 曾經也試用過Acer Chromebook 11,感覺相當不錯。
最好的筆記本操作系統:Ubuntu MATE
大多數筆記本沒有非常高端的硬件,如果你正在運行一個非常消耗資源的桌面環境的話你將不會有太多的系統資源或電池續航來供你使用,因為系統已經占用了很多。這就是我發現為什么 Ubuntu MATE 是一個優秀的操作系統。因為它是輕量級的,但也有應有盡有的內容給你提供不錯的體驗。正是由于它輕量級的設計,大部分的系統資源可供你去完成繁重的工作。我認為它在低端硬件上是一個真正優秀的發行版。
最好的舊硬件支持系統:Lubuntu
如果你有閑置的舊筆記本或者臺式機,可以使用 Lubuntu 來令它煥發生機。Lubuntu使用LXDE桌面環境,但該項目已經和Razor Qt合并為LXQt項目了。盡管最新的15.04版本仍然使用LXDE ,但是以后的版本將使用LXQt。Lubuntu確實是一款適合舊硬件的操作系統。
最好的物聯網操作系統:Snappy Ubuntu Core
Snappy Ubuntu Core 是最好的物聯網以及其他類似設備的基于Linux的操作系統。該操作系統有很大的潛力將近乎的所有東西都變成智能設備,比如路由器、咖啡機、無人駕駛飛機等等。優秀的軟件管理和為增強安全性設計的容器化將它變得更加好玩。
最好的臺式機操作系統:Linux Mint Cinnamon
Linux Mint Cinnamon 是最好的臺式機操作系統,它對硬件強大的筆記本也是最好的。我將它當成Linux世界的Mac OS X。老實說,我曾經因為Cinnamon 的不穩定而十分不愉快。但是,只要開發者選擇LTS版本,它就變得難以置信的穩定。因為開發者不必花太多時間去跟上 Ubuntu,所以他們可以花更多時間去讓Cinnamon更好。
最好的游戲系統:Steam OS
游戲一直是桌面版 Linux的弱點,許多用戶啟動雙系統的 Windows 只是為了玩游戲。Valve Software正在努力改變這一現狀。Valve是一個提供使游戲在不同平臺上運行的客戶端的游戲分銷商。而且,為了創建基于Linux的游戲框架,Valve已經創建了他們自己的開放式操作系統—— Steam OS 。在2015年底,合作伙伴開始將Steam機器推向市場。
最好的隱私保護操作系統:Tails
當下大量的監視和營銷者的跟蹤(匿名跟蹤的目標內容是可接受的)讓隱私保護已經成為一個主要的問題。如果你的業務需要避免政府和營銷機構的追蹤,你就需要考慮一款從底層設計隱私保護的操作系統。而且,在這一方面沒有其他的能打敗 Tails 。它是基于Debian的設計用來實現隱私保護和匿名化的操作系統。Tails 非常棒,據報道,美國國家安全局(NSA)認為它是自己使命的重要威脅。
最好的多媒體制作系統:Ubuntu Studio
多媒體制作是基于Linux的操作系統的主要缺點之一,所有專業級的程序在 Windows 和Mac OS X上都可找到。Linux上卻沒有像樣的音頻/視頻制作軟件,但一個多媒體制作系統需要的不僅僅是像樣的應用程序。它應該使用輕量級的桌面環境使寶貴的系統資源如CPU、RAM被系統盡量少的使用,以便用于多媒體制作程序。因此,最好的Linux多媒體制作系統是Ubuntu Studio,它使用Xfce桌面環境并配備了眾多的音頻,視頻和圖像編輯應用程序。Linux Story 網站很長時間也用過它來制作一些影音多媒體素材。
最好的企業級系統:SLE/RHEL
企業用戶不會四處尋找運行在自己服務器上的發行版。他們已經知道選擇范圍:Red Hat Enterprise Linux或者SUSE Linux Enterprise。這兩個名字已經成為企業級系統的代名詞。這些公司也在設法在容器化和軟件定義上的創新來推倒當前的壁壘。Linux Story 認為RHEL 確實穩定,確實好用。
最好的服務器操作系統:Debian/CentOS
如果你正打算運行一個服務器,但是又不想為 RHEL或SLE的維護付費,那么Debian或CentOS是你最好的選擇。這些發行版是社區主導的服務器版本,它們有著黃金標準。而且,它們的支持周期很長,所以你不必擔心經常升級系統。
最好的移動操作系統:Plasma Mobile
盡管基于Linux的操作系統——Android正在主宰移動領域,包括我在內的很多開源社區的成員仍然希望有一個發行版能夠在移動設備上提供傳統的Linux桌面應用程序。同時,它最好是由一個社區負責運營維護而不是一個公司以便讓用戶仍然是受關注的焦點,而不是以公司的財務目標為焦點。而這正是KDE的 Plasma Mobile 帶來的希望。該版本是基于Kubuntu的,發布于2015年。因為KDE社區在公眾環境中遵守標準和發展東西是眾所周知的,所以我對Plasma Mobile的未來充滿希望。
最好的ARM設備發行版:Arch Linux ARM
隨著Android的成功,我們已經被ARM設備所包圍——從樹莓派到Chromebook再到Nvidia Shield。為Intel/AMD處理器編寫的傳統發行版將不能在這些設備上運行。雖然一些發行版專為ARM設計,但是大多數都只針對具體的硬件,比如為樹莓派設計的Raspbian。這也是為什么 Arch Linux ARM(ALARM)讓人眼前一亮。因為它是一個純粹由社區主導的基于Arch Linux的發行版,你可以在樹莓派、Chromebook、Android設備、Nvidia Shield等上面運行它。這個發行版更有趣的是,因為Arch User Repository(AUR)的原因,所以你可以安裝許多你可能在其他發行版上無法獲得的應用程序。
三、linux哲學思想
1、一切皆文件;
2、單一目的的小程序;
3、組合小程序完成復雜任務;
4、文本文件保存配置信息;
5、盡量避免捕獲用戶接口;
6、提供機制,而非策略。
四、命令介紹
linux的ip命令和ifconfig類似,但前者功能更強大,并旨在取代后者。使用ip命令,只需一個命令,你就能很輕松地執行一些網絡管理任務。ifconfig是net-tools中已被廢棄使用的一個命令,許多年前就已經沒有維護了。iproute2套件里提供了許多增強功能的命令,ip命令即是其中之一。
設置和刪除Ip地址
要給你的機器設置一個IP地址,可以使用下列ip命令:
$ sudo ip addr add 192.168.0.193/24 dev wlan0
請注意IP地址要有一個后綴,比如/24。這種用法用于在無類域內路由選擇(CIDR)中來顯示所用的子網掩碼。在這個例子中,子網掩碼是255.255.255.0。
在你按照上述方式設置好IP地址后,需要查看是否已經生效。
$ ip addr show wlan0
你也可以使用相同的方式來刪除IP地址,只需用del代替add。
$ sudo ip addr del 192.168.0.193/24 dev wlan0
列出路由表條目
ip命令的路由對象的參數還可以幫助你查看網絡中的路由數據,并設置你的路由表。第一個條目是默認的路由條目,你可以隨意改動它。
在這個例子中,有幾個路由條目。這個結果顯示有幾個設備通過不同的網絡接口連接起來。它們包括WIFI、以太網和一個點對點連接。
$ ip route show
假設現在你有一個IP地址,你需要知道路由包從哪里來??梢允褂孟旅娴穆酚蛇x項(譯注:列出了路由所使用的接口等):
$ ip route get 10.42.0.47
更改默認路由
要更改默認路由,使用下面ip命令:
$ sudo ip route add default via 192.168.0.196
顯示網絡統計數據
使用ip命令還可以顯示不同網絡接口的統計數據。
當你需要獲取一個特定網絡接口的信息時,在網絡接口名字后面添加選項ls即可。使用多個選項-s會給你這個特定接口更詳細的信息。特別是在排除網絡連接故障時,這會非常有用。
$ ip -s -s link ls p2p1
ARP條目
地址解析協議(ARP)用于將一個IP地址轉換成它對應的物理地址,也就是通常所說的MAC地址。使用ip命令的neigh或者neighbour選項,你可以查看接入你所在的局域網的設備的MAC地址。
$ ip neighbour
監控netlink消息
也可以使用ip命令查看netlink消息。monitor選項允許你查看網絡設備的狀態。比如,所在局域網的一臺電腦根據它的狀態可以被分類成REACHABLE或者STALE。使用下面的命令:
$ ip monitor all
激活和停止網絡接口
你可以使用ip命令的up和down選項來激某個特定的接口,就像ifconfig的用法一樣。
在這個例子中,當ppp0接口被激活和在它被停止和再次激活之后,你可以看到相應的路由表條目。這個接口可能是wlan0或者eth0。將ppp0更改為你可用的任意接口即可。
$ sudo ip link set ppp0 down $ sudo ip link set ppp0 up
獲取幫助
當你陷入困境,不知道某一個特定的選項怎么用的時候,你可以使用help選項。man頁面并不會提供許多關于如何使用ip選項的信息,因此這里就是獲取幫助的地方。
比如,想知道關于route選項更多的信息:
$ ip route help
原創文章,作者:未聞花名,如若轉載,請注明出處:http://www.www58058.com/34486
寫的很好,排版還可以在漂亮一點,加油,有沒有感覺到黑屏很丑?