Linux內核將部分代碼從彙編程序更改為C

編程語言c

眾所周知 彙編語言是最快的 由於某些問題,由於這個原因,它在不同操作系統的內核中使用最多,對於使用高級電子設備的實時項目也是如此。 問題稍後出現,需要維護而不是維護該代碼,因此 在Linux內核的情況下,開發人員已選擇將此Assembler代碼轉換為C.

C是最有代表性的Linux編程語言(實際上,在所有* nix平台中),它是由 丹尼斯里奇 和1972年的Ken Thompson,它是在Unix PDP-11系統上製作的,並且是Unix版本2的一部分。由於其高性能和可移植性,它開始在操作系統的實現中越來越多地被使用,因此 Linus Torvalds的 1990年,當他正在尋找Minix的免費開放替代方案時,他將其用於自己的項目。

當然,儘管有很多優點,但正如我們一開始所提到的,Assembler相對於C具有一些優勢,因此此決定令人驚訝,但根據 評論安迪·盧托米爾斯基 在內核郵件列表上,您的工作進展順利,並且 Linux內核4.1 將是第一個將此彙編程序源代碼重寫為C的程序。 具體來說,與退出到用戶模式有關的所有內容目前都由這兩種編程語言的代碼混合而成,但由於維護成本較低,因此更新時變得越來越複雜。

那是 彙編器中的代碼 它已經很長時間沒有更新了,這意味著新開發人員不能完全了解它的操作,更糟糕的是,更新它並不容易。 因此,他們沒有嘗試進行部分更改,而是選擇開始將所有這些Assembler例程更改為C,而且我個人認為,儘管可能會失去某些執行速度(如果代碼C new有效,則這可能會很小)。 新的和清晰的代碼總是比過時的代碼更可取,並且更新的可能性幾乎為零 因為尚未很好地了解它是如何實現的。


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責資料:AB Internet Networks 2008 SL
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。

  1.   米格爾·梅奧爾·圖爾 他說:

    首先是西班牙語的ENSAMBLADOR。

    其次,所有語言都必須經過編譯(或解釋),因此結果的優劣取決於編譯器(或解釋器)

    由於C編譯器已經有了很大的改進,而彙編程序卻有了很大的改進(因為它已經非常好了),所以如今,用C編寫的編譯程序與用彙編程序編寫的同一個程序相比,差異是可以忽略的或不存在的(在此之前)不是)。
    甚至已編譯(C和其他程序)與解釋(Java和其他程序)程序之間的差異也已大大縮小。

    因此,與維護彙編程序相比,維護C語言要容易得多,因此在進行成本效益分析,弱點,威脅,優勢和機會或任何其他有效的方法時,在內核中進行這些更改是一個非常明智的決定。
    用於決策。

    1.    ChigüireBipolar 他說:

      對Miguel Mayol Tur:首先,每個自稱是程序員的程序員都會說ASSEMBLER並懂英語。 其他人使用Visual Basic並自稱程序員。 多可惜。 其次,彙編器不編譯。 處理它的程序所做的是將助記符直接轉換為字節。 在Assembler中編程是使用相同的語言與機器對話,但是為了使操作更簡單,使用了助記符,而不是直接寫入相應的字節。 一組字節與彙編器中的指令之間存在一對一的對應關係。 但是,當然,只有真正的程序員知道這一點,這是說ASSEMBLER的人之一。 因此,從彙編程序到操作碼的“轉換器”沒有任何改進,因為程序員負責進行這種改進。 C編譯器(和其他語言)將指令轉換為彙編程序(或機器代碼)的預先建立的宏表示,並且通過這些轉換的方式來給出改進。
      為什麼要使用C? 因為它更易於檢查和維護更具可讀性的內容。 大多數人不直接理解彙編程序操作碼或助記符。 就那麼簡單。
      我什至不會理會Java,儘管Java是很久以前才強加的,但現在它被那些了解代碼的人所憎惡。
      但不要相信我,請問Google我在這裡所說的話是否虛假。
      問候

      1.    留念 他說:

        您好Chigüire,我的目光落在我的臉上,以為您如果不使用盎格魯-撒克遜血統的話就不能用西班牙語寫作:被稱為“彙編程序”。
        當然,在我同意你的一件事上,最好不要談論Java,因為說廢話最好離開它。 我有一個和你一樣的朋友,但是像個木匠(不是專業的程序員),他說最好的東西是鋸和其他工具,更不用說了,他甚至用螺絲擰緊了。 可以效法的例子!

  2.   路易斯·蓋拉多·馬林(Luis Gerardo Marin) 他說:

    英語始終是所有計算術語的基礎。 即使不是講西班牙語的人也是如此。 除此之外,有些術語不能翻譯為“位”,“字節”,“ unix”,“ linux”,“ DOS”等。 其中有些可以翻譯,但沒有“ CMOS”,“ CSS”,“ RAM”之類的情況,因為有些縮寫與技術無關,最重要的是,它們甚至在Google中都不存在。 當產生的消息不可讀時,沒有必要進行翻譯。 結論:對於技術或計算問題,最好使用英語的技術術語。 出於同樣的原因:我更喜歡寫“ Windows”來表示我使用操作系統“ Windows”。 而且我更喜歡談論CSS,並且我使用type =»text / css,而不是試圖說我使用類型等於對角線文本樣式表的樣式表。 健康。

  3.   羅伯托·戈麥斯(Roberto Gomez) 他說:

    用彙編語言編寫的程序始終被編譯,而不被解釋。 但是,使用西班牙語而不是Spanglish並沒有錯。 專有名稱永遠不會被翻譯,但是專業術語是當它們不是流行的首字母縮寫詞時。 無論如何,每個人都可以隨心所欲地說話,而我們仍然可以理解。