過去の自分向けメモを移動。以下、2019/4/27頃のメモである。

最近大学でOSの授業が始まった。

OSの基本的な役割として挙げられるのが、計算資源の管理とハードウェアの仮想化だそうな。

仮想化と聞くとVirtual Machineを使ったサーバー仮想化などあるが、それよりももっと前から仮想化という概念は存在していて。 CPUのハイパースレッディングテクノロジーなんかはCPUの仮想化。 デバイスドライバを介した入出力機器の仮想化。ファイルシステムによりデータを抽象的に操作できるハードディスクの仮想化。アドレスを意識する必要のないメモリの仮想化。

仮想化といわれると、以前はエミュレータなんかに近いものを想像していた。

しかしOSがハードウェアを仮想化しているということを意識すると言葉のイメージが変わった。 仮想化(=抽象化)というのは、カプセル化だったり、階層化という概念に近く、コンピュータの中でごく一般的に広く用いられている手法ではないか?

そこまで考えを広げたうえで、昨今のデータセンタ内の仮想化技術(サーバー、ストレージ、ネットワーク、、)は自然の流れとも言える。 今まで使っていたハードウェアないしレイヤーを更に仮想的に(抽象的に、ソフトウェア的に)扱いやすくした、レイヤーが一層加わっただけである。

大学1年のとき、某企業でデータセンタに関するソリューション提案のインターンをした。そのときは仮想化どころかデータセンタに関する知識が少なくて学ぶことばかりでついていくのもやっとだったけれど、概念の理解は当時より進んだと思う。