2011-06-01から1ヶ月間の記事一覧

6.828: Operating System Engineering (17)

Exercise 3 cprintf 関数の中の va_start(ap, fmt);した時点で fmt は "x %d, y %x, z %d\n" な文字列の先頭アドレスを指していて ap は二番目の引数なスタックの番地を指してます 次。cons_putc, va_arg, and vcprintf の順で云々という記述があるな。とり…

Scheme 手習い 8 章 (2)

思いだした。リストの場合の継続がイメージできていないのでした。 ええとリストなので car を処理して継続の中でも cdr について evens-only*&co しないといけないのか。んでそれに渡す継続が、、なのか。 これって以下を机上で確認した方が良いのかな。 (e…

Scheme 手習い 8 章

エントリ投入の報せが入った。 Scheme手習い Chapter 8 とりあえず git pull して $ git pull remote: Counting objects: 138, done. remote: Compressing objects: 100% (57/57), done. remote: Total 136 (delta 89), reused 126 (delta 79) Receiving obj…

6.828: Operating System Engineering (16)

以下、inc/stdarg.h のマクロの解析メモ。

6.828: Operating System Engineering (15)

Exercise 8 ですが 'x' をパクれば良いのかな。 // (unsigned) hexadecimal case 'x': num = getuint(&ap, lflag); base = 16; number: printnum(putch, putdat, num, base, width, padc); break;

雑感

x86 ってそろそろ互換維持なナニがウザい。というか x86_64 ってどこまで 8086 なソレを意識しているのかとかって思ったり。 # 確認する気はあまり無い 6.828 なナニが intel 系ってテーマなんですが、お約束なコードがばんばん出てくるあたりが本当に微妙。…

6.828: Operating System Engineering (14)

普通に考えて進捗悪い。まだ一コマ目なのに 14th だし。 ええと segmentation and paging とか出てますね。とりあえずどんどん読みます。 Exercise 7. Use QEMU and GDB to trace into the JOS kernel and find where the new virtual-to-physical mapping t…

6.828: Operating System Engineering (13)

さ、続きに着手。 てか、以下に At what point does the processor start executing 32-bit code? What exactly causes the switch from 16- to 32-bit mode? What is the last instruction of the boot loader executed, and what is the first instruction…

6.828: Operating System Engineering (12)

これ、読み込んだソレを x/i で確認せよ、ということなのかな。とりあえず 0x7c00 に breakpoint 設定 continue 次に止める場所の確認 という状況なんですが、boot.asm 見たら昨晩エントリな 0x7d7a に breakpoint 設定して 0x10018 以降のナニを確認してみ…

スマートフォンアプリコンテスト in 琉球

以下なイベント、自分が所属する会社と沖縄セルラーさんで実施する模様です。 スマートフォンアプリコンテスト in 琉球 スマコン、と呼称しているようですね。 わしも何かヒネリ出してみるかどうか、考えちう。入賞したらスマホがもらえるのか。

Please help me

10 数年前にお世話になった先パイから質問が着信。 Linux サーバから FTP 経由して OSX なクライアントにファイルを download したい、というのが要件とのこと。試験環境では正常に処理できるんだけど、本番では NG らしい。 目に見えての違いは、FTPサーバ…

6.828: Operating System Engineering (11)

昨晩のエントリを見直してみたのですが、あまりの gdgd っぷりにびっくり仰天。とりあえず晩メシ担当の作業は完了したので確認作業着手。現時点でスデに酒が入っているので gdgd になる可能性は大きいッス。

とりあえず

あまり x/i とかで確認してないし。明日もあまり TODO はないので (本当?) がつっと確認させて頂く方向でナニ。 と言いつつ 資料をもう少し確認する方向ですが。

6.828: Operating System Engineering (10)

箇条書き再掲。 At what point does the processor start executing 32-bit code? What exactly causes the switch from 16- to 32-bit mode? What is the last instruction of the boot loader executed, and what is the first instruction of the kernel …

GClue ササキさんの tweet

以下なナニを見て Androidのハードウェアなチュートリアル始めました http://t.co/8a22xoi Androidプログラマはこれからは電子回路の知識も必須という事で。 http://twitter.com/#!/gclue_akira/status/84572298534846464 リンク開いてみたのですがびっくり…

6.828: Operating System Engineering (9)

ええと以下の命令について [f000:efe9] 0xfefe9: mov $0x8f,%eax 0x0000efe9 in ?? () (gdb) si [f000:efef] 0xfefef: out %al,$0x70 0x0000efef in ?? () (gdb) si [f000:eff1] 0xfeff1: in $0x71,%al 0x0000eff1 in ?? () (gdb)色々確認していたのですが、…

6.828: Operating System Engineering (8)

How Boot Loaders Work を読んでいるのですが、boot/sign.pl は無理矢理 512 にしてるだけではなくて、末端にマジックナンバー The last two bytes of the sector are checked for the values 0x55 and 0xAA, this as a rough sanity check. も入れてますね。

6.828: Operating System Engineering (7)

えと、テキストの Exercise 2. Use GDB's si (Step Instruction) command to trace into the ROM BIOS for a few more instructions, and try to guess what it might be doing. You might want to look at Phil Storrs I/O Ports Description, as well as o…

最近英語ドキュメントばかり

以下を読まねば。 Linux Boot Loaders Compared Learning Erlang, a UNIX developer's perspective そういや老眼鏡を買ってもらうんだった (わら # 英語のドキュメント字が小さくてorz

6.828: Operating System Engineering (6)

台風な週末は勉強三昧になるのかどうなのか。 それは良いとして 0x7c00 って見覚えあるなってことで自分ブログを検索してみたら ; boot.s is loaded at 0x7c00 by the bios-startup routines, and moves itself ; out of the way to address 0x90000, and ju…

6.828: Operating System Engineering (5)

実は 6.828/lab 配下の GNUMakefile には boot とか kernel とか kernel.img を作るルールは書いてなくて最初困りました。ただ、昨晩見つけてた obj/.deps みたく上の方で include されている以下のファイルを確認したらありました。 boot/Makefrag kern/Mak…

6.828: Operating System Engineering (4)

これやっぱソースファイルを特定したい。色々見てたら以下の行を発見。 -include $(OBJDIR)/.deps.deps の中身が以下。 obj/kern/printf.o: kern/printf.c inc/types.h inc/stdio.h inc/stdarg.h obj/kern/entry.o: kern/entry.S inc/mmu.h inc/memlayout.h …

6.828: Operating System Engineering (3)

とりあえず Ubuntu-box な qemu では動かないのだろう、ということにて tarball を download して $ ./configure --prefix=/opt --target-list="i386-softmmu x86_64-softmmu" $ make $ sudo make installした後に以下。 $ /opt/bin/qemu -hda ../lab/obj/ke…

6.828: Operating System Engineering (2)

make してみる。 $ make + as kern/entry.S + cc kern/init.c + cc kern/console.c + cc kern/monitor.c + cc kern/printf.c + cc kern/kdebug.c + cc lib/printfmt.c + cc lib/readline.c + cc lib/string.c + ld obj/kern/kernel + as boot/boot.S + cc -O…

6.828: Operating System Engineering

今年度のメインテーマなので基礎な部分からこつこつ確認します。こっち (Fall 2010) を見た方が良いんですかね。 とりあえず リンクな資料を手元に持ってきて LEC1 から目を通してみます。メモがとれたら以下に追記の方向。

今日の朝練

今朝はここから。なんとなく資料を流して wordcount.py を開く。 後で気がついたのですが、これ系って現実トウヒベースで対応した方が生産性が良いですね。朝練の時は gdgd だったんですが、仕事の合間に実装書いたらどんどん進んだので笑いました。

朝練次の次はこれ? http://pdos.csail.mit.edu/6.828/2010/ とりあえずわし的にはここから始めた方が色々な意味で良い気がしてます。ので、朝練と言わず先にどんどん確認してみます。

Scheme 手習い

9 章は Y Combinator らしい。見てみたら確かにそうですね。なんとなく 8 章以降は試験ドリブンで云々ってのは若干微妙な気がしてきてたりして。 8 章は大丈夫かな。9 章は気合が必要なカンジ。7 章を越えてまさに核心ですな。

iosched の ScheduleProvider

どっかで纏めたような気もするのですが、と思ったらシリーズもので纏めている模様。って中身見てみたらあまりきちんと纏められてはいないのですね。 ということで 以下にエントリ投入の巻。 iosched ソース読み (9) BlockView だの Workspace だのというあた…

マニュアルについてフォロー頂いた件

このエントリへのフォローとして以下なコメントを頂きました。 Gauche のマニュアルは改訂があった場合等に URL (ファイル名) と内容の対応付けが変わる場合があります。 より便利な以下の形式が用意されているので活用してみてはいかがでしょう。 http://p…