LoginSignup
66
46

More than 5 years have passed since last update.

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

Last updated at Posted at 2017-08-07

もしかしたら、コンピュータやネットワークの基本を学びたければ、僕たちは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カーネルだ。

66
46
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
66
46