歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux教程

淺談調試器和內核如何發展

譯者序:關於LINUX內核的開發,我覺得這些觀點都是正確的,因為觀點都表達了不同的使用者的喜好。這些喜好都是需求。對於不同的使用者他們會更具自己的喜好,去使用不同的環境。這些都體現了LINUX的靈活性和可開發改造性,這些特點是別的系統所沒有的。這就是我喜歡LINUX的一個原因。
  關於不同的開發環境,個人有自己的喜愛和偏好,而各種環境都有自己的特點。我想這樣的爭論應該保持下去,因為這樣的爭論會促進LINUX的發展。能開發出各種各樣優秀的工具。而這些工具的生存不在於一兩個人,而是廣大的LINUX 的用戶去決定的。
  我想不同的觀點將出現不同的風格。但是我不想LINUX的各種版本變的非常的大,而且他們相互都不互相融合。我認為Linus的觀點是完全正確的,保證LINUX的內核的統一性和完整性。這樣就保證了各種不同版本的LINUX一起發展。
  ***************************************************************************
  我不喜歡調試器,從來不,大概永遠不會喜歡。我只使用GDB,而且我總是並不把它作為調試器來使用,只是將其作為一個可以用來分析程序的分解器來使用。
  任何關於內核調試器的意見、爭論都沒有觸動我,哪怕是絲毫。相信我,這麼多年來我收到很多這方面的建議,到最後,他們都只能歸結為很基礎的(東西):—— 開發應該變得更容易,我們能夠更快的加入許多新的東西。
  坦白地說,我並不在意(這個問題)。我認為對內核的開發不會是很容易的事。我不贊成那種通過一個個代碼逐步去尋找錯誤的做法。我認為系統的額外可見度並不是一件必要的好事。
  很明顯,如果你在沒有使用一個內核調試器的情況下就附和這種觀點:
  —— 你會遇到一系列的問題:一旦出錯,系統就會崩潰,你會失敗;
  —— Linux 內核編程太難太費時,人們會對其失去信心;
  —— 創出新的特色需要一段很長的時間。
  沒有一個人能向我解釋這些問題。對我來說,這不是一個問題,這是它的特點。這不僅是已經有證明文件證明的,而且這是好事。因此很明顯這不是一個問題。
  “創出新的特色需要一段很長的時間”——這一點在調試器方面尤為不是一個強有力的論據。對Linux來說,缺少特色或新代碼不是一個問題,事實上,這對整個軟件產業來說都是如此。相反,我的主要工作就是對那些新的特色/特征說“不”,而不是去尋找它們。
  的確,當(系統)崩潰,你甚至不能獲得一絲線索,只有失敗,那麼只能得到兩種結果:你要麼小心翼翼的重新開始;要麼開始對內核調試器不斷抱怨。
  坦白的說,如果(工程進程中)出現粗心大意的情況,我寧願擯棄那些在開始時就沒有小心謹慎的人。這聽上去很無情,就算是上帝聽上去也會感覺無情。但這並不是人們所認為的那種“如果你不能承受壓力,那就干脆離開”的情況。這裡(所包含的意義)要更深一些。我寧可不和那些粗心大意的人一起工作。這就是軟件發展的進化論。
  這樣把人分成兩種是一個冷酷、無情的觀點。我寧願選擇第一種人,忍受他們。
  我是一個比較自私的人。我完全不知道人們為什麼要從不同方面進行考慮,但是他們確實是(那麼做的)。人們認為我是個好人,但事實上我是個詭計多端的自私鬼,只要最終能得到我所認為的更好的系統,那麼我對任何感情的傷害或工作時間的損失都不在乎。
  我並不只是(在口頭上)說說而已,我真的不是一個很好的人。我能面無表情地說“我不在乎”,而且我確實不在乎。
  我相信不使用內核調試器會迫使人們在一個不同的層次上考慮問題。我認為如果你不使用調試器,你就不能得知他如何運轉以及你如何處理,你就試圖從別的角度去考慮問題。你會想在不同的層次上理解事情。
  在一定程度上更多的是“源代碼對二進制”(的問題)。你不必不得不去查看源代碼(當然你可以去查看,任何優良的調試器使其輕而易舉)。你必須在源代碼之上的層次進行查看。就是說,不使用內核調試器的話,你將不得不去理解程序在做什麼,而不僅僅是特定的(代碼)行。
  坦白的說,對於許多實際問題(這和錯誤截然不同的,那些愚蠢的錯誤是那麼多)來說,調試器並沒有多大的作用。這些實際問題正是我所擔心的。剩下的就是一些細節了,他們最終都會被確定下來。
  我能理解那些與我不一致的意見。我不是你們的母親,如果你願意的話你可以使用內核調試器,我不會因為你自己的“毀譽”而輕視你。但是我不會去協助你使用他,我真誠希望人們不要高頻率地使用內核調試器。因此我不會將其作為評定的標准,如果現有的調試器沒有被人們很好的了解,我不會去(刻意)糟蹋貶低他。因為我是一個比較自私的人,但是我以此為榮!
Copyright © Linux教程網 All Rights Reserved