成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Linus,一生只為尋找歡笑

系統 Linux
世界上大部分軟件和服務都運行在 Linux 操作系統之上,神馬云計算、大數據、移動互聯網,說起來風起云涌,其實沒有 Linux 全得趴窩(微軟除外)。

[[170418]]

每個人桌面上一臺電腦,這曾經是無數計算機先驅的夢想,這個夢想很早就實現了,在1997年,喬老師和比老師就說過,「比爾,我們共同控制了100%的桌面系統市場」,當然喬老師沒說的是,比老師控制了97%,喬老師還不到3%。時至今日,喬老師走了,比老師頹了,移動終端把傳統的 PC 市場沖擊的七零八落。普通用戶都知道了Windows、Android、OS X 、iOS、BlackBerry等等,但是,他們依然不了解的是另一款在計算機發展史上起到了革命性作用的操作系統:Linux!

當大家使用 Google 搜索時,使用 Kindle 閱讀時,使用淘寶購物時,使用 QQ 聊天時,很多人并不知道,支撐這些軟件和服務的,是后臺成千上萬臺 Linux 服務器,它們時時刻刻都在進行著忙碌的運算和數據處理,確保數據信息在人、軟件和硬件之間安全的流淌。可以這么說,世界上大部分軟件和服務都運行在 Linux 操作系統之上,神馬云計算、大數據、移動互聯網,說起來風起云涌,其實沒有 Linux 全得趴窩(微軟除外)。

但是,Linux 和它的締造者 Linus Torvalds 一樣低調,這么牛逼的一個物件,居然只有程序員知道它的傳奇,這不科學!所以我準備在這個系列中寫寫Linus Torvalds:他是 Linux 和 Git 的締造者,他是一個傳統的黑客,與沃茲一樣,少年成名,崇尚自由,一生只為尋找歡笑,他,是一個真正的程序員。

注:為了防止大家把 Linux 和 Linus 搞混,我在后面的文章中統一采用 Linus 的中文譯名:李納斯。

李納斯在2001年出過一本自傳,叫做《Just for Fun》,是他和大衛·戴蒙合著的,當年我有幸讀到這本書,了解了很多李納斯的生平軼事,那時我就琢磨,這個天才已經達到人生的巔峰了吧,結果這位兄臺并未停止前進的步伐,轉手就在2005年搞出了分布式版本控制系統 Git,目前幾乎全世界的程序員都在用 Git管理他們的代碼,著名網站 Github 就是基于 Git 構建的。無論是 Linux 還是 Git,得一即可得天下,結果這哥們以一己之力發起了倆項目,而且都是主力開發人員。最終的結果是,成全了程序員,陶冶了用戶,造福了一方百姓。正如李納斯自己所言:「My name is Linus, and I am your God.」

Linus(一)——生命的意義

1969年末,李納斯出生于芬蘭的赫爾辛基市,算是趕上了60后的尾巴。小時候他是個其貌不揚的孩子,除了一個鼻子長的「富麗堂皇」之外乏善可陳。他為了讓鼻子看上去小一些,經常戴上眼鏡就不愿意摘下來,這個策略和現在的很多大臉女生購買三星的 Galaxy Note 手機有異曲同工之妙。幼時的李納斯不修邊幅邋里邋遢,不怎么費勁數學和物理就學得極好,社交圈卻一塌糊涂,他母親經常和別人說,這孩子非常好養,只要把他放到一個有電腦的小黑屋里,然后再往里扔點薯條和意大利面,就行了。李納斯對此表示認同。

李納斯把年幼的自己定位成 Nerd(書呆子),但是從他的自傳里我卻感受到了這位天才的有趣之處。他在書的前言里寫到:

我對生命的意義有種理論。我們可以在第一章里對讀者解釋生命的意義何在,這樣就可以吸引住他們。一旦他們被吸引,并且付錢買了書,剩下的章節里我們就可以胡扯了。(注:做人要厚道啊)

關于生命的意義,李納斯的解釋是,有三件事具有生命的意義。它們是你生活當中所有事情的動機。第一是生存,第二是社會秩序,第三是娛樂。生活中所有的事情都是按這個順序發展的,娛樂之后便一無所有。因此,從某種意義上來說,生活的意義就是要達到第三個階段。你一旦達到了第三個階段,就算成功了。但首先要越過前兩個階段。

為什么李納斯會這么說呢,我摘段原文給大家看看,非常有趣:

李納斯:我給你舉個例子來說明這一觀點。最明顯的是性,它開始只是一種延續生命的手段,后來變成了一種社會性的行為,比如你要結婚才能得到性。再后來,它成了一種娛樂。

大衛:性為什么是娛樂?

李納斯:好吧,我是在對牛彈琴。我舉一個別的例子。

大衛:別別,還是說說性吧

李納斯:它是在另一個層次上的blablabla……

大衛(自言自語):哦,參與就是娛樂,而不是在一旁觀看。好,我明白了。

那生存、社會秩序和娛樂又是如何與技術扯上關系的呢?

Linus(二)——天才也瘋狂

李納斯是這么解釋的,技術的誕生同樣是為了人類的生存,而且是為了讓人生活的更好。汽車讓人跑的更快,飛機讓人飛得更高,互聯網讓人懂得更多,手機讓人通信更快,一旦這些技術成了規模,就要并入社會秩序,然后下一個階段就是娛樂,別看手機現在就是個打電話的工具,但是很快會進入娛樂階段……(12年后的今天,手機已經徹頭徹尾變成了一個娛樂工具,打電話反而成了附屬功能)。

李納斯說:「一切事物都將從生存走向娛樂,但這并不意味著在某個局部地區沒有倒退的現象,而且毫無疑問許多地方都有這種情況。有時事物的發展往往分裂的?!?/p>

從這些內容我們可以看出,李納斯有自己的一套理論,而且能自圓其說,其實每個人都有自己的理論,一件事做或者不做,都是自己說服自己,每一次進步,要么是推翻自己的理論,要么是完善自己的理論。李納斯在很小的時候就建立了自己的理論領地,那就是數學、物理、邏輯,最后是計算機,所以他絕不是自己描述的 Nerd,而是一個大智若愚的牛娃,就像射雕里的郭靖一樣,看著傻,其實比誰都精,腦子里裝的都是十年二十年后的事兒。而且李納斯比郭靖牛的地方是,就一個啟蒙老師,還是自己的外公,和郭靖一比,高下立判!李納斯基本上就是個自學成才的典范。

李納斯的外公是赫爾辛基大學的一位統計學教授,數學家。他有一臺Commodore VIC-20計算機(Commodore 是與蘋果公司同時期的個人電腦公司,曾經創造過一系列輝煌,1994年破產),這臺電腦的主要功能就是沒有功能,你唯一能做的事情就是用 Basic 語言在上面編寫自己的程序,老爺子當年就是這么做的,比如做一些數學運算和公式計算等。但是老爺子年老眼花,也不愿意打字,于是就把自己的外孫李納斯放在腿上,讓他幫助錄入寫在紙片上的程序。這種很有場面感的場景一再出現后,李納斯除了對數學有了初步的認識,同時也把計算機玩的嫻熟,很快他就在外公的指導下開始編寫自己的程序。

評:很多大師級的人物,很小的時候就能在某個領域內頭角崢嶸,展現出一些東西,然后經過長期的練習和創作,最終成為一代傳奇。在這個過程里,環境是很重要的,逆境出人才基本上是個偽命題,這句話唯一的作用就是遇到困難時給自己打打雞血。李納斯就是個高知子弟,10歲人家就開始玩計算機了,我們10歲在干什么,打沙包么?甩方寶么?即使你在計算機方面有出眾的天賦,但18歲以前連計算機的面兒都沒見過,你就只能默默的牛逼了。等你真正開始展現出自己才華的時候,人家操作系統已經開發出來了,一入世就差別人十年的身位,除了冷冷的絕望,你還能感受到什么?

所以現在人們沒事就北上廣深杭,不是喜歡人多嘴雜空氣差,而是在這些一線城市可以接觸更多的人和事物,見更高的山,渡更寬的河。不是為了情懷,而是擁有格局。見都沒見過,還同一個起跑線呢,一跑就得趴窩。所以,無論這些地方環境多惡劣,競爭多激烈,來的永遠多過走的,不為別的,只是為了緩解些許絕望的感覺……

李納斯用外公的計算機學會了 Basic 語言,并開始編寫各種簡單有趣的游戲,然后他又發現了 Basic 并不是計算機唯一能理解的語言,在它的下面,還有一種語言是由0和1組成,可以直接被計算機識別,于是李納斯又開始用機器碼編程,這次他可以控制更多計算機的細節,他與機器變得更加親密。然后李納斯就開始上中學了,中學的幾年于他而言,其實沒有太大變化,因為那些年他幾乎都是坐在電腦前面度過的,在這個階段,他熟練的掌握了匯編語言。

終于有一天,李納斯向編程世界挺進的步伐變得緩慢下來,因為他上大學了,原因之一是他必須集中精力讀書,原因之二是找不到什么項目去做。還有一件事,李納斯開始服兵役了,那段時光對他來說是如此特殊:

在手執武器上了一個月的「體育課」之后,我便覺得在我有生之年完全有資格從此一動不動,享受平靜的生活了。惟一可做的事情就是把編碼打入鍵盤,或者手里端著一瓶比爾森啤酒!

Linus(三)——改變一生的書籍

終于,讓李納斯痛苦不堪的兵役終于結束了,除了敲鑼打鼓歡慶重生之外,他開始繼續拓展自己的編程之路,這時候,生命中最重要的一本書出現了,書的名字叫做《操作系統:設計和實現》,作者是 Andrew S. Tanenbaum。用李納斯的原話表述就是「這本書把我推上了生命的高峰」。

那個時代 Unix 已經開發出來了。最早 Unix 是用匯編寫的,開發過程中 Unix 的兩位創始人Ken Thompson 和 Dennis Ritchie覺得用匯編寫程序實在是太苦逼了,男人應該對自己好一點!于是老哥倆決定用高級語言來完成下一個版本,他們首先嘗試了Fortran,失敗!然后又基于BCPL(Basic Combined Programming Lanugage)創建了 B 語言,B 語言可以被認為是那個時代的解釋型語言,不能直接生成機器碼,效率上完全沒法滿足系統的需求,再次失敗!我們都知道,一再失敗的情況下總會有一位英雄人物挺身而出,這次是 Dennis Ritchie,他從失敗的大坑中爬起來拍拍土抹抹淚,繼續對 B 語言進行改造。這次 Dennis 為 B 增加了數據類型,并讓 B 語言能夠直接編譯為機器碼,然后又為這門語言起了個極其響亮的名字:「New B」,讀一讀神清氣爽,念一念氣沖云霄,從此一代語言巨星冉冉升起,40年后依然排在兵器排名榜第一位,怎一個牛字了得!當然,Dennis可能考慮了十幾年后中國人民的感受,把「New B」改為了 C 語言,并用 C 語言重新編寫了 Unix 的內核,Unix 與 C 從此珠聯璧合,長相思守,再也無法分離。

操作系統、Unix 和 C 語言可以說是李納斯心目中神山上的三座圣杯,為了至高無上的榮耀,他首先要攀上峰頂,把這三座圣杯捧在手中,然后再琢磨建造自己的宮殿的事兒。在那一年的夏天,李納斯開始了高強度的閱讀和學習,用他的話說就是做了兩件事,「一件事是什么都沒做,另一件事是讀完了719頁的《操作系統:設計和執行》。那本紅色的簡裝本教科書差不多等于睡在了我的床上」。

李納斯認為,Unix 是一個簡潔、干凈的操作系統,在 Unix 上的大部分任務都是通過一些基本操作完成的,這些操作被成為「System Call」,顧名思義,這些操作就是你對系統的呼叫,系統通過響應你的呼叫完成工作。比如 fork、clone(創建子進程),比如 open、close、read、write(文件訪問)。這些基本的系統調用通過組合可以完成大部分功能。同時,Unix 還提供了極為強大的IPC(進程間通信)方式:pipe(管道)。很多工作在GUI(圖形界面)軟件環境下的讀者,最常用的IPC操作可能是復制、粘貼、鼠標拖拽,這些操作雖然簡單,但是必須由人來完成,想要自動化就很困難。而這些在 Unix 上實現起來就像大自然一樣自然,你只需要在程序之間開辟出一段緩沖區作為管道,然后父進程和子進程就可以通過這個管道實現進程間通信了。舉個例子,以前給大家介紹的查找歷史命令的腳本,就利用了管道的功能,如下:

  1. history | grep apache 

這行命令的含義就是查找包含 apache 的歷史命令,其中特殊字符【 | 】用來告訴命令行解釋器(Shell)將前一個命令的輸出通過「管道」作為接下來的一行命令的輸入,就這樣,一個簡單的進程間通信就完成了。

總之,李納斯在讀完這本書之后,就像郭靖修習了九陰真經全本一樣,對機器和代碼的世界有了更為透徹的認知,接下來的事情就是等待一個打造傳奇的機會。

等待的過程中,李納斯也沒閑著,他又開始編程了。好的程序員對編程的喜愛是溢于言表的,以下摘錄一些李納斯的編程感想:

對于喜愛編程的人來說,編程是世界上最有趣的事,比下棋有趣得多!因為你可以自己制訂游戲規則,而你制定什么樣的規則,也就會隨之出現與此規則相符合的結果。

在電腦世界中,你就是創世者,你對所發生的一切擁有最終的控制。如果你功力深厚,你可以是上帝――在一個較小的層面上。

你可以建筑一個這樣的房子,有一個活板門,既穩固又實用。但是每個人都可以看出一個僅僅以堅固實用為目的的樹上小屋和一個巧妙地利用樹本身特點的美妙小屋之間的差異。這是一個將藝術和工程融為一體的工作。編程與造樹上小屋有相似之外……在編程中,實用的考慮往往被置于有意思、美觀優雅或有震撼力的考慮之后。

在代碼的世界里,李納斯就是一個詩人!

Linus(四)——Linux 誕生

Unix 始于上個世紀60年代,在70年代得到了迅猛的發展,這時候的李納斯還躺在祖父公寓里的搖籃里睡大覺,如果不是后來 Unix 王國自亂陣腳,出現陣營分裂和法律糾紛,可能 Linux 系統根本都不會出現。真實的情況是,Unix 浪費了大把的時間和機會,似乎就是為了等待這個大鼻子、頭發紛亂的芬蘭小子長大,然后一決高下。李納斯贏得了自己的時間,他一刻不停的磨練自己的技藝,在清晨的微光中練習算法,在赫爾辛基的雪山上編譯代碼,隨時隨地補充的糧草和武器。二十一年之后,李納斯撫著雪亮的刀鋒上路了,他要去追尋屬于程序員的最高榮耀。

1991年一月,李納斯花費了三千五百美元,分期付款購買了一臺雜牌組裝電腦,內存4兆,CPU 33兆赫,還有一臺14英寸的顯示器,然后又買了 MINIX 操作系統,用十六張軟盤把這個操作系統裝到了計算機里。之后,李納斯又用了一個月的時間,了解了 MINIX 的好和不好,并把這個系統改裝成了自己得心應手的「戰斗機」,開始了戰斗的人生。就是在這臺電腦上,催生了 Linux 的初始版本。

Linux 的誕生離不開 MINIX,MINIX 是 Mini Unix 的縮寫,是 Andy Tanenbaum 教授編寫的迷你版的 Unix 操作系統,源代碼可以提供給大學和學生,用于操作系統教學,采用了微內核設計。其中的代碼還作為《操作系統:設計與實現》的示例程序,這本書我們在 Linus(三)中提到過,給了李納斯極大的啟發。

李納斯使用了 MINIX 之后,發現這個系統有很多缺陷,比如性能問題、內核問題、文件系統問題,最大的問題是終端仿真器,也就是我之前總提到的 Terminal,登錄學校里的 Unix Server 和上網時,李納斯都需要終端,但是 MINIX 無法滿足這個需求。如果普通人遇到這種問題,估計就是發會呆然后洗洗睡了,或者說「你行你上啊」,李納斯不是普通人!

他決定拋開 MINIX,從硬件層面開始,重新設計一個終端仿真器。牛人就是不同凡響,這個決定表明了李納斯需要從 BIOS、CPU等硬件層面重新開發出一套系統,除此之外,還需要了解如何把信息寫入顯示器,如何讀取鍵盤輸入,如何讀寫調制解調器,早期儲備的匯編語言和 C 語言能力終于派上了用場……

兩個月之后,終端仿真器完成,對此李納斯非常驕傲:

對于我了不起的成就,薩拉(妹妹)是了解的。我把終端顯示給她看,她盯著顯示器看了大約五秒鐘,看著上面是一串A和一串B,說了聲「很好」,然后就沒有然后了。我意識到我的成就并不輝煌,這猶如你指給人看你鋪設的一條長長的柏油馬路,但想向別人解釋這條馬路的意義是完全不可能的。

當時是三月,也可能是四月,就算彼得蓋坦街上的白雪已經化成了雪泥我也不知道,當然我也并不關心。大部分時間我都穿著睡衣趴在相貌平平的計算機前面噼噼啪啪的敲打鍵盤,窗戶上的窗簾遮得嚴嚴實實,把陽光和外部世界與我隔離開來。

Linux 操作系統就這樣開始了,一發不可收拾。李納斯的當時編程狀態是這樣的:編程――睡覺――編程――睡覺――編程――吃飯――編程――睡覺――編程――洗澡――編程……

實現了終端仿真器之后,李納斯馬不停蹄,開始添加磁盤驅動和文件系統,那一年李納斯還在上課,但是課程很簡單,他唯一的課外活動就是參加每周三晚的同學聚會,這個長著大鼻子的技術天才,常常會因為擔心自己缺乏社交能力和容貌丑陋而失眠,對那時的他來說,唯一有趣的事情就是把驅動程序寫出來。于是他咬咬牙對自己說,還得干下去。(看來沒有女神的好處就是可以寫個操作系統出來,然后把自己叫做 上帝)。

隨著工作的進展,終端仿真器正在開始向一個操作系統的方向發展,李納斯顯然也看清楚了這一點。

在整個創造 Linux 的過程中,我們沒有看到李納斯使用了什么樣高級工具,估計那時也沒有,整個系統基本上是一行行代碼敲出來的,純手工打造,這些先賢的編程功底和效率讓我們嘆為觀止,所以,現在,我決定打開終端,輸入 vi,然后鍵入:to be continued,感受一下李納斯當年編程的風采……

隨著李納斯不斷的敲擊鍵盤,他的終端仿真程序也不停的擴張,從剛開始的小樹苗長成了一株盤根錯節的大樹,樹根牢牢的抓住土地,枝丫努力的伸向天空,花朵和果實開始在高遠的天空中爍爍發光,所有的細節都在李納斯的掌控之中。懂行的技術人員都看得出來,這個大鼻子的芬蘭小子是準備開發一個操作系統啊。

是年6月份,李納斯基本確定了要開發一個操作系統內核的計劃,并開始著手搜集 Unix 操作系統標準的相關資料。1991年7月3日,格林威治時間上午10點鐘,李納斯在 MINIX 新聞組發出了一封求助郵件,尋求有關 Posix 標準的幫助,他在郵件中寫道:

目前我正在 MINIX 系統下做一個項目,對 POSIX 標準很感興趣。有誰能向我提供一個機器可讀的最新的 POSIX 規則?如果能有個 FTP 地址就更好了。

這份公開的郵件是標識 Linux 問世的最早證據。郵件發出后不久,有人就寄來了厚厚的 POSIX 標準,同時赫爾辛基工學院的 Ari Lemke 也對李納斯的郵件做出了響應,為李納斯提供了一個 FTP 地址,用來上傳他即將完成的操作系統。

注:POSIX 全稱是可移植操作系統接口(Portable Operating System Interface)。IEEE 最初制定 POSIX 標準,是為了提高 UNIX 環境下應用程序的可移植性。隨著技術的發展,POSIX 開始不局限于 UNIX 系統,后續的 Linux 和 Windows NT 都部分的遵循了該標準。POSIX 在李納斯開發的過程中起到了燈塔的作用,直接后果就是 Linux 系統從一開始就走在了正規軍的康莊大道上,基本沒有跑偏過。Linux 幾乎可以適配各種類型的硬件體系結構。

標準和 FTP 地址都有了眉目,李納斯開始實現各種 System Call,以便讓 Shell 運行起來。這段時間的工作讓李納斯時常感到灰心喪氣,看著增加的代碼量,工作似乎前進了一大步,但是檢驗一下功能又仿佛沒有任何進展。有時候他還不得不放棄之前的想法和已經完成的代碼實現,另辟蹊徑重頭再來,即使是在天才面前,代碼也能讓人歡喜讓人憂。

終于 Shell 已經可以在新的操作系統上工作了,李納斯開始編寫拷貝(cp)和列表(ls)等程序。Shell 程序一旦完成,就好像完成了從0到1的飛躍,一切都變得無比順利,李納斯面前仿佛出現了一條陽關大道,一切都豁然開朗了,他說,要有光,于是就有了光。對于這種狀態,李納斯表示:「我很滿意」,并且開始用「Linux」稱呼這個操作系統。

這種滿意非常重要,因為那個夏天李納斯除了伏在電腦面前噼噼啪啪的敲擊鍵盤,什么都沒做。芬蘭四月到八月的日子是一年中最美好的時光。人們到布滿小島的海上航行,去海灘上曬日光浴,到夏日小木屋中消遣時光。但是李納斯,他只是在永無休止的編寫程序,忘記了白天和黑夜,黑色的窗簾遮蔽了燦爛的陽光,也遮蔽了外面的世界。他唯一的想法就是,得趕緊把這該死的系統做出來!

1991年8月25日,李納斯在MINIX 新聞組上發郵件做了一個調查,想知道大家希望這個新的操作系統具備什么特征。

1991年9月17日,李納斯把已經完成的新操作系統上傳到了Ari Lemke提供的 FTP 服務器上,并準備用「Freax」作為操作系統的最終代號,結果遭到了Ari Lemke的激烈反對。Ari Lemke對李納斯說:

「李哥,您咋會想到用這么變態的名字命名操作系統呢?原來的Linux不挺好的嘛」

「那樣不會顯得自戀么?」

「您這樣就不對了,操作系統是開天辟地的大事,人民群眾都等著用您的名字命名呢,看看他們的眼神,您能辜負他們的期望嗎?Linux 天生不就是用來了 Unix 遙相呼應的么?這是命,得認!」

「這……那我就不推辭了啊」

以上為意譯,不過基本上和古代皇帝的黃袍加身是一個意思。新的操作系統最終以「Linux」命名,并在10年后名揚天下,20年后統治服務器領域,可謂 Linux 恒久遠,Linus 永流傳。

Linux 內核0.01版本終于發布了,雖然漫長的開發過程才剛剛開始,但李納斯終于可以松口氣了:

瞧,我真的做出了點什么。我沒有在騙你們。這就是我所做的……

創造操作系統,就是去創造一個所有應用程序賴以生存的基礎環境――從根本上來說,就是在制定規則:什么可以接受,什么可以做,什么不可以做。事實上,所有的程序都是在制定規則,只不過操作系統是在制定最根本的規則。——李納斯

Linus(五)——繼續前行

Linux 從一誕生就被打上了開源的烙印,這一點對 Linux 的后續發展起到了至關重要的作用。從1991年內核0.01版本發布,到1994年1.0版本閃亮登場,世界各地無數的開發者為 Linux 提交了代碼,李納斯為 Linux 建立了討論組 comp.os.linux,全世界愛好開源和 Linux 的程序員與黑客都在上面討論問題,他們就像群蜂筑巢一樣,不斷的通過個體和群體的力量交替推進 Linux 的飛速發展。

李納斯對自己說:嗯,沒有任何東西可以阻擋 Linux 的普及!

這種感覺估計很多程序員都體會過,當你設計的算法得出了正確結果的時候,當你自以為解決了一個海森堡 bug(Heisenbug,表示不可重現)的時候,當你完成了一段精妙代碼的時候,你摘下厚重的眼鏡,推開鋪滿灰塵的書桌,打開辦公室唯一的窗戶,迎著夕陽把一只廢棄的圓珠筆扔出窗外,然后沖著天空大喊:還有誰~~~?這是一種拔劍四顧心茫然的情懷。

李納斯還不止于此。他不僅單槍匹馬寫出了 Linux 的內核,而且做出了開源的決定。他把 Linux 放到了互聯網上,并且允許那些希望使用和改進它的人們根據開源協議修改和提交源代碼。這兩點對互聯網的影響是極其深遠的,估計李納斯當年也沒有想到,當時的兩個小小的漣漪,經過時間和空間的放大,十幾年后形成了一股互聯網巨浪,到現在 Linux 依然處于風口浪尖。

對于 Linux 取得的成功,李納斯將其歸結為是由自己的缺點導致的:

1、 我很懶散

2、 我喜歡授權給其他人

其實這兩個所謂的缺點,正是優秀程序員和領導者必備的要素,它們讓 Linux 成為世界上最大的開源協作項目,為喜愛 Linux 的人們帶來了最美好的技術和應用,現代的互聯網幾乎是運行在 Linux 之上的,可以說,李納斯改變了世界,你每一次伐開心后在淘寶上買包包,都有李納斯貢獻的力量!

Linus(六)——來到硅谷

1996年的春天,Linux 順利發布了2.0版本。是年李納斯27歲,這個芬蘭小子已經慢慢厭倦了芬蘭平淡無奇的日子和不眠不休的編程生活。對于一個技術天才來說,創造一套新的技術體系就像藝術家完成一個雕像一樣,當一塊粗礪的巖石在他的親手打磨下逐漸顯山露水,展現出其完美容顏的時候,后續的修修補補會讓這些天才產生倦怠的感覺。他們需要更快的劍,更高的山和更強大的對手。尤其是期間李納斯訪問過兩次美國之后,這種感覺變得愈發不可阻擋了。

說起來美國確實是個神奇的國度,這樣一個移民國家中,居住了各種從不同國度不遠萬里跨海而來的種族,每個種族無論在基因上還是文化上都具有原來國家的特質,這些特質相互融合與對抗,讓這塊大陸上的人民更銳意進取,更開放,更自由,他們愿意去追求和接納美好的事物,最終一不留神把美國搞成了世界文化的大熔爐,而開放的文化和環境又極大的激發了人們的想象力和創造力,近代和現代的科技成果幾乎全部源于美國,要么是美國人搞的,要么是外國人在美國搞的。所以有時候我們也不用顧影自憐,嘲笑自己沒有國產的操作系統和編程語言,因為其他國家也沒有,或很少有,芬蘭好不容易出了個天才少年,也沒好好珍惜,最終落了個「流落」異國他鄉的下場。

李納斯一到美國就被這塊新大陸吸引了,一切都是那么的新鮮和美好,他的感受與你第一次出國后在微信朋友圈發的「天是那么的藍,云是那么的白」是一樣一樣的。李納斯在自傳中寫道:

我所參觀的摩門教堂已有一百五十年的歷史,卻被照顧的很好,清洗后的教堂顯示出亮麗的白色。要是在歐洲,所有的教堂都顯得老舊不堪,像是蒙上了一層歲月的斑痕??粗@潔白亮麗的教堂,我腦海里產生的唯一聯想竟然是迪斯尼樂園。因為它看起來太像是童話故事中的城堡,而不太是一個教堂了。

我記得自己徒步走過了金門大橋。在橋的這頭時,我望著對岸的馬林海岬,恨不得立刻就到對岸去徜徉在那美麗的群山之間。但等我真走到那邊時,我幾乎不愿意再挪動雙腿……那時的我絕對想不到,在時隔六年以后的今天,我會坐在海風吹拂的海岬峰頂,一面俯瞰太平洋、舊金山灣、金門大橋和籠罩在霧中的舊金山城,一面對著大衛的錄音機講述著這一切。

從美國回到芬蘭之后,李納斯對自己說,我要去美國。

當李納斯透露出自己的就業計劃之后,馬上有多家公司遞來橄欖枝,其中包括著名的 Linux 公司 Red Hat。這種感覺是如此美妙,就像你剛剛掏出一支香煙,面前已是千百個打火機舞動。但是李納斯本著不加入任何一家 Linux 公司的原則,拒絕了 Red Hat,參加了另一個名不見經傳的公司的面試,這家公司叫做 Transmeta,中譯名「全美達」,你們可以從維基百科上查到這家公司,不過我打賭,知道這家公司的讀者不會超過千分之一,這并不是咱們孤陋寡聞,因為美國人民剛開始也不知道這家公司在干嘛,全美達官網在1997年中上線,兩年半后網站的建設情況是「This web page is not yet here」,又過了很久人們才從內部員工透露出的一點信息得知,這家公司似乎是搞處理器的。這是我所知道的唯一一家保密措施強過蘋果的公司,如果不是李納斯,這家公司就像是根本沒有存在過。

就是這樣一家公司,面試了在開源社區名滿天下的技術天才、Linux 操作系統的締造者李納斯,并且將其招至麾下,一待就是六年。從某種程度上,這六年嚴重的影響了 Linux 操作系統前行的腳步,因為李納斯沒有足夠的時間開發 Linux 了。

雖然根據 Transmeta 與李納斯的協議,他可以繼續從事 Linux 的開發,而且他確實也想這么做,比如白天為 Transmeta 工作,編寫 X86 解釋程序,晚上繼續 Linux 的偉大事業。不過真實的情況是,晚上丫睡著了……

關于加班和睡眠,李納斯是這么解釋的:

很多人都認為加班加點的工作才算真正的工作。我可不這么想。無論是 Transmeta 的工作還是 Linux 的工作,都不是靠犧牲寶貴的睡眠時間換來的。事實上,如果你想聽真話,我要說,我更喜歡睡覺。

總之,李納斯第一次從互聯網上消失了,很多悲觀的開發者紛紛奔走相告,李納斯這小子是不是被招安了?丫開始為商業公司干活了,Linux 作為自由軟件是不是已經瀕臨死亡了?每當這時候李納斯就會出來給大家打打氣說,哥還在呢,只不過剛睡醒……

關于李納斯的這段經歷,曾經在硅谷工作過的一位朋友給我提供了如下文字,大意是這樣的:

每次想起李納斯這段經歷,我都要感慨萬千。第一次得知李納斯虎落硅谷的事是在2002年夏天,當地的水星報記者先是把李納斯大吹一通,然后說他從芬蘭老家搬到美國,就職于 Transmeta 已五年有余,但 H1 移民仍然停留在勞工卡初級階段,六年期滿就要打道回府了。

當時這份報紙的讀者大概有一半人有 H1 經歷,然后這一半人里的一半都知道 Linux 是啥東東,但是從未聽說過 Transmeta 是何方神圣,這貨居然把一代技術英雄扣在那兒為一個名不見經傳的小資本家作苦力,導制全球開源事業停滯不前,真是膽大包天啊!于是很多讀者跑到水星報去說,象李納斯這樣的天才愿意移民到美國,布什親自開飛機去接都不為過,怎么可以被移民局壓了五年呢balabala……

還好,李納斯在2003年離開了這個叫做「全美達」的公司,受聘于開放源代碼開發實驗室(OSDL : Open Source Development Labs, Inc),重新統領開源世界的各路英豪,全力開發 Linux 內核,Linux 再次煥發出勃勃生機,這一次,它要引領的是互聯網的技術浪潮……

Linus(七)——關于財富

李納斯對待財富的態度就是「視金錢為糞土」,是真的糞土。

那種默然的態度讓人感覺非??膳?。當一個人隨便動動手掛掛名簽個字就能獲取上千萬美金的時候,他依然和自己的妻女一家人擠在圣克拉拉一棟兩層樓的公寓套房里,過著一個普通程序員的生活,同時不斷改進已經遍布全球的 Linux,這是什么精神?這是毫不利己專門利人的國際主義戰士的精神。

寫到這我不禁想起了綠茵場上的冰王子博格坎普,當他接到幾十米外的長傳,用標志性的慢速停球過掉撲上來的后衛,輕扣,過掉另一個后衛,顛球,閃過最后的防守,面對守門員的時候不是大力抽射和仰天長嘯,而是把球搓出一道完美的拋物線,球越過門將,緩緩落入網窩,然后博格坎普,低著頭慢慢的走開,留給對手的是優雅與實用并世無雙的技藝,和令人絕望的背影!

默然的感覺,懂了撒?

很多程序員創業成功或跟隨創業成功之后,自以為功成身退,最早扔掉的就是代碼和編譯器,然后購豪宅當天使滿世界貼旅游照片,你們感受一下,這個境界是完全不可同日而語的。(請勿對號入座,如有誤傷,必是友軍所為)

事實上李納斯在拿到第一筆真正的財富之前,一直處于日子緊巴巴的狀態。當時另兩位帶頭大哥比爾·蓋茨和史蒂夫·喬布斯早已名滿天下家私萬貫,同時有大量的技術人員、商人和公司通過 Linux 及其相關技術獲取了巨額財富,對此,李納斯的態度是:「和我有毛關系」,他似乎對一大群才氣不高的編程人員能夠享受到大筆的財富并不在意。這種情況一直持續到所有的有識之士都坐不住了:李納斯,你再也不能這樣下去了!

倫敦的一位企業家希望李納斯在他羽翼未豐的 Linux 公司做個董事會成員,報酬是一千萬美金。李納斯說,不用。企業家驚呆了,當他喃喃自語「臥槽你特么知道一千萬美金是啥概念嗎」的時候,李納斯已默默走遠。

Red Hat 公司為了感謝李納斯的卓越貢獻,為他提供了一些期權,李納斯的回復同樣是,不用了,我不會給你獨家的授權許可的。Red Hat 的人差點瘋掉:「李爺期權您就收著吧,我們什么都不要行了吧」「唔這樣啊,那就放這吧」,這就是李納斯!

正是這筆期權讓李納斯收獲了第一筆巨額財富,因為 Red Hat 1999年8月11日在納斯達克上市了。李納斯先是意識到自己從身無分文突然變成了擁有五十萬美元的土豪,然后是一百萬,五百萬,李納斯終于變得亢奮起來,原來期權也是錢啊!終于不用再為生計發愁了,對著這個事情,李納斯的定義是:我真是最幸運的家伙!

事實上李納斯從來沒有想過 Linux 能夠獲得如此巨大的成功。他只是為了自己方便寫了一個操作系統內核并想借此獲得一點回報而已,「假如我事先知道了要做到如 Linux 這般成功需要做多少基礎和瑣碎工作的話,那我肯定會相當沮喪的。這意味著你首先要非常優秀,并且你所做的大部分決定都導致了正確的結果。」

任何理智的人在登山之前凝望著高聳入云的山峰和崎嶇艱險的山路時,都會陷于沮喪之中。解決辦法就是先邁出第一步再說,然后,但行好事,莫問前程。

Linux 不僅給李納斯帶來了名聲和財富,同時給大眾帶去了巨大的好處。年輕一代中最聰明的程序員和黑客都在使用 Linux 的產品,正是開放的 Linux 給這些天才的程序員帶去了巨大的創作熱情和喜悅,他們在 Linux 平臺上完成了一個又一個杰出的作品,這些技術形成的生產力,對互聯網的發展起到了巨大的推動作用,直到今天。

Linus(八)——巨星碰撞

在 Linux 出現之前,桌面操作系統的市場基本上是由比老師和喬老師控制的,雖然喬老師控制的少了一些。Linux 出現之后,桌面操作系統的格局并沒有太大變化,但是服務器端市場的變化卻是翻天覆地的。原本比爾希望通過 Windows NT 和 Server 系列在服務器領域復制桌面操作系統的輝煌,從而千秋萬載,一統江湖。然而,世界的發展永遠是多元的,沒人能通過一己之力改變歷史發展的多維性,比爾·蓋茨也不行。于是 Linux 出現了,并以星星之火可以燎原之勢一舉拿下服務器操作系統的半壁江山。

一方是商業公司和封閉的策略,另一方是自由軟件和開放的協議,這場戰爭一開始支持率就是一邊倒的,李納斯就像對抗風車的堂·吉訶德,但是他自己不僅沒有遍體鱗傷,還在沒怎么親自出場的情況下把微軟這個軟件風車搞得狼狽不堪,這種情況發生在現實生活中絕對是老百姓喜聞樂見的,李納斯成了自由軟件世界里的英雄和領袖,但也就此與微軟結下了世仇,比爾和李納斯許下了永世不相見的誓言。

有些加盟微軟的朋友告訴李納斯,他們曾見到他的頭像被釘在了微軟公司的飛鏢靶心上。李納斯對此的評價是:一定是我的大鼻子太好瞄準了。

李納斯與另一位業界巨頭蘋果之間就沒這么激進了,畢竟 Linux 和 OS X 師出同門,都是從老前輩 Unix 那兒畢業的,坐在一起還能嘮嘮家常,事實上李納斯和喬布斯確實有過一次歷史性的會面。

李納斯來到硅谷不久,就收到了一封來自喬老師秘書的郵件,郵件中寫到:「聽聞小李飛刀光臨硅谷,蓬蓽生輝,老喬不才,重回蘋果,以期振昔日之雄風,如得小李相助,必將如猛虎加之羽翼而翱翔四海,天下可得。期待會面?!?當然是意譯)

李納斯看完之后不明白喬布斯要干什么,只是覺得很厲害的樣子。畢竟李納斯還坐在外公腿上撥弄電腦鍵盤的時候,蘋果的沃茲已經純手動打造出蘋果的第一代個人電腦 Apple I 了。李納斯決定去見一下兒時的偶像,并了解一下蘋果的新操作系統。

兩代科技巨星的會面被安排在蘋果總部 Infinity Loop,喬布斯帶著原 Next 公司技術總監 Avie Tevanian(Mach 之父)接見了李納斯,雙方進行了友好而親切的會談,然后會談的結果和某國常規會談一樣,就是沒有結果。

其時喬布斯十年放逐回歸蘋果,舉手投足已是大宗師氣勢,他對李納斯說,我大蘋果雖然現在看起來有點頹,不過海盜精神永存,我們已經準備好重新起航了。目前個人電腦領域仍然只有兩個玩家:微軟和蘋果。如果 Linux 和蘋果能夠珠聯璧合,那一切將是最好的安排,所有的開源愛好者都能夠用上優雅與極客并存的 MacLinux 了。然后 Mach 之父 Avie Tevanian 向李納斯詳細介紹了整合 Mach 和 Linux 內核作為 OS X 混合內核的計劃,之后龐大的 OS X 體系將構建在 Mach 和 Linux 內核的基礎之上。 同時喬老師表示,基于 Mach 和 Linux 的內核系統將采用開源的方式運作,這樣全世界的開源愛好者都可以為 Mac 和 Linux 開發程序。

這幾乎是一個完美的雙贏方案,喬老師都被自己描繪的藍圖打動了,永遠年輕,永遠他媽的熱淚盈眶!誰能拒絕蘋果公司和喬布斯如此完美的邀請呢?

李納斯能!

喬布斯認為自己的扭曲現實力場加上蘋果巨大的市場潛力一定會讓李納斯怦然心動,沒想到這個芬蘭小子在計算機面前待久了,水米油鹽不進,任憑喬布斯口吐蓮花,我自巍然不動。首先李納斯對 Mach 就不感冒,他認為 Mach 幾乎犯下了所有的設計錯誤,它讓系統變得復雜而效率低下;其次李納斯覺得喬布斯可能沒意識到,Linux 的潛在用戶要比蘋果系統多;第三李納斯樂觀的認為,雖然 Linux 的目標不是占領桌面操作系統,但是顯然「我們很快就能做到這一點了」。所以李納斯當時的反應是:

為什么我要關心這些?我為什么要對蘋果公司的故事感興趣?我不覺得蘋果公司里有什么有趣的事情。我的目標也不是占領什么桌面操作系統的市場。(嗯,雖然 Linux 馬上就要做到這點了,但這從來就不是我的目標)

現在看來,李納斯當時對 Linux 在桌面操作系統的前景過于樂觀了,雖然他天縱奇才桀驁不馴,但是也無法預測到 OS X 和 iOS 在十年后引領移動開發的浪潮。不過即使知道 OS X 未來的大發展,心高氣傲的李納斯也不會接受蘋果的收編,因為 Linux 一直是獨立和自由的軟件圖騰。

無論如何,這次非正式的會談沒有達成任何實質性的效果,但是對后來的 IT 格局產生了巨大的影響。蘋果不再關注 Linux,而是轉向了 BSD。2001年蘋果任命 FreeBSD 的發起人之一,老牌 BSD 黑客 Jordan Hubbard 為 BSD 技術經理,后升為 Unix 技術總監,負責 OS X 操作系統底層核心 Darwin 的研發,最終,Mach 與 BSD 技術整合在一起,形成了混合內核。另外,蘋果開始覺得開源項目也不是那么靠譜,后續他們先后研發并開源了優秀的編譯器項目 LLVM 和 Clang,一舉替換了整條 GCC 編譯鏈,為 OS X 和 iOS 的性能優化和語言特性提供了巨大的幫助。這也算是蘋果對那些牛叉哄哄的開源人士的回擊:看,我們也可以做開源,而且比你們做的好。

Linux 則繼續在開源、獨立、自由的方式下一路狂奔,雖然在桌面操作系統領域的成就乏善可陳,但是在服務器端大放異彩,目前幾乎整個互聯網都是運行在 Linux 及其衍生產品之上的,可以說沒有 Linux,互聯網不可能得到如此迅猛的發展。

十年以后,移動互聯網時代來臨。OS X 上長出了 iOS,Linux 上則誕生了 Android,這兩個移動開發領域的雙子星都有一個老祖宗,那就是 Unix。一次話不投機的會談讓 OS X 和 Linux 分道揚鑣,在十幾年后的今天,它們又以一種不同的方式相見了,世界永遠都是多元的,可能冥冥中自有天意吧。

Linus(九)——Linus 和 Git

很多人在完成了類似 Linux 這樣宏偉的軟件產品之后,基本上就止步不前了。但是李納斯卻從未停歇創新的腳步。2003年加入開放源代碼開發實驗室之后,李納斯重新全職投入 Linux 內核的研發,并開始醞釀自己的另一個跨時代的產品。

2002年,Linux 內核開發團隊開始采用 BitKepper 作為代碼版本管理工具。BitKeeper 是一套分布式的版本管理工具,它滿足了 Linux 內核開發的技術需求。但是 BitKeeper 只是暫時對 Linux 等開源軟件團隊免費,并不是自由軟件。2005年 BitMover 公司不再免費贊助 Linux 開發團隊。對此李納斯表示非常遺憾,但遺憾之后他并沒有自怨自艾傷心落淚,而是憤怒的與其他幾個小伙伴花了幾個星期完成了一套新的分布式代碼管理工具,命名為 Git。兩個月之后,Git 發布了官方版本,并在不同的項目中應用,自由軟件社區給予了 Git 廣泛的支持。

與 SVN 和 CVS 等軟件不同的是,Git 更關注文件的整體性是否有改變,Git 更像一個文件系統,它允許開發者在本地獲取各種數據,而不是隨時都需要連接服務器。Git 的最大的特點就是離線分布式代碼管理,速度飛快,適合管理大型項目,難以置信的非線性分支管理。

2005年 Git 發布之后,技術日臻成熟,很多大公司都開始采用 Git 管理自己的項目代碼,2008年2月 Github 公司基于 Git 構建了協作式源代碼托管網站 Github,目前該網站是這個星球上最大的源代碼集散地,幾乎所有的優秀代碼都托管在 Github 上。Git 已經成為程序員使用最多的源代碼管理工具!

對于 Git 的成功,李納斯表示:

Git的設計其實很簡單,它有一個穩定而合理的數據結構。事實上,我強烈建議圍繞著數據來設計代碼,而不是反其道而行之,我覺得這可能就是 Git 如此成功的原因。

壞程序員總是擔心他們的代碼,而優秀的程序員則會擔心數據結構和它們之間的關系。

從 Git 誕生到今天已經有9個年頭了,Git 始終沒有背離其設計的初衷:高性能、簡單的設計、非線性高并發分支的支持和完全的分布式。

對于李納斯來說,Git 現在是他的主要消遣工具之一。他很喜歡在 Git 上編程的感覺,因為再也不用擔心鎖定問題、安全問題和網絡問題,這種感覺真是太美妙了!

我們繼續期待李納斯的第三個偉大的作品!

Linus(十)——生活的意義

李納斯認為生活意義的全部就在于:生存,社會交往和尋找樂趣。因為我們所做的一切事情,最終似乎都是為了我們自己的樂趣。而進化作為主線始終貫穿其中。

李納斯對進化的理解是:

「你知道在整個太陽系,人類已知的最復雜的工程是什么嗎?——不是Linux,不是Solaris,也不是你的汽車。是你,還有我。想想你和我都是怎么來的——不是什么超復雜的設計,沒錯,憑運氣。除了運氣,還有:

通過分享「源代碼」實現自由的可用性和授粉機制,生物學家把它稱作DNA。

毫不手軟的用戶環境把我們不好的版本輕易地替換成更好的可執行版本,從而使種群更加優秀(生物學家把這叫做「適者生存」)。

大量的無方向的并行開發(試錯法)。

我從未如此嚴肅過:我們人類永遠都無法復制出比我們自身更復雜的個體,而自然選擇卻不假思索的做到了。不要低估適者生存的力量。不要錯誤地認為你可以做出比大量的平行試錯反饋環更好的設計,那樣就太抬舉你的智力水平了。說實話,太陽照常升起,這和任何人的工程技巧或者編程風格都沒有關系。

李納斯一生只為尋找歡笑,但是他卻取得了無數的成就和榮譽:

1997年,在芬蘭赫爾辛基大學計算機科學系,李納斯接受了他的碩士學位。兩年后,他在斯德哥爾摩大學接受名譽博士學位,并在2000年在他的母校獲得了同樣的榮譽。

1998年,李納斯接受了電子前哨基金會先鋒獎。

2004年,李納斯被《時代》雜志選為世界上最有影響力的人之一。

2006年,《時代》雜志歐洲版評選李納斯為過去60年最有革命性的英雄人物之一。

2012年4月20日,李納斯被宣布成為兩位獲獎者之一,和山中伸彌共同獲得當年的千禧技術獎。該獎被普遍形容為相當于在技術領域的諾貝爾獎。

2012年4月23日,李納斯進入互聯網協會(Internet Society,ISOC)的網絡名人堂。

李納斯憎惡分明,經??诓粨裱?,比如他對 C++的評價是:C++是一門糟糕的語言。而且有一群不合格的程序員在使用C++,他們讓它變得更糟糕了。他對自己的兩個產品命名的解釋是:我是個自大的混蛋,我所有的項目都以我的名字來命名。開始是Linux, 然后是Git(英國俚語,飯桶的意思)。

不過我最喜歡李納斯說過的一句話是:Talk is cheap, Show me the code。他一直用自己的編程人生詮釋著這句話。2006年的時候,Linux 內核代碼的2%依然是李納斯完成的,他是代碼貢獻最多的人之一(是年37歲)。到了2012年,他對內核的貢獻主要是合并代碼,編程變少了,但是他依然對是否將新代碼并入到 Linux 內核具有最終決定權。

李納斯用自己精彩的編程人生和對自由軟件的熱愛演繹了現代社會中一個書呆子的勝利。如果你愛一個人,就讓他去編程吧;如果你恨一個人,就讓他去編程吧。代碼讓我們歡笑,也讓我們憂傷,讓我們沉默,也讓我們高歌。對于程序員來說,代碼是這個世界上最美妙的音樂,會編程的孩子,都是好孩子!

責任編輯:龐桂玉 來源: 知乎
相關推薦

2015-04-23 08:51:53

2015-12-08 18:41:06

ivvi

2015-08-03 09:33:21

PH程序員一生

2023-01-10 08:20:55

RocketMQ消息源碼

2012-12-04 10:08:16

2021-08-06 22:43:54

中斷架構傳遞

2014-10-11 11:35:49

2020-07-09 17:37:47

Linux網絡包中斷

2021-12-28 18:23:49

Java指令

2018-01-18 09:05:05

存儲數據包分層

2010-01-07 09:32:19

2019-06-26 08:45:28

程序員思考腦年終獎

2018-01-05 12:42:01

Lisa電腦蘋果Mac

2020-11-29 17:08:50

程序員IT

2015-03-24 13:39:08

IE

2017-11-20 10:08:48

大數據后悔的事

2025-05-19 08:43:00

2013-07-26 10:08:35

創業創業心得

2017-04-11 17:22:57

編程程序員語言

2021-09-28 08:05:56

黑客網絡安全網絡攻擊
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩三区在线观看 | 日韩av在线一区 | 九色 在线| 免费亚洲视频 | 国产精品国产精品国产专区不卡 | 亚洲一卡二卡 | 亚洲午夜视频 | 国产中文视频 | 精品香蕉一区二区三区 | 日韩精品在线一区 | 久久精品97 | 美女国内精品自产拍在线播放 | 中文字幕在线网 | 久久a久久 | 手机av在线 | 国产探花在线精品一区二区 | 亚洲精品一区二区在线 | 一区精品国产欧美在线 | 欧美日韩中文字幕 | 91精品国产高清一区二区三区 | 2018天天干天天操 | 成人精品鲁一区一区二区 | av黄色在线观看 | 日韩精品一区二 | 四虎最新视频 | 福利在线看| 日韩午夜在线播放 | 九九热在线免费观看 | 亚洲视频在线免费观看 | 国产免费一级一级 | 欧美成人免费在线视频 | 久久久久久久久久久久一区二区 | 久久国产高清 | 精品一区视频 | 337p日本欧洲亚洲大胆鲁鲁 | 国产综合区 | 永久免费视频 | 中文字幕一区二区三区四区 | 欧美日韩久 | av一区二区在线观看 | 国产999在线观看 |