47

私は狂っているのではなく、車輪を再発明しただけです :D
ブートローダー、マウスとキーボードのミニドライバー、ミニ OS などを書きました。

私は常にDOS割り込みを避け、BIOSのみを使用し、ユニティミニOSを進めようとしていますが、突然、独自のBIOSを作成することにしました:)

伝説は言った:
私は高レベルのプログラマーで、次に低レベルのプログラマーでした。いつか機械語プログラマーに!

BIOSはアセンブリで書かれていますか? どうすればフラッシュできますか?メカニズムは何ですか?現在の BIOS の編集を開始できますか?

4

5 に答える 5

30

BIOS はアセンブリで記述できますが、そうである必要はありません。コンパイラの呼び出し規則と一致しないため、システム コールのパラメータを取得する必要がある部分もあります。

どのようにフラッシュしますか?マザーボードごとに異なりますが、オープン ソースの仮想マシンから始めて、そのための BIOS を作成します。または、BIOS を書き込んだ仮想マシンを作成します。メカニズムはベンダーごとに異なります。通常、dos を起動します (dos は死んだわけではありません。PC の世界、特にマザーボードの開発や組み込みシステムでは非常に活発です)。これらすべての質問に対する答えをまだ知らない場合、その道をたどると多くのマザーボードをブリックすることになります。

マザーボードの BIOS アップグレードを試みて、リバース エンジニアリングを試みることができます (ただし、同意しないというクリック スルー契約がある可能性があります)。それがわかれば、それをロードして at でハックすることができます。私はそこに行きません、あなたがそれを理解する前にあなたのシステムをブリックするでしょう。

BIOS を書くことは本当にあなたが求めていることですか? かなり古い学校で、楽しみのために 6502 コードを書くようなものです。より有用で興味深い低レベルの問題がたくさんあります。

マシンコードを書くことはそれほど難しくないので、それを書くことができれば、楽しみのためにそれを行うことができます。x86 はひどいものです。他のシステムとその asm およびマシン コードを学習する (およびそれらのオペレーティング システムを作成する) ことに時間を費やす必要があります。ARM は世界を支配しており、BIOS に依存していません。x86 以外のシステムでビデオ カードを起動するには、x86 BIOS で x86 をいじる必要があり、x86 BIOS を実行せずに主流のビデオ カードを起動する方法を見つけることができると言われています。エミュレーターがBIOSを実行するのを見て、それが何をするかを見て、BIOSがそれを行わずにその電源オンinitを置き換えることを理解してください...命令セットシミュレーターまたは逆アセンブラーを書くことは、マシンコードを書くことを超えた次のステップです。ただし、x86 では少し時間がかかりますが、

x86 BIOS を使用したい場合は、qemu、virtualbox などの仮想マシンの BIOS を作成、置換、またはハッキングするのが最善の方法です。その BIOS を自分のものに置き換えると、ディレクトリ内のファイルを置き換えるか、コマンド ライン オプションを使用して別の BIOS を指定することになります。その経験が十分にある場合は、レガシー バイオスが搭載されたマザーボードがまだあれば、ハッキングしてプログラミングを行うことができます (いくつかをブリックするため、各タイプのマザーボードを複数購入する必要があります)。同じレベルの経験を積めば 20 ドルから 200 ドルで入手できる非常に多くの組み込みシステムがあるため、まともな回路図とドキュメントなしで PC のマザーボードをハックするのは意味がありません。回路図と BIOS のリストが文書化されている元の PC を掘り出すことができます。また、BIOS がソケットに接続されているため、起動しない場合 (およびマザーボードを破壊しない場合) は、BIOS チップを再プログラムまたは交換できるレンガではありません。おそらく、より多くの BIOS チップを再プログラムするための適切なハードウェアを見つけることは、元の PC で動作するものを見つけるのがおそらく難しいため、マイクロコントローラーを偽の BIOS の代わりに使用したいと考えています。最新のハードウェアを従来のシステム コールの背後に置くなど、BIOS の改善/微調整を行っていただければ幸いです。

于 2012-06-05T03:32:27.440 に答える
1

FWIW Modbin は、名前が示すように BIN イメージを MOD 化する DOS プログラムで、既存の BIOS コードに対する単純な変更とかなり極端な変更の両方を目的としています。

古いマザーボードを手に入れることができれば (多くは捨てられてまだ動いています)、BIOS をいじってみることをお勧めします。興味があり、あなたがそうであると思われる場合、それは有益で楽しいものです:) 別のメーカーによって製造されたにもかかわらず、同じまたは類似の十分なチップセットを備えたマザーボードからBIOSイメージをダウンロードしたことがありました...時には、以下を含むかなりの利点があります元のモボの製造元がボールを落としたり腹を立てたりした後もBIOSの更新を継続するなどの単純なものだけでなく、機能とパフォーマンス指向のオプションと変更も含まれます.

これにより、ソケットに接続された BIOS チップをプルアップして、ピンがかろうじて接触し、一度起動すると、それをプルして不良チップ (多くの場合、私が fuxored したもの) を置き換えながら、まだ実行してフラッシュしています。システムをアクティブに保つキャッシュされた BIOS 機能。私たちマニアにとっては楽しい話であり、OS/2 用のデバイス ドライバを書く自信を与えてくれました。

于 2015-10-21T00:20:15.370 に答える
0

おそらくPCを実行する以外に、BIOSをフラッシュする方法があります。ただし、ハードウェアが必要です。しかし、非常に高価ではないはずです。

この種のテクニックのようなものを試すことができます: http://hackaday.com/2010/11/18/build-your-own-soic-progamming-clip/

今日見たこの講演: https://conference.hitb.org/hitbsecconf2015ams/sessions/how-many-million-bioses-would-you-like-to-infect/

感染を探しているわけではないかもしれませんが、プログラミングクリップがその1つであるBIOSに到達するためのいくつかのテクニックがカバーされています.

于 2015-05-29T00:22:55.700 に答える