Help us understand the problem. What is going on with this article?

D 言語で書かれた OS をいじっている

More than 3 years have passed since last update.

ハック PowerNex

スウェーデンの兄ちゃんが目下開発中の OS がある。その名は PowerNex、もちろん D 言語製である。ユーザ空間のアプリケーションが書けるようになり、コマンドラインシェルを中心として、ちょっとしたデモが標準搭載されている。

OS があってコンソールがあるなら、D 言語くん AA を降臨させようとするのが人情というもの。Advent Calendar だけに。

Advent of D-man

ただコンソールに表示させるだけならば、ユーザ空間の Hello world プログラムを参考にすれば容易に可能だ。注意が必要なのは Phobos は移植されていないということだ。独自のユーティリティライブラリとシステムコールはそれなりに用意されているし、object.d もそれなりに移植されているようなので、ちょっとした遊びには困らない。

PowerNex でも D 言語くんが通り過ぎる

さて、D 言語くんを降臨させたら、動かしたくなるのが世の常だ。そこで、dl コマンドを移植することにした。

このためには ANSI エスケープコードをコンソールが解釈する必要があり、それはカーネル側に実装する必要があったので、下のページを参考に、パーサを書いて使うことにした。

例によって Phobos はないもの、カーネル自体がクラスを多用しているため、クラスをゴリゴリ使えるような object.d が最低限用意されているのが強い。配列や連想配列でうぉりゃーとしようとするとリンカに怒られたりするが。そんなこんなで、それなりのエスケープコードを使えるようになったコンソールのデモがこれだ。

これは最初期の状況で、今は各種エスケープコードに対応できるようにハックを続けている。GitHub に作業中のリポジトリがあるのである。この記事を書いている時点では D 言語くんプログラムをコミットしていないが。

普通の OS で動く普通の超高級な D 言語プログラムに飽きたときは、変な環境向けの処理を書くと新鮮な気持ちを D 言語くんが届けてくれる気がする。

どっちかっつーと、D 言語くん Advent Calendar 向きの記事になってしまった。

e10s
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした