多くの「独自のオペレーティング システムを構築する方法」のチュートリアル
に従って、フロッピー ディスクのブート セクタにカスタム ローダーを書き込むことになっています 。
#include <sys/types.h> /* unistd.h needs this */
#include <unistd.h> /* contains read/write */
#include <fcntl.h>
int main()
{
char boot_buf[512];
int floppy_desc, file_desc;
file_desc = open("./boot", O_RDONLY);
read(file_desc, boot_buf, 510);
close(file_desc);
boot_buf[510] = 0x55;
boot_buf[511] = 0xaa;
floppy_desc = open("/dev/fd0", O_RDWR);
lseek(floppy_desc, 0, SEEK_CUR);
write(floppy_desc, boot_buf, 512);
close(floppy_desc);
}
私はフロッピー ドライブを備えた PC を持っていなかったので、VirtualBox を介して仮想マシン上でプロジェクト全体を試すことを好みます。
では、仮想マシンによって呼び出される仮想 CD イメージにカスタム ブート セクタを書き込む方法は? :)
別の方法がある場合は、それを提案してください:)