小馬最終還是決定走出大公司,自己去創業了。
他之是以這樣決定,有兩個原因,一方面,大企業多年的工作經驗讓他練就了從前端到後端,從Web到App,從産品設計到測試傳遞的全棧能力。他很自信,靠着這些能力,闖蕩江湖應該沒什麼問題;另外一方面,他聽說,姓“馬“的,創業成功的機率好像比較大。
創業首先要注冊公司。注冊公司就需要有一個辦公地點。是以,小馬需要選擇一個适合創業的環境。他找了很多地方,發現有的地方政策傾斜大型企業,有的地方傾斜本地企業,有的地方鼓勵金融創新。小馬感覺這些地方都不太适合他這個IT男。
直到有一天,小馬來到了位于杭州濱江的x86創業園區。他被深深地吸引住了,當然首要吸引他的就是園區從業人員的熱情。

園區的從業人員向小馬介紹了以下資訊。
“首先,咱們這個x86園區,主要有三大特點,一是标準,二是開放,三是相容。像您這種創業者還是非常多的。初次創業不一定有經驗,園區提供标準的企業運作流程輔導。“
“另外,我們園區秉承完全開放的态度,對待各種各樣的企業。不封閉,不保守。隻要您符合國家的法律法規,我們都接納。而且,整個園區是一種開放合作的生态,也有利于不同企業之間的協作。“
“再就是相容。我們園區的流程和規則的設計都會相容曆史上的既有政策,既不會朝令夕改,也不會因為變化而影響您公司的運轉。總而言之,來了咱們園區,您就埋頭幹業務就可以啦!“
小馬顯然對于x86園區的開放性十分滿意,于是追問道:“您剛才說的企業運作流程輔導,能詳細介紹一下嗎?将來我這個企業在這個園區,應該怎麼個運轉法兒?“
從業人員接着說:“咱們這個園區毗鄰全國知名高校,每年都有大量的優秀畢業生來園區找工作,這是企業非常重要的人才來源。葛優說了,二十一世紀了,人才是核心嘛。每年我們園區都會招聘大量的畢業生,先進行一個月的教育訓練,合格畢業的可以推薦給您這種企業。這些人才啊,就是咱們企業的CPU。“
“經過我們園區教育訓練過的‘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級别的任務,就可以坐在塔尖上了。
好了,這一節小馬終于将公司的架子搭起來了,兄弟三人如當年桃園三結義一樣,開始自己的創業生涯,小馬的這家公司能不能順利接到項目呢?欲知後事,且聽下回分解。
歡迎關注個人公衆号《劉超的通俗雲計算》