質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
バイナリ

バイナリは、「0」と「1」だけで表現されている2進数のデータ形式。または、テキスト以外の情報でデータが記述されているファイルを指します。コンピューター内の処理は全て2進数で表記されています。

OS

OS(オペレーティングシステム)は、システムソフトウェアの一種であり、一般的に、ハードウェアを直接的に管理・操作する最も中心的な機能を有するソフトウェアがオペレーティングシステムとして呼ばれます。

Q&A

解決済

2回答

1206閲覧

自作OS バイナリを写経してhello world

tiikk

総合スコア12

バイナリ

バイナリは、「0」と「1」だけで表現されている2進数のデータ形式。または、テキスト以外の情報でデータが記述されているファイルを指します。コンピューター内の処理は全て2進数で表記されています。

OS

OS(オペレーティングシステム)は、システムソフトウェアの一種であり、一般的に、ハードウェアを直接的に管理・操作する最も中心的な機能を有するソフトウェアがオペレーティングシステムとして呼ばれます。

0グッド

1クリップ

投稿2021/01/05 06:42

30日でできる!OS自作入門ではじめにバイナリを写経してhello worldと表示させるものをやったのですが、この本に載っていたバイナリでは実機で動作させることができませんでした。
https://uchan.hateblo.jp/entry/2018/05/07/233338
こちらを参考にバイナリを写経してやるとhelloworldと実機で表示させることができました。
実機で動作させることのできなかったバイナリです。

00000000 eb 4e 90 48 45 4c 4c 4f 49 50 4c 00 02 01 01 00 |.N.HELLOIPL.....| 00000010 02 e0 00 40 0b f0 09 00 12 00 02 00 00 00 00 00 |...@............| 00000020 40 0b 00 00 00 00 29 ff ff ff ff 48 45 4c 4c 4f |@.....)....HELLO| 00000030 2d 4f 53 20 20 20 46 41 54 31 32 20 20 20 00 00 |-OS FAT12 ..| 00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000050 b8 00 00 8e d0 bc 00 7c 8e d8 8e c0 be 74 7c 8a |.......|.....t|.| 00000060 04 83 c6 01 3c 00 74 09 b4 0e bb 0f 00 cd 10 eb |....<.t.........| 00000070 ee f4 eb fd 0a 0a 68 65 6c 6c 6f 2c 20 77 6f 72 |......hello, wor| 00000080 6c 64 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 |ld..............| 00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa |..............U.| 00000200 f0 ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00001400 f0 ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00001410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00168000

こちらのバイナリが実機で動作しないのは現代のパソコンに対応していない感じですか?
実機で動かない理由が知りたいです。教えてください。お願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

satocha

2021/01/05 06:58

PCのファームウェア設定はBIOSでしょうか 古い本のようなので、UEFIでは動かないはずです いきなり実機ではなく、仮想PCの設定をBIOS PCにして試してみたらどうですか
coco_bauer

2021/01/05 08:03

参照されている2018年の記事に『「30 日でできる!OS 自作入門」は 12 年前の本なのでなかなか試せませんが」』と書かれているんで、本に掲載されていたのは2006年以前にリリースされていたCPUで動作するものだったのでしょうね。 「本記事は最新のやり方で説明してありますから,現代のパソコンで試せます」とあるので2018年当時のCPU(x64アーキテクチャ)で動作したのでしょう。 2006年頃は、従来の32bitCPUから64bitCPUに移行していった時期です。32bit版の古いCPUが使われている中古パソコンを入手すれば、本のコードが動作するかもしれませんよ。
guest

回答2

0

ベストアンサー

先頭512バイトの末尾2バイトに55 aaが入っているので、元のコードはMBR(マスターブートレコード)の先頭446バイトの領域にある「ブートストラップローダー」ですね。

投稿2021/01/05 09:29

Daregada

総合スコア11990

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

UEFI が認識できるように作ってあるので

って書いてあるのでそこらへんかなと思います。
UFEIってのができたのはわりと最近です

投稿2021/01/05 06:58

y_waiwai

総合スコア88042

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問