オーベルジーヌ実食レポ 食べ物の鼻塩塩(未だに通じるのかな) オーベルジーヌというカレーをご存知だろうか 都内にあるデリバリー専門のカレー屋で、 ロケ弁などで大人気の本格欧風カレーが楽しめるらしい いいな〜 いいな〜オブザイヤー 都内の奴らはこんな良いモン食ってんのか 許せねえよ………
前回でディスクからのデータ読み込み方法と、その時にぶつかる壁について解説した。今回はいよいよデータの読み込み処理を実装していく。 ソースファイルを追加する さて、読み込み処理を書くに当たって読み込むデータ(プログラム)が何か無いと始まらない。今までコードは全てipl.sという1つのソースファイルに書いていた。これに加えて、setup.sというソースファイルを別に用意する。この後機能拡張をしていくときは、ipl.sではなくsetup.sの方にコードを追加していく。因みに、わざわざsetupなんて名前にしたのは、今後ここに色々な初期化処理を書くよという布石だ。 とりあえず最初は無限ループで止まるようにしておけばいいだろう。 # setup.s .code16 begin: jmp begin リンカスクリプトを書く setup.oは、今まで書いたIPLのすぐ後ろに追加したい。そのためには、リン
またしても再開……。 さて、D言語が普通に動かせるようになった。scope指定をすればクラス・オブジェクトも作れるようになった。 が、まだ動的なメモリ確保やオブジェクト作成ができない。もっと言えば、実行時にサイズが初めて確定するようなデータのメモリ領域を確保できない。 動的なメモリ確保を行うためには、メモリ領域を色々と管理しなければならない。どの領域がどのくらい空いているのか、あるいは使われているのか、常に把握しておく必要がある。 これから、とりあえずカーネル・モードでのメモリ管理について解説する。 ページングについて ページングとは、メモリ管理の方法の一つだ。 少し前にセグメンテーションというメモリを分割する機能のことを説明した。ページングも同じようにメモリを分割する。ただ、ページングではメモリを固定サイズのページに区切る。具体的に言うと4KBで区切る(実は4MBでも区切れたりするが割愛
D言語の関数を呼び出すことに成功した。これからどんどんD言語で機能を追加していく。 OSを作っている以上、外部デバイスをいじれないとつまらない。画面表示や何かに動いているという証が欲しい。今回は、割合制御が簡単なシリアル・ポートに文字列を出力させてみる。シリアル・ポートの出力ならqemuからも簡単に見られたりする。 今回のソース startup.d io.d IO関数の用意 シリアル・ポートはIOポートを叩くことによって制御する。IOポートはアセンブラの命令で叩くことができる。が、D言語の世界に既に移行してしまったので、できればD言語の関数でIOポートを叩けるようにしたい。今後もIOを操作する機会は多いだろうから、アセンブラ命令を単純にラップした関数を用意しておく。 実はD言語の標準ライブラリ(Phobos)には、IOポートを叩くための関数が用意されている。しかし、OSを作るに当たって標準
32ビットのプログラミングで・・・"undefined reference to __main"ってなに? gccを使って32ビットのプログラムをしています。 main.cとsu.asmでできたプログラムをくっつけてます su.asmはスタートアップルーチンでそっからmain.cの 中のmain()を呼び出してます。すると・・・ C:\JO>make gcc -fno-builtin -nostdlib -ffreestanding -nostartfiles -nodefaultlibs -march=i486 -c main.c nasm -f win32 su.asm -o su.o -l su.lst ld -o os.obj -Map mapfile.txt -T ld.scr su.o main.o main.o(.text+0x21):main.c: undefined re
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く