问题标签 [multiboot]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
assembly - GNU GRUB 为 Multiboot2 提供“错误:不支持的标签:0xc”
我尝试将以下代码用于兼容 Multiboot2 的内核的标头,但是当我multiboot2
在 grub 中尝试该命令时,它给出了以下错误消息:
错误:不支持的标签:0xc
我的 Multiboot2 标头定义为:
我的项目存储库提供了完整的源代码。我用make test_longmode.iso
. 我用 QEMU 测试。
导致标签错误的问题是什么,我该如何解决?
installation - Mint Linux 找不到分配的 ssd 磁盘空间
我的笔记本电脑 DELL PRECISION 3530 有 1 TB SSD。首先,我安装了 300 GB 的 Windows 10。其余的未分配。我计划为其余空间安装 Mint Linux。当我通过可启动 USB 启动 Mint Linux 并尝试安装它时,它找不到未分配的空间。有什么问题如何解决?请给我建议!
ld - 与 GCC 链接未检测到 -fPIC 标志
我正在尝试链接一些文件。这是我的命令:
但是,我收到此错误:
我已经包含了-fPIC
论点,我只是把它放在错误的地方吗?我试过把论点放在它编译的地方,但没有运气。我找不到任何关于这个标志的语法的东西。谢谢!
c - 从 GRUB2 获取 ELF 符号很热
我正在为我的内核使用 multiboot2,我正在尝试从 GRUB2 获取 ELF 符号,但我不知道该怎么做。
我已经.long MULTIBOOT_TAG_TYPE_ELF_SECTIONS
在 boot.s 中设置了,我还从 grub2 获得了 elf 类型、大小、num、entsize 和 shndx。
assembly - 英特尔汇编命令“sgdt”返回哪个段描述符
我想为应用程序实现 32 位 4Gb 平面内存映射,为此我必须获取和更新数据段描述符和代码段描述符。通过使用汇编命令“sgdt”,我可以获得全局描述符表,但我不确定它是 CS 还是 DS 或任何其他描述符。如果有人可以帮助我解决这种困惑,将不胜感激。
我依靠 GRUB 来设置 GDT,这就是为什么我不知道它放置所有段描述符的确切位置。通过查看 GDT 表条目,我可以看到 5 个相同的代码段条目和 6 个相同的数据段条目,每个条目的基地址设置为“0”,每个设置的限制为“0xfffff”。你能告诉我这些重复条目的原因吗?从这些观察中,您能否确认 GRUB 已经设置了 Flat Memory 模式?
assembly - 组装:自定义操作系统键盘支持的引导加载程序
我有一个工作简单的自定义操作系统(现在做的不多:D)。现在我正在使用一个不支持键盘的程序集文件(boot.s)。
程序集文件(boot.s):
我认为这是缺少的部分,但它是 intel 语法,我不能使用它。
我正在使用以下命令编译 boot.s:
谁能帮我将键盘部分(英特尔语法)翻译成 AT&T?:)
usb-drive - 在闪存驱动器上添加各种多重引导选项,就像 Strelec 的 WinPE
所以我一直想在我的闪存驱动器上放一个 Windows 10 ISO,但我已经有了 strelec 的 WinPe。我不知道如何在它上面安装一个 Windows 安装程序,我什至不知道这是否可能......请发送帮助我是软件新手
external - 如何为多重引导外置硬盘安装 grub
我有一个包含三个主分区的外部硬盘驱动器,其中两个具有 ubuntu 风格(14.04、16.04),第三个仅包含数据。还有一个带有 windows 7、另一个 ubuntu 和 swap 的扩展分区,每个分区都有自己的分区。造成这种混乱的原因基本上是我想要对我的一些工作所在的旧系统进行可引导备份。扩展分区中的分区已从内部驱动器粘贴(通过 gparted 复制和粘贴)。现在我希望它有 grub 以便在需要时可以启动到任何操作系统。
要安装 grub,我使用 live usb 关注了这篇文章:https ://askubuntu.com/questions/145241/how-do-i-run-update-grub-from-a-livecd 。我将它安装在包含 ubuntu 14.04 的第一个主分区上。外部驱动器中分区的 gparted 视图。
当我按照这些步骤操作时,grub 列表还包含来自内部驱动器的可引导分区。如果我让它从默认列表(列表中的第一个)启动,它将给出以下错误但仍然启动。如果我再次尝试任何其他列表,它会给出与以下相同的错误:
尝试在磁盘 hd0 之外读取或写入。按任意键继续。
按下一个键后,它会返回启动菜单,甚至不会从默认列表启动。
任何见解可能出了什么问题,或者我可以尝试什么?我想要的是将 grub 安装在外部驱动器上,仅显示基于该外部驱动器的可引导分区的列表。
assembly - 使用 .word 65535 会导致 QEMU 重新启动
我有一个在我的操作系统中用于在 GRUB 之后运行的汇编程序,我遇到了一个奇怪的问题,.word 65535
导致 QEMU 重新启动,我不知道为什么。
我已经做了一些测试,我已经弄清楚是哪条线路导致使用问题,jmp $
并且我已经确认这是我上面提到的线路。
我的 Multiboot 兼容代码是:
我希望 QEMU 在调用后继续工作,.word 65535
但 QEMU 重新启动并且操作系统无法启动。
x86 - 现代计算机是以实模式启动还是以虚拟实模式启动?
因此,我在阅读有关处理器模式的信息并了解到虚拟实模式允许实模式应用程序(例如 BIOS 程序等 DOS 应用程序)在受保护模式的操作系统中运行。
所以我的问题是先在实模式下加载当前系统,然后再保护更多或直接进入虚拟实模式,否则,我们将不得不创建一个从实模式开始的多重引导引导加载程序,然后跳转到虚拟模式。虚拟现实模式不是很容易吗?