?前兩天和楊匠聊天匾竿,我說(shuō)玩LFS分兩種情況:一種是為了學(xué)Linux瓦宜;另一種是行為藝術(shù)。于我來(lái)說(shuō)岭妖,玩LFS純屬行為藝術(shù)临庇。有段時(shí)間,我在一臺(tái)MacBook Pro上跑起來(lái)了LFS区转,處理日常工作苔巨。
和Windows、macOS一樣废离,Linux是個(gè)操作系統(tǒng)侄泽。一個(gè)可用的操作系統(tǒng)分為兩部分,內(nèi)核和系統(tǒng)軟件蜻韭。內(nèi)核相當(dāng)于車的發(fā)動(dòng)機(jī)悼尾,不怎么和普通司機(jī)打交道,所以一般用戶感覺(jué)不到內(nèi)核的存在肖方。和Windows闺魏、macOS不同,微軟開(kāi)發(fā)了Windows系統(tǒng)的內(nèi)核和系統(tǒng)軟件俯画,蘋果開(kāi)發(fā)了macOS的內(nèi)核和系統(tǒng)軟件析桥,Linux不然。
最初,一個(gè)叫Linus的哥們兒開(kāi)發(fā)了Linux內(nèi)核泡仗。他當(dāng)時(shí)在上大學(xué)埋虹,有一天發(fā)了個(gè)帖子說(shuō),哥們我搞了個(gè)操作系統(tǒng)內(nèi)核玩娩怎,免費(fèi)搔课,開(kāi)源,想用大伙兒就拿去用截亦。
只有內(nèi)核爬泥,當(dāng)然沒(méi)法用。用Linux當(dāng)內(nèi)核崩瓤,搭配上系統(tǒng)軟件袍啡,方可拼成一個(gè)可用的Linux系統(tǒng)。通常所說(shuō)的Linux系統(tǒng)是由Linux內(nèi)核却桶、GNU開(kāi)發(fā)的各種軟件再加上其他人開(kāi)發(fā)的軟件構(gòu)成葬馋。大部分核心系統(tǒng)軟件是GNU開(kāi)發(fā)的,所以GNU認(rèn)為一個(gè)可用Linux系統(tǒng)不應(yīng)該叫Linux肾扰,應(yīng)該叫GNU/Linux才合理。
GNU是一個(gè)組織蛋逾,不是一個(gè)人集晚,GNU的背后是斯托曼博士,一個(gè)大胡子男人区匣。這老哥是個(gè)地地道道理想主義者偷拔。早年玩計(jì)算機(jī)的很多人都是理想主義者,那是個(gè)理想主義者的時(shí)代亏钩,程序員們經(jīng)常分享代碼莲绰,熱心交流。慢慢地姑丑,人都變了蛤签。這老哥特生氣,心想你們都怎么回事栅哀,寫個(gè)破程序震肮,源碼也藏起來(lái)不給別人看,滿腦子凈想著賺錢留拾。他不想同流合污戳晌,挺身而出,決定開(kāi)發(fā)一套免費(fèi)的開(kāi)放源碼的操作系統(tǒng)痴柔。
在斯托曼博士帶領(lǐng)下沦偎,GNU發(fā)布了一系列軟件,都挺順利。料想不到是豪嚎,在關(guān)鍵的內(nèi)核環(huán)節(jié)掉了鏈子搔驼,遲遲搞不出一個(gè)好用的內(nèi)核。GNU這邊疙渣,啥都有了匙奴,缺個(gè)內(nèi)核;Linus那邊妄荔,Linux內(nèi)核有了泼菌,缺一切。拼一起啦租,正好哗伯,天作之合。能拼一起篷角,除了功能互補(bǔ)焊刹,還有氣質(zhì)相符。他們的氣質(zhì)是開(kāi)源恳蹲、免費(fèi)虐块、共享。
理想主義者雖少嘉蕾,但從來(lái)不孤單贺奠,軟件也是,相同氣質(zhì)的軟件還有不少错忱。美國(guó)一位老兄儡率,為了偷懶,開(kāi)發(fā)了一門編程語(yǔ)言以清,叫Perl儿普。荷蘭一位老兄,某個(gè)圣誕節(jié)假期倍感無(wú)聊掷倔,開(kāi)發(fā)了一門編程語(yǔ)言眉孩,就是時(shí)下很火的Python。這樣的老兄還有一打今魔,他們開(kāi)發(fā)了各種各樣的軟件勺像,開(kāi)源、免費(fèi)错森、共享吟宦。
把Linux、GNU的一系列程序還有眾老兄們開(kāi)發(fā)的軟件攢到一起就是一套Linux系統(tǒng)涩维。某一年殃姓,RedHat公司推出了一套R(shí)edHat Linux系統(tǒng)袁波,對(duì)外發(fā)行。RedHat說(shuō)蜗侈,這套東西雖然都不是我開(kāi)發(fā)的篷牌,但畢竟是我攢的,也有功勞對(duì)不對(duì)踏幻,所以冠名RedHat Linux枷颊。
你攢我也攢,Slackware该面、Debian都是各種攢出來(lái)的GNU/Linux系統(tǒng)夭苗。各式各樣的攢出來(lái)對(duì)外發(fā)行的GNU/Linux,就叫做Linux發(fā)行版隔缀。Debian影響力較大题造,在Debian基礎(chǔ)之上搞出了好多別的Linux發(fā)行版。
南非一位仁兄猾瘸,叫Shuttleworth界赔,早年賺了不少錢。賺錢之后干了兩件很牛的事:一件事是花錢坐宇宙飛船去了一趟國(guó)際空間站牵触;另一件事是資助開(kāi)發(fā)了Ubuntu Linux淮悼。他真是活明白了,干的事都很有意思揽思。Ubuntu是在Debian基礎(chǔ)上發(fā)展起來(lái)敛惊,花了很多錢進(jìn)去,更好看绰更,更好用。
既然是攢系統(tǒng)锡宋,你有你的選擇儡湾,我有我的方案,就有了各種各樣的Linux發(fā)行版执俩。不同的發(fā)行版往簡(jiǎn)單地說(shuō)是安裝方式不同徐钠,軟件的選擇不同;往高深里說(shuō)是理念的不同役首,哲學(xué)的不同尝丐。
不要問(wèn)哪種Linux發(fā)行版最好,這個(gè)問(wèn)題沒(méi)有意義衡奥。不要問(wèn)蘿卜好吃土豆好吃還是黃瓜好吃爹袁,不要問(wèn)紅酒好喝白酒好喝還是啤酒好喝,這些問(wèn)題統(tǒng)統(tǒng)沒(méi)有意義矮固。只有不同失息,沒(méi)有好壞,自己用心選擇,選擇適合你的就好盹兢。
好壞沒(méi)法比邻梆,別的角度可以比。知乎上有人問(wèn)绎秒,什么Linux發(fā)行版最難安裝浦妄,答案近乎一致,Arch Linux比較難见芹,Gentoo更難剂娄,LFS最難。Arch Linux和Genttoo我都很熟悉辆童,都挺好玩宜咒。
LFS壓根就不是個(gè)Linux發(fā)行版。別的發(fā)行版都是攢好了一套系統(tǒng)把鉴,讓你拿去用故黑。而LFS就是個(gè)說(shuō)明書,它只是在教你怎么攢一個(gè)Linux庭砍。你要照著文檔场晶,從網(wǎng)上下載各種源碼包,一步一步怠缸,自己編譯出一套Linux系統(tǒng)诗轻。別人給了你一臺(tái)攢好的電腦,LFS給了你一本書揭北,然后帶你去了中關(guān)村扳炬。
LFS,很難搔体。玩起來(lái)需要很多懂很多東西:磁盤分區(qū)恨樟、系統(tǒng)引導(dǎo)、內(nèi)核編譯疚俱、軟件構(gòu)建劝术,再往后需要學(xué)習(xí)驅(qū)動(dòng)、窗口呆奕、字體养晋、聲音、圖像梁钾、郵件······
技術(shù)層面的東西再難绳泉,也就那樣,都可以學(xué)姆泻,比技術(shù)更難的是選擇圈纺。
LFS秦忿,Linux From Scratch,說(shuō)是從Scratch開(kāi)始蛾娶,但沒(méi)有告訴你到哪兒結(jié)束灯谣。剛開(kāi)始還簡(jiǎn)單,照著說(shuō)明書來(lái)就好蛔琅,越到后面越難胎许。每一步?jīng)]有標(biāo)準(zhǔn)答案,全讓你自己選擇罗售。是的辜窑,沒(méi)有對(duì)錯(cuò),只有選擇寨躁。如果懂得自己需要什么就很簡(jiǎn)單穆碎,對(duì)于不清楚自己需要什么的人選擇就很難。
LFS职恳,很好玩所禀。我在抖音上關(guān)注了很多有趣的人,其中一個(gè)叫楠哥放钦。楠哥整天把他一輛越野車鼓搗來(lái)鼓搗去色徘,有點(diǎn)意思。楠哥的越野車只屬于楠哥操禀,花多少錢都買不來(lái)褂策,這輛車的背后是楠哥的選擇,是楠哥的人生哲學(xué)颓屑。我想斤寂,玩LFS也差不多,玩很多東西都差不多揪惦。難與好玩不矛盾扬蕊,或者說(shuō),難一點(diǎn)的東西更好玩丹擎。
LFS,有用么歇父?有用蒂培,對(duì)學(xué)習(xí)Linux系統(tǒng)很有用,可以讓你明明白白了解Linux的每一個(gè)細(xì)節(jié)榜苫。LFS护戳,有用么?其實(shí)也沒(méi)啥用垂睬,了解那些細(xì)節(jié)不一定工作用得上媳荒,不一定能加薪抗悍,通過(guò)玩LFS學(xué)習(xí)Linux效率并不高。
這個(gè)世界上可不是所有的事情都從有用出發(fā)钳枕。有個(gè)老頭兒叫高德納缴渊,現(xiàn)在是個(gè)老頭兒,當(dāng)年可是英俊瀟灑鱼炒,會(huì)玩管風(fēng)琴衔沼。他年紀(jì)輕輕就獲得了計(jì)算機(jī)領(lǐng)域最高獎(jiǎng)項(xiàng)——圖靈獎(jiǎng)。高德納獲圖靈獎(jiǎng)是因?yàn)樗纳駮队?jì)算機(jī)程序設(shè)計(jì)藝術(shù)》昔瞧。能把技術(shù)寫成藝術(shù)的書得有多牛指蚁,可想而知。這套書原本要寫很好幾冊(cè)自晰,第二冊(cè)寫完后凝化,高德納停止了寫作,沉寂多年酬荞。不明白的人以為他江郎才盡搓劫,寫不下去了。后來(lái)才知道他干別的去了袜蚕。他極不滿意自己用心寫的書糟把,最后出版時(shí)排版成那個(gè)熊樣,一點(diǎn)都不美牲剃。實(shí)在受不了遣疯,就去研究計(jì)算機(jī)排版。十年磨一劍凿傅,當(dāng)他再?gòu)?fù)出時(shí)缠犀,已經(jīng)開(kāi)發(fā)了一套完美的排版軟件〈鲜妫《計(jì)算機(jī)程序設(shè)計(jì)藝術(shù)》繼續(xù)寫辨液,從此用自己編寫的排版軟件寫自己的書。
高德納這十年干的這個(gè)事兒有用么箱残?管它呢滔迈,有用無(wú)用不重要,好玩就行被辑,我覺(jué)得他挺好玩的燎悍。機(jī)緣巧合,有一次去我公司附近一家出版公司聊天盼理,他們?cè)谝M(jìn)出版高德納的《計(jì)算機(jī)程序設(shè)計(jì)藝術(shù)》谈山。這套書排版使用的是TeX系統(tǒng),就是高德納不干正事那幾年搞的那個(gè)排版系統(tǒng)宏怔。聊天間聽(tīng)說(shuō)《計(jì)算機(jī)程序設(shè)計(jì)藝術(shù)》在翻譯成中文時(shí)奏路,排版上遇到點(diǎn)問(wèn)題畴椰,好久沒(méi)能解決,最后我?guī)兔鉀Q了TeX排版的問(wèn)題鸽粉。我曾認(rèn)真學(xué)習(xí)過(guò)TeX斜脂,當(dāng)時(shí)不知道為什么而學(xué),算是致敬高德納吧潜叛。學(xué)這個(gè)有用么秽褒?一點(diǎn)都沒(méi)用,平時(shí)根本用不到威兜。學(xué)這個(gè)有用么销斟,還挺有用的,這不幫解決問(wèn)題了么椒舵。
《喬布斯傳》里說(shuō)了這么一件事蚂踊,喬布斯養(yǎng)父喜歡打造家具,做家具時(shí)即便在暗處也要用上好的木料笔宿。他養(yǎng)父告訴他犁钟,不要在看不見(jiàn)的地方就用偷工減料。養(yǎng)父對(duì)喬布斯影響很大泼橘,后來(lái)蘋果公司造電腦時(shí)涝动,所有的電路板走線、焊接都整整齊齊炬灭,干凈利落醋粟。這么干有用么?挺沒(méi)用的重归。這么干有用么米愿,確實(shí)對(duì)蘋果公司起到過(guò)重要作用。曾一度正是透明塑料殼電腦重振蘋果鼻吮,電路板要是亂七八糟育苟,還造個(gè)啥透明殼。
喬布斯去印度學(xué)過(guò)禪椎木。學(xué)禪有用么违柏?挺沒(méi)用的,也許有用香椎。喬布斯說(shuō)沒(méi)幾個(gè)人懂得字體漱竖,言外之意是他懂,他也承認(rèn)高德納懂士鸥。字體本來(lái)就是頂沒(méi)用的東西,不知道喬布斯和高德納花那么心思琢磨字體干啥谆级,一個(gè)圖形符號(hào)而已烤礁。好像字體又有點(diǎn)用讼积,字體是美,字體是藝術(shù)脚仔。
古時(shí)候勤众,陶器是實(shí)用器,水器鲤脏、食器们颜、酒器。當(dāng)?shù)谝粋€(gè)人在陶器上刻花紋的時(shí)候猎醇,藝術(shù)就誕生了窥突。藝術(shù)有用么,藝術(shù)最沒(méi)用硫嘶。藝術(shù)有用么阻问,藝術(shù)很有用。
我玩LFS不是為了學(xué)習(xí)Linux沦疾,純行為藝術(shù)称近。最初的動(dòng)機(jī)是想在LFS系統(tǒng)下寫一本關(guān)于Linux的科普書。在MacBook電腦上哮塞,運(yùn)行LFS系統(tǒng)刨秆,用TeX排版,Git做版本管理忆畅,Python語(yǔ)言寫一些工具衡未,然后寫這本書。感覺(jué)這樣才好玩邻眷,這樣才夠味眠屎。
一想到這樣一本書的背后有喬布斯、高德納肆饶、斯托曼改衩、Linux,還有其他一眾神人驯镊,我就很愉快葫督。他們干了好多沒(méi)用的事兒,他們創(chuàng)造了一個(gè)有用的世界板惑。
略效仿之橄镜。