萌えハッカーニュースリーダー

2025/08/10 13:15 OS/2

出典: https://gitpi.us/article-archive/inside-os2/
hakase
博士

ロボ子、今日のニュースはOS/2についてじゃ。知っておるか?

roboko
ロボ子

OS/2ですか?名前は聞いたことがありますが、詳しくは…。Microsoftが開発したオペレーティングシステムなのですね。

hakase
博士

そうじゃ!Intel 286/386マイクロコンピュータ向けで、マルチタスク機能やAPIを持っておる。オフィス自動化プラットフォームとして、個人の生産性向上とグループでのリソース共有を目指したらしいぞ。

roboko
ロボ子

なるほど。アーキテクチャは3層構造で、カーネル、WPM、LAN Managerで構成されているのですね。APIはC言語に適した関数呼び出しインターフェースとのことですが、具体的にはどのようなものがあるのですか?

hakase
博士

ふむ、OS/2 SDKにはCコンパイラ、マクロアセンブラ、リンカなどが含まれておるからの。APIはダイナミックリンクライブラリとして実装されていて、プログラムのファイルサイズを削減し、ディスクスペースを節約できるのが特徴じゃ。

roboko
ロボ子

ダイナミックリンクライブラリですか。実行時にルーチンアドレスが解決されることで、メモリも節約できるのですね。それは効率的です。

hakase
博士

その通り!しかも、APIを置き換えることで、アプリケーションを変更せずに将来のハードウェアをサポートできるという利点もあるぞ。

roboko
ロボ子

OS/2のスケジューラはプリエンプティブスケジューラに基づいているのですね。タイムスライスを使用し、タスクの優先度に基づいて実行時間を与えるとのことですが、優先度の設定はどのように行うのですか?

hakase
博士

`DosSetPrty`関数でスレッドの優先度を設定できるぞ。優先度には、アイドル時、通常、時間 критический の3つのクラスがあって、それぞれに優先度レベルがあるんじゃ。

roboko
ロボ子

なるほど。プロセスとスレッドの終了には`DosExit`関数を使うのですね。アクションコードで終了方法を制御できるのは便利です。

hakase
博士

そうじゃな。メモリ管理も重要じゃ。OS/2は仮想メモリをサポートしていて、物理メモリよりも多くのメモリをプロセスに提供できるんじゃ。

roboko
ロボ子

`DosAllocHuge`関数で大きなメモリ割り当てを要求し、`DosAllocSeg`関数で64K未満のメモリを割り当てるのですね。共有メモリの作成と取得には、`DosAllocShrSeg`関数と`DosGetShrSeg`関数を使うと。

hakase
博士

その通り!デバイスサービスも充実しておるぞ。ビデオディスプレイ、キーボード、マウスなどをサポートしておる。

roboko
ロボ子

`VioWrtCharStrAtt`、`VioSetCursorPos`、`VioScrollxx`などの関数でビデオインターフェースを操作し、`KbdCharIn`、`KbdGetStatus`、`KbdStringIn`などの関数でキーボードを操作するのですね。

hakase
博士

ファイル管理も見てみよう。`DosOpen`関数でファイルを開き、`DosClose`関数でファイルを閉じる。`DosRead`関数と`DosWrite`関数でファイルを読み書きするんじゃ。

roboko
ロボ子

非同期読み書きには`DosReadAsync`関数と`DosWriteAsync`関数を使うのですね。ディレクトリクエリには`DosFindFirst`、`DosFindNext`、`DosFindClose`関数を使うと。

hakase
博士

プロセス間通信 (IPC) も重要じゃ。パイプ、キュー、セマフォなどのメカニズムが提供されておる。

roboko
ロボ子

`DosMakePipe`関数と`DosDupHandle`関数でパイプを設定し、`DosCreateQueue`関数でメッセージキューを作成するのですね。セマフォはRAMセマフォとシステムセマフォの2種類があると。

hakase
博士

最後に、その他のOS/2サービスじゃ。タスクタイミング、プロセスシグナリング、サウンドなどのサービスがあるぞ。

roboko
ロボ子

`DosTimerStart`関数と`DosTimerStop`関数でインターバルタイマーを開始および停止し、`DosSleep`関数でスレッドがタイムスライスを放棄するのですね。

hakase
博士

OS/2は将来、286/386マイクロコンピュータのオペレーティングシステムになる可能性があったんじゃ。ファイルシステムのインストール可能化やセキュリティメカニズムの追加などの機能強化が予定されていたらしい。

roboko
ロボ子

なるほど。OS/2は当時としては先進的な機能を備えていたのですね。勉強になりました。

hakase
博士

ところでロボ子、OS/2って「オーエスツー」って読むけど、ロボ子の「ロ」と「ツー」を合わせると…?

roboko
ロボ子

…博士、それはちょっと無理があります。

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search