サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
おみそ汁
neriring.hatenablog.jp
第12世代 Intel プロセッサの最大の特徴は、高性能コア (Performance の P) と高効率コア (Efficient の E) によるハイブリッドアーキテクチャを採用していることです。 これは Arm で big.LITTLE と呼ばれていたものによく似ていて、 ひとつのプロセッサで高性能と省電力を両立させるのは難しいので、 高性能プロセッサと省電力プロセッサを両方同じパッケージに入れて切り替えて使おうという考え方です。 一見乱暴に見えますが、現代のプロセッサはマルチコア構成が当たり前で OS もマルチコア前提でコア間のマイグレーション機能が既に実装されているので、スケジューリングする際にどのプロセッサを優先的に割り当てるのか調整するだけで割と簡単に高性能と省電力を両立することができます。 実際にこの機能が使えるプロセッサが登場したので MYOS でも対応したいと考えていた
Intel64 は AMD64 を参考に実装したので、9割以上のアプリケーションにおいて概ね互換性があります。 一方、船頭多くしてなんとやら、両社の政治的な思惑などが絡んで意図的に非互換になっている部分があったり、細部の互換性をとることができていない部分があったりします。 AMD64 と Intel64 の代表的な差異は色々なところでまとめられているのですぐ見つけることができますが、中には一般に知られていない差異もあります。 以前 EFER.LMA の差異を発見したことがありましたが、今回新しい差異を発見したのでここにまとめます。 neriring.hatenablog.jp 事件編 myos は、現代では Intel64 PC の方が手に入りやすいので Intel64 機で開発されてきました。 そして、ある程度動くようになってきたので家にあった唯一の AMD64 機でも動作確認をすること
ついに、 WebAssembly の自作エミュレータの上で動く自作 OS の上で自作 WebAssembly ランタイムが動くようになりました 🎉 つまり Wasm on Wasm ですね٩( 'ω' )و 以下に試験的に体験版設置してるので起動してみることができます。 meg-os.org もちろん PC98 や FM TOWNS でもなんとなく動きます。 基本的には MYOS で実装したものを若干調整して TOE に移植しただけです。最初に移植したときは動くアプリと動かないアプリがあって、調査しようとしたら wasm ランタイムを外部ライブラリに分離して no_std の関係で今まで使えた println! が使えなくなって原因の特定に若干手間取りました。 最終的には、内部で使ってる独自スタッククラスが原因でした。 独自スタックが必要な理由は、 wasm では関数1つ呼び出すたびに複
2020-12-23: cargo xbuild が不要になったので一部修正しました。 さいきん Rust のべんきょうはじまりました! github.com Rust とは 安全に低レベルプログラミングができるナウい言語っぽいです。 メモリ管理が厳しいので初学者はコンパイルを成功させるだけでも一苦労です。 UEFI とは 2000年ごろに BIOS を代替する目的で開発された PC 向けの新しいファームウェアです。 当初はマイナーな存在でしたが Window 8 の登場とともに市販の PC に広く利用されるようになり、今後は PC の BIOS は廃止されて UEFI が搭載されることになっています。 UEFI で Hello World さて、 Rust で UEFI のプログラミングするにはどうすればいいでしょうか。 まずは公式から Rust をインストールしましょう。 $ curl
WASM で PC エミュレータ作りました☆(ゝω・)vキャピ github.com ※ 現時点では自作のOSすら起動しません。 すでにいろんなエミュレータが存在しているので今更感あるかもしれないですが、このエミュレーターは WebAssembly を使っているのが大きな特徴です。 もともと Web ブラウザーで動作するPCエミュレーターを探していて、いくつかあることはあるのですが、どれも不満がありました。 筆者は数年前に Web で動作する PC エミュレーターを試作したことがありました。 サーバーサイドで既存のエミュレーターを動作させて WebSocket で入出力だけブラウザ側が担当する実装でした。 クライアントの処理が軽いので軽快に動作しましたが、動作するサーバーの問題があって公開前に開発中止になりました。 クライアント単体で完結できるものとして JavaScript を利用した
CPUが現在実行中のプログラムを中断して処理しなければならない事象が発生した時、一般に「割り込み」というメカニズムを使ってその事象を処理します。 広義の割り込みは実際には以下の3種類に分類できます。 例外 CPUが命令の実行を継続できない事象が発生したときにOSに判断を委ねるために例外が発生します。 多くの場合はプログラムのミスによるエラーや悪意あるプログラムによる不正な特権操作を行おうとした場合に例外が発生してアプリケーションが終了しますが、全ての例外が必ずしもエラー終了となるわけではなく、ページフォールトのようにOSの処理によって命令実行が続行可能な場合もある例外もあります。 外部割り込み 外部デバイスのデータ転送が終了したり、データ転送要求があったり、タイマーの状態が変化したときなどにCPUに通知するために割り込みが発生します。狭義の割り込みはこれを指します。 x86は歴史的事情によ
この記事は 自作OS Advent Calendar 2018 - Adventar の記事です。 未来ある若者よ、 BIOS で消耗するな UEFI で消耗せよ。 Intel は 2020 年までに CSM (BIOS 互換機能) を撤廃して UEFI に完全移行する方針を発表しました。つまり、もう BIOS に未来はありません。 すでに UEFI Class 3 と呼ばれる BIOS 互換機能をサポートしていない PC も増えてきているので決して楽観視できる出来事ではありません。 近い将来 BIOS に依存した OS は実機で起動しなくなり、起動する PC を求めて秋葉原の裏路地を彷徨う必要があるかもしれません。 彼の者の名は UEFI BIOS は40年近く前からあって設計が古く問題も多いです。 BIOS にあった根本的な問題を解決するために UEFI は生まれました。 BIOS モ
このページを最初にブックマークしてみませんか?
『neriring.hatenablog.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く