[新卒が作る自作OS] OSの全体像

こんにちは、サイオステクノロジー萩原です。

本投稿、[新卒が作る自作OS]では、我々が自作OSを作るにあたり、詰まったところや、備忘録的に残しておきたいところなどをまとめておこうという趣旨の投稿です。
間違っている認識も多々あるかとは存じますが、どうか温かい目で見てくださると幸いです。

前回の「[新卒が作る自作OS] OSって何? 」ではOSとはどんなものであるかを理解しました。この記事では、自作OSに実装する機能の全体像をまとめます。

はじめに

まずは、なぜこの記事を執筆しようかと考えた理由についてお話します。

前回はOSとは何か、どんな役割を持っているかについてまとめました。OSとはハードウェア資源を抽象化し管理するものでしたね。ではこれらの役割を持ったOSを開発する上で、具体的にどのような機能をもたせる必要があるのでしょうか。これを考えなければ開発は進みません。

そのため、この記事ではOSに必要な機能をリストアップし、まとめていきます。

自作OSに必要な機能

OSを動作させる上で必要な機能を調べ、大きな括りでまとめました。以下の機能があればOSと言えるのではないでしょうか。

  • 入力インタフェース
  • 出力インターフェース
  • リソース管理
  • API

それぞれ詳しく見ていきましょう。

入力インターフェース

  • マウス
  • キーボードなど

ユーザからの入力を受け付ける装置を動作させるための機能です。ユーザが入力を行えないと何も操作できません。今回は一般的な入力インターフェースとして、マウスとキーボードによる操作を実装します。これを実現するには、ユーザが操作をしていない間は別の処理を行い、操作があったときだけ操作に応答する処理を行わなければなりません。そのためにユーザの操作に応答する割込み処理やタイマの実装も必要となります。

出力インターフェース

  • GUI
  • コンソール
  • ウィンドウなど

ユーザがコンピュータを操作するためのインターフェースに関連する機能です。画面に出力する機能とも言えますね。ユーザの入力を受け取りそれに対する処理を行っても、画面に変化がなければ操作の結果がわかりません。今回はウィンドウで直感的な操作ができるGUI(Graphical User Interface)を実装します。コマンドで操作するCUI(Character User Interface)はコンソールのアプリケーションとして実現します。

リソース管理

  • マルチタスク機能
  • メモリ管理
  • ファイル
  • タイマ機能など

OSの役割のうち資源の管理を行う機能です。見た目にはわかりにくいですが、これらもOSを動かす上で重要な機能です。CPUのリソースを振り分けるマルチタスク機能やメモリを割り当てるためのメモリ管理などが必要です。

API

APIとはApplication Programming Interfaceの略で、OSの機能におけるハードウェア資源の抽象化を担います。実体はOSの機能を利用するための関数をまとめたライブラリです。アプリケーションがOSの機能を利用したいときは、このAPIを呼び出すことでOSの機能にアクセスできます。この機能を用意しなければ、アプリケーションの開発者はハードウェア資源を利用するソースコードを自身で記述しなければなりません。

まとめ

自作OSで実装する必要のある機能は大きく分けて以下の4つ。

  • 出力インターフェース
  • 入力インタフェース
  • リソース管理
  • API

最後までお読みいただきありがとうございます。





ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!


ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。

コメント投稿

メールアドレスは表示されません。


*