はじめに
8ビットCPUで動作するOSの情報を集めていると、ファミコン上でUNIX風OSの動作に成功したとの記事を見つけました。
実際に、どのように動くか確認しました。
本稿の内容は、「鹿児島Linux勉強会 2024.03(オンライン開催)」での発表内容を含みます。
LUnix Next Generation
ファミコンのCPUは6502という8ビットCPUをベースに作成されました。
6502のCPUを搭載したコンピュータのうち、Comodore64、Commodore128、Atari 400/800、Apple IIで動作するUNIX風OSにLUnix Next Generation(以降、LNG)があります。このOSはTCP/IPをサポートしており、ネットワーク接続の実験ができます。
lng-fds
2024年1月にLNGがファミコンに移植されました。
Youtubeの解説を見ると、ファミコン本体のRAMが2 KBなので、ディスクシステムのRAMアダプタの32 KBも活用して、動作環境を構築したようです。LNGはディスクシステムから起動し、ファミコンディスクへの読み書きも可能なようです。キーボードには、本体の拡張端子に接続可能なファミリーベーシックキーボードを利用します。
Youtubeの動画では、Mesenというエミュレーターでの操作が最初に紹介され、その後、NESとEverDriveの組み合わせで実機での起動が紹介されています。残念ながら、キーボードが接続されていないので、起動時に表示されるピリオド状のプロンプト表示までで、動画は終わります。
エミュレータのMesenでの動作
動作に必要なLNGのディスクイメージはあらかじめコンパイルされており、「lunix.fds」として公開されています。
使用されているエミュレータのMesenで「lunix.fds」を動作させるためには、RAMアダプタに搭載のディスクシステムの制御用ROMのイメージファイルが必要です。
RAMアダプタからROMイメージをダンプしてもいいのですが、本実験では、ニンテンドークラシックミニのROMファイルを使用しました。
Mesenを起動後に「lunix.fds」を読み込むと、LUnixが起動します。パソコンのキーボードがファミリーベーシックキーボードをエミュレートしますので、「Init v0.1」の次の行の「.」のところに「l sh」と入力すると、LUnixのShellが起動して、コマンドプロンプトが表示されます。
おわりに
ファミコンエミュレータのMesen上で、LNGが動作しました。
ファミコンクラシックミニにもファミコンエミュレータが搭載されているので、起動を試したところ無事起動したのですが、ファミリーベーシックキーボードのエミュレーションの方法がわからず、コマンドプロンプトには至っていません。
以下にファミコンクラシックミニでLNGを起動した動画を掲載します。