「OS無し」は立派な経験&スキル

高木です。おはようございます。

SESの営業に使うスキルシートには、プログラミング言語やOS、データベースなどの経験を記入します。
今回は、そのうちのOSに着目してみたいと思います。

OSすなわちオペレーティングシステムですが、OSが異なればシステムコールその他が変わりますので、当然プログラミングのしかたも変わってきます。
プログラミング以外でも、操作方法が異なりますので、初めて使うOSだとかなり戸惑うものです。

だからこそ、OSの経験が問われるのだと思います。
では、OS無しの環境はどう考えればよいのでしょうか?

OSの経験を問われているのだから、OS無しであれば何のOSも経験していないことになります。
だから経歴として記入しなくてもいいかというと、決してそんなことはありません。

OS無しの経験は貴重なのです。
OSが無ければ、ハードウェアを直接制御することになります。
通常、その方がずっと難度が高いのです。

確かにOSの機能を引き出すのはそれなりに難しかったりします。
しかし、それはOSの高度な機能を使おうとしているからです。
そもそもOSが無ければ、本当に基本的なところから難度が上がるのです。

私の場合、社会人になってから数年はずっとアセンブリ言語を使っていました。
なので、当然のようにOSもありませんでした。

CPUがリセットしたところからすべての動作を自力で記述しなければなりませんでした。
リセットベクタや割り込みベクタの設定、割り込みの禁止と解除、スタックポインタの初期化、(もしあれば)D-RAMの初期化等々です。
メモリマップもすべて自分で管理していました。

そうした低水準のことは経験なしではとてもできるものではありません。
だから、OS無しは本当に貴重な経験なのです。

このOS無し環境をある程度経験すると、ハードウェアのことも結構わかるようになってきます。
CPUのアーキテクチャなんかは手に取るようにわかります。
その気になれば、自分で簡単なOSを作ってしまうことさえできるでしょう。

ハイエンドな環境にはハイエンドな環境なりの難しさがありますし、ローエンドな環境にはローエンドな環境なりの難しさがあります。
どちらも世の中には存在する環境ですので、自分の守備範囲をどのあたりまで広げるべきかはよく考えた方がいいでしょうね。
それはそれとして、実際の仕事での守備範囲はともかく、教養として両極端な環境について知っておくことは悪くありません。