UEFIの使い方を考える
- TuvianNavy
- 1301
- 1
- 0
- 0
世の中に公開されてる星の数ほどのswagger spec、どこかで誰かはcurlでそれを叩いてるはずだけど、秀和システムの解析マニュアルみたいな本になぜかならないっていう。。
2020-06-28 12:31:37UEFI Chronology gist.github.com/TuvianNavy/854… 今年の後半はこれをもうちょっと読み応えのあるものに成長させようかなあ
2020-06-28 13:17:24UEFIはなんかターミノロジーがいけてないんだよ、EFIかUEFIかはっきりしろって感じだしGPTは肝機能かよって思うしESPは謎の金色のシール貼るおまじないとかIPsecとか思うし極めつけはプロトコル、あれはコールバック関数のインタフェース登録スロットなんだからもうちょっとそれを示してほしい
2020-06-29 21:02:16rx2600かzx6000(広く入手可能な最初のEFI採用機器、Itanium2)を買わないと試せないことがあってこれコスパ的に無理すぎる。。
2020-06-28 13:22:24品薄で中古価格も安くない(たまにシリアスな維持管理案件用に買う人がいるんだと思う)、そのうえOSはどれもこれも入手困難ときている
2020-06-28 13:23:38Itanium2なSuperDomeは2度くらい目にしたことがあるから、2010年代にちゃんと社内で計算機のわかる会社なら金融機関以外でも買ったとこはあるはずなんだけど、SuperDomeは使い終わったからって中古市場に流せる代物じゃないし、
2020-06-28 13:26:25eliloの動作がよくわかんないんだよね、もしLILOと基本思想が同じなら、GUID Partition Tableを読んで得たPartitionの先頭位置に自分自身を書き込む動作をすると思うんだけど、これはEFIの設計思想ガン無視だよね
2020-06-28 13:51:19rx2600/zx6000のファームウェアがそんな動作をするブートローダを想定しているわけがないと思うんだけど、上述の理由で実機で試すのが絶望的 とりあえず読むか
2020-06-28 13:53:08普通に「eliloはEFIバイナリで」(つまりMBRへの書き込みに相当するのは単にEFI System Partitionへのコピー)ESPから見える.confを読んでEFIが認識するパーティションまたはnetからブートするだけだった twitter.com/TuvianNavy/sta…
2020-06-28 19:29:03linuxユーティリティーとしてのelilo(GUID Partition Tableを操作しEFI System Partitionを作ってFATでフォーマットし、elilo.efiをコピーし、efibootmgrでeliloをBootXXXXに、という一連の操作をするもの)は別にあったのね launchpad.net/ubuntu/precise…
2020-06-29 15:07:50efibootmgr(1)はそもそもDellの人が書いたんだけど、現在のupstreamはRedHatっぽい、 github.com/rhboot/efiboot…
2020-07-17 03:29:47elilo、ChangeLog読む限り少なくとも2000年3月にはHP(旧Compaq)社内に存在していたし、最初期のコードを書いてたStephane Eranian氏は今Googlerぽい
2020-06-28 14:00:37David Mosberger氏も最初期の貢献者、いまどこ? Mosberger-Eranianは界隈の基礎文献ぽい amazon.co.jp/IA-64-Linux-Ke…
2020-06-28 14:02:53処理すっとばすのにgoto多用してたり無限ループに入るので/* NOT REACHED */だったり(これはローダだから)
2020-06-28 19:42:59MakefileみるとRH9のgcc-3.xが壊れたEFIバイナリを生成するとかコメントに書いてある gcc2用の設定をする部分はあるのに別のところでgcc2を弾いてたり、いろいろ時代を感じる
2020-06-28 19:48:58デフォルトのビルド設定だとext2(!)サポートが潰されてるのでESP(fat)またはネットブートしかできない ext2を潰したのはext3対応の工数を割けなかったっぽい、まあ
2020-06-28 20:00:09libc、使ったことがないのでよくわからないのだが、elilo/ia32とかelilo/ia64を見るとmemcpyとかmemsetはアセンブラで実装されている strlenaはどこなんだろう、gnu-efiの中か?
2020-06-28 20:51:37で、EFIプロトコルを呼ぶときに必ず必要になるグローバルポインタBSとはなんぞや?おそらくこれはgnu-efiの中でefi.hとかで定義されているやつ
2020-06-28 20:27:45まあ誰でもすぐわかるけどBootServicesの略
localfs(ESP=FATサポート)はもともとEFIファームウェアの中に実装があるはずなので大したことは書いてない それ以外のファイルシステムへのアクセスの面白い点は基本的に実装をコールバック関数の形にしてEFIに登録すること、そしてファイルシステムへのアクセスコードを本編からは直接呼ばない
2020-06-28 20:13:09