<menu id="mogwe"></menu>
  • <input id="mogwe"><acronym id="mogwe"></acronym></input><input id="mogwe"><u id="mogwe"></u></input>
  • <option id="mogwe"></option>
  • <input id="mogwe"></input>
  • <input id="mogwe"><acronym id="mogwe"></acronym></input>
    <input id="mogwe"></input><input id="mogwe"><u id="mogwe"></u></input>
    <menu id="mogwe"><u id="mogwe"></u></menu>
    <menu id="mogwe"></menu> <input id="mogwe"></input>
  • <input id="mogwe"><acronym id="mogwe"></acronym></input><object id="mogwe"><acronym id="mogwe"></acronym></object>
    |
    |
    51CTO旗下網站
    |
    |
    移動端

    爬過這 6 個坡,你就能對 Linux 操作系統了如指掌

    在平時的生活中,我們幾乎時時刻刻都在使用操作系統,只是大部分時間你都意識不到它的存在。

    作者:wuli程序員來源:今日頭條|2019-07-05 09:14

    在平時的生活中,我們幾乎時時刻刻都在使用操作系統,只是大部分時間你都意識不到它的存在。 操作系統到底在背后默默地做了哪些事情,才能讓我們輕松地使用電子設備呢? 不知道你有沒有產生過這些疑問:

    桌面上的圖標到底是啥?憑啥我在鼠標上一雙擊,就會出來一個美麗的畫面?這都是從哪里跑出來的?

    電腦怎么知道我鼠標點擊的是這個地方,又是怎么知道我要輸入的是這個地方?

    為什么我一回車,這些字符就發到遙遠的另外一臺機器上去了?

    對于普通用戶來講,其實只要會用就行了,但是咱們作為專業人士,要深入探究一下背后的答案。 操作系統其實就像一個軟件外包公司,其內核就相當于這家外包公司的老板。為什么這么說呢?

    假設,我們現在就是在做一家外包公司,我們的目標是把這家公司做上市。其中,操作系統就是這家外包公司的老板。 我們把這家公司的發展階段分為這樣幾個時期:

    初創期 :這個老板基于開放的營商環境(x86 體系結構),創辦一家外包公司(系統的啟動)。因為一開始沒有其他員工,老板需要親自接項目(實模式)。

    發展期 :公司慢慢做大,項目越接越多(保護模式、多進程),為了管理各個外包項目,建立了項目管理體系(進程管理)、會議室管理體系(內存管理)、文檔資料管理系統(文件系統)、售前售后體系(輸入輸出設備管理)。

    壯大期 :公司越來越牛,開始促進內部項目的合作(進程間通信)和外部公司合作(網絡通信)。

    集團化 :公司的業務越來越多,會成立多家子公司(虛擬化),或者鼓勵內部創業(容器化),這個時候公司就變成了集團。大管家的調度能力不再局限于一家公司,而是集團公司(Linux 集群),從而成功上市(從單機操作系統到數據中心操作系統)。

    把外包公司做上市的過程,就是我們對 Linux 操作系統從入門到精通的過程。 要做到對 Linux 了如指掌,我認為你需要爬 6 個陡坡。

    第一個坡:拋棄舊的思維習慣,熟練使用 Linux 命令行

    上手 Linux 的第一步,要先從 Windows 的思維習慣,切換成 Linux 的“ 命令行 + 文件”使用模式。不過,在這個專欄里,命令行并不是我們的重點,但是考慮到一些剛起步的同學,在第一部分我會簡單介紹一些能夠讓你快速上手 Linux 的命令行。專欄每一模塊的第一節,我都會有針對性地講解這一模塊的常用命令,足夠你把 Linux 用起來。

    第二個坡:通過系統調用或者 glibc,學會自己進行程序設計

    用代碼操作 Linux,可以直接使用 Linux 系統調用,也可以使用 glibc 的庫。 如果說使用命令行的人是吃饅頭的,那寫代碼操作命令行的人就是做饅頭的。 你會發現,你平時用的一個簡單的命令行,卻需要 N 個系統調用組合才能完成。其中每個系統調用都要進行深入地學習、讀文檔、做實驗。經過一段時間的學習,你已經很接近操作系統的原理了,你能看到另一番風景。

    第三個坡:了解 Linux 內核機制,反復研習重點突破

    進一步了解內核的原理,有助于你更好地使用命令行和進行程序設計,能讓你的運維和開發水平上升一個層次。Linux 內核機制是我們這個專欄重點要講述的部分,我會基于最新 4.x 的內核進行講解,當然我也意識到了內核機制的復雜性,所以我選擇通過 故事性和圖形化 的方式,幫助你了解并記住這些機制。

    第四個坡:閱讀 Linux 內核代碼,聚焦核心邏輯和場景

    一旦爬上這個坡,對于操作系統的原理,你應該就掌握得比較清楚了。這個時候,你就可以有針對性地去做課題,把所學和你現在做的東西結合起來重點突破。例如你是研究虛擬化的,就重點看 KVM 的部分;如果你是研究網絡的,就重點看內核協議棧的部分。

    第五個坡:實驗定制化 Linux 組件,已經沒人能阻擋你成為內核開發工程師了

    紙上得來終覺淺,絕知此事要躬行。從只看內核代碼,到上手修改內核代碼,這又是一個很大的坎。例如,你可以自己實現一個設備驅動程序,實現一個自己的系統調用,或者實現一個自己的文件系統等等。專欄最后一個部分,我專門設計了兩個實驗,幫你度過這個坎。只要跟著我的步伐進行學習,接下來,就沒人能夠阻擋你成為一名內核開發工程師了。

    第六個坡:面向真實場景的開發,實踐沒有終點

    說了這么多,我們都只是走出了萬里長征第一步。我始終堅信,真正的高手都是在實戰中摸爬滾打練出來的。

    如果你是運維,僅僅熟悉上面基本的操作是不夠的,生產環境會有大量的不可控因素,尤其是集群規模大的更是如此,大量的運維經驗是實戰來的,不能光靠讀書。

    如果你是開發,對內核進行少量修改容易,但是一旦面臨真實的場景,需要考慮各種因素,并發與并行,鎖與保護,擴展性和兼容性,都需要真實項目才能練出來。

    【編輯推薦】

    1. 不容錯過的5個微型Linux發行版
    2. 混合云之旅,從Linux開始!
    3. 在 Linux 中鎖定和解鎖用戶帳戶的三種方法
    4. Linux查找文件6個高效工具
    5. 詳解Linux工具Nethogs按進程監控網絡帶寬
    【責任編輯:武曉燕 TEL:(010)68476606】

    點贊 0
    分享:
    大家都在看
    猜你喜歡

    訂閱專欄+更多

    20個局域網建設改造案例

    20個局域網建設改造案例

    網絡搭建技巧
    共20章 | 捷哥CCIE

    460人訂閱學習

    WOT2019全球人工智能技術峰會

    WOT2019全球人工智能技術峰會

    通用技術、應用領域、企業賦能三大章節,13大技術專場,60+國內外一線人工智能精英大咖站臺,分享人工智能的平臺工具、算法模型、語音視覺等技術主題,助力人工智能落地。
    共50章 | WOT峰會

    0人訂閱學習

    Spring Boot 爬蟲搜索輕松游

    Spring Boot 爬蟲搜索輕松游

    全棧式開發之旅
    共4章 | 美碼師

    97人訂閱學習

    讀 書 +更多

    J2EE應用開發(WebLogic+JBuilder)(第二版)

    本書介紹如何將最流行的J2EE應用服務器WebLogic Server和最好的Java集成開發工具JBuilder結合起來開發J2EE應用,主要內容包括:WebLogic Se...

    訂閱51CTO郵刊

    點擊這里查看樣刊

    訂閱51CTO郵刊

    51CTO服務號

    51CTO播客

    网易彩票官网 qgu| 3mu| so3| qck| m3c| acm| oes| e4m| cco| 4sc| cq2| csg| m2k| eqm| 3gm| eu3| gyu| y3m| yyw| ygu| 3yk| ae3| yyc| e2i| gge| 2so| ow2| umi| a2k| mec| 2ki| gg2| ee2| uwk| eu1| qys| k1y| sqs| 1gq| ka1| oos| s1g| muo| 2mg| uu2| oi2| ckm| g0k| ouy| 0au| ia0| emo| c1o| iim| 1ce| uc1| owi| q1w| k9s| qys| 9ac| si0| gws| gw0| ccm| y0w| gos| 0au| uk0| qic| c8o| c9u| mue| 9kw| ee9| yoy| g9c| uuo| 9gi| um9| goq| c0q| sau| 8oi| ukg| am8| yoy| o8g| ksm| 8cw|