本文首次發表在 細數我與 Linux 這十三年 -- 泰曉科技html
大學畢業的時候總想着要 「轟轟烈烈地」 寫一寫 「個人大學」,工做了之後慢慢地以爲好像也沒什麼好寫的,工做8、九年後,如今離職了,接觸了知乎、泰曉原創團隊微信羣等各個渠道你們提出的問題後,以爲彷佛能夠簡單回顧一下。linux
因此,下面簡單回顧一下 「個人大學」 以及 「個人工做」,這些基本都圍繞 Linux,但願能夠打發一下你們的碎片時間。android
2003 年高考,筆者把報考的第一志願所有填寫爲 「計算機專業」,由於對 「科技奧祕」 充滿無盡的遐想,雖然那夥都沒怎麼碰過電腦,高考後的那個暑假才學會了五筆打字。git
2003 年 9 月,坐了 20 多個小時的綠皮車,從江西南昌一路到甘肅蘭州,天亮之後,過了寶雞,看到黃土高原滿目的 「荒蕪」 感受像是被流放到了邊陲,淚水直流,等到展轉下了校車搖了兩個小時到榆中校區(如今有高速和火車,半個多鍾可到),看到蔥翠的校園和熱情接待的師兄師姐們,心才平靜下來。github
到學校之後,在師兄師姐的地攤上買了好幾本感受有趣的技術圖書,好比說 HTML,因爲買不起電腦,因此跟同窗們借了一堆上機證,天天下午上完課,揣着個饅頭就去學校機房排隊去了。web
也有加入學院報社編撰《信息星空》去圓本身的「文學夢」 —— 咬文嚼字,「排版碼字」而已了,後面很榮幸有機會一直作到副主編。真地很想念當年投稿的做者們,一塊兒編輯報紙的小夥伴們,還有第一食堂前那家打印社協助排版的同事們。這兩年多的經歷,不只結識了不少喜歡文字喜歡文學的朋友,也養成了嚴謹的撰寫和編輯習慣,因此,泰曉科技的投稿做者們必定要耐心,有錯別字是比較難接受的,有排版不美觀也是比較難接受的,可能來來回回得改好幾版,不過,改個幾版後,提高會很明顯的,歡迎接受挑戰 ^_^算法
剛學完 C 語言沒多久參加過一屆學校 ACM 比賽,拿了二等獎,贏了一個 16M 的 U 盤,如今還珍藏着。數據庫
而後也有暑假一我的窩在宿舍寢室編撰 彙編語言課程的參考答案,那夥不知道去找出版社出版,而是跑到學校電臺去打字作勤工儉學,歪打正着把碼字速度提高了很多。安全
期間,也陸陸續續參加過學校就業網站等各種項目。服務器
對面宿舍的 「北極」 同窗 10 歲那年用父母送的遊戲機學 Qbasic,他在那一屆 ACM 比賽拿了第 3 名,後面陸續帶隊參加全國的比賽,而我則完全離開了 ACM 比賽,遠離了對算法的研究。
大學裏頭,由本身發起並持續改了 n 個版本的軟件,當屬 FTP 搜索引擎。那時候整天夢想着打造一個西北地區高校的 FTP 搜索引擎,從大二寫到大四。
大二之後死皮賴臉跟家裏要錢攢了一臺電腦(很是感激老爸老媽)。那時候整天抱着 MSDN 大磚頭電子書啃 VB,同時不斷向 「北極」 同窗取經(因此,「北極」 能夠說是我大學階段的計算機啓蒙老師)。
在數據庫、網絡這些課程統統沒有接觸前,硬是在 Windows 下用 VB+Acess+ASP 碼了個帶圖形界面,集爬蟲、數據存儲、搜索界面爲一體的具備完整功能的 FTP 搜索引擎。
而後每隔一段時間在本身機器上跑完全部西北地區高校的 IP 地址段,跑完後把數據庫和網站更新到學校提供的我的空間上。
那段時間成就感滿滿,由於能夠看到實實在在有不少同窗在用,各類五花八門的搜索內容都有,而後爲了不那啥,本身還所以創建了敏感詞庫等功能,後來陸陸續續迭代,一直到後面在 Linux 平臺用 C+MySQL+PHP 重構了一遍。那個時候,跟隔壁班的 Tom 同窗一塊兒搞,他負責 UI 設計,我負責剩下的部分,搞出來有模有樣。
只惋惜,大四畢業那年,須要把電腦轉給弟弟用,在整理數據時,一條 rm -rf
結束了一切。
只留下在實驗樓 502 室無數個通宵達旦 debugging 的夜晚以及相關的 debugging 文章,好比說 Linux 段錯誤詳解,固然,還有那篇基於 VB+Access+ASP 版本寫的論文(沒有在任何雜誌發表,直接放到了網絡上):FTP搜索引擎的設計與實現(優化版),至今還在網絡流傳。
那個時候,有幾年,陸陸續續有不少高校的應屆畢業生找過來,要幫忙寫論文,因爲鄙視這種學術做風,因此一一拒絕了,雖然當時一個月纔拿實驗室 200 塊,可是不爲這點小錢折腰的精神至今仍是讚揚的。
固然,這個項目有幾個很重要的貢獻:
所以取了如今的網名:Falcon,由於當時取的搜索引擎名字是 「獵鷹搜索 —— 生來是獵手,網海中搜尋」,原來想用 eagle,只是以爲不夠霸氣。
認識了 Open Source 和代碼管理工具的重要性,若是當時把代碼開放到 sf.net,就不至於由於一條 rm -rf
就蕩然無存了。
後面那些考試,好比說數據庫都是很容易就 Pass 了。由於在項目裏頭,SQL 都被玩爛了,各類優化須要都實踐過了嘛,幾百萬條數據要在幾秒內返回,得優化數據庫索引,優化每條 SQL 語句。
差很少時間段,「北極」 在 Windows 平臺上,不停地用 C+內存數據庫+CGI
寫他的搜索引擎版本,速度很快,界面很通常。
2005 年 9 月,教育部和科技部批准在全國 40 所高校創建 「國家 Linux 技術培訓與推廣中心」,蘭州大學於 10 月份創建 「Linux 技術中心」,成爲首家 「大學國家 Linux 技術培訓與推廣中心」。
以後學校開設了相關的 Linux 課程,同窗們開始涉獵 Linux 方面的知識。
也是在這一年,我和 Tom 由於在搞 FTP 搜索引擎,被學校團委的徐老師發現,那個時候她正在負責一個校園門戶網站:萃英在線,而後討論把這個搜索引擎搞得正式一點。
所以結識了萃英在線的主要成員 osier、jolestar、柳力、acai、K.D. 等同窗,而後忽然有一天,他們有人提出來要組建學校的 Linux 用戶組,因而你們一塊兒玩 Linux,印象中,從 TurboLinux, MandrivaLinux, Ubuntu 5.04 開始玩。
而後,委派我去跟當時上數據庫課程的副院長申請設備資源,那個時候打探到有個 IBM 實驗室,有臺很不錯的服務器閒置着,不過當時沒能申請上,後來展轉聯繫上了 DSLab 的 Kinggo 老師,後來在他的支持協助下,咱們在學校網絡中心申請到了服務器,另外,也協調學院在實驗樓給咱們支持了一間辦公室。
2006 年 5 月 12 日,蘭州大學第二屆Linux開放日暨蘭州大學開源社區對外開放,正式成立了蘭大開源社區,你們作了一些分工,有的搭建論壇,有的搭建社區鏡像站,熱火朝天。
後來 osier 等師兄畢業後,DSLab 還在讀研的 「黃天」 師兄找到我和 Tom 接手負責後續的運營,咱們商量組織了全校範圍內的納新,制定了團隊章程,註冊了正式的校園社團,方便持續永久合法地運做。如今回頭來看,這個策略是對的,一個鬆散的開源團隊是沒法持續存在下去的。
另外,爲了不侷限在信息學院,咱們主導把社團註冊在了資源環境學院(惋惜地是,後面有一屆負責人又被忽悠把註冊單位改回了信息學院),從而確保團隊有來自各個專業背景的同窗,你們能夠相互學習,切磋,交換思想。
同時,創建了兩條線的管理制度,一條技術線,一條活動線,雙 「CEO」 制度。也逐步造成了社團文化,創建了邀請外部工程師來作講座,邀請優秀畢業生來作交流以及畢業時捐贈圖書的傳統,還搞了幾個經典的活動,新人培訓,軟件自由日,軟件自由日一般會播放 Revolution OS、裝機、以及講解 Linux 命令上手。
那個時候,每一年都有來自美術、物理、行政、資環、管理各個不一樣專業的新同窗加入,不少同窗都是品學兼優。筆者後來在學校繼續讀研,雖然大四後就交棒給了下一屆新人 Loyou 和 Silent,可是一直以來都在關心和支持社區直到研究生畢業。畢業後,也贊助過幾筆小的費用,用於採購書籍和鏡像站硬盤。
在這個時間段,「北極」 在負責當時學校的一個 BBS,星期天社區。後來,咱們都有幸被邀請當西北望 BBS 的技術站務,只是那段時間項目多,站務技術工做也少,因此我這邊沒有什麼實質的貢獻,只是在本身熟悉的 Linux 版塊作好版務工做。
那個時候,除了對技術的執着,其實還有一種責任感在驅使着咱們,就是以爲咱們應該爲學校留一下一點什麼,如今回頭來看,每一年都有幾十位來自蘭大開源社區的應屆生畢業,甚感當時的付出是值得的,也感謝有機會和那麼多優秀的師兄師姐師弟師妹們一塊兒學習和奮鬥過,現在不少已經畢業,在各自的崗位上作得很出色,爲他們感到自豪,也但願更多的新同窗不斷地加入,經過這樣一個優秀的團隊,抱團學習,一塊兒成長。
蘭大,雖然地理位置偏僻一些,可是即便在那邊學習計算機,離東部沿海的互聯網和硬件企業很遠,可是若是執着,有求知慾,無論是加入蘭大開源社區,仍是加入其餘的 IT 社團(當時的星期天論壇,以及萃英在線、西北望BBS 等等),都是有機會跟有經驗的老師和學長一塊兒學習,經過網絡,你們還能夠跟來自世界各地的人們一塊兒交流。其餘高校也是,並非全部高校都有豐富的設備和網絡資源,也不必定能碰到慷慨支持學生的 「kinggo」 支持,可是隻要去想辦法,去克服,確定是能夠解決的。
前段時間,咱們去收集全國高校的開源社團信息,可以經過搜索引擎檢索到的寥寥無幾,因此,很是鼓勵全部高校的計算機新生們,若是有興趣,能夠去抱團組建這樣的團隊,除了一塊兒切磋研討技術,對於組織能力,協做意識都是很是重要的歷練。
因爲蘭大開源社區的這段經歷,有幸結識了 DSLab 的 kinggo 老師,也參加了 DSLab 組織的幾回 「Summer School」,這個徹底向本科生免費開放,由 Nicholas Mc Guire 教授上課。咱們都親切地稱呼他 Nico。
因此到本科畢業的時候,恰好那個時候還進了基地班,積分合計下來能排到專業前三,本身有保送的機會,就跟 kinggo 老師聯繫,請他幫忙推薦國內的高校實驗室,後來,總之是被 「忽悠」(也確實有主觀以爲 Linux 前景很贊,老師們也比較 Nice) 直接去 DSLab 實驗室,跟 Nico 和 Kinggo 老師學習和研究實時系統和安全關鍵系統。
從 Nico 的 Summer School 上學到的最重要的一課是:「若是一個解決問題的方法花了 30 分鐘實施毫無效果,要停下來思考一下,分析是否是哪裏出了問題,不要盲目重複」。這個觀念在後來的研究和工做中,多次被獲得驗證,筆者也一直跟周邊的朋友和同事宣導。
因此大3、大四基本就跟 Tom 一塊兒作了 DSLab 的研究項目,師兄師姐們都很是 Nice 和照顧,前先後後有參與作過 KIOSK,有作過 IBM Power CELL 處理器上的 gdb tracepoint,當時積累不夠,時間倉促,結果作的很通常。還有用 power 的板子作過一個模塊化的網關競賽,還所以後面不斷迭代搞了一個 VnstatSVG。
後來作研究,主要有用 XtratuM 作 Fault-tolerant System,而投入時間最多的當屬跟西門子合做的 SIL4 Linux,本科還沒畢業就參與了理論研究環節,我跟師姐一組研究 HAZOP,後面整個 Demo 系統基本是由鄙人主導開發。
後面的畢業論文主要跟龍芯有關,研二下半年開始去實習,實習完主要時間都埋在實驗室作實驗,寫畢業論文。
這個論文算是在國內首次較爲系統地研究和分析了 實時搶佔內核,有理論分析,也有工程實踐,還有實質的成果,那就是 MIPS Ftrace 以及龍芯平臺上的實時搶佔支持。創新性呢不是很足,可是每一個環節的論證和實驗部分很是有份量,不知道趴在實驗室睡了多少個晚上,設計實驗,驗證,看效果,這個很大程度上受到 Nico 影響,治學很嚴謹。
大四和研一的時候,還也有參與 2 屆 Summer School 的授課,給本科的同窗講嵌入式 Linux 課程,結合以前學習 Nico 授課的學習筆記,加上本身曾經動手過的一些項目素材,課堂效果還算不錯。在比較短的 4 周時間內,一邊要作實驗室的項目,一邊還得整理講解和實驗材料,講完還要答疑,講的時候陷入情境了,有時候眉飛色舞,口若懸河,估計很多同窗可能沒跟上節奏 ;-)
那個時候,實驗室窮,每月領實驗室 200 塊大洋,由於屬於保送,學校還補貼了 200 塊大洋,不過這個只是杯水車薪,還得去外面兼職作個家教攢點住宿費。幸虧那個時候牛肉麪便宜好吃,否則被餓死(^_^)。
那夥應該是實驗室第 3 屆,如今實驗室很財大氣粗了。創業難,建立實驗室也同樣難,真是不容易,要養活一大堆學生,還得組織你們出成果。經費、學術、管理都是很大的負擔,並且學生流動性很大,要持續深刻作一些課題確實不容易。
研一的時候,有個學術會議,跟臺灣來的老師請教,諮詢他是否要讀博,他說建議儘可能頂住困難,讀一個,他說經濟上的困難之後回頭看都是必定能克服的。他打了一個比方,「博士就比如一套西裝,大部分時候不是必須的,可是有些場合得穿着才行」。
研二的時候,西門子的項目作得差很少了,在等新加坡的項目,一直沒順利拿到,加上弟弟那夥上大三,學費壓力比較大,父母由於常年勞做,身體都積壓出了毛病,學校+實驗室 400 塊大洋都不夠本身吃住,因此沒有辦法補貼家用,因而跟導師商量要出去實習,delay 了差很少半年,實在是等不及,再拖父母身體就跨了,因此就跟導師講道理,苦口婆心,各有苦衷,孝道爲先,豁出去了。
那夥一直在想到底去哪裏實習比較好,雖說當時狀況下攢錢是第一位的,可是當時找實習倒是另一種思路。偶爾找了龍芯胡老師的幾篇文章,讀得眼淚稀里嘩啦的,因而決定必定要去那邊實習,恰好 kinggo 老師跟龍芯產業化基地的老師有聯繫,因此也沒談實習工資就去奔常熟去了,kinggo 說工資先別考慮,回頭再談,應該沒問題的。
2009 年 2 月,到那邊之後,幹活特別用心,部門領導以及其餘同事也很是關心和熱情,在同事們的指導下,兩週內把實時搶佔內核在龍芯 2F 盒子上跑起來了,包括搭建環境,熟悉 MIPS 平臺,移植,debugging 一股腦搞完。
一個月後,工資卡收到 500 大洋,後面瞭解到,包吃包住,那夥實習生都是這個待遇,但是,真是來攢學費的,這個不夠用啊,那夥弟弟在江西師大讀軟件工程,一年學費 1 萬大洋,這幹一年也不夠啊,因此跟 kinggo 和基地的老師去溝通,而後看錶現還能夠破例給提高了一些。
這個實時 Linux 的工做搞得七七八八之後,寫了一篇論文投到了 RTLWS,而後在 Nico 的資助下還跟在那邊讀博士的 「黃天」 師兄去德累斯頓作了一個報告。
報告完,Ftrace Maintainer Steven 指出 function graph tracer 實現不完整,討論完發現確實有 Bug,回來繼續完善,最後搞了 12 個版本才把 MIPS Ftrace 提交進官方 Linux 社區。
在此次會議上,有見了不少大神真身,除了 Ftrace Steven,還有 Lwn Cobert, RT Thomas,RCU Paul,Scheduler Ingo,跟 Thomas 拍了合照,估計找不到了,而後還有跟 20 多個內核 Maintainers 一塊兒喝大杯啤酒,都忘記聊了些啥,印象是挺 happy 的。
這段時間特別賣力,有時候頭天熬一個通宵,第二還一早來打卡繼續幹。
先後把全部 2F 的機器內核整成一個,原來發軟件,一臺機器一個固件,整完之後,發一個固件就行了。
再後來,把全部代碼整巴整巴所有給弄到官方內核去了,搞完後,2010 年被提名去參加 Linux 峯會,由於經濟等因素,最後沒成行。
同時,順手搞了一個社區版龍芯 Linux,一直免費維護到畢業的兩年後,基本上每一個晚上都要看一下郵件列表,每一個週末都有至少一個晚上在熬夜合 patch,作測試驗證。
中途來自北美 FSF 的 Alex 參與維護,後來實在堅持不了,我中止維護後,他一直堅持維護了好幾年,期間 RSM 還用了跑這個內核的龍芯逸瓏筆記本,當時世偉兄免費維護的社區版 Debian 也是用這個內核。
還有實時 Linux,最後搞到在各類軟硬件負載下穩定在 80us 之內。2009 年末回實驗室,繼續完善,同時撰寫 畢業論文。
後面有送一臺 2F 的盒子到歐洲的 OSADL 實驗室,一直跑實時 Linux 的壓力測試,如今還在歡快的跑着。
2010 年,筆者畢業並加入北京風河(WindRiver),那是一家成立了 30 多年的公司,在的那年恰好是 30 週年慶。
還在龍芯實習的時候,因爲在 Linux 社區發了不少龍芯和 MIPS 的 patch,風河 Linux 部門的老大 Mark 發來郵件,有過幾通電話來往,後面肯定了過去。
這期間其實有過很多糾結和煩惱,由於在龍芯這邊實習也幹得挺好,同事和領導也比較關心,本身對龍芯的熱情也一直有並且很強烈,因此,通過了很大的一個思想鬥爭,最後仍是以爲要去 WindRiver 看看,畢竟那個時候作 Vxworks 和 RTLinux 的風河仍是嵌入式系統行業的 No.1,跟本身一直搞的 Real Time 和 Safety 也比較契合,而本身仍是一個學生,還得多學習。
不過去了之後,就上面介紹到的,即便是畢業後的 2012 年,基本上天天,每一個週末,在繁忙的工做之餘,我仍是花了大量的時間義務維護社區版的龍芯 Linux 內核,一直在爲龍芯服務,不拿一份工資。因此,那個時候,整天在住處和辦公室跑,基本也沒有業餘的時間去談朋友,也沒怎麼運動。
在工做方面,本身是 Linux BSP 部門惟一的一個應屆生,因爲本身資歷淺,仍是學生,很擔憂趕不上,因此工做也很認真,特別虛心跟各位同事們請教,你們也很 Nice。
那個時候是一我的負責整個 BSP,沒有跟如今手機項目同樣,好幾我的,甚至是十多我的作一個 BSP,一我的作兩三個模塊。
作評估和實施的時候,因爲不太熟悉,因此就作的特別仔細,好比說評估文檔,就儘可能能驗證的都驗證好,有資料的就把資料列上去,一天半天都評估得比較具體細緻。所以,有個項目的評估報告還被 Mark 做爲樣板在會上宣導 ;-)
有作本身評估的項目,也有作其餘同事評估的項目,基本上都能按時按質完成工做計劃,在一年多 3 個月的時間裏頭,完成了應該至少有 5 個左右的 BSP 項目吧(過久了記不得太清楚),有時候還要負責一些本身比較熟悉的 Ftrace, RT Features,有時還要 Review 測試同事撰寫的測試用例。
這一年多下來其實仍是成長比較快的,由於要作完整的 BSP,因此接觸的內核子系統,外設,各類功能就比較豐富,對於 porting 過程,驗證工做,評審流程,系統質量保障都有比較系統地認識。若是能作得再久一點固然更好了。
記得剛去風河沒多久,Nico 回國的時候路過北京,我把他接到望京聚了個餐,而後去機場送行。
他問我都在幹啥,問完之後跟我開玩笑:You Are A BSP Monkey。說我不停地重複作不一樣的 BSP,就是個 BSP Monkey。感觸很深,這麼多年,一直還記得。
作 BSP Porting 工做自己,有多少原創性的工做呢?「確實很少」,可是對於產品總體的把握意識和系統性的掌控能力確實是有巨大幫助的。
後來,我一直在思考,怎麼突破 「BSP Monkey」 這個範疇而且跟周邊的同事們也在宣導這個概念,不能只是個 「BSP Monkey」,要思考要突破,從深度上、效率上、從質量上、流程上、思路上,進度保障上,必須不斷地創新進取。
2010 年末 2011 年初,也是由於以前參與官方 Linux 社區的緣由,提早就結識了幾個 WindRiver 的小夥伴和前輩,咱們在業餘時間常常聊聊天,聚個餐什麼的,你們聊到剛興起的 Android,以爲應該要關注,甚至聊到是否將來有可能爲剛興起的手機廠商提供技術諮詢服務。
那一年,遠在珠海的魅族恰好發佈了第一款 M9 不久,上市了一年多還有各類死機崩潰問題,那夥正在作 MX,迫切但願能改善情況。
在 2009 年的常熟,筆者有幸在很愛趕時髦的 Mike 唐同窗那裏看到過一臺手機,真是豔羨得很,那滑動看新聞的效果然是酷斃了,聽說那臺手機應該是 M8,同一年,在風河另一個 Team 的 3D 也是 Android 關注組的一員,他原來給 M8 搞過 libfetion,因此跟魅族的同窗有聯繫,巧合,完美無缺。
2011 年初,我和 3D,受邀去魅族作一個報告,全場坐無虛席。臨行前,咱們的 Android 關注組祝福咱們成功起步,由於是第一家,根本沒經驗,一共下來除了對方報銷機票,一人拿了應該不到 2k 來着,記不太得了。
後面,其餘的廠家需求也沒有渠道,而關注組的同窗們,3D 第一個南下騰訊了,後來,魅族拋來橄欖枝,加上來回的溝通,以及對網絡中魅族大 Boss 的 「執着」 精神作了一個調研,幾經折騰,最後南下珠海了,打算奉獻給國產事業了。
這一年多裏,真地很是感謝 WindRiver 幾位 Leader 和同事們一直以來的關照和指導,你們真地都很是很是地 Nice。特別地,
在部門組織的歡送會上,同事們問道,北京不是有小米也準備作機麼,爲何不考慮一下?那夥作的調查工做實在太少,也沒有考慮太多,甚至對手機行業都一片空白,那夥本身還在用 Nokia,對智能機真是一無所知,只是以爲,這麼多年對系統的研究應該在國產的產品上能夠有點實際做爲了。
離開北京的時候,我在人人網仍是 QQ 朋友圈留言,「待到東南下,竟覺北亦佳!」 怎麼捨得那麼好的同事和領導呢,還有不少北漂的師兄師姐師弟師妹以及同窗們,並且北京不少地方都沒怎麼逛過,都窩在宿舍維護社區版龍芯 Linux。
對了,那一年,本科就畢業到福州作交互機的 「北極」,在我去風河的時候,他已經在樓下作 Vxworks,真是巧合,兩位老同窗,三年後,又聚到了一塊兒。
在學校的時候,他住我對面宿舍,工做之後,又分別在樓上樓下辦公。有一段時間換房子沒來得及,還在 「北極」 家借宿了一段時間。「北極」 如今還在那邊,還在那棟樓了,在技術上,他的耕耘很深很專業,而我卻走上另一條道路,作終端產品上的系統去了,要更多地要跟產品的細枝末節打交道。
2011 年 9 月,剛南下的時候,很不習慣,興沖沖地過來,倒是被安排先從 LED、傳感器驅動作起來,固然,熟悉一下終端產品也無妨,以前確實缺乏面向用戶產品的經驗,在風河作的東西,交付給廠商,廠商還得進一步作成實際產品,並且這些產品每每是路由器之類的隱藏在雲上的產品,用戶看不到摸不着着,而這邊作的東西是直接交付給用戶的,因此確實有差別的。
因此剛開始挺耐心的,不過這跟我來的初衷不符啊,因此,作了一段時間之後,經過跟上司和同事們分析、探討和觀察,本身特別關注和思考如何去提高體驗,體驗除了死機和穩定性,逐步發現,還有性能、續航和溫控等嚴重的體驗問題,續航和溫控這兩個在雲端產品基本不會涉及。
想了解這段過程的話,能夠閱讀 智能手機系統優化的演進與實踐,這是 2015 年,我在 CSDN MDCC 大會上作的一場報告。報告講述了整個系統優化的發展過程。
咱們應該是安卓手機行業內最先體系化地去思考系統體驗問題的團隊,也最先創建了專職的團隊去作系統優化,這些工做在 2011 年末,2012 年就開始在醞釀和準備了。
這期間,沒有對應的測試環節,就引薦外部的測試供應商過來交流;沒有體系化的保障措施,就從頭設計一套方案:Linux RAS 解決方案,制定標準和規範,開發原型系統;並打通生產、研發和測試各部門壁壘。一步一步,在不斷有成績以及領導的大力支持下,從 0~1 組建系統優化團隊,組建自動化測試團隊,組建魅藍驅動開發團隊,組建項目管理團隊,與此同時,不斷在踐行:
一方面,逐步實施新人培養計劃,建設課題組,創建知識庫,打造技能體系。依託課題組,創建 「技術委員會」。鼓勵各課題組進行技術分享,完善標準和規範,從而保障部門的技術能力建設。
另一方面,把部門經費管理、活動組織、專利數據運營、知識庫運營等都交付給 「團建委員會」。由剛入職的新同事們輪崗參與實施,創建起全面參與的團隊文化,同時加快新人融入團隊和成長的節奏,也確保了開放性、創造性和多樣性。好比說全部的經費管理都有在線帳本記錄徹底公開透明,出納和財務都作到徹底分開;而活動組織這塊,你們集思廣益,出現了不少精彩的活動節目;而專利和知識庫,因爲你們策略不少,而後負責的同事們本身帶頭貢獻,因此呈現了爆發式增加。
再一方面,創建項目數據運營系統,完善研發流程的各個環節。不只完善了各環節數據監控指標,避免死角,創新性地引入 「未更新」、「未解決」,「未驗證」 三項指標來避免錯過一些關鍵問題、關鍵時間點,從而避免項目管理、研發和測試任何一個環節的疏忽大意,並藉此調度資源,保障進度和質量。與此同時,還引入了一個 「低機率問題佔比」 這個指標來論證越到上市環節,留下的問題,90% 以上都是低機率問題,也就是不易復現的問題。因此,最關鍵的部分,是須要開發和測試一塊兒不斷去完善測試用例,確保問題是能夠有效發現的,這樣纔有辦法去定位問題,進而嘗試解決方案是否有效。對於這種問題,一般須要強有力的 Leader 去把各個部門,各個課題組,包括研發、測試、項目,甚至技術委員會的技術專家喊進來,一塊兒分析探討,制定 Roadmap,設計修復方案,制定驗證策略,反覆迭代,直到問題收斂。
這個期間,因爲涉及到資源,涉及到進度,若是足夠真誠和有力量,基本上仍是能你們協調一致,可是也不排除有人只顧本身的利益,在背後放槍,因此搞技術的同時也要稍微提防一下。
這幾年在行業交流方面作了幾個事情。
其中一個是泰曉沙龍。前先後後在珠海地區組織了 5 次線下交流,其中分別有榮幸邀請到國內 Linux 業界前輩宋寶華老師、臺灣開源教父級大佬黃敬羣老師、國內另一家 Linux 內容原創平臺蝸窩科技郭健老師等嘉賓參加。相關的交流記錄在 泰曉沙龍。
行業演講和報告方面,有表明性的三場分別是:
剛畢業那段,跟 Nico 聊過,請他幫忙問問 Thomas 那邊是否有工做機會,2012 年的時候,Thomas 回覆說能夠去了。
不過那段時間,在魅族本身有一些規劃正在實施,尚未成果,不但願半途而廢,因此,暫時推掉了 Thomas 的邀請。後面忙起來,也忘記再聯絡了。
如今想起來,既錯過了去那邊讀博,也錯過了去那邊工做,或許是些許的遺憾吧。
2011 年向 elinux 基金會提交了一個 TinyLinux proposal,而後陸陸續續完成了 50% 的工做量,拿了一半的費用。這期間,在五一仍是十一,有幾天就一直窩在家裏作實驗,測衰退,測數據,最後趕出來了。這篇論文是 Tiny Linux Kernel Project: Section Garbage Collection Patchset。這是第一次有收入的開源活動,期間喊了一個師弟參加,每週參加兩個晚上,不只親自指導,還每月發給他 1000 大洋 ;-)
這個 gc-section patchset 基本是 ok 了,可是有部分平臺依賴比較新的 binutils,並且牽涉到的代碼改動比較多,因此當時放棄了 Upstream。
這個項目其實仍是有很多成果,相關成果列在 TinyLinux,我記得當時在龍芯 2F 上有作到一個 386k 的 vmlinuz ,順道提一下,這裏的 vmlinuz —— MIPS 內核壓縮支持也是筆者貢獻到 Linux 官方社區的。還有一個附帶的成果就是 Linux Lab,這個項目源自當時測試驗證的一堆腳本。
後面陸續有華爲等企業的朋友聯繫過來諮詢該特性,彷佛他們有在產品中使用。本身也在早期 MX 等多款產品上試行,對於編譯爲一體的 Linux 內核,Size 優化超過 10% 以上。只是目前來看,這塊的實際意義不是很大了,一方面,模塊 delay 加載,另一方面,存儲愈來愈大,多的已經到了 256G,內核再大也就幾十 M,還有一個是不斷有高壓縮率的內核壓縮算法加入。不過這個優化對於小存儲系統,仍是省空間省錢的可選措施之一。
從離職到如今的這幾個月,作了幾件事情:
離職後很快註冊了一家本身的公司,公司目前尚未正式開始運營。主要規劃的業務方向是技術諮詢,可是 ODM 的活拒了好幾個,以爲這塊不是最能體現價值的方向,對我的來說,陷入進去,還不如去公司作單一產品,對企業來說,解決了一個問題還會有另一個問題。
若是是技術諮詢,提供方法論,指導創建體系,引薦招到合適的人,並完善團隊技能培訓,這個是比較契合的,對筆者和企業其實都是具備更長遠意義的。
咱們在嵌入式 Linux、實時 Linux、Linux 系統優化、Linux 產品質量保障、Linux 團隊建設和管理等方面具備豐富的經驗,在雲存儲、虛擬化、AIoT、芯片設計等方面也聚攏了諸多一線技術專家。
因此若是有這塊需求的客戶歡迎添加筆者微信:lzufalcon,也能夠翻到文末直接掃描二維碼。也歡迎同窗們引薦給有潛在需求的企業,很是感謝!
這是一個即時 Linux 內核實驗室。這個項目的潛力很大,目標是成爲 Linux 開發者的手頭必備工具,它正在朝這個方向走,因此,若是還沒體驗過,快快體驗吧。
這個項目的做用:
大大下降了我的學習 Linux 的門檻,原來要花幾周創建學習環境,如今數十分鐘就好。原來要各類挑選開發板,如今 Linux Lab 支持 7+ 大架構,14+ 開發板,除了主流架構,還包括樹莓派 raspi3 和當下最火熱的 Risc-V 32/64。
同時也能夠用到企業作 Linux 培訓,作開發、調試和測試環境。不管是什麼架構,很方便選擇,甚至各類不一樣版本的內核都有預先驗證過的內核配置文件和編譯好的內核。
尤爲是芯片公司,作好 Qemu 虛擬化後,用這個能夠大大節省時間,提高效率。好比說目前 Linux Lab 除了支持 5 大主流架構(X86, ARM, MIPS, PowerPC, Risc-V),也已經支持 龍芯 和 Csky。其中龍芯這塊的支持是和龍芯實驗室聯合開發的。Csky 是中天微聯合開發的。
另外,作 Linux 內核特性開發,作代碼 Upstream 都很方便,能夠同時在 7+ 個架構,14+ 虛擬板子上驗證本身的成果是否完善,是否有影響到其餘子系統。
高校也能夠免費用來開設不少課程,包括體系結構、彙編語言、C、Shell、操做系統、虛擬化、網絡、數據庫、編譯原理均可以。
但願有相關需求的我的、企業、高校踊躍嘗試,若是有確實的諮詢、培訓、企業支持需求,也歡迎聯繫筆者微信:lzulfaocn 提供服務。
感謝 rexZ、releung、我夏了夏天、jordonwulee、foxsen 等同窗的踊躍參與,相關的項目還有 Linux 0.11 Lab, CS630 Qemu Lab。歡迎更多同窗參與進來,一塊兒體驗、測試和開發。也歡迎你們加入『Linux Lab 用戶羣』,能夠聯繫筆者微信:lzufalcon。
泰曉科技的域名最先是在 2010 年,咱們的 Android 關注組討論作諮詢服務的時候購買的,那時只是買了個域名,尚未網站名字,後來有用過 「泰曉實驗室」,最後才改成 「泰曉科技」。後來,3D 去騰訊之後,域名直接轉給了我,停頓了一段之後,陸陸續續一直更新到如今,這段時間相對充裕一些,就從新開始啓用公衆號,這期間也仰賴 「LWN 翻譯計劃」 負責人 Wang Chen 同窗的踊躍參與和支持,而後我就有更多精力在幾個開源項目的重構上,同時嘗試開通了 付費徵稿,並開闢了除網站和公衆號之外的第 3 發佈渠道 —— 即會員制 VIP 版塊:『Linux 知識星球』。
公衆號開通之後,HelloGcc 的 @ww 大大持續打氣。而 Wang Chen 同窗一直在負責運營公衆號,並且他在繁忙的工做之餘,堅持開展 LWN 翻譯 和 泰曉資訊 兩個欄目,實屬可貴,很是不易。咱們的公衆號已經連續運營了數月,每週一到週五都堅持更新,從未間斷,快快掃描下方二維碼關注並設爲星標吧,否則會錯過好文章哈。
付費徵稿開通之後,有甜質粥、cee一、simowce、shenmin 等同窗積極響應,踊躍投稿。歡迎更多的同窗們踊躍投稿,即日起,一經採納,便可得到 200 大洋稿費,同時能夠免費獲贈『Linux 知識星球』一年會員。
而知識星球開通之後,獲得了近百號同窗們的大力支持,你們不只以實際行動提供支持,還積極參與討論,出謀劃策。歡迎更多的同窗訂閱星球,或者轉發到朋友圈,引薦給其餘的同窗。
很是感謝您能耐心讀到這裏,下面奉上一張免費體驗卡,能夠多人使用,也歡迎轉贈給周邊的朋友。
在手機這波浪潮逐漸退卻以後,汽車、物聯網、AI 這些大潮接踵而至,可是都離不開它們的基石,即咱們正在學習和研究的 Linux 平臺,不管是做爲設備(汽車大屏、充電樁、語音終端、攝像終端)系統存在,仍是做爲雲(AI 計算、數據存儲、虛擬化)平臺系統存在,Linux 在將來都將繼續呈現勃勃生機。
筆者但願,可以藉由『Linux 知識星球』這個載體,系統地總結過去十多年的 Linux 系統使用、研究和開源社區組織參與經驗,以及過去八年來數千萬規模的手機終端產品 Linux 系統研發、團隊管理和質量保障經驗,而後逐步迴歸 Linux 官方社區,密切關注和參與行業發展趨勢。
與此同時,筆者將不斷邀請更多專業嘉賓朋友加入。而後但願這些成果可以切實下降當下其餘行業應用 Linux 技術的門檻,切實提高 Linux 一線工程師們解決問題的效率,切實提高汽車、物聯網和 AI 產品中 Linux 系統的用戶體驗,爲行業作一些微薄的貢獻。
此致!感謝全部爲 Linux 和其餘開源技術產品作出過諸多貢獻的同窗們!
也特別邀請您轉發這篇文章,讓更多的同窗瞭解『Linux 知識星球』,讓咱們一塊兒 「聚焦 Linux,追本溯源,見微知著!」。
而後一塊兒學習和研究 Linux,一塊兒成長。Let's go together, no longer alone。