アセンブラは特定のタスクにおいて最も高速な言語であることは周知の事実であり、そのため様々なオペレーティングシステムのカーネルで最も広く使用されており、高度な電子機器を用いたリアルタイムプロジェクトでも同様である。問題は、そのコードの保守が必要になったにもかかわらず、それが適切に行われない場合に発生する。そのため、Linuxカーネルの場合、開発者はアセンブラコードをC言語に変換することを選択した。
C言語はLinux(実際にはすべての*nixプラットフォーム)で最も代表的なプログラミング言語です。1972年にデニス・リッチーとケン・トンプソンによって開発され、PDP-11 Unixシステム上で作成され、Unixバージョン2の一部でした。高いパフォーマンスと移植性から、オペレーティングシステムの実装においてますます広く使用されるようになり、そのため、 1990年にMinixに代わる自由でオープンな代替手段を探していたリーナス・トーバルズも、自身のプロジェクトにC言語を採用しました。
もちろん、冒頭で述べたように、アセンブラには多くの長所があるにもかかわらず、C言語よりも優れている点がいくつかあります。そのため、今回の決定は驚きをもって受け止められましたが、カーネルメーリングリストでのアンディ・ルトミルスキー氏のコメントによると、彼の作業はすでに順調に進んでおり、 Linux 4.1カーネルがアセンブラのソースコードをC言語に書き換えた最初のカーネルとなる予定です。具体的には、これはユーザーモードの出力に関連するすべてに適用されます。現在、ユーザーモードの出力はこれら2つのプログラミング言語のコードが混在していますが、メンテナンスが行われていないため、更新がますます困難になっています。
問題は、アセンブラコードが長期間更新されていないため、新しい開発者がその仕組みを完全に理解できないこと、そしてさらに悪いことに、更新が容易ではないことです。そのため、部分的な変更を試みるのではなく、すべてのアセンブラルーチンをC言語に変換することにしました。個人的には、実行速度がわずかに低下したとしても(新しいCコードが効率的であれば、低下は最小限に抑えられます)、実装が不明瞭なために更新される可能性がほとんどない古いコードよりも、新しく明確なコードの方が常に望ましいと考えています。