読者です 読者をやめる 読者になる 読者になる

livaの雑記帳

OSとか作ってみたい

自作OSにおけるUEFI対応戦略

たまにはtwitterのまとめじゃなくて、ちゃんとした記事でも。 自作OS界隈でUEFI流行ってるというか、なんかUEFIすごーい!って崇めてる人が多いようなのでその雑感。 UEFIとは 最近主流のブートファームウェア。BIOSの高機能版。 最近のUEFIマザーは大体BIOS…

grubのpf2ファイルの解析

UEFIサポートによりフレームバッファにテキストを描画しなければならなくなったので、grubのpf2ファイルを使って描画する事にしてみた。 UTF-32ってのが良い。vga/textだとasciiしか描画できない。 pf2ファイルのCHIXエントリ内にあるoffsetはたぶんファイル…

UEFI対応

諸事情により、UEFIに対応したい。 現状grub-pcからのmultiboot2仕様による起動なので、grub-efiに載せ替えれば動くだろと思ったら動かなかった。 gdiskをスクリプトから使う時はsgdiskが便利 #liva_notebook— Liva (@liva_jy) 2017年4月2日 とりあえずこの…

自作osでlinuxのhello worldバイナリを動かす

elfのロードまではできているので、実際に実行して、linuxシステムコールを処理する云々の話。 newlib static linkしたelfを実行するといきなりdup2が呼ばれる。かつ呼び出した関数がunameらしい。とりあえずソース特定せねば #liva_notebook— Liva (@liva_j…

自作OSにUSBを実装する

はじめに この記事は自作OSでUSBキーボードを実装しようとして半年くらい四苦八苦していた経緯の備忘録です。時系列で書いてくので、読みにくかったらごめんなさい。 USB周りの経験値がゼロな状態から実装した結果、遠回りやら勘違いやらいろいろしているの…

I/O APICのEOIが動かない

お、IOAPICのEOI registerの実装が入ってたのか、これは最新版を使うしかあるまい https://t.co/09mUxTV4NG #liva_notebook— Liva (@liva_jy) 2017年3月19日 正直に言うと、EOI registerを使わない手法がバグってる #liva_notebook— Liva (@liva_jy) 2017年3…

雑記(3月)

忘れないようにメモ #liva_notebook https://t.co/e1pabD3HJ3— Liva (@liva_jy) 2017年3月19日 今日のデバッグでdeassertされないPCI割り込みによって無限に割り込みが発生するバグが再発してしまったので、ついでにそれも修正してしまう #liva_notebook— Li…

USBキーボードのデバッグ

ここ最近USBの実機テストを行ってきたのだけど、今日もその続き #liva_notebook— Liva (@liva_jy) 2017年3月19日 USBキーボードからのパケット(実機)、1つのキーを押している時はTransfer Descriptor内にキーデータが入らない(1つ処理されて割り込みは…

2017/3

書き溜めた知見(というよりは独り言)を転記 3/18 割り込み周りのデバッグをする場合は、HPETを使おう HPETならFSB割り込みとI/O APIC経由の割り込みの両方をサポート FSB割り込みはPCIeのMSIのデバッグに使える PCIで割り込みが出ない場合、デバイス(PCI…

自作OSに10GbE NICを移植する

(この記事は古いサイトから移行したものです) Raph Kernelでintel X540-T2を動かすために、slank君と一緒にixgbeドライバを実装しました。 10GbEってのはやはり夢がありますね。ボトルネックを筋肉で解決する感じの脳筋プレイ、嫌いじゃないです。大艦巨砲…

2016/8

書き溜めた知見(というよりは独り言)を転記 8/28 cpuid 1における謎な例外発生は単純なプログラミングミスだった。関数ポインタのポインタでコールバック呼び出しをしていたのだけど、実体となる関数ポインタ変数自体がスタックに置かれているので、そのポ…