もしかしたら僕たちはLinuxカーネルのソースを読み、勉強するべきなのかもしれない

  • 54
    いいね
  • 4
    コメント

もしかしたら、コンピュータやネットワークの基本を学びたければ、僕たちはLinuxのカーネルを読んで理解するべきなのかもしれない。
僕たちは、プログラミングの勉強といったら、とりあえずやりがちなのが、Swiftを学んでiOSアプリを作る、PHPを学んで、Webアプリを作る。ネットワークの本を読む。などである。
でも、それでいいんだろうか。それをやることは否定しないけど、SwiftやPHPはゴロゴロ変わっていって、ちゃんとした技能が残らない感じするのである。ネットワークの本は本で、一次情報じゃない。
もちろん、アプリを構築するときのノウハウは手に入る。
でも、もしかしたら、僕たちは賽の河原の石積みをやっているのかもしれない。もしかしたら、コンピュータの表層的なことを理解するのではなく、もっと根本から理解するべきなのかもしれない。
コンピュータの根本とは何か、それは、ハードウェアだったり、OSだったり、ネットワークだったり、コンパイラだったりする。
で、現時点で中身を覗くことができるネットワークOSはLinuxとFreeBSDだ。
Linuxのカーネルを理解して、仕事があるかはそういう方面のことには疎いので、知らない。儲かるという話はある。
でも、もしかしたら、SwiftやPython、PHPのような、ハードウェアから遠い高級言語は、間にヌルッとしたものが挟まっているので、コンピュータを理解することとは遠いのかもしれない。
仕事でそういう言語が必要なのはわかる。でも、もしかしたら、(特に若い人は)学ぶべきは、iOSアプリの作り方ではなく、Linuxカーネルの読み方なのかもしれない。iOSアプリから始めるのではなく、Linuxカーネルと、C言語とアセンブラから始めるべきなのかもしれない。
僕は、iOSアプリから始めたが、それは間違っていたのかもしれない。
では、それぞれの長所と短所を比べてみよう。

  • Linuxカーネルを読む
    • 長所
      • コンピュータの基本がわかる
      • ネットワークやコンピュータの構造が、第一次情報としてわかる
      • 時代によってそんなに変わらない(これは正しいかどうかわからない)
      • カーネルについての解説書がいっぱいでてる 
      • ソースコード読みの訓練になる
      • 特定のベンダに縛られない
      • 儲かる(本当かな?)
    • 短所
      • 難しい
      • 時間かかる       
  • iOSアプリを作る
    • 長所
      • 形のあるものを作れる
    • 短所
      • ゴロゴロ変わっていく
      • コンピューティングの基本はわからない
      • 人のソースコードを読むスキルは身につかない

ということで、わけわからないかもしれないけど、Linuxカーネル読んで、色々記事書きたいと思う。
実際読んでてよくわからないが、よくわからんけど面白いのがLinuxカーネルだ。