<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    ivaneeo's blog

    自由的力量,自由的生活。

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks

    #

    1 flavor [ˊfleiv?] n. 特色,風味
    posted @ 2005-12-04 17:18 ivaneeo 閱讀(415) | 評論 (0)編輯 收藏

    1. effect [iˊfekt] n. 結果,影響,效果;
    2.
    environment [inˊvair?nm?nt] n. 環境
    3. exert [igˊz??t] v. 發揮,運用
    4. existence [igˊzist?ns] n. 存在,實體
    5. evolve [iˊv?lv] v. 進化,逐漸發展
    posted @ 2005-12-04 17:15 ivaneeo 閱讀(422) | 評論 (0)編輯 收藏

    1. pattern [ˊp?t?n] n. 模式,模型
    2
    . possibility [p?s?ˊbiliti] n. 可能性,可能的事
    3. procedure [pr?ˊsi:d??] n. 程序
    posted @ 2005-12-04 17:10 ivaneeo 閱讀(483) | 評論 (0)編輯 收藏

    1. separate [ˊsep?reit, ˊsep?rit] v. 分開,隔開
    2.
    several [ˊsev?r?l] pron. 幾個
    3. spell [spel] n. 符咒,魅力;
    4.
    spirit [ˊspirit] n. 精神,靈魂
    5. standalone adj. 獨立的,單獨的,不需要外部的。

    6. syntax [ˊsint?ks] n. 語法
    posted @ 2005-12-04 17:05 ivaneeo 閱讀(439) | 評論 (0)編輯 收藏

    1. manipulate [m?ˊnipjuleit] vt. 操縱,操作
    2. myriad [ˊmiri?d] n. 萬,無數,無數的人或物
    posted @ 2005-12-04 17:04 ivaneeo 閱讀(416) | 評論 (0)編輯 收藏

    1 hurdle [ˊh??dl] n. 障礙,跳欄,臨時活動籬笆
    posted @ 2005-12-04 16:54 ivaneeo 閱讀(350) | 評論 (0)編輯 收藏

    這篇短小的文檔用于描述linux內核編程中推薦的編程風格。編程風格是很個人
    化的東西,我不想把我的觀點_強加_給任何人,但這是我必須維護的代碼中所遵守
    的,我也建議其他部分的代碼也能遵守它。請至少給這里的觀點一些考慮。

    首先,我建議你打印一份GNU代碼風格,不是去讀它,而是把它燒了,這是個很
    不錯的姿態。

    不廢話了,下面就是Linux內核編程風格:

                    第一章:縮進

    制表符(tabs)占8個字符,所以縮進也是8個字符。有些異端運動想使用4個字符
    (甚至是2個字符)的縮進,這和把PI(圓周率)定為3沒什么兩樣。

    原因:縮進的根本目的是用來清晰地標識一個控制塊的起始。特別是當你連續盯
    著屏幕看了20
    個小時后,你就會體會到更長的縮進的好處了。

    現在,有些人提出8字符縮進會使得代碼太偏向右邊,當使用80字符的終端
    時很難閱讀。答案是如果你需要三層以上的縮進,那么你已經完蛋了,應該改改
    你的程序了。

    簡而言之,8字符縮進使得閱讀代碼更為容易,并且在你的縮進層次過深時提出
    警告。應該留心這樣的警告。

                    第二章:括號的位置

    括號位置的問題在C編程風格中經常被提出。和縮進大小不同,括號位置的選擇
    并沒有太多技術上的原因,而更多的是個人的喜好。比如Kernighan和Ritchie的
    弟子們把左括號放在一行的最后,把右括號放在一行的開始,象這樣:

            if (x is true) {

                    we do y

            }

    但是,函數是一種特殊的情況,函數的左括號放在下一行的開始,象這樣:

            int function(int x)

            {

                    body of function

            }

    全世界的異端人士指出這種不一致的做法 ...嗯...
    不太一致,但是所有思維正
    確的人知道 (a) K&R是_對_的 (b)
    K&R是對的。而且,函數確實是特殊的(你在C
    中無法對函數進行嵌套)。

    注意到右括號完全占有單獨的一行,_除非_當它后面還有未完成的語句,比如do
    語句中的“while”或者if語句中的“else”,想這樣:

            do {

                    body of do-loop

            } while (condition);


            if (x == y) {

                    ..

            } else if (x > y) {

                    ...

            } else {

                    ....

            }

    原因:K&R。

    還有,注意到這種括號的布局方法還減少了空行(或者說是幾乎是空行)的數目,
    而且沒有減小可讀性。因為你屏幕上的空行是不可回收資源(這里想一下25行的
    終端屏幕),這樣你會有更多的空行用于加注釋。

                    第三章:命名

    C是個斯巴達式(崇尚簡潔風格的)語言,所以你的命名方法也應該如此。與
    Modula-2和Pascal程序員不同,C程序員不使用
    ThisVariableIsATemporaryCounter這樣可愛的名字。一個C程序員會把一個變量
    叫做“tmp”,這樣的變量名更容易寫,而且理解起來也不算太難。

    _但是_,盡管人人都會對大小寫混雜的名字皺眉頭,全局變量名則必須如此。管
    一個全局函數叫“foo”是故意找岔。

    _全局_變量(只有在_真正_需要時才使用)需要有個描述性強的名字,這點和全
    局函數一樣。如果你有個函數用于對活躍用戶進行計數,你嬰兒叫它
    “count_active_users()”,而不是“cntusr()”。

    把函數的類型加入到名字中(所謂的匈牙利命名法)是腦損傷的表現
    - 編譯器
    知道類型,能夠對它進行檢查,這種命名法只會把程序員自己搞暈。難怪微軟做
    了那么多充滿bug的程序。

    _局部_變量應該短小扼要。如果你有個隨機的整數循環變量,可能最好叫它“i”。
    把它叫做“loop_counter”是效率低下的,在不會發生混淆的情況下。類型地,
    “tmp”可以被用于任何類型的存儲臨時值的變量。

    如果你擔心混淆你的局部變量,那么你就會有另一個問題,所謂的函數膨脹荷爾
    蒙失衡綜合癥,請看下一章。

                    第四章:函數

    函數應該短小而甜美,而且只能做一件事。他們應該只用一兩屏幕(我們都知道,
    ISO/ANSI標準屏幕大小是80x24)就能裝下,只做并且做好一件事。

    函數的最大長度應該與函數的復雜性和縮進層次成反比。所以,如果你有個只有
    一個很長(但很簡單)的case語句的函數,對許多case做一些很少的操作,那么
    這個函數長點也沒有關系。

    但是,如果你有一個復雜的函數,你擔心一個中等智力的高一學生可能無法理解,
    那么你應該更嚴格地遵守最大長度限制。使用有描述性名字的幫助函數(你可以
    讓編譯器in-line這些幫助函數,如果你認為性能很重要的話,而且編譯器恐怕
    會比你做的要好)。

    函數的另一個指標是局部變量的數目,局部變量的數目不應超過5-10個,否則一
    定是哪里有問題了。再設計一下這個函數,把它分解得更小一些。人的大腦一般
    可以同時跟蹤7個不同的東西,超過了7個就會暈菜。雖然你很聰明,不過可能你
    有時會想理解一下兩星期前所寫的代碼。

                    第五章:注釋

    注釋是好東西,不過存在過分注釋的危險。_永遠_不要在注釋中解釋你的代碼是
    如何工作的:更好的做法是寫出工作方式顯而易見的代碼,解釋糟糕的代碼是浪
    費時間。

    一般來說,注釋應該說明代碼在做什么,而不是怎么做。并且,不要把注釋加在
    函數主體中:如果函數太復雜以至于必須對各個部分進行注釋,那么你可能要再
    去讀讀第四章。你可以加入一些短小的注釋來提醒或警告一些聰明(或難看)的
    做法,但不要太過度。更好的選擇是,把注釋放在函數頭,說明函數在做什么,
    可能還包括它為什么做。

                    第六章:你的代碼亂七八糟

    沒什么,我們都遇到過。你可能從老Unix用戶那里聽說過“GNU
    emacs”會自動
    對齊C源代碼,但缺省的設置不是很好(事實上,缺省設置比胡亂敲打還糟糕
    -
    一群使用GNU emacs猴子永遠不會做出漂亮的程序)。

    所以,你或者徹底仍掉GNU
    emacs,或者采用更理智的設置。如果選擇后者,你
    可一把下面的代碼加到你的.emacs文件中:

    (defun linux-c-mode ()

      "C mode with adjusted defaults for use with the Linux kernel."

      (interactive)

      (c-mode)

      (c-set-style "K&R")

      (setq c-basic-offset 8))

    這會定義 M-x linux-c-mode
    命令。當編寫Linux模塊時,如果你把字符串“-*-
    linux-c
    -*-”放在文件的頭兩行中,這個模式就會被自動激活。還有,如果你
    想在編輯/usr/src/linux目錄下的源文件時linux-c-mode被自動激活,你在你的.
    emacs文件中需要加入

    (setq auto-mode-alist (cons '("/usr/src/linux.*/.*\\.[ch]$" .
    linux-c-mode)
    auto-mode-alist))

    但是即使你用不了emacs,并不是世界末日:你還可以使用“indent”。

    又一次,GNU indent使用了和GNU
    emacs一樣的腦死亡設置,所以你需要給它一
    些命令行選項。但是,這不算太壞,因為即使是GNU
    indent的作者們也意識到了
    K&R的權威性(GNU的人也不是魔鬼,他們只是在這件事上被誤導了),所以你可
    以使用選項“-kr
    -i8”(表示“K&R,8字符縮進”)運行indent。

    “indent”有很多選項,特別是注釋布局部分,你可能想看看它的man手冊。但
    是請記住:“indent”不能修改糟糕的程序。

                    第七章:配置文件

    配置選項
    (arch/xxx/config.in,以及所有Config.in文件)使用了有些不同的
    縮進方式。

    代碼中使用的是3字符縮進,config-選項中應該使用2字符縮進標識依賴關系。
    后者只應用于bool/tristat選項。對于其他選項,采用你認為最合適的縮進方式
    就可以了。例如:

    if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then

       tristate 'Apply nitroglycerine inside the keyboard (DANGEROUS)'
    CONFIG_BOOM

       if [ "$CONFIG_BOOM" != "n" ]; then

          bool '  Output nice messages when you explode' CONFIG_CHEER

       fi

    fi

    一般來說,所有不穩定的選項應該標為CONFIG_EXPERIMENTAL。所有可能損壞數
    據的的選項應該標為(DANGEROUS),其他的試驗選項應該標為(EXPERIMENTAL)。

                    第八章:數據結構

    供多線程使用的數據結構應該采用引用計數(reference
    counts)。在內核中,
    垃圾回收(garbage
    collection)是不存在的(內核之外的垃圾回收效率不高),
    這意味著你_必須_使用引用計數。

    引用計數的使用能避免鎖的使用,使不同的用戶能夠并行使用數據結構
    - 不需
    要擔心結構會因為睡眠而突然消失。

    注意到加鎖_不是_引用計數的替代物。加鎖用于保證數據結構的完整性,而引用
    計數是一個內存管理技術。通常你兩個都需要,不應該有任何混淆不清的地方。

    一些數據結構可能使用兩層的引用計數,當對不同的“類”都有使用的時候。子
    類的計數統計所有子類用戶的數目,當子類的計數為零時只對總計數減一。

    這種“多層引用計數”的例子可以在內存管理代碼(“struct
    mm_struct”:
    mm_users和mm_cout)和文件系統代碼(“struct
    super_block”:s_count和
    s_active)中找到。

    記住:如果另一個線程能夠看見你的數據結構,而你卻沒有對它使用引用計數,
    那么幾乎可以肯定會有bug存在。

    posted @ 2005-12-02 13:14 ivaneeo 閱讀(605) | 評論 (0)編輯 收藏

    這是一個不應該有的話題,因為最早沒有選擇,我們只有一臺機器,一個系統,程序設計改變了我們的思想。各種為實現業務所開發的語言用到了OS上,unix就是一­個很好的例子
    這里想說的是,對于一個人來說,用什么系統不是重要的,但是實現業務是基本的,
    很多人都片面的受到一些物質困惑,在強大的廣告效益下,作出了不是很好的選擇,就像我們從小就認為白雪公主就是那個美麗的女子。如果不是他這種類型的就會認為是­丑的,同樣,沒有被接受的OS也會被人排斥。

    linux在GNU下得到了飛速的發展,通過internet,我們傳播她,他就是一個在虛幻世界出來的惡魔(freeBSD)的兄弟,這次他的對手是wind­ows。和他的兄長相比他的競爭更加復雜化。(bsd與商業unix的之間關系)。
    windows是完美的剽竊了apple,讓自己從3.1開始不聽的發揮自己。走到了longhorn。走到了現在,但是他現在不是在單單的與apple競爭,­誰會想到91年出的如同dos的東西會讓微軟不敢小看,(91年正是微軟的3系列的產品)。
    可以說linux和windows一同成長。但是linux的關注度沒windows的高,最好的解釋就是微軟的商業模式太完美了,已經不是我們簡單的去看一個­簡單的軟件,如果在這個革命的選擇,就有很多狂熱分子,如同宗教般,對某個不斷的執迷,互相唾罵對方,這就如中世紀和圣戰一樣,最后沒有勝利。
    人是應用者,操作系統這是一個簡單的人機對話的gui,借此完成業務計算。這樣看來操作系統只是系統軟件,也是為應用程序服務,他已經不是重要的環節。

    不管你在這場OS大戰中,選擇那方,你都會對計算機感興趣,因為不管是不是自由的狂熱,還是銅臭的金錢,計算機技術仍然會推動這個真實世界的前進。

    下面是20世紀短短的10年linux的走過
    ###################################################################
    Linux發展大事記(www.blogchina.com)
    篇章一:98年前大事列表
    1984年Richard Stallman 發起GNU和Free Software Foundation。
    1991 年4月 芬蘭計算機系研究生Linux Benedict
    Torvalds開始為一個以后被稱為"Linux"的內核而工作。
    1991年8月25日Linus
    網上發貼,尋找志同道合的合作伙伴。
    1991年10月5日Linus Torvalds在新聞組comp.os.minix發表了Linux
    V0.01,約有一萬行代碼。
    1992年,全世界大約有1000個左右的人使用Linux,并有不少人提供初期的代碼上載和評論。
    1993年
    大約由100多個程序員參與內核代碼修改,內核核心由5人組成,V0.99
    約有十萬行代碼。
    1993 年12月 Linux 全球用戶數約在10萬左右。
    1994年3月,Linux1.0問世,約有17萬行代碼。它按完全自由免費的協議發布,源碼必須完全公開,之后很快Linux正式采用GPL協議。
    1995年 Linux 全球用戶數大大超過50萬, Linux 已可在Intel,
    Digital 和Sun SPARC 處理器上運行,Linux Journal
    雜志已發行了10萬冊。內核發展到1.2,
    約由25萬行代碼。
    1996年6月 Linux 內核2.0
    發布,可支持多個處理器,約由40萬行代碼。Linux
    全球用戶數約在350萬左右。
    1997 在日本、波蘭、德國和南斯拉夫有Linux
    月刊發行。版本升至2.1,約有代碼80萬行。  
    1997年夏,制作電影《泰坦尼克號》所用的160臺Alpha圖形工作站中,有105臺采用了——Linux操作系統。
    篇章二:98年大事列表
    一月份
    Linux Weekly News
    出版,1月22日第一期并不代表LWN以后的發展方向。從那時起Linux世界變得愈來愈復雜了,這真是一種有趣的探險。
    Netscape
    宣布將在一種自由軟件許可協議下,公開其瀏覽器的源代碼。不容置疑,這成了本年度最重大的事件之一,它使很多人看到了Linux和自由軟件將會帶來什么。
    小紅帽高級研發實驗室成立。在這里,人們為自由軟件和Gnome
    工程的一個重要部分辛勤工作并得到報償。RHAD吸引到了象Rasterman和
    Mena Quintero.這樣的開發人員。
    Stampede
    Linux的發布實際上是在去年的十二月份。Stampede把自己定位在成為高性能的真正的黑客級別Linux發行版。
    有消息說轟動一時的電影Titanic
    部分是在運行Linux的Alpha機器上制作完成的:人們接受Titanic,也接受每件與它關聯的事物,包括Linux。
    二月份
    Cobalt
    Qube發布,并且由于其高性能,低價格,以及可愛的外形而成為商業媒體的幸運兒。Cobalt的Linux相關工程全部由David
    Miller完成。
    Linux用戶社區獲得了InfoWorld的技術支持獎,Red Hat
    5.0贏得了操作系統獎項。但人們更為技術支持獎感到震驚,以前每個人都認為Linux沒有技術支持。“Linux沒有技術支持”的觀點被推翻了。
    Red Hat聲稱他們有Linux安裝隊伍的支持。
    Eric Raymond
    和他的朋友們提出“開放源碼”這個術語,啟動opensource.org
    網站,開始正式推進Linux 的商業應用。
    Linus Torvalds 和 Richard
    Stallman獲得了EFF先驅獎。這一獎項是對他們為電子信息自由所做貢獻的認可。奇怪的是,Electronic
    Frontier Foundation站點上沒有提及此事。
    Caldera1.2 發布,與基于libc6的Red
    Hat不同,Caldera基于libc5。
    堅信基于專有BIOS
    代碼的系統不可能自由,人們啟動OpenBIOS
    項目和相應的站點。
    人們為GGI 是否該歸入Linux內核爭論不休。GGI,
    或普通圖形化界面,旨在為Linux和其他系統上的視頻卡提供更好的界面。GGI
    此次沒有提出融入內核的要求,這次爭論也沒有結果,但從此,GGI與內核黑客的交流卻增強了。
    三月份
    Linux
    全球用戶數約在750萬左右,有大約1萬程序員參與新聞組討論,代碼測試和修改。
    Learning Tree, International 組織增加了Linux
    系統管理課程,并在美英兩國頻繁授課,這樣“Linux軟件的性能提高極快,它成為一種適合于商業環境的低價、可靠并擁有強大支持的計算平臺。”
    消費者權益保護人士Ralph
    Nader倡導大的PC廠商提供非微軟的系統,包括預裝Linux的系統。
    Sun 公司對從Linux向Solaris 升級的客戶打3折。
    Bruce
    Perens,曾經是Debian工程的領導者,由于在工程怎樣發展上的分歧而徹底辭職不干。
    Eric Allman,成立Sendmail, Inc,
    這家公司試圖在保持sendmail代碼公開的情況下,通過銷售sendmail支持服務來賺錢。
    John Kirch發表"Microsoft Windows NT Server 4.0 和Unix"
    一文。這篇文章非常棒,想采用NT 4.0或Unix
    的人都該讀一讀。
    四月份
    Mozilla源碼在網上發布,世界各地的人們爭相下載,很快,人們增添了功能強大的加密特性和Qt端口。
    Linus被Inter@ctive周刊列為“網上25位無名英雄”之一。
    四月份以后,Linus不再無名。
    Open Group宣布了新的X
    window系統的許可協議方針。新版本的X
    window將用專有許可證,只有付錢購買者才能使用,他們還保留了一些安全補丁。XFree86稱他們不能茍同新的許可協議方針,將考慮走自己的路。
    美國全國公眾廣播電臺報道了Linux,這是首次Linux在主流非技術媒介上出現。
    OReilly 召開首次自由軟件高層會議,與會者有Larry Wall,
    Brian Behlendorf, Linus Torvalds, Guido van Rossum, Eric Allman, Phil
    Zimmermann, Eric Raymond和 Paul Vixie。
    Linux Weekly News(LWN)每日更新專欄開辦。盡管LWN
    想保持其每周焦點的特色,但每日專欄在訪問量上已超出每周時事一欄,同時Linux大事專欄也開辦起來。
    Linux 3.0發布;Linus
    第二個女兒的出生給他帶來巨大的歡樂和內核研發的停滯,許多補丁程序都丟失了。有的人開始抱怨Linux內核對Linus的依賴性太強了。
    Red
    Hat宣布商業支持計劃,這一計劃基于世界范圍的支持合作伙伴網,其中
    Eklektix, Inc則是Linux Weekly News的發起方。
    Avalon Beowulf 集群在Los Alamos
    一發布即成為全球最快的計算機系統之一。
    Eric S. Raymond在網上發表"Homesteading the
    Noosphere",表述了他關于開放源碼軟件如何商業化運作的觀點。
    五月份

    內核黑客Alan Cox 轉而為小紅帽工作。
    Bruce Perens
    基于他在Debian的經驗,提出一種新的Linux發行版。這一版本從未出現,但其中很多部分后來包含于Linux基礎標準(Linux
    Standard Base)工程中。
    C|Net 的異端工程將只采用Linux工作,媒介反響強烈。
    太陽微系統加入Linux International。
    "Google"搜索引擎出現,它不僅是最好的搜索引擎之一,且是基于Linux,以Linux方面的網頁搜索為特色。
    Sm@rt Reseller報道說Oracle 和
    Informix不打算支持Linux。“事實上,——無論它多么穩定、便宜——很多人懷疑Linux在商業市場上是否能同資金雄厚的Windows
    NT 和 Solaris競爭”
    SuSE 5.2發布。
    Corel正式接受Linux,
    保證為Netwinder系列產品提供Linux支持。
    The Association Francophone des Utilsateurs de Linux et des Logiciels
    Libres (AFUL)
    在法國成立,并很快在法國計算機界頗具影響力。
    Linux大型數據庫到來。Computer
    Associates為其Ingres系統,Ardent
    Software為其O2對象數據庫,紛紛表示支持Linux。
    Linux
    Core/Layer工程發布,它是Linux系統標準化的最初探索。
    有人提議創立Linux Standard Base (Linux
    基礎標準)工程。這個提議由多個Linux核心人物在Linux展示會上討論并付諸實施。Bruce
    Perens成為該組織的領導人。
    Red Hat 5.1
    發布并迅速推出一系列更新,這些更新部分歸功于Linux
    安全檢查項目組。
    六月份
    Gartner集團稱自由軟件沒有希望:這些操作系統在未來兩三年內不會成為主流的商務應用平臺,也不會得到廣泛的第三方應用程序的支持。
    Gimp 1.0 不負眾望,終于發布了。
    穩定內核2.0.34 經歷一番坎坷,終于推出。
    出于對US出口禁令的焦慮,Beowulf
    站點暫時關閉。任何人都可以組建超級電腦了,有些人變得很擔心。但很快Beowulf
    站點又恢復了正常。
    Datapro
    調查研究顯示在操作系統用戶中Linux擁有最高的滿意度,它也是唯一一個市場份額增長的操作系統。
    Corel 啟動 Netwinder 。
    Debian 2.0 在多日推遲后進入測試。
    Adaptec 改變長期的封閉政策,宣布支持Linux , 并首選Red
    Hat為合作伙伴,陸陸續續其他發行商也與Adaptec 結合。
    漢語 Linux Extension 工程啟動,旨在促進Linux的本地化。
    IBM 與Apache 隊伍達成協議,將銷售和支持Apache WEB
    服務器。
    硅谷 Linux 用戶組召開 “1998
    偉大的Linux革命”大會,在兩個最主要的零售店將微軟Windows
    98產品發布慶祝會變成了Linux 宣傳會。
    硅谷 Linux 用戶組還不滿足,制造了一只標有Windows 98
    字樣的火箭并點火升空。
    英國Linux研發人員大會在曼徹斯特召開。
    七月份
    Caldera 和Red
    Hat將合并的消息徑走,但是合并沒有發生。
    KDE 和 GNOME
    各自的擁戴者紛紛開始指責對方,Linus介入,指出KDE桌面也是不錯的。在這樣的情況下,KDE
    1.0
    發布,而且變得很流行,但不少人很不喜歡Qt庫的許可協議。
    NC World 雜志停止刊出Nicholas Petreley對Windows
    NT的猛烈抨擊,但這篇文章依舊可從網上獲得:該文指出Windows
    NT 5 (即現在的Windows 2000)是絕對的災難。
    穩定內核2.0.35 發布。
    互聯網操作系統計數器啟動,對數以萬計的主機進行統計后,Linux
    占有了最大的WEB 服務器市場份額。
    LinuxPPC 4.0 發布。
    Oracle
    宣布支持Linux,并承諾在1998年底推出與Linux兼容產品。這正預示了Linux未來的成功,Oracle的這一宣布引起了社會各界的關注。
    幾乎在同一天, Informix宣布支持Linux。
    SVLUG/Taos "Linux的未來" 座談會召開,與會的有 Linus
    和其他的名人, 這次會后,Intel
    開始正式考慮支持Linux。
    Linus
    出現在福布斯雜志的封面上,該期雜志內有一篇文章對Linux予以高度的評價。從此,越來越多的普通人開始聽說Linux。
    Mandrake
    Linux首次發行,該版本從小紅帽發展而來,融合了KDE和多語言支持。
    Stampede Linux 0.86 發行。
    Debian 2.0
    發布,而且容量極大,達1500個包共兩張光盤。
    MkLinux Linux DR3 發布。
    Caldera推出面向Linux的 Netware 1.0
    八月份
    在開放源碼協議下,EiffelBase
    庫推出,這個庫原來是采用專有協議的。
    小紅帽再次向公眾強調它的軟件安裝支持隊伍:隊伍即將啟動,請公眾耐心等待。
    Bruce Perens, Eric Raymond, Ian Murdock,和 Tim Sailer發起 Open
    Source
    Initiative,旨在管理開放源碼商標的使用(一個月后
    Russ Nelson 和Chip Salzenberg 也加入管理小組)。
    Richard Stallman 呼喚為自由軟件建立自由文檔。
    GNOME 0.25 發布,代碼名為Drooling Macaque。
    原先的Linux基礎標準工作陷入僵局,目標上無法一致,Red
    Hat和Debian于是共同組建Linux兼容標準工程。然后Bruce
    Perens離開了Linux基礎標準組織,在自由軟件圈消失了一段時間。
    Software in the Public Interest
    (SPI)組織在大多數原先的核心人員離開的情況下組建新領導班子,包括了Ian
    Jackson, Martin Schulze, Dale Scheetz 和 Nils Lohner。
    Red Hat
    發表評論,闡述討厭Qt許可證的理由,以及為何他們暫時不會在發行版中包含KDE

    Linux Standards Association
    (LSA)突然冒出來并宣稱為Linux制定真正的標準。LSA
    的說法令輿論嘩然,當輿論紛紛指出Linux社區討厭統一標準的束縛,LSA
    慢慢消失了。LSA
    的價值可能在于促進Linux基礎標準工作組織和Linux兼容標準工程組織的聯合。
    Red Hat 將他們在研發中的版本命名為 RawHide。
    LSA組織的創辦人Michael McLagan對 Linux
    商標的合法性提出質疑,Linux
    International組織委托律師做出反應,Michael
    McLagan最后做出讓步。
    內核 2.1.115 發布,同時,Linus宣布代碼將處于停滯期。
    九月份
    Linux
    互聯網服務器管理指南工程啟動,同時,法語Linux雜志出版。
    Stackguard/Immunix 5.1 發布。StackGuard
    實際上是gcc的一個版本,用以對抗堆棧溢出攻擊;
    Immunix 則是內建了StackGuard編譯器的小紅帽版本。
    Microsoft的Steve Ballmer
    承認他們開始為自由軟件的出現感到擔憂,建議NT部分源代碼對研發人員開放。
    SuSE 5.3 英文版發布。
    Caldera 分為兩家公司: Caldera Systems 在Ransom
    Love領導下從事 Linux 商務, Caldera Thin
    Clients負責研發Linux內嵌系統。
    由于小部分5.3版本用戶反映了安裝過程中出現錯誤,SuSE
    停止向國際發售5.3版本。
    Uniform Driver Interface
    (UDI)工程建議Linux研發人員為UDI接口開發驅動程序,但是Linux社區反應冷淡。
    SuSE 公布Office 99 套裝軟件,捆綁了ApplixWare, KDE,
    和其他優秀軟件。SuSE Office 99
    可能與微軟的辦公套件發生競爭,引起了不少關注。
    IBM 宣布對在 Linux運行DB2提供支持。
    Sybase 宣布支持
    Linux,這一次宣布,意味著Linux已可擁有全系列數據庫產品。
    Inter@ctive
    Week報道,戴爾公司向大客戶出售預裝Linux系統已有一段時間,戴爾小客戶很驚訝,因為他們也有同樣的需求。
    Neomagic
    向XFree86項目組提供其視頻硬件驅動程序的源碼并對外界免費分發。這種視頻硬件驅動程序原先是在小紅帽的贊助下由Precision
    Insight開發的,而且源碼是封閉的。
    Open Group做出讓步在開放源碼協議下發布X11R6.4
    ,從而結束自由軟件史上不甚光彩的一頁。
    Microsoft
    在提交美國************會的年度報告中指出Linux是微軟的一大威脅,據估計他們這種提法是為了影響微軟壟斷案的裁決。
    加拿大 Linux 用戶在全國范圍內舉辦 Installfest
    并獲極大成功。
    十月份
    Intel 和 Netscape (作為兩家風險投資企業)
    宣布小額投資小紅帽軟件,這一投資將用于在小紅帽內部成立企業支持部門。宣布引起了媒體的強烈關注,被視為商業社區認同Linux的信號。
    Intel加入Linux International.
    網絡先驅 Jonathan Postel 逝世。
    Linux國際內核包出臺,既可提供加密機制,又不與臭名昭著的國家加密產品限令沖突。
    GNOME 0.30 發布, LWN 對其發表了評論。
    Linuxpower.org 站點啟動,這是一個Linux
    論文和教學的中心。
    Cygnus 在開放源碼協議下發布實時內嵌操作系統(eCos)。
    Red Hat 在 CDE中發現了安全問題,
    迅速將CDE從包中去除。這反映了這樣的一個事實:因為CDE
    不是開放源碼的軟件,所以不容易修正錯誤。
    Caldera 1.3 發布,此版本包含了Sybase, KDE, 和StarOffice 4.0,
    仍采用libc5,同時Caldera出臺Linux系統管理員培訓課程。
    LinuxToday
    出籠提供每日更新的Linux新聞。這是新一輪Linux站點發布潮的開端。
    Linus在內核中放了太多補丁,Linux內核問題變得緊張起來。Linus有點生氣,休假了一段時間。這次事件說明了內核變得越來越大,不適合再由一個人來­領導。但是事情并沒有妥善的解決。
    bootX 發布使得 PowerPC 用戶更為方便了。
    Oracle8 for Linux 可供下載了,但是142 MB
    絕不是個容易下載的小玩藝。
    AFUL 贊助法國Linux安裝聚會,聚會非常成功。
    Microsoft 引 Linux
    為證指出他們沒有在操作系統方面壟斷,他們的宣布還稱Linux只是一個人的研發成果。
    Larry Wall
    奪得第一屆年度自由軟件基金會獎。Larry是Perl語言的發明人。
    Debian
    考慮到Qt許可協議問題,決定將KDE從他們的發行版中剔除。
    Novell 宣布與Caldera 合作將 NDS 移植到Linux。
    Allaire 宣布 Cold Fusion的未來版本將支持 Linux
    ,這也是很多人期待已久的。
    Compaq
    對增值分銷商在其硬件上安裝Linux提供支持,但沒有銷售預裝Linux系統的計劃。
    LinuxWorld
    網站啟動,意味著Linux商業媒介登臺。該網站的總編是Nicholas
    Petreley,在商業媒介一直 是Linux的支持者。
    Microsoft 在法國發布反Linux公開信,這是微軟FUD
    戰略的開端。這封公開信臭名昭著,受到強烈的指責,最著名的當推來自AFUL的駁斥。
    France Telecom 投資 Cobalt Networks.
    墨西哥 ScholarNet
    項目出籠,該項目將在140000個學校構建基于Linux的計算機實驗室。為推進GNOME
    項目進展,項目主要采用GNOME 。
    亞特蘭大 Linux Showcase取得極大的成功。
    Corel 宣布個人版本的 Word Perfect 8 for Linux
    將可通過網絡免費下載,另外宣布了與小紅帽合作一起為Netwinder提供Linux的計劃。
    Corel 承諾幫助 WINE 的研發,這無疑給
    WINE注入了一劑強心劑。
    Pacific HiTech 宣布將TurboLinux
    深入美國市場。TurboLinux在日本有最大的占有率,現準備進軍其他的市場。
    www.alphalinux.org站點啟動,首次為Alpha
    系統提供相關的Linux信息。
    AFUL 與法國教育部簽約,在法國校園內推行自由軟件。
    內核黑客 David Miller結婚。
    十一月
    兩個Microsoft關于Linux和開放源碼軟件的內部備忘錄到了
    Eric
    Raymond之手,他及時地予以公開。內部備忘錄闡述了Linux強大的一面,各種可能對微軟構成的威脅,以及微軟準備采取的對策。這無疑在媒介激起了軒然大­波。
    Extreme Linux 在 Supercomputing 98上一石激起千層浪。
    Linux在COMDEX成為了熱點,但不是焦點。
    在開放源碼協議下,Eddie
    軟件套裝發布,這是一套用于構建高性能集群的應用程序。
    專有I2O 總線標準公開源代碼, 這樣,I2O
    總線對Linux的支持(這也是Linux迫切需要的)終于實現了。
    Red Hat 5.2
    發布,這將是6.0發布前最為穩定的一款,6.0將融合2.2的內核。
    LinuxPPC 5.0 宣布其實際發布日期將定為1999年1月5日。
    Ext2 成為第二個 Linux 月刊雜志。
    Informix 和Apropos 在100多個Jay Jacobs
    服裝店安裝Linux機器,Linux開始進軍主流商業領域。
    Digital Creations 以開放源碼協議發布 Principia, Principia
    最終將和Bobo 和Aqueduct 一起組成
    Zope。頗為有趣的是,發布
    Principia并和Bobo及Aqueduct的結合是由Digital
    Creations的風險投資方提議的。
    硅谷茶會歡慶微軟學園的成立。
    StarOffice 5 for Linux 正式發布,個人應用可免費下載。
    Troll Tech 宣布將在開放協議下發布 Qt
    2.0。但此開放協議頗受爭議,因為它規定軟件修改后只能以補丁的形式再分發。所以,
    QPL 只是名義上的開放源碼協議。
    穩定內核2.0.36 發布。
    OpenBIOS 0.0.1 發布。
    Slackware Linux 3.6 發布。
    Red Hat 和SuSE
    均在COMDEX上宣布技術支持計劃,均面向企業級技術支持。
    Netscape 購買NewHoo web
    目錄,并承諾研發其適用的數據庫。
    十二月份
    為了更好的反映網站的目的,擺脫Sun公司商標的影響,Sunsite.unc.edu
    站點更名為
    MetaLab.unc.edu。這個站點是Linux資源倉庫以及Linux文檔工程的大本營。
    為了破紀錄,CLOWN 工程搭建了 550節點的Linux集群。
    開放源碼商標所有權之爭爆發,Eric Raymond和Software in
    the Public Interest均宣稱對 Open Source Initiative
    商標的所有權。
    Linus 和Tove
    成為芬蘭獨立日慶典的榮譽客人。他們會見了芬蘭總統并被與會者評為最有意思的一對。
    小紅帽的黑客 Eric Troan 結婚。
    為了便于新內核源代碼的散發,Linux
    內核文檔鏡象系統啟動。
    在Riley Williams和其他人的幫助下,Linux 內核歷史出版。
    Mandrake Linux 5.2 發布。
    Netscape發布Gecko。 Gecko 是Netscape/Mozilla
    研發的拳頭產品,是一個更精干,更快,更符合標準的網頁編輯器。
    適用于PowerPC的Yellow Dog Linux發行版出臺。
    Corel 與 KDE 研發組結盟,為Netwinder 提供KDE界面。
    IBM 發布適用于Linux的文件系統AFS 3.5。
    GNOME 1.0 進入代碼停滯期,0.99 測試版發布。
    Compaq 在GPL協議下為PCI RAID 控制器發布Linux驅動程序。
    LibGGI 2.0 測試版發布。
    IBM 在開放源碼協議下發布一些小軟件,象Jikes Java
    編譯器和 Secure
    Mailer,同時推出可免費下載的DB2測試版。
    Sun 逐漸開放 Java 協議。
    Sun 在UltraSparc上支持Linux。
    Silicon Graphics 加入 Linux
    International并宣布在其系統上運行Samba。
    KDE 1.1 進入代碼停滯期,其測試版發布。
    據報道,IBM
    曾考慮成為Linux的支持服務提供商,考慮到專利和其引發的法律責任而放棄。
    SuSE 6.0 測試版發布。
    報道稱Apple 將發售預裝了Linux的 Power Macintoshes 。
    WordPerfect 8 已可供下載。
    2.2 穩定內核快發布了。
    IDC 稱Linux
    發售量1998年增長了200%,市場份額增長超過150%。Linux已擁有17%的市場份額,這種增長是任何其他操作系統無法匹敵的。
    篇章三:99年大事列表
    一月份
    內核 2.2
    測試版發布,預示世人長久期待的正式穩定內核
    2.2即將發布。
    Linux
    內核文檔鏡象系統啟動,性能卓越,從而解決獲取內核源代碼的問題。
    Joey Hess 發起Debian每周新聞
    SSC 發布Michael Hammel所著《Gimp 藝術家指南》
    Kernel Traffic 啟動,詳細總結了有關Linux 內核的討論。
    Tucows 啟動LinuxBerg站點,這是一個Linux 軟件下載站點。
    Samba
    2.0發布,它反向工程了微軟域名控制協議,使得Linux服務器可以為Windows網絡提供完整服務。
    Corel將它的NetWinder部門賣給Hardware Computing Canada。
    Slackware 網站開始運作。
    1月25日,Kernel 2.2.0經兩年多的研發正式發布。
    惠普和康柏公布將提供基于Linux系統的計劃。
    TCP捆綁代碼被攜帶后門的版本取代,這證明了開放式代碼中也存在后門。但是,很快后門代碼就被修補,沒有站點受到危害。
    Linus
    宣布2.2.1幾星期內不會發布,結果有人在2.2.0版本中植入可導致系統崩潰的Bug,這促成了2.2.1提早發布。
    尋求制造Qt 庫的LGPL 克隆的“和諧工程”正式破產。
    Loki Entertainment Software 宣布將Civilization: Call To
    Power游戲移植到Linux.
    二月份
    Linux 認證如火如荼,SAIR和Linux Professional
    Institute紛紛發布計劃。
    Wichert Akkerman 取代Ian Jackson成為Debian 工程的領導人。
    Lyx1.0.0 發布。
    Dell 開始銷售基于Linux 的服務器。
    Linuxcare
    推出服務計劃,創下一夜成名的Linux公司神話。
    基于Red Hat 5.2的Linux-Mandrake 5.3 發布。
    KDE 1.1 發布。
    Samba 2.0.1 和 Samba
    2.0.2接連發布,雖然后者并未完全公開代碼。
    Debian 2.1 的發布計劃在3月2日舉行。
    SuSE 6.0 國際化發行成型。
    Glibc 2.1
    發布,這樣gcc和egcs編輯器工程項目的分歧日益明顯。
    Burlington制衣廠宣布將在250家店鋪的1100多臺機器上安裝Linux。
    IBM
    宣布與小紅帽建立伙伴關系,以確保小紅帽在IBM機器上正確運行。
    Bruce Perens 因為“自由軟件”定義的分歧從Open Source
    Initiative 組織辭職。
    意大利文本地版Prosa Debian GNU/Linux發布。
    SGI發布GLX擴展代碼。
    3月
    第一屆LinuxWorld 大會在San Jose
    開幕,象征Linux時代的來臨。
    3月2日,Debian 2.1發布不能如期舉行。
    在LinuxWorld 媒體發布上,GNOME 1.0 成為大熱點。
    有消息稱Sun 將有條件公布Solaris 的源代碼。
    Digital Creations提供贊助,Amos Latteier所著《Zope
    每周報道》啟動。
    Troll Tech 公布向Linux移植 Opera 瀏覽器計劃。
    Linux Magazine 雜志粉墨登場。
    VA Research 和Intel 合作將Linux移植到Intel Merced
    處理器,同時Intel 直接注資VA。
    Red Hat 啟動Linux 門戶站點。
    VA Research 用100萬美元買下Linux.com 域名。
    Dell 開始為其Linux系統捆綁Linuxcare 提供的服務 。
    IBM、Compaq、Oracle和Novell均宣布投資小紅帽。
    內核2.2.3發布。
    9日,Debian 2.1 發布。
    Cendant 宣布在4000個旅館應用Linux 系統。
    Qt
    通用許可證1.0版本發布,引起有關源碼開放與否的爭議。
    Corel宣布將發布自己的Linux發行版并將其推向市場。
    Apple公司宣布其操作系統非核心部分將采用“開放源碼”的模式。
    CeBIT 99 在德國開幕,KDE
    獲得年度軟件革新獎,Linux社區獲得“焦點”獎,同時SAP宣布其R/3
    ERP 系統將支持Linux。
    MTI 購買20%Caldera Systems 股票。
    VA Research 業務繁忙,將部分生產委托第三方進行。
    SAP 注資小紅帽。
    美麗莎病毒全球肆虐。
    向Intel 和PowerPC平臺移植的Blackdown JDK 1.2 預發行。
    4月份
    網景為Mozilla 發行一周年舉行慶典。
    Jamie Zawinski 認為Mozilla 計劃是一個失敗,從中退出。
    Dell
    投資小紅帽,開始啟動預裝小紅帽Linux的服務器市場。
    Dell 銷售的Linux系統包含了Linuxcare 90天技術支持。
    Al Gore 的總統競選站點宣稱是“開放源碼”的。
    TheLinuxStore.com 站點開張,銷售低價Linux系統。
    Mindcrast
    研究報告發布,很快成為爭議焦點:這次研究由微軟投資并在微軟實驗室進行,高度評價Windows
    NT,詆毀Linux,但從中也發現Linux內核確實是存在問題的。很快,內核黑客修正了內核。
    FreeS/Wan 1.0發布。
    Caldera OpenLinux 2.2 發布,這是第一個基于Linux
    2.2的發行版。
    Core 宣布其Linux發行版將基于Debian
    KDE,這大大提升了Debian 項目的知名度。
    Linus Torvalds 在春季COMDEX大會上演講。
    SuSE 6.1 發布。
    為Linux新手服務的LinuxNewbie.org 發布
    egcs
    工程委員會成為gcc維護的當家,從此自由軟件內部一次不友好的分裂結束。
    Python 1.5.2 發布。
    KDE 1.1.1 測試版發布。
    HP 為 Caldera, TurboLinux, Red Hat 和 SuSE 提供 24x7支持服務。
    VA Research 收購Linux Hardware Solutions。
    Red Hat 6.0 發布,同樣也是基于2.2內核,但與 OpenLinux
    2.2相比則滯后了。
    UltraSparc 走到了盡頭,它的每個功能特性Red Hat
    6.0都有。
    Cygnus 宣布開放源碼
    Java編譯器,而且,據稱,IBM剛向Win32
    移植的JVM也將能移植到Linux。
    第一次國際操作系統調查結束,140萬主機中,31.3%運行Linux。
    5月份
    Mindcraft
    卷土重來,宣布用公開標準重新對NT和Linux進行測試,這次測試,懂得Linux的人均可參與。
    Guido van Rossum 和Donald Becker 獲得由 Dr. Dobbs
    Journal頒發的編程精英獎。
    wu-ftpd
    導致一時間網絡安全問題成災,但很快出現不少補丁程序。
    Creative Technologies 發布測試版 SB Live
    驅動程序。程序很糟糕,因為沒有開放源代碼而無法及時修復。
    Linus 書寫新USB驅動程序并將其植入2.2.7內核。這一點令
    UUSBD項目組成員驚訝,同時Linux對USB的支持確實大大增強了。
    Definite Linux 6.0 發布。
    Tcl 8.1 發布。
    KDE 1.1.1 發布。
    Rebel.com 成為Hardware Computing Canada的新名,
    這家公司購買了Corel的Netwinder部門。
    經第九巡回法庭的判決,關于加密算法出口的限制違反美國憲法第一修正案。
    內核 2.2.8 推出同時 2.3.0研發開始。
    Debian日本項目組推出日文Debian 2.1.
    TurboLinux 宣布將提供高性能Linux集群。
    Sun Microsystems 宣布Linux 代碼可與Solaris x86兼容。
    LinuxHQ 最終由 Linux.org購買,并更名為 kernelnotes.org。
    兩個開放源碼交流站點:sourceXchange
    和Cosource.com同時開鋪,采用不同的辦法對開放源碼項目組成員進行協調。
    OReilly 在網上發布 "Open
    Sources:來自開源革命的呼聲",此書包含來自Eric
    Raymond, Richard Stallman, Linus Torvalds, Michael Tiemann, Larry Wall,
    和Bruce Perens的精華觀點。
    Stockholm 大學數學研究院授予 Linus Torvalds
    榮譽博士學位。
    Linux.com 新近開鋪。
    Pacific HiTech 更名為TurboLinux。
    VA Research 更名為 VA Linux Systems。
    SGI 宣布向 Linux移植XFS文件系統。
    VA Linux Systems 雇用內核黑客 Ted Tso.
    Slackware 4.0 發布。
    Corels WordPerfect for Linux 下載量突破100萬。
    LinuxToday發起LinuxPR.com,這是一個專業
    Linux相關媒體發布站點。
    Havoc Pennington的每周Gnome 研發總結創刊推出。
    安全 Linux 發行版計劃出臺,同時3個相關項目誕生:
    SecureLinux, Khaos Linux和 Bastille Linux。
    Linux-Mandrake 6.0發布。
    Linux Counter 在 5月 26日訪問量突破10萬。
    6月份
    Red Hat提交IPO申請,發言人Melissa
    London拒絕就IPO發表評論。
    Microsoft 向開放式研發邁出第一步,與ActiveState簽約
    在Artistic license許可協議下開發 Perl。
    LinuxDev.net開鋪,帶來專為Linux研發人員定制的新聞。
    Debian 組織公布新的Logo。
    第一屆菲律賓Linux 99在Makati城的香格里拉飯店召開。
    Linux Professional Institute
    宣布企業贊助方,包括Linuxcare,IBM,Macmillan USA, Computing
    McGraw-Hill, Linux Journal, New Riders Publishing以及 SuSE, Caldera
    和 New Wave Technology.
    澳大利亞開放源碼座談會在墨爾本召開。
    2.2內核出現遠程拒絕服務問題,Alan Cox
    在數小時內修正了內核。
    Carsten "Rasterman" Haitzler 從Red Hat 辭職來到VA Linux Systems。
    Sun
    Microsystems在太陽社區源代碼協議下發布高性能集群工具。
    Guylhem Aznar接管 Linux 文件系統工程。
    由于美國專利商標局不愿意,"Open
    Source"作為商標的計劃擱淺。
    VA Linux Systems 從Compaq 雇用了Jon maddogHall。
    LinuxPPC 5.0 發布。
    PostgreSQL v6.5
    發布,其新性能包括高性能鎖定機制和熱備份。
    VA Linux Systems的董事會成員包括 Eric Raymond,Eric Raymond
    同時也是開放源碼運動的非正式發言人。
    Linux Expo 99 巴黎會議召開。
    Eric Raymond 在微軟做演講。
    VA Linux Systems 從Intel, SGI, Lehman Brothers以及 Sumitomo
    Corporation獲取投資。
    Hewlett-Packard 發布一款基于Linux的工作站。
    Eric Raymond 出版“超級魔法爐
    ”這篇文章是一個系列三篇中的第三篇,第一篇是“教堂和集市

    Mindcraft
    的基準在Linux專家的同意下執行,NT仍然贏了,但是Linux的問題很快就得以修復。
    Andover.net收購Slashdot.net。
    TurboLinux 工作站3.6發布。
    Apache 軟件基金會成立。
    Qt 2.0 發布。
    LinuxTag 99 在Kaiserslautern大學召開。
    Alan Cox發起Linux Portaloo。
    Sun 發布 JDK 1.2.2.
    IBM 發布自己版本的 、面向Linux的Sun JDK 1.1.6,
    其中包含了實時編譯技術。
    又一Perl 協商會在 Carnegie-Mellon大學召開。
    NVidia為它的芯片集發布開放源碼驅動程序。
    Matrox 為其G400 芯片集發布規格說明。
    7月份
    Lotus宣布他將把Domino 向Linux移植。
    Debian 項目組為9月份發布討論暫時的凍結。
    Midgard 1.1 發布。
    澳大利亞Linux 用戶協商會在墨爾本召開
    Red Hat
    公布股票發行計劃,Linux研發人員得以IPO價格購買Red
    Hat 股票。
    Oracle 為Linux推出 Oracle8i,在業界激起千層浪。
    Caldera 瘦客戶端有 Lineo; 重點從 DR-DOS 轉向OpenLinux
    內嵌版"Embeddix."
    Dataquest 預測 Linux
    在2003年將占服務區應用銷售份額的25%,
    Sun/Netscape 聯盟成立,Netscape
    應用服務器將不再面向Linux。
    渥太華 Linux 討論會召開。
    IBM 啟動對
    Linux的支持服務,從此有關Linux得不到支持服務的歷史一去不復返了。
    IBM 發布Linux DB2。
    VA Linux Systems 啟動Linux支持服務。
    TurboLinux 宣稱在日本其銷量超過Windows。
    8月份

    SGI 發布基于Linux的服務器1400L, 并與Red Hat
    建立伙伴關系,大舉參與內核研發。
    Eric Raymond 推出新版本“大教堂和集市 ”,OReilly
    出版。
    MandrakeSoft 雇用 KDE黑客David Faure 開發 Koffice 。
    Red Hat 發布 GNOME 更新,30%的Red Hat 6.0用戶采用了更新。
    第二屆 LinuxWorld Conference and Expo 在San Jose開幕。
    Red Hat股票發行,發行日以每股50美元收盤。
    IBM 加入 Trillian 工程,此工程計劃將Linux 移植到IA-64
    ("Merced", "Itanium")處理器上。
    Microsoft 在網上測試 Windows 2000
    系統安全性,一天之內就被攻破好幾次。
    穩定內核 2.2.11 發布, Linus 將2.2 內核工作完全移交給
    Alan Cox.
    Linus抱怨得不到ISDN補丁,2.4內核將可應用ISDN。
    Definite Linux 6.1 發布。
    摩托羅拉宣布與Lineo建立伙伴關系,開展Linux內嵌系統的研發、支持和服務。
    LWN.net 開辟Linux股票專欄。
    Freshmeat.net 收購Andover.net。
    RAID 0.90
    被融合進2.2.12補丁中,之后出于各種考慮又從中剔除。
    Andrea Arcangeli和 Gerhard
    Wichert宣布Linux在32位Intel系統上支持的內存可達到4G。
    Atipa Linux Solutions 為摩托羅拉構建 200個節點 Beowulf
    集群,用于半導體建模和研發。
    Genetic Programming, Inc發布面向基因編程達1000個節點的
    Beowulf 系統。Corel 和Rebel.com 捐贈了一批 NetWinder
    系統到聯合國發展署。
    AXA 創新基金投資 MandrakeSoft。
    Red Hat 和Caldera Systems發布“系統不存在2000年
    問題”的聲明。
    SGI 在Linux內核中加入回旋鎖定測量代碼。
    Ted Nelson最終以開放源碼的形式向世人發布 Xanadu。
    Midgard 1.2 發布
    SourceXchange首批發布 RFPs, 均來自HP公司。.
    Red Hat 與日本 Itsutsubashi
    研究公司斷絕關系,宣布推出自己的日語發行板;
    Itsutsubashi 發布 LASER5 版本,與小紅帽公司競爭。
    OReilly 開放源碼大會在CA的Monterey召開。
    新出現的 FTP 安全問題導致網上陷阱重生。
    Sun 收購StarDivision并在太陽社區源碼協議下推出
    StarOffice 。
    Cryptix純粹的太陽公司Java 加密擴展發布。
    9月份
    SGI 推出圖形化研發環境"Jessie"。
    Zope 2.0 發布。
    首次Linux 股票狂飆, Applix 發行量為原有的兩倍, 達到
    2700萬股。
    HPTi
    獲得向美國政府提供Linux集群的合同,在競爭性極強的政府大項目中,這是Linux的首次大勝利。
    Bind 8.2
    在發布過程中,系統的一部分沒有開放源代碼,這曾引起爭議,后來解決了。
    SCO 在北歐發行的宣傳手冊上詆毀Linux:
    "Linux此時不足以滿足企業營運、安全的需求,它只是計算機專業學生的玩具而不是一個嚴肅的操作系統;Linux本質上是一個完全免費的玩藝,沒有公司和個­人對其負責。”
    Proftpd的安全問題使網絡變得極為脆弱。
    Caldera OpenLinux 2.3 發布。
    GNU Privacy Guard (GnuPG) 1.0發布。 GnuPG
    是免費的PGP加密程序替代品。
    Gateway 開始供應預裝Linux的服務器。
    Burlington制衣廠向小紅帽購買支持服務。.
    Red Hat 股價升至$135/股,價位出奇的高。
    Caldera Systems 發布"Lizard" 安裝器源碼。
    Pluto Meeting 99 在意大利 Padua開幕,演講人包括內核黑客
    Andrea Arcangeli。
    Channel One Gmbh 在德國注冊 "Linux"
    商標但很快在一片譏諷聲中草草收場。
    IBM 通過在 Thinkpad 600E 筆記本電腦上安裝 Linux
    的認證,盡管安裝過程非常困難而且安裝部件沒有全部成功安裝。
    Debian 2.1r3 發布,僅包含了Bug以及安全補丁。
    研發中內核 2.3.18 發布,集成了PCMCIA驅動,
    這種驅動原先是單獨發布的。
    Corel 將對其發行版測試,但是測試協議卻違反了GPL
    條款。
    KDE 1.1.2 發布。
    Cobalt Networks 提交IPO申請,籌集大約2300萬美元。
    Linux 演示在全世界舉行。
    Ext3 首次發布使得 Linux日志系統成為現實。
    Linux-Mandrake 6.1 發布。
    Andover.net 提交IPO申請。.
    LinuxOne
    提交IPO申請,這一次IPO令人驚訝:首先,很少有人聽說過LinuxOne,其次,這家公司沒有產品,沒有收入,沒有人擔保,僅存在了幾個月而已。
    Netcraft稱英國王室站點是在Linux系統上運行的。
    內嵌系統大會在 San Jose開幕,Linux成為焦點。 Cygnus
    在會上推出"EL/IX"。
    PC Week
    提出了向Linux系統進攻的挑戰,Linux系統被攻破了,但問題在于第三方CGI程序而不在Linux本身:PC
    WEEK沒有對Linux系統進行更新。
    VA Linux Systems 宣布新的專業化服務團隊。
    Linus Torvalds被Stockholm 大學授予名譽博士。
    LinuxWorld Conference and Expo 在東京開幕。
    Blackdown將JDK1.2向Linux移植出現突破,穩定版本有望推出。
    兩個開放源碼GPL 電子商務應用程序OpenSales和
    Yams發布。
    開放源碼實踐管理高峰會在多倫多舉行,此次大會由Minoru
    Development Corporation提供贊助。
    LinuxPPC 1999 Q3 發布。
    十月份
    Sun Microsystems 宣布將在太陽社區源碼協議下開放Solaris
    代碼。
    Microsoft 推出《Linux Myths》全面攻擊 Linux。
    Ssh 1.1.12
    不象以后的版本,是在自由協議下發布的,由此誕生的OpenSSH
    項目旨在去除專利算法,研發真正意義上的自由安全的Shell。
    Definite Linux 7.0 發布。
    SCO投資Linux Mall。
    Red Hat Linux 6.1 發布。
    TurboLinux 從 Intel, Broadview Associates,和August
    Capital獲得投資,并取得在日本診所安裝20000套系統的合同。
    亞特蘭大Linux 展會開幕。
    LWN 企鵝陳列室建成,現已陳列200多個企鵝像。
    VA Linux, OReilly, 和SGI 一起贊助 Debian “盒子”產品。
    Bruce (Perens) 2.0 發布。
    第二屆KDE 研發人員協商會在德國的 Erlangen開幕。
    VA Linux Systems 提交IPO計劃。
    Bob Young新書“紅色旋風”由Coriolis出版發行。
    Cobalt Networks和Gateway 達成協議, Gateway 成為
    Cobalt服務器分銷商。
    Internet.com收購LinuxToday,協辦人Dave Whitinger離開。
    十月份GNOME 推出,內含眾多修補或更新的程序。
    Motorola 投資 Lineo。
    Red Hat 和Compaq 簽訂互惠支持協議。
    Wu-ftpd 導致了Linux 系統更多的安全漏洞。
    IBM 公布面向Linux JDK 1.1.8的 JVM
    ,稱其性能比在NT下運行為佳。
    Sun 預先宣布與 Java 2兼容的面向 Linux的JVM。
    FreeGIS
    項目宣布,旨在促進更多自由地理信息系統軟件的研發和使用。
    GRASS GIS 系統在 GPL 條款下發布。
    面向Linux內嵌系統的LinuxDevices.com開鋪。
    十一月份
    Corel 與 PC Chips 簽訂協議,將在2000年隨同PC
    Chips的主板捆綁2000萬個Corel Linux發行版。
    Linux DVD 研發人員破解了 DVD 加密格式,這證明了DVD
    加密格式很糟,封閉源碼的加密本身是一個錯誤。
    Ingo Molnar 在2.3
    內核中的改進使Linux可以在32位Intel處理器下支持64G內存。
    Debian “馬鈴薯”凍結將延續到11月7日。
    Slackware 7 發布,前一個版本號為
    4,這個跳躍是為了適應市場的需求。
    Creative Technology 在GPL條款下推出SB Live聲卡驅動程序。
    Red Hat 建立開放源碼Red Hat 中心,
    這是一個非盈利的組織,旨在基于大眾利益出發推進開放源碼原則,贊助,支持和從事范圍廣泛的科研和教育項目。
    Linux-India 在IT.COM 99——一個
    印度焦點會議中表現突出。
    Red Hat 宣布與
    Oracle聯合推出新款發行版,其中含了Motif。
    Microsoft
    被美國地方法院裁定為壟斷。調查結果顯示Linux還未對Microsoft構成威脅。
    SGI 發布新內核機制:內核崩潰垃圾分析器。
    來自Namesys的研發人員發布新版日志系統Reiserfs,這樣Linux擁有了兩套日志系統。
    Debian “馬鈴薯”凍結推至
    2000年1月15日。啟動盤問題是導致推遲的原因。
    Kondara 日文MNU/Linux 1.0 發布,此發行版基于 Red Hat的Raw
    Hide。
    Cobalt Networks 上市,很快股價升至$130/股,
    幾乎是發行價的6倍($22/股),股市強烈看好Linux。
    Comdex
    Linux商展在賭城拉斯維加斯開幕,參觀者絡繹不絕,其中許多人是首次見識Linux。
    Corel 在Comdex Linux商展中首次推出Linux發行版。
    Linux Professional Institute 舉行首次專業Linux認證測試。
    SuSE 6.3 將在十二月面市。
    Mozilla Milestone 11
    發布,此開放源碼瀏覽器終于有了一點可用性。
    OReilly出版《Samba
    使用指南》并被Samba項目組采用,此書是在open content
    license下發行的。
    Sybase 宣布對Zope 開發提供支持。
    Red Hat 以7億股價收購 Cygnus,Red Hat
    的并購似乎啟動了。
    VA Linux Systems 將股票發行價定為 $11-13/股。
    VA Linux Systems 和SuSE 建立研發伙伴關系。
    Supercomputing 99 開幕, Linux 也是會議焦點。
    XFree86項目組以榮譽會員身份加入X.org。
    Linux 文檔工程有了 新的logo, 新網頁,新文檔和用DocBook
    格式工作的能力。
    ET-Linux 1.2 由Prosa 發布。
    Real-time Linux 2.0 發布。
    VA Linux Systems
    公布定向配股計劃,這樣使得Linux研發人員可以用初始價購進VA
    Linux部分股票。
    SuSE 從Intel和Apax Partners獲得投資。
    Blackdown的JDK 1.2.2 和JDK 1.1.8可望在月中發布。
    Sun 招聘支持 Java在 Linux平臺上應用的程序員。
    Gimp
    用戶指南第二版發布,網上可以獲得,另Coriolis以書籍形式出版。
    十二月份
    SuSE資助的 ALSA 專業團隊成立,旨在研發高級Linux
    聲音體系。
    Andover.net 以$18/股發行, 當時收盤價突破
    $60。這被視為Andover.net和OpenIPO的共同勝利。
    VA Linux Systems
    經兩次重新調價,第二天首次發行,發行價
    $30/股,股價迅速攀升并突破 $300/股,
    當日以$250/股收盤,這是 NASDAQ IPO的新紀錄。.
    Linux 股熱波及了任何與Linux沾邊的股票。
    Linux 內核2.3.30 發布,內含了對 NUMA
    系統的支持。NUMA是大規模多處理器系統應用中的一項重要技術。
    Sun 發布面向Linux的Java 2 應用,Sun
    在發布中忽略了Blackdown的功績,造成了很多人的不愉快。
    SuSE 6.3 面市。
    Zope 2.1.1發布。
    Dell 宣布對全線 PowerEdge
    服務器提供Linux,同時Dell系統包括了90天Red Hat
    技術支持服務。
    OReilly 網絡開始啟動。
    Matra Datavision 在開放源碼協議下發布CASCADE。 CASCADE
    主要用于幾何建模; Matra Datavision
    宣稱為CASCADE花費了7500萬,采用的協議與
    GPL頗為相似。.
    Miguel de Icaza 因為他在GNOME項目中的工作被授予FSF Free
    Software Award 。
    Bastille Linux 1.0.0
    發布,旨在推出一個高度安全可靠的發行版。
    測試內核2.3.33發布。
    Zack
    Brown發起內核期刊,旨在成為內核信息的權威來源。
    Red Hat收購德語發行版Delix。
    Debian 2.1r4 發布,修復一些安全以及2000年問題。.
    Linux-Mandrake 6.1 經認證無2000年問題。
    Storm Linux 2000 發布
    KDE 2.0不穩定預覽版KRASH發布。
    Zope和Mozilla 建立伙伴關系。
    HP
    旨在提供網絡服務,而且服務的尋找、集成和獲得無需事先協議的確定,此次先推出E-speak測試版。
    Xybernaut 發布耐用穩定的 Linux 系統。
    Linuxcare 收購Puffin Group, Prosa,和Cheek Consulting并獲得
    3250萬風險投資。
    Caldera, Red Hat, SuSE, 以及TurboLinux 加入 Trillian項目。
    Bruce Perens 成為Linux Capital
    Group總裁,這是一家為剛啟動的Linux公司提供風險投資的公司。
    Applix 一成立在一周內就收購了 CoSource.com。
    巴西立法局立法規定政府機構必須使用開放源碼軟件。
    Red Hat 公布拆股計劃。
    Eric Raymond 開始撰寫《unix 編程藝術》
    Sun 從與 European Computer Manufacturers Association
    (ECMA)合作設立Java標準的工作中退出,拒絕提交關鍵文檔。
    Sun 再一次提前宣布基于Linux 的Java 2 的推出,
    同時透露正與 Inprise 合作推出JDK
    1.2.2。這次舉動令Blackdown組織頗為不安。
    很快 Blackdown 也宣布推出JDK 1.2.2 RC3,而恰好一年前
    Sun的JDK 1.2 面世。
    Gimp 1.1 進入最后測試,1.2 穩定版估計在2000年初發行。
    Mozilla M12 發布,幾乎到達alpha階段了
    Linux-Mandrake 7.0
    以測試版的形式發布,內含了一個可由用戶配置的安全級別設置工具。
    GNUPC.com
    啟動,他們沒有在系統中預裝Linux,相反,隨系統附上了7種發行版。
    Eric Raymond 的 《Unix
    Programming藝術》正在撰寫中,這是一本關于在Unix環境下如何編程的書。
    Richard Stallman 號召制裁Amazon.com。
    實時Linux 工作室在維也納啟動。
    DVD拷貝控制協會對 72
    個被告提交指控。被告中有的參加了DVD加密格式反向工程,有的或多或少與DVD格式的破解有關。
    1999 Debian GNU/Linux 大事記發布。

    posted @ 2005-12-02 13:12 ivaneeo 閱讀(592) | 評論 (0)編輯 收藏

    幾個重要的RedHat Linux內核文件介紹 [轉貼 2005-09-30 090534 發表者 fannao_linux]

    在網絡中,不少服務器采用的是Linux系統。為了進一步提高服務器的性能,可能需要根據特定的硬件及需求重新編譯Linux內核。編譯Linux內核,需要根­據規定的步驟進行,編譯內核過程中涉及到幾個重要的文件。比如對于RedHat
    Linux,在boot目錄下有一些與Linux內核有關的文件,進入boot執行:ls –l,如圖所示。編譯過RedHat
    Linux內核的人對其中的System.map
    、vmlinuz、initrd-2.4.7-10.img印象可能比較深刻,因為編譯內核過程中涉及到這些文件的建立等操作。那么這幾個文件是怎么產生的?又­有什么作用呢?本文對此做些介紹。

    一、vmlinuz
    vmlinuz是可引導的、壓縮的內核。"vm"代表"Virtual Memory"。Linux
    支持虛擬內存,不像老的操作系統比如DOS有640KB內存的限制。Linux能夠使用硬盤空間作為虛擬內存,因此得名"vm"。vmlinuz是可執行的Li­nux內核,它位于bootvmlinuz,它一般是一個軟鏈接,比如圖中是vmlinuz-
    2.4.7-10的軟鏈接。
    vmlinuz的建立有兩種方式。一是編譯內核時通過"make zImage"創建,然后通過:
    "cp usrsrclinux-2.4archi386linuxbootzImagebootvmlinuz"產生。zImage適用于小內核的情況,它的存在是為­了向后的兼容性。二是內核編譯時通過命令make
    bzImage創建,然后通過:"cp
    usrsrclinux-2.4archi386linuxbootbzImagebootvmlinuz"產生。bzImage是壓縮的內核映像,需要注意,­bzImage不是用bzip2壓縮的,bzImage中的bz容易引起誤解,bz表示"big
    zImage"。 bzImage中的b是"big"意思。
    zImage(vmlinuz)和bzImage(vmlinuz)都是用gzip壓縮的。它們不僅是一個壓縮文件,而且在這兩個文件的開頭部分內嵌有gzip­解壓縮代碼。所以你不能用gunzip
    或 gzip –dc解包vmlinuz。
    內核文件中包含一個微型的gzip用于解壓縮內核并引導它。兩者的不同之處在于,老的zImage解壓縮內核到低端內存(第一個640K),bzImage解壓­縮內核到高端內存(1M以上)。如果內核比較小,那么可以采用zImage
    或bzImage之一,兩種方式引導的系統運行時是相同的。大的內核采用bzImage,不能采用zImage。
    vmlinux是未壓縮的內核,vmlinuz是vmlinux的壓縮文件。
    二、 initrd-x.x.x.img
    initrd是"initial ramdisk"的簡寫。initrd一般被用來臨時的引導硬件到實際內核vmlinuz能夠接管并繼續引導的狀態。
    圖中的initrd-2.4.7-10.img主要是用于加載ext3等文件系統及scsi設備的驅動
    。比如,使用的是scsi硬盤,而內核vmlinuz中并沒有這個scsi硬件的驅動,那么在裝入scsi模塊之前,內核不能加載根文件系統,但scsi模塊存­儲在根文件系統的libmodules下。為了解決這個問題,可以引導一個能夠讀實際內核的initrd內核并用initrd修正scsi引導問題。
    initrd-2.4.7-10.img是用gzip壓縮的文件,下面來看一看這個文件的內容,操作步驟如下圖所示:

    從圖中linuxrc這個腳本的內容可以看到,initrd實現加載一些模塊和安裝文件系統等。
    initrd映象文件是使用mkinitrd創建的。mkinitrd實用程序能夠創建initrd映象文件。這個命令是RedHat專有的。其它Linux發­行版或許有相應的命令。這是個很方便的實用程序。具體情況請看幫助:man
    mkinitrd

    下面的命令創建initrd映象文件:

    三、 System.map
    System.map是一個特定內核的內核符號表。它是你當前運行的內核的System.map的鏈接。
    內核符號表是怎么創建的呢 System.map是由"nmvmlinux"產生并且不相關的符號被濾出。對于本文中的例子,編譯內核時,System.map創建在usrsrclinu­x-
    2.4System.map。像下面這樣:
    nm bootvmlinux-2.4.7-10 System.map
    下面幾行來自usrsrclinux-2.4Makefile:
    nm vmlinux grep -v '(compiled)(.o$$)( [aUw] )(..ng$$)(LASH[RL]DI)' sort
    System.map
    然后復制到boot
    cp usrsrclinuxSystem.map bootSystem.map-2.4.7-10
    下圖是System.map文件的一部分:

    在進行程序設計時,會命名一些變量名或函數名之類的符號。Linux內核是一個很復雜的代碼塊,有許許多多的全局符號。
    Linux內核不使用符號名,而是通過變量或函數的地址來識別變量或函數名。比如不是使用size_t
    BytesRead這樣的符號,而是像c0343f20這樣引用這個變量。
    對于使用計算機的人來說,更喜歡使用那些像size_t
    BytesRead這樣的名字,而不喜歡像c0343f20這樣的名字。內核主要是用c寫的,所以編譯器連接器允許我們編碼時使用符號名,當內核運行時使用地址­。

    然而,在有的情況下,我們需要知道符號的地址,或者需要知道地址對應的符號。這由符號表來完成,符號表是所有符號連同它們的地址的列表。上圖就是一個內核符號表­,由上圖可知變量名checkCPUtype在內核地址c01000a5。

    Linux 符號表使用到2個文件:
    procksyms
    System.map
    下圖是procksyms的一部分。
    procksyms是一個"proc
    file",在內核引導時創建。實際上,它并不真正的是一個文件,它只不過是內核數據的表示,卻給人們是一個磁盤文件的假象,這從它的文件大小是0可以看出來。­然而,System.map是存在于你的文件系統上的實際文件。當你編譯一個新內核時,各個符號名的地址要發生變化,你的老的System.map具有的是錯誤­的符號信息。
    每次內核編譯時產生一個新的System.map,你應當用新的System.map來取代老的System.map。

    雖然內核本身并不真正使用System.map,但其它程序比如klogd, lsof和ps等軟件需要一個正確的System.map。
    如果你使用錯誤的或沒有System.map,klogd的輸出將是不可靠的,這對于排除程序故障會帶來困難。沒有System.map,你可能會面臨一些令人­煩惱的提示信息。

    另外少數驅動需要System.map來解析符號,沒有為你當前運行的特定內核創建的System.map它們就不能正常工作。
    Linux的內核日志守護進程klogd為了執行名稱-地址解析,klogd需要使用System.map。
    System.map應當放在使用它的軟件能夠找到它的地方。執行:man
    klogd可知,如果沒有將System.map作為一個變量的位置給klogd,那么它將按照下面的順序,在三個地方查找System.map:
    bootSystem.map
    System.map
    usrsrclinuxSystem.map
    System.map也有版本信息,klogd能夠智能地查找正確的映象(map)文件。

    本人評述:絕對好文!!!

    轉自:httpwenwei.blueidea.comarticle.aspid=44

    posted @ 2005-11-28 20:43 ivaneeo 閱讀(404) | 評論 (0)編輯 收藏

    這些日子我一直在寫一個實時操作系統內核,已有小成了,等寫完我會全部公開,希望能夠為國內IT的發展盡自己一份微薄的力量。最近看到很多學生朋友和我當年一樣沒有方向,所以把我的經歷寫出來與大家共勉,希望能給剛如行的朋友們一點點幫助。

    一轉眼我在IT行業學習工作已經七年多了,這期間我做過網頁,寫過MIS、數據庫,應用程序,做過通信軟件、硬件驅動、協議棧,到現在做操作系統內核和IC相關開發,這中間走了很多彎路,也吃了不少苦。

    我上的是一個三流的高校,就連同一個城市的人多數都不知道。因為學校不好也就沒有指望能靠學校名氣找一個好工作。所有的希望都寄托在自己的努力上了,大一開學前的假期我就開始了學習,記得我買的第一本書是《計算機基礎DOS3.0》,大家別嚇著了,其實當時已經普及了DOS6.22了,只是我在書店里看到了DOS4.0,5.0,6.0的書,以為像英語那樣是第四、五、六冊,記得當時到處找DOS1.0,現在想想也幸好我沒有找到:)開學前我學完了PASCAL,那時既沒有計算機也沒有人可以請教,我連程序是什么的概念都沒有,只好死記硬背代碼,然后拿紙寫,我一直到大三才有了一臺486,在這之前用紙寫了多少程序我也記不清楚了,只知道最長的一個我拿A4大小的草稿紙寫了30多頁,我的C語言、C++、VC都是在這樣的條件下入門的。所以說條件是可以克服的,希望我的經歷多少給條件艱苦的同學們一點信心。第一次上機是在我姐夫的機房,我的心情激動的無與倫比,但是一上機我立刻傻了眼,他們用的是英文版的Win3.1,我的那點DOS知識都見了鬼,上機提心吊膽的一陣瞎摸,一不小心把Word弄成了全屏,怎么都還不了原,當時真是心急如焚,我以為機器被我弄壞了。第一個C語言程序,就是那個經典的HelloWorld,我調了幾個星期,上機機會非常少,也沒有書告訴我開發環境(TC2.0)需要設置,而且開始我都不知道有編譯器,我甚至自作聰明把寫好的程序擴展名從.c改成.exe,結果可想而知。大一學完了C、X86的匯編、數據結構、C++。由于精力都花在自學上了,大一下四門課掛了彩,三類學校就是這點好,掛上一二十門也照樣畢業。不過扯遠點說,我那么刻苦都及不了格,可見我們國家的計算機教育有多死板。

    大二準備學VC和BC,當時難以取舍,后來選了VC,不為別的,只為書店里兩本書,VC那本便宜6塊錢。我的努力在班上無人能及,學的日夜不分,大三有了計算機后更是如此,很多次父親半夜教訓我說我不要命了,我一直覺得自己基礎差,記憶又不行,條件也不好,所以覺得只有多花點時間才能趕上別人。居然后來有許多朋友說我有學計算機的天賦,讓我哭笑不得。我用的是486,16M內存,1G硬盤,當時同學們的配置都是P166MMX,我安裝一個Windows
    NT4.0需要一個通宵,
    編譯一個BC5.0向導生成的程序需要近兩個小時,我的顯示器是個二手的,輻射非常大,開機屏幕冒火花,看起來很酷的:),有一次程序寫的太久,覺得怎么白色的編輯器背景變成了紫色,以為顯示器壞了,后來才發現眼睛不行了,不過說來也奇怪,到今天我的視力還能保持1.5,真是個奇跡。但是就是那臺破機器陪伴了我兩年,讓我學會了VC、Delphi、SQLServer等。后來那臺機器給我阿姨打字用,據她說一天她正打的開心,一股青煙夾著火苗從顯示器鉆出來,之后它才壽終正寢。

    大三假期找了個機會在一個計算機研究所實習,與其說實習不如說是做義工,工作了兩個月一分錢沒有拿。但是這兩個月對我的發展幫助很大,讓我早一步了解了社會,剛去的時候我當然是一竅不通,在那里我熟悉了網絡,學會了Delphi和Oracle。由于工作很認真,得到了比較好的評價,在一位長者的引薦下,我開始和他們一起做項目,這使我在大三大四就有了自己的收入,大四又找了兩家MIS公司兼職,雖然錢不多,但是在學生期間有1000多的收入我已經非常滿足了,我終于用自己賺的錢把計算機換了。大四下開始找工作,這時我的工作經驗已經比較多(當然現在想想非常幼稚),開始聽父母的想去那個研究所,實習過那個部門也希望我能去,但是不知道為什么最后不了了之,這種單位就是比較官僚,我一氣之下就到了我兼職的一個公司做MIS的TeamLeader。在大三到畢業一年的時間,做過了各種MIS,從煤氣、煙廠、公安、鐵路、飲食到高校,什么有錢做什么,工作也很辛苦,經常加班和熬通宵,從跟客戶談需求到設計、編碼、測試、交付都要上。那時覺得很有成就感,覺得自己還不錯,現在想想真是很膚淺。

    剛走上工作崗位的學生很容易被誤導,各種開發工具讓人眼花繚亂,同時也覺得很受公司器重,但這樣工作永遠是一個低層次的開發者。不要跟我說什么系統分析有多么多么重要,多么多么難。你以為自己跟用戶談需求做設計就是系統分析和設計了嗎,國內又有幾個公司能夠做的很到位很規范?我是ISO9000內審員,也在Rational公司受過多次培訓,拿了4個證書,還有一個公司讓我去做CMM。這些我聽過很多,但是很多事情到國內就變了性質,一個公司不是通過了ISO9000或者CMM就能規范了,我現在在一家有幾十年歷史的外企工作,里面的管理不是一般國內企業能及的。作為一個畢業不久以前沒有步入過社會的學生,幾乎不可能在很短的時間掌握系統分析和設計,面向對象、UML只是一個工具,關鍵是人本身的思想,不是說你熟悉了C++、Rose就能夠做出好的設計,相反如果你具備了很高的素質,你可以用C寫出比別人用C++更加模塊化的程序。

    話說遠一些,國內軟件開發行業有一個怪圈,很多人覺得VC > Delphi >
    VB,真是很搞笑。這幾個軟件我都做過開發,說白了他們都是工具,應該根據應用的需要選擇采用哪個,而不是覺得哪個上層次。如果你因為用某個開發工具很有面子而選擇的話,只能說明你很淺薄。如果說層次,那么這些工具都不上層次,因為它們用來用去都是一些系統的API,微軟的朋友不會因為你記住他們多少個API或者多少個類就會覺得你很了不起,你永遠只是他們的客戶,他們看重的是你口袋里的銀子。我也做過系統內核,我也封裝過很多API,同樣我也不會看重那些使用這些API做二次開發的客戶,除非他能夠作出自己獨到的設計。

    至于有人認為C++ >
    C那更是讓人笑掉大牙,不妨你去打聽一下,現在有幾個操作系統內核是用C++寫的,又有幾個實時系統用的是C++,當然我也不是說C++不好,但是目前的內核和實時系統中C++還無法與C匹敵,至于說C++適合做應用系統的開發那是另外一回事。所以我的觀點是不在于你用什么工具和語言,而在于你干什么工作。你的設計體現了你的技術層次。

    這樣干了一年我覺得非常苦悶,做的大多數都是熟練工種的活,個人技術上沒有太多的提高也看不到方向。所以決定離開這個城市去上海,尋求更好的發展,并且打算放棄我以前的MIS轉到通信行業。
    寫到這里不能不提到我女朋友,我們是在來上海前半年認識的,她大四在我公司實習,公司派她給我寫文檔,我們的感情發展的很快。她告訴我很多事情,她家原本是改革開放的第一批暴發戶,她母親愛打牌,輸掉了幾百萬,還欠了很多債,她有男朋友,但是她對他沒有感情,只因為他給了她母親兩萬多塊錢,后來還強迫她寫了四萬塊的借條,她男朋友背叛過她并且不止一次打她,現在逼她結婚不然就要她還錢。這人居然還是一個高校的老師!她母親把父親給她的學費花了,因為拖欠學費她沒有辦法拿到畢業證。她母親現在有病需要錢,我拿出了自己的一點積蓄并且跟朋友們接了一些,替她交了學費并給她母親看病(后來才知道看病的錢又不知所終,就連她母親是不是有病我都不知道,但她也是沒有辦法)。這個時候我家知道了一些事情,堅決反對我和她在一起,她原來的男朋友也極力破壞。無奈之下我們決定早一定離開這個傷心的城市,并且瞞著我們家。由于時間倉促,我只準備了4000塊錢,她僅有的幾百塊錢也被她母親要去了,我買了三張票,一張是中午的,兩張是晚上的,中午我的家人把我送上船,他們一離開我就下了船,我和她乘坐晚上的船離開了這個我和她生活了很多年的城市,帶走的只是一身債務。沒有來過上海的我們兩個性倔強,都不愿意去麻煩同學和朋友。來到上海是傍晚6點半,我們都不知道該去哪里,我們找了一個20塊錢的旅館,這個房間連窗戶都沒有,7月份的天氣酷熱難耐,房間里非常悶熱。第二天我們開始租房子,因為身上的錢不多,我們基本都是步行,花了一個星期時間,不知道在浦東轉了多少圈后找到了一個400塊的房子,但是我們都不了解上海是付三壓一,還要付半個月的中介費,買了一些鍋碗瓢盆后,我們身上只有800塊錢了,工作都還沒有著落,這800塊錢要支持到我們拿到第一個月工資,為了省錢我們自己做飯,每天買菜只花兩塊錢,她非常喜歡吃(也可能她在大學經常挨餓的愿意),看到她現在這樣省吃儉用我真的很不忍心。她以前的男朋友也沒有放過她,經常打電話來騷擾,并且來上海看她,還說了不少恐嚇她的話,她過于善良,說他以前畢竟幫助過她,叫我不要與他一般見識。以后的每天在家就是苦等面試通知,原本我想迅速找一家MIS公司解決眼前的困難,但是她堅持讓我不要放棄自己的理想,終于功夫不負有心人,我找到了一家通信公司,4000塊的工資雖然趕不上MIS公司給我開出的價位,但也夠在上海生存。她也找到了工作,第一天上班她哭了,這是她來上海第一次流淚,我心里很難受也很感動。

    由于是全新的行業,我把自己降到了零點,我學的VC、Delphi、數據庫派不上用場,擺在我面前的是嵌入式、協議、信令一些我從未接觸過的知識。我知道我沒有退路,于是拼命的學習,我把自己當做一個應屆畢業生一樣,一分努力一分收獲,半年過去我終于熟悉了工作,并且得到了公司的表彰,薪水也加了一級。后面的日子里我們省吃儉用,把欠朋友的1萬多塊錢還了,日子終于上了正軌。這時女朋友告訴我她想考研究生,我也很支持,于是她辭職在家備考。

    另外,在這里我要感謝我的ProjectManager,他原來是一個大通信公司的產品經理,對人非常和善,我從他那里學到了很多知識,而且他也給了我許許多多無私的幫助。在工作上他給我充分的空間和信任。記得公司安排我維護一個接入服務器軟件,由于代碼量不算太小(5萬行),資料和文檔都不齊全,我維護起來非常吃力,所以想重新把它做一遍,公司領導不太支持,可能覺得工作量太大,但是他極力支持我,私下里他讓我放手去做,我的維護工作他擠時間做。在他的支持下,我花了半年時間完成了接入服務器的軟件,并且實現了一個相對完整的TCP/IP協議棧。在這里我學會了嵌入式系統設計、驅動開發、TCP/IP和很多通信的知識,我花了一年時間終于使自己從MIS開發轉到了通信行業,并且站穩了腳跟。我的開發大量是對硬件的直接操作,不再受微軟的操作系統,VC、Delhpi這些開發工具的約束,我終于看到了另外一片天空。
    我做事情喜歡追根問底,隨著開發的深入,軟件開發與硬件聯系越來越緊密,硬件知識的匱乏又對我的發展產生了障礙,而且芯片技術基本上掌握在國外公司的手里,這對做系統級設計是一個非常大的制約,一個新產品出來,第一道利潤(也往往是最豐厚的利潤)常常都被IC公司如Intel、Motorola賺去了,國內的廠商只能喝點湯。所以我決心解決自己的硬件技術障礙,并打算離開通信行業,進入IC設計相關領域。

    當然我明白如果我對硬件了解的非常少,沒有哪家IC公司會仁慈到招我這樣一個一竅不通的人來培訓。所以我必須努力打好基礎,學一些相關知識為以后做準備。就像我開始從MIS轉到通信一樣,我看過大量通信方面的書,并且給一個ISP做過RADIUS計費分揀臺,在這樣的背景下這家通信公司才給了我這個機會。我在的通信公司是做系統設計的,有不少PCB
    Layout硬件人員,平常我就注意向他們學習,由于我做的是軟件,在公司看硬件資料不好意思,所以開始只好在家看,剛來上海工作我連續一年都在加班,后來不加了,因為我要擠出時間學習,通常我12點左右睡,第二天5點半起,我上班比較早,地鐵上如果人不多我也用來看書。學習當然不會是一帆風順的,有些實在不懂的問題就積累起來問硬件人員,他們的幫助使我學習進度快了很多,因為在沒有人點撥的情況下自學,我的一半時間是花在解決疑難問題上,但這種問題經常是別人的一句話就可以讓我豁然開朗,我非常慶幸我有這樣的學習環境。在后面的一年里,我學會了看硬件原理圖,學會了簡單的硬件設計(模擬電路方面還有不小的差距),事情就是這樣的,當你安安份份做軟件,別人永遠認為你是軟件開發人員,在你開始學習硬件時別人未必會認同,有位中興通訊的朋友還對我說過,一個人不可能把所有東西都學完。我也明白這一點,但我希望自己做的更好。但當你熟悉硬件后大家又會覺得你好像原本就是軟硬件都懂的,同事們也都習以為常了。這個時候我可以把硬件資料堂堂正正的拿到公司看,沒有人再大驚小怪了。讓我比較自豪的是我通過自己的努力做了一個IAD(軟交換的終端設備)系統方案,包含軟硬件的選型、設計等內容,這個方案得到了公司和同事們的認同,讓我感到非常欣慰。

    技術是相輔相成的,當我的硬件有了一定的進步后,我的軟件設計也有了很大的提高,我可以從更深層次理解問題,我做的接入服務器CPU是Motorola
    PowerPC860,熟悉的朋友都知道860
    QMC與軟件的批量數據傳輸通常采用BD表的方式,硬件人員做驅動的時候習慣采用固定BD表,每接收或發送數據都將數據從BD表拷貝到用戶Buffer,或從用戶Buffer拷貝到BD表,由于理解的比較深入,我自己重新實現了這個過程,采用動態BD表的方式,驅動從一個網口接收數據,提交給我的軟件進行三層交換,直至從另外的接口發送出去,沒有進行一次拷貝。這樣的設計大大提高了性能,使系統的指標接近理論值。軟硬件的結合使我的設計水平上了一個臺階。我現在寫的這個操作系統,編譯后我把程序反編譯成匯編,找出其中不優化的代碼,然后在C程序中進行調整。舉個例子,很多CPU沒有專門的乘法指令,這個大家應該都知道,在這種CPU上進行一個乘法操作常常會花費大量的指令周期,有的朋友會說這個我知道,我會盡量避免采用×號,但是事情往往不是那么簡單,你知道C語言中數組的下標操作是怎么實現的嗎?仔細看看反匯編的代碼你就會明白,同樣是通過下標的定位操作,C編譯器會有時候會產生位移指令,但有時候會用乘法實現,兩者效率往往是天壤之別,所以明白這些問題你才能將系統性能提升到極致。這些問題就不多說了,有興趣的話以后可以共同探討。

    話說遠一點,我由衷的希望在軟件上做的比較深入的朋友們有機會學學硬件以及其它相關知識,尤其是做底層開發和嵌入式設計的。這對軟件技術的提高有非常大的幫助,否則很多事情你只知道該這樣但不會明白為什么該這樣。我這個觀點在我現在的IC公司Project
    Manager那里也得到了驗證。他告訴我們公司現在的802.11芯片產品的軟件經理原本是做該芯片硬件設計的,
    某某某原本是做軟件的,現在在做IC,類似的例子還有很多,只是在國內這樣的風氣不是非常流行。

    我有一些心得體會與大家分享,只有當我干好本職工作后,我才會學習與工作關系不大的技術,這樣公司的上司才不至于反感,在入門階段的問題我通常不去問那些資深人士,而是問一些資歷比較淺的朋友,比如剛畢業不久的學生,因為他們往往會跟你詳細的講解,而資深人士通常覺得你的問題太簡單,所以回答的也很簡單,我又不好意思多問。等技術上了一定的層次后我才會問他們,他們也能給你比較深入的回答。另外,有些朋友說我機會比較好,他們也希望能從事新的工作可惜沒有機會,我聽了只有苦笑,我的機會了解的人都應該知道,我沒有出生在什么IT世家:)也沒有誰一路提拔我,所有的路都是自己走出來的,我母親去世比較早,我的后母(我叫她阿姨)看著我努力過來的,一次她看我大年30還在寫程序,她說像我這樣努力木頭都能學出來。

    我的最終目的是IC而不是PCB,所以我下一步的準備開始學習IC設計的知識。公司的同事沒有懂IC設計的,后面的路又要靠自己了,我買了不少相關的書,在網上也查了很多的資料,我花了大量的時間去學習VHDL,并且用軟件進行了一些簡單的設計和仿真(沒有設計ASIC,只是針對FPGA),隨著學習的深入,我漸漸明白了IC設計的基本流程,同時也明白了這條路的艱辛。這個時候我已經做好了跳槽的準備,我向一家業界又一定知名度的IC設計公司投了簡歷,并通過了漫長的面試(4個多小時)。其他的一切我都比較滿意,唯獨薪資差強人意,我也明白原因,因為我是這個行業的新人,我沒有經驗,我再一次將自己清零了。公司老板問我6000多一個月能不能接受,我知道他也是照章辦事。想想我通信行業的朋友們,基本上都是年薪10萬以上,月薪過萬的也比比皆是,朋友們也幫我介紹了不少待遇不錯的公司,我該怎么選擇,當時我很猶豫,我熱愛我的事業,我向往我的追求,但我也是一個普通的人,我也需要養家糊口,我也想早一點買房買車。生活給我出了一道難題。

    愛因斯坦在63歲時說過"一個人沒有在30歲以前達成科學上的最大成就,那他永遠都不會有。"這句話給了我很大的壓力和震動,我馬上就26歲了,離30只有四年時間,我必須抓緊這幾年寶貴的時間,努力達到我技術上的最高峰。為了這個理想,為了能離自己的夢更近一些,我選擇了這家IC公司,我明白自己的薪資和公司剛進來的碩士研究生相差無幾,但為了今后的發展只能忍受,一切又得重新開始。換行業是一個非常痛苦的過程,尤其從一個春風得意的位置換到一個陌生的崗位,感覺象從溫暖的被子里鉆出來跳進冰水中,讓人難以接受。在原來那家通信公司,我是唯一兩年時間漲了五次工資的員工,公司和同事都給了我極大的認可,工作上也常常被委以重任。但現在這一切都成了過去,在新的公司我只是一個新人,沒有人知道也沒有人在意我過去的成績。我決定重新開始,我把自己看作新畢業的學生,我要用自己的努力得到公司的認可。進入新的行業是非常痛苦的,我告訴自己必須忍受這一切,雖然外面有很多誘惑,但是既然作出了選擇我就不允許自己輕易放棄。

    我現在已經在這家新公司上了一個多月的班,開始非常艱難,現在慢慢適應了。第一個月結束時,Team
    Leader找我談話,說我是新進員工中最優秀的一個,我心里很欣慰,這也算對我努力的一個肯定吧。在這里還要感謝我的女朋友,她給了我很大的支持和鼓舞,每次在我動搖的時候她都在鼓勵我,讓我堅持自己的理想,剛來上海是她讓我不要勉強去做MIS,這次也是她讓我頂住了月薪過萬的誘惑,沒有她我可能不會有今天的成績。

    現在的公司有自己的操作系統,自己的CPU、DSP和其它芯片,在這里我能學到世界上最先進的技術,我們的設計開發不再完全依賴別人的硬件和系統,這讓我很開心。我打算等工作步入正軌后,全力學習新的知識,實現我的理想。

    在后面的兩年里我給自己定下了幾個目標:

    一.努力做好本職工作,在工作上得到公司和同事們的認同;

    二.努力學習IC硬件設計知識,多向同事請教,并利用一切機會多實踐;

    三.實現我的實時操作系統的主要部分,完成TCP/IP協議棧模塊,并免費發布源代碼;

    四.和我女朋友結婚并買一套小房子,這是最重要的,因為我明白事業是可以重來的,但是珍貴的感情很難失而復得。

    在這里提一下我現在開發的操作系統,它是一個實時嵌入式系統,目前支持以下特性:

    a.支持時間片輪轉調度和基于優先級調度,最多64個優先級;

    b.搶占式實時內核;

    c.為了便于移植,主體用標準C實現;

    d.匯編代碼非常少,不到100行;

    e.支持任務管理,各任務有獨立的堆棧;

    f.進程同步和通信目前完成了Semaphore,Message Queue正在調試;

    g.實現了定時系統調用;

    h.可以在windows上仿真調試

    我還打算下一步實現優先級反轉保護,Event Flag,Data Pipe,內存管理(以前實現過)、驅動接口等。

    在這之后我還會努力完善它,比如加入文件系統,協議棧、調試接口等。希望朋友們提出自己的意見和建議,在此不勝感激!

    后記:

    就像有的朋友說的,我的經歷或許會給一些朋友產生誤導,在這里我必須說明一下。我來上海以前學習過于拼命,常常晚上只睡3個多小時,我身高1米71,那時只有108斤(我現在130多),家人也說我這樣拼命活不過60歲,但是當時的我太固執,我對他們說只要能實現理想活50歲我就夠了。那時的拼命使我的身體受到了影響,有一次早上突然腰肌劇痛難忍,痛的我倒在床上站不起來。雖然我現在已經比較注意,但有時候還會隱隱作痛。后來在女朋友說服了我,來上海以后我不再如此。我經常引用父親的一句話"身體是革命的本錢"。

    而且我也發現拼命不是辦法,我可以熬一兩個通宵,最多的一次我連續工作了三天三夜,但是我半個月都沒有恢復過來,這樣是不是得不償失?學習工作應該是一個長期的過程,像馬拉松而不是百米沖刺。我現在非常注意調整學習和工作的強度,我要保證每天盡量有相對充沛的精力,一些年輕的朋友覺得自己也應該拼命努力,這讓我多少有些擔心,如果我的故事能讓你在學習工作上多一點興趣,我會感到很開心,但如果誤導了某些朋友,讓你做一些不值得的付出,我會感到很內疚。

    技術沒有貴賤只分,我以前換行業是因為自己的興趣所致,而不是對哪個行業有什么偏見。我希望我的經歷不要給朋友一個錯誤的導向,覺得我始終向更高的技術發展。其實各行各業做到頂尖都是很困難的。話又說回來雖然技術沒有貴賤,但是門檻是有高低的,無論如何,做IC的門檻要比做網頁的高,這一點無可否認。國家各種人才都是需要的,但是作為個人奮發向上的想法還是應該有的,努力在自己喜歡的行業上做的更好,而不應該停留在比較膚淺的層次上。

    我是一個自己覺得比較有自知之明的人,或許我最大的優點就是知道自己有很多缺點:)。我的故事中很多的曲折和錯誤都是由我的缺點造成的,希望大家用審慎的眼光看待我的經歷,不要被我的"花言巧語"所迷惑。我學習有些隨心所欲,這給我帶來了無盡的麻煩,也大大阻礙的我的發展。記得我小時候成績比較出色,但是后來學習嚴重偏科,導致我中學成績一再滑坡,也沒有考上什么好的學校,小時候的一個朋友,當時的成績和我相仿,但是沒有我這個缺點,她上了清華,后來在去了美國深造,在一個著名導師手下研究理論科學,這未嘗不是一條更好的出路。另外我的學習方法也是在不斷改善中的,過去的學習過于講究數量和時間,那樣學習既苦而已效率不高,現在我非常注意學習的效率和技巧,這樣才是學習的捷徑(當然不是指投機取巧),比如說學一相對陌生的技術,如果有條件,不妨問一問有經驗的人,不需要問很多,往往他不經意的幾句話會給你非常大的幫助,甚至超過你看一個星期的書。帶著這樣的思想再去學習你會節省很多時間,這樣何樂不為呢?這些年中我學了不少的東西,由于開始非常盲目,所以學的東西雜亂無章,現在回想起來讓我啼笑皆非,我把大量的時間浪費在一些沒有必要深入了解的知識上,畢竟一個人的精力是有限度的。很多朋友很我一樣都背過五筆字形,的確它是一個不錯的輸入法,但是對一個研發人員它絕對不值得你去背,你的時間應該花在有價值的地方。我這樣的事情還做過很多,我背過CCED、WPS的命令和快捷鍵,在dBase基本退出歷史舞臺后我還花了很多時間去學習它的使用。所以我的學習在前期缺乏規劃,沒有明確的短期目的、中期目標,只有一個虛無飄渺的長期的理想。這就像做設計一樣,好的設計是從需求抽象到代碼有很多過程,而不能得到了需求就立刻開始開始編碼。

    當然這么些年的學習和工作多多少少有些收獲,下面我說說我的一些學習的心得,這些方法未必正確,我也在不斷探索和改進中。我的學習和工作有相對明確的目標,我不會一時心動而去學習某一技術,在下決定之前我會考慮很多,包括長期的發展,個人路線的規劃,需要付出的代價、可能遇到的困難及解決的辦法等等,在決定后還會制定更加明確的計劃,包括短期、中期和長期的,身邊可以利用到的資源(包括好的書籍、資料、軟硬件環境,也包括有經驗的朋友或者師長),以及每一個階段是怎么過渡到高一階段的計劃,往往在一個學習階段一旦上路后會走的相對順利,但是跨階段通常比較麻煩,比如從學習基礎知識轉到實踐。另外我買書也有自己的方法,現在世面上高質量的書遠不如低質量書多,對于一個陌生的技術,往往在第一次買書會選擇錯誤,即使買到一本好書但是它的方向也未必適合你,所以我通常會先在網上查找一些該技術的介紹,有了一點點概念后再去買一本比較薄、相對便宜并且內容相對泛泛而談的書,這是國內作者最善于寫的書:),再把它瀏覽一遍后我就會基本明白這門技術的要點,后面買書和制定計劃就會明確的多。否則一開始就想找本好書往往比較困難,而且買回來后努力學習,有時候學了一半才發現是本低質量的書或者是相對過時技術,讓人非常懊惱。另外讓有經驗的人幫你介紹,通常也是一個不錯的選擇。
    有些朋友想學通信、嵌入式開發,但總覺得自己沒有軟硬件環境,我就按我的了解給大家介紹一下怎么建立這樣的環境,當然我了解的只是我學習和工作的方向。通信我做的是數據網方面的工作,包括TCP/IP、二三層交換、對接入網、
    H.323和軟交換也有一點認識
    。這些軟硬件環境都是可以在PC上構建的。你甚至可以在一個沒有網卡的PC上建立一個包含多個路由器、接入服務器、VoIP網關、網守、主機等的仿真網絡環境,而且與實際的網絡相當接近,當然這需要你有清晰的網絡概念和一定的網絡知識,我一直在努力開發一套軟件將這個過程簡化,目前試驗已經做完,我可能會將它融入我的操作系統外圍擴展軟件中。這樣的方法我無法用簡單的語句講的很清楚,我可以說一下大概的思想,就是在PC上實現仿真網卡,(知道Windows怎么在沒有網卡的機器實現虛擬網卡技術的朋友都應該會明白),然后每一個仿真網卡對應一個虛擬設備,如路由器或者主機。你也可以借助第三方工具完成部分工作,如VmWare等。我現在就是利用一個仿真網卡做自己的開發的。

    至于嵌入式開發環境更加容易實現,PC就是一個非常大的硬件平臺,現有的嵌入式操作系統通常都支持X86,你可以在上面做開發,通過軟盤Boot或者使用虛擬機裝載,我用VxWorks做了試驗,在一臺PC上跑Windows和VxWorks兩個系統。另外Windows上的兼容DOS的16位仿真X86環境也為很多操作系統提供了絕佳的試驗環境,我的操作系統在Windows上就是這樣實現的。Linux在嵌入式中應用也比較廣泛,它在網上有大量的資料,而且也相對比較容易實踐。同時很多完善的嵌入式開發環境支持軟件仿真,如Tornado、WinCE等。

    前段時間處理了很多事情,一直沒有寫下去,花光了所有的積蓄買了一套房子,同時把戶口的事情也基本辦完了,這幾天稍微緩口氣。昨天跟我的一個老上司見面聊了半天,心里感慨萬千。他從外在條件看讓不少外人羨慕,二十多歲做過到了863項目的負責人,博士畢業的愛人單位也非常好。現在三十出頭的他在一個通信公司做產品經理,工資雖然不算高但也有一兩萬,而且還持有股份。但是我們了解的人才理解他的艱辛。"白領"這個詞在一些人看來是仿佛是一個動人的光環,但是在我看來是一個無奈的名字,每天行走在大街上,來來往往的車流中有多少是"白領"的?又有幾個"白領"住的起高檔的住宅?在上海一套別墅300萬不足為奇,按揭貸款下來總額接近600萬,年薪二十萬在上海算是一個中高級"白領",高額的稅金去掉了你百分之幾十的收入后,這樣算下來不吃不喝也要四十多年,加上生活的其他開支,注定了你與這樣的住宅無緣。看著外面一套套別墅,一輛輛好車,我不知道它們是誰的,但我知道其中沒有什么白領。我覺得自己很渺小,在這個喧鬧的都市中我如同一只螞蟻,但我有不甘于平凡,我不愿做一個單純的"白領"。

    其實很多朋友并不了解我,我不是一個追逐時尚技術的人,我只是不愿意做一個所謂的"白領",更加不愿意做一個單純的"程序員"。我不甘愿平凡的生活一輩子。我在不斷的努力,我的方向非常明確,我要做多數人不做和做不到的事情,很多朋友對我這樣頻繁的換方向不理解,覺得一個人只要熟悉一種技術就可以了,對于這樣的看法我只能說你淺薄,現在的大的系統和產品往往都是軟件、硬件和應用相結合的,我要做的不是哪個方面的專家,而是希望能夠成為系統設計師。我不相信一個只精通發動機的專家能夠設計一輛好車,同樣我也不相信對硬件一竅不通的人能做出一個操作系統,或者一個對財會沒有一點概念的人能設計出一個優秀的財務軟件。在工作中我發現社會上非常缺乏邊緣人才,尤其是在國內。在國外一個人軟硬件兼修非常普遍。如果設計產品的人只了解他的專業那么是很難有出色的設計。所以我必須趁著自己年輕學的更加廣泛一些,這樣才能提高自己的綜合素質,這也是為什么高校那么多非專業課程。學習工作了這些年,實際上都沒有脫離IT這個行業,我現在的公司開發一個系統時,先是將最終功能列舉清楚并分析可行性,然后劃分哪些是用芯片實現,哪些是用硬件電路實現,哪些是用軟件實現,這樣的設計才能做出最好的系統。如果一個設計者單純只懂一個方面是不可能做到這一點的。

    自負常常伴隨著無知,記得我大學畢業時,論文答辯會上我和專家組組長爭起來了,因為我對自己的設計非常得意,而他雖然是雞蛋里挑骨頭,但是由于知識非常有限,我無法回答他的問題,所以有些"惱羞成怒"。我原來一直喜歡用"所謂"最好的開發工具,記得做過一個愚蠢的設計,一個排課表的軟件我用VC+Oracle開發。這些經歷我牢記在心,時刻提醒自己學會謙虛。我的親身經歷加上我對一些身邊朋友的觀察發現這樣一個現象。當一個人只會他認為最好的技術,而對其他的一無所知,這樣的人經常是目空一切。

    從第一個"Hello
    World"到今天的操作系統,前前后后寫了很多代碼,從這中間我也積累了很多心得。由于我是在沒有人指導的情況下自學編碼的,所以走了很多彎路,也犯了不少錯誤。最初我寫程序全憑自己的感覺,寫一個新程序對結構設計不很重視,以為學好語言,數據結構就可以寫出好的程序,其實遠不是這樣的。沒有設計的情況下,也可以寫,但是程序無法寫的很大、很復雜。我個人的經驗是這樣的系統超過8000行我就無法控制了,以前我用VC寫過一個Windows下的應用程序,大概8000行左右我對它失去了控制,整個代碼一團糟,這8000行倒是可以相對穩定的運行,但是我沒有能力再增加什么新的代碼,動輒前后沖突,要么就是新代碼與舊設計格格不入,需要調整舊的程序。最開始我寫程序喜歡追求代碼的精巧,別人很多行寫出來的代碼自己只寫很少就可以實現,感覺那樣比較酷。其實這樣也是非常錯誤的,我現在寫程序非常注重結構設計,為了結構清晰我愿意犧牲一點效率。

    下面一段話是我寫程序的座右銘,希望與大家共勉:

    Make it right before you make it faster.

    Keep it right when you make it faster.

    Make it clear before you make it faster.

    Do not sacrifice clarity for small gains in efficiency.

    Brian Kernighan
    - 作者: zidanz <javascript:void(0);> 2005年11月17日, 星期四 13:46
     Trackback

    - 作者: zidanz <javascript:void(0);> 2005年11月17日, 星期四 13:46
     Trackback
    posted @ 2005-11-18 09:48 ivaneeo 閱讀(667) | 評論 (0)編輯 收藏

    僅列出標題
    共67頁: First 上一頁 29 30 31 32 33 34 35 36 37 下一頁 Last 
    主站蜘蛛池模板: 114一级毛片免费| 亚洲综合另类小说色区| 国产亚洲精品美女2020久久| 亚洲 国产 图片| 亚欧免费一级毛片| 亚洲人av高清无码| 亚洲AV无码一区二区大桥未久| 国产一区二区三区在线免费| 免费在线观看一级片| 亚洲一区无码中文字幕| 希望影院高清免费观看视频| 羞羞视频免费网站日本| 亚洲国产精品乱码在线观看97 | 日韩国产免费一区二区三区| 在线视频亚洲一区| 中文字幕亚洲第一在线| 免费在线观看黄网| 国产国产人免费视频成69堂| 一区二区三区精品高清视频免费在线播放| 亚洲视频在线一区| 亚洲精品国产成人影院| 国产片AV片永久免费观看| 中国好声音第二季免费播放| 亚洲日本成本人观看| 99久久亚洲精品无码毛片| 亚洲免费日韩无码系列| 午夜影视在线免费观看| 亚洲人精品亚洲人成在线| 亚洲AV中文无码乱人伦下载| 国产一级淫片免费播放电影| 91成年人免费视频| 免费观看久久精彩视频| 羞羞视频在线观看免费| 国产精品亚洲lv粉色| 久久亚洲精品专区蓝色区| 亚洲天堂中文字幕| 国产亚洲视频在线播放| 亚洲av日韩片在线观看| 日韩精品视频免费网址| 成年女人毛片免费播放人 | 日韩一区二区免费视频|