第一回:小馬創業選園區,開放標準是第一
小馬最終仍是決定走出大公司,本身去創業了。前端
他之因此這樣決定,有兩個緣由,一方面,大企業多年的工做經驗讓他練就了從前端到後端,從Web到App,從產品設計到測試交付的全棧能力。他很自信,靠着這些能力,闖蕩江湖應該沒什麼問題;另一方面,他據說,姓「馬「的,創業成功的機率好像比較大。後端
創業首先要註冊公司。註冊公司就須要有一個辦公地點。因此,小馬須要選擇一個適合創業的環境。他找了不少地方,發現有的地方政策傾斜大型企業,有的地方傾斜本地企業,有的地方鼓勵金融創新。小馬感受這些地方都不太適合他這個IT男。併發
直到有一天,小馬來到了位於杭州濱江的x86創業園區。他被深深地吸引住了,固然首要吸引他的就是園區工做人員的熱情。測試
園區的工做人員向小馬介紹瞭如下信息。雲計算
「首先,我們這個x86園區,主要有三大特色,一是標準,二是開放,三是兼容。像您這種創業者仍是很是多的。初次創業不必定有經驗,園區提供標準的企業運行流程輔導。「spa
「另外,咱們園區秉承徹底開放的態度,對待各類各樣的企業。不封閉,不保守。只要您符合國家的法律法規,咱們都接納。並且,整個園區是一種開放合做的生態,也有利於不一樣企業之間的協做。「操作系統
「再就是兼容。咱們園區的流程和規則的設計都會兼容歷史上的既有政策,既不會朝令夕改,也不會由於變化而影響您公司的運轉。總而言之,來了我們園區,您就埋頭幹業務就能夠啦!「設計
小馬顯然對於x86園區的開放性十分滿意,因而追問道:「您剛纔說的企業運行流程輔導,能詳細介紹一下嗎?未來我這個企業在這個園區,應該怎麼個運轉法兒?「3d
工做人員接着說:「我們這個園區毗鄰全國知名高校,每一年都有大量的優秀畢業生來園區找工做,這是企業很是重要的人才來源。葛優說了,二十一世紀了,人才是核心嘛。每一年咱們園區都會招聘大量的畢業生,先進行一個月的培訓,合格畢業的能夠推薦給您這種企業。這些人才啊,就是我們企業的CPU。「blog
「通過咱們園區培訓過的‘CPU人才‘,具有了三種老闆們喜歡的核心競爭力:
第一,實幹能力強,幹活快,咱們稱爲運算才能——也即指令執行能力;
第二,記憶力好,記得又快又準,咱們稱爲數據才能——也即數據寄存能力;
第三,聽話,自控能力強,能夠多任務併發執行,咱們稱爲控制才能——也即指令寄存能力。
到時候,你能夠根據需求,看僱傭多少個‘CPU人才‘。
另外,人才得有個辦公的地方,這一片呢,就是咱們的辦公區域,稱爲也就是內存區域。您能夠包幾個工位,或者包一片區域,或者幾個會議室,讓您公司的人才在裏面作項目就能夠了。這裏面有的是地方,同時運行多少各項目都行。「
跟着工做人員的介紹,小馬走在x86園區中,看着這一片片的內存辦公區,腦子裏已經浮現出未來熱火朝天的辦公場景了。
「也許不到半年的時間,我確定可以接兩三個大項目,招聘十個八個CPU員工。那項目A的員工就坐在這片內存辦公區,項目B的員工就坐在那片內存辦公區。我根據積累的人脈,將接到的項目寫成一個一個的項目執行計劃書,裏面是一行行項目執行的指令,這些指令操做數據產生一些結果,咱們就能夠叫程序啦。」小馬這麼想着。
「而後呢,我把不一樣的項目執行計劃書,交給不一樣的項目組去執行。那項目組就叫進程吧!兩個項目組,進程A和B,會有獨立的內存辦公空間,互相隔離,程序會分別加載到進程A和進程B的內存辦公空間裏面,造成各自的代碼段。要操做的數據和產生的結果,就放在數據段裏面。「
「除此以外,我應該找一個或者多個CPU員工來運行項目執行計劃書,我只要告訴他下一條指令在內存辦公區中的地址,通過訓練的CPU員工就會很自覺地、不停地將代碼段的指令拿進來進行處理。「
「指令通常是分兩部分,一部分表示作什麼操做,例如是加法仍是位移;另一部分是操做哪些數據。數據的部分,CPU員工會從數據段裏面讀取出來,記在腦子裏,而後進行處理,處理完畢的結果,在寫回數據段。當項目執行計劃書裏面的全部指令都執行完畢以後,項目也就完成了,那就能夠等着收錢啦。」
小馬沉浸在思緒中久久不能自拔,直到工做人員打斷了他的思緒:「您以爲園區如何?要不要入住呀?先租幾個工位,招聘幾我的呢?「
小馬想了想,說道:「園區我很滿意,之後就在您這裏創業了,創業開始,我先不招人,本身先幹吧。「
第二回:啓動公司有手冊,獲取內核當寶典
工做人員說:「感謝您入駐我們創業園區,因爲您是初次創業,這裏有一本《創業指導手冊》,在這一本叫做BIOS的小冊子上,有您啓動一家公司的通用流程,你只要按照裏面作就能夠了。「
小馬接過BIOS小冊子,開始按照裏面的指令啓動公司了。
創業初期,小馬的辦公室確定很小,只有有1M的內存辦公空間。在1M空間最上面的0xF0000到0xFFFFF這64K映射給ROM,經過讀這部分地址,能夠訪問這個BIOS小冊子裏面的指令。
創業指導手冊第一條,BIOS要檢查一些系統的硬件是否是都好着呢。創業指導手冊第二條,要有個辦事大廳,只不太小馬本身就是辦事員。由於一旦開張營業,就會有人來找到這家公司,於是基本的中斷向量表和中斷服務程序仍是須要的,至少要可以使用鍵盤和鼠標。
BIOS這個手冊空間有限,只能幫小馬把公司創建起來,公司如何運轉和經營,就須要另一個東西——《企業經營寶典》,於是BIOS還要作的一件事情,就是幫助小馬找到這個寶典,而後讓小馬之後根據這個寶典裏面的方法來經營公司,這個《企業經營寶典》就是這家公司的內核。
運營一個企業很是的複雜,於是這本《企業經營寶典》也很厚,BIOS手冊沒法直接加載出來,而須要從門衛開始問起,不斷打聽這本內核的位置,而後才能加載他。
門衛只有巴掌大的一塊地方,在啓動盤的第一個扇區,512K的大小,咱們一般稱爲MBR(Master Boot Record,主引導記錄/扇區)。這裏保存了boot.img,BIOS手冊會將他加載到內存中的0x7c00來運行。
boot.img作不了太多的事情。他能作的最重要的一個事情,就是加載grub2的另外一個鏡像core.img。
引導扇區就是小馬找到的門衛,雖然他看着檔案庫的大門,可是知道的事情不多。他不知道寶典在哪裏,可是,他知道應該問誰。門衛說,檔案庫入口處有個管理處,而後把小馬領到門口。
core.img就是管理處,他們知道的和能作的事情就多了一些。core.img由lzma_decompress.img、diskboot.img、kernel.img和一系列的模塊組成,功能比較豐富,能作不少事情。
boot.img將控制權交給diskboot.img後,diskboot.img的任務就是將core.img的其餘部分加載進來,先是解壓縮程序lzma_decompress.img,再往下是kernel.img,最後是各個模塊module對應的映像。
管理處據說小馬要找寶典,知道他未來是要作老闆的人。管理處就告訴小馬,既然是老闆,遲早都要僱人幹活的。這不是個體戶小打小鬧,因此,你須要切換到老闆角色,進入保護模式,把哪些是你的權限,哪些是你能夠受權給別人的,都分得清清楚楚。
這些,小馬都銘記在心,此時此刻,雖然公司仍是隻有他一我的,可是小馬的眼界放寬了,可以管理的內存空間大多了,也開始區分哪些是用戶態,哪些是內核態了。
接下來,kernel.img裏面的grub_main會給小馬展現一個《企業經營寶典》的列表,也即操做系統的列表,讓小馬進行選擇。經營企業的方式也有不少種,究竟是人性化的,仍是強紀律的,這個時候你要作一個選擇。
在這裏,小馬絕不猶豫地選擇了《狼性文化》操做系統,至此grub纔開始啓動《狼性文化》操做系統內核。
拿到了寶典的小馬,開始愈來愈像一個老闆了。他要開始以老闆的思惟,來創建這家公司。
第三回:初創公司有章法,請來兄弟作臂膀
這注定是一個不眠夜,辦公室裏面一片漆黑中,惟一亮着的檯燈下,小馬獨自捧着《企業經營寶典》仔細研讀,讀着讀着,小馬如有所思,開始書寫公司內核的初始化計劃。
公司首先應該有個項目管理部門,我們未來確定要接各類各樣的項目,所以,項目管理體系和項目管理流程首先要創建起來。雖然如今尚未項目,可是小馬仍是弄了一個項目模板init_task。這是公司的第一個項目(進程),是項目管理系統裏面的項目列表中的第一個,咱們能稱爲0號進程。這個項目是虛擬的,不對應一個真實的項目(也就是進程)。
項目須要項目管理進行調度,還須要制定一些調度策略。
另外,爲了快速響應客戶需求,爲了各個項目組可以方便地使用公司的公共資源,還應該有一個辦事大廳。這裏面能夠設置了不少中斷門(Interrupt Gate),用於處理各類中斷,以便快速響應突發事件;還能夠提供系統調用,爲項目組服務。
若是項目接得多了,爲了提升研發效率,對項目內容進行保密,就須要封閉開發,因此未來會有不少的會議室,於是還須要一個會議室管理系統。
項目的執行確定會留下不少文檔,這些是公司的積累,未來的核心競爭力,必定要好好管理,於是應該創建一個項目檔案庫,也即文件系統。
隨着思緒的展開,小馬奮筆疾書,已經寫了滿滿的幾頁紙,小馬頓感經營一個公司仍是挺複雜的,一旦項目接多了確定忙不過來。俗話說得好,「一個好漢三個幫「,小馬準備找兩個兄弟來一塊兒創業。
小馬想到的第一我的,是本身的大學室友,外號「周瑜「。大學一畢業,周瑜就轉項目管理了,在一家大公司管理着大型項目。未來外部接了項目,可讓他來管。小馬想到的第二我的,是本身上一家公司的同事,外號「張昭「,是他們總經理的好幫手,公司的流程、人事、財務打理得都輕輕楚楚,未來公司內部要運行的層次分明,也須要這樣一我的。
次日,小馬請周瑜和張昭吃飯,邀請他們加入他的創業公司。小馬說,公司要正規運轉起來,應該分清內外,外部項目須要有人幫忙管理好——也就是用戶態,內部公司的核心資源也須要管理好——也就是內核態。如今我一我的忙不過來,須要兩位兄弟的加入,周瑜主外,張昭主內,正所謂,內事不決問張昭,外事不決問周郎嘛。
三我的相談甚歡,談及往日友誼、將來前景、上市敲鐘……
第三天,周瑜早早就來到公司,開始了他的事業。小馬拜託周瑜作的第一件事情是調用kernel_init運行1號項目(進程)。這個1號項目會在用戶態運行init項目(進程)。這是第一個之外部項目的名義運行的,之因此叫init,就是作初始化的工做,周瑜根據本身多年的項目管理經驗,將這個init項目立爲標杆,之後全部外部項目的運行都要按照他來,是外部項目的祖先項目。
下午,張昭也來到了公司,小馬拜託張昭作的第一件事情是調用kthreadd運行2號項目(進程)。這個2號項目是內核項目的祖先。未來全部的項目都有父項目、祖先項目,會造成一棵項目樹。公司大了以後,周瑜和張昭作的公司VP級別的任務,就能夠坐在塔尖上了。
好了,這一節小馬終於將公司的架子搭起來了,兄弟三人如當年桃園三結義同樣,開始本身的創業生涯,小馬的這家公司能不能順利接到項目呢?欲知後事,且聽下回分解。
歡迎關注我的公衆號《劉超的通俗雲計算》