osdev

    0热度

    1回答

    Stdio函数库中有fprintf函数。 但是如何使用它? 第一个参数是FILE类型。 但我有EFI_FILE_PROTOCOL* File我从EFIOpenFile函数中获得。如何映射到FILE类型?

    -1热度

    1回答

    我正在开发我自己的操作系统。我已经完成引导扇区并成功加载了我的内核。我的开发环境是Ubuntu 14.04和GCC 4.8。我的内核将在BOCHS下运行。我想在屏幕上的特定位置打印具体的角色,所以我创造了这样的功能: void print_char(char target, int col, int row, unsigned char attribute) { //attribute

    2热度

    1回答

    每当我尝试将像素写入VESA模式的LFB时,页面出现并已被读取的页面出现错误。我的分页实现来自James Molloy的OS系列。我试过身份映射LFB如下: for (unsigned int i = 0xFD000000; i < 0xFE000000; i += 0x1000) { page_t* pg = get_page(i, 1, kernel_directory);

    1热度

    1回答

    我的引导程序的这个阶段在0x7e0:0x0000加载。经过一些“调试”后,我发现下面的代码在我的远跳后会产生三重故障。如果在跳转之前移动挂起(是的,包括实际的程序本身),则不会发生三重错误。对不起,我不能包含更少的代码。我只是想确保我提供了足够的代码,以便不会错过错误。 这里是我的代码: bits 16 jmp SetUpPMode GTDData: dd 0 dd 0

    3热度

    1回答

    我正在构建GCC 6.10交叉编译器。我使用OSDev的tutorial。当我去使用我的壳sript建立binutils的,我得到这样的错误: 我用shell脚本在我上面提到的教程指定ClooG和ISL移动到build-binutils目录。这里是我的shell脚本: export PREFIX="$HOME/opt/cross" export TARGET=i686-elf export P

    2热度

    1回答

    据我所知,LLVM不会让你执行使用特定的处理器寄存器。这是否意味着使用LLVM的语言,不能用于开发OS,引导加载程序或例如需要直接访问寄存器的东西? 是否有任何其他原因LLVM IR 可以或不能用于操作系统开发?

    1热度

    1回答

    我有我的printf()函数实现即时通讯的OS的错误。基本上问题是,它通过列表增加剂量。例如可以说我有: printf("%d %d",19,58); 什么会显示在我的操作系统是: 19 19 58由于某些原因不打算thourgh。我已经调试这个相当长的一段时间,但无法找到问题:(这里是stdio.C++: #ifndef _STD_LIB_H_ #pragma once #defin

    6热度

    1回答

    从技术上讲,UEFI提供了很多功能,这些功能是操作系统(如文件系统)的基础部分。从某种意义上说,在启动过程中,所有操作系统都会被丢弃并重新实现,这是一种耻辱。 我想知道多少功能操作系统将它作为一个简单的UEFI应用程序来实现它。我正在考虑图形用户界面和多任务处理。使用FAT32作为文件系统,UEFI应该用于很多目的,所以应该使用标识映射的内存。它将会构成一个非常精简和简单的操作系统,甚至可能不需要

    0热度

    1回答

    我刚刚在qemu上完成高半程。但由于某种原因,给我错误虚拟盒和波奇: entry point isnt in a segment. please press any key to continue . . . 但在Qemu它的工作都很好。那么这里是我定义我的切入点,我的链接脚本: /* The bootloader will look at this image and start exe

    -3热度

    1回答

    我正在编写一个操作系统,我需要一个地址值为NULL的地址。我在想一个非常远的地址,但是,BIOS是否使用了内存中的第一个字节?我的内核除了常量char NULL之外不会使用它,因此我认为如果需要分配大量内存,可能不会使用第一个字节,那里的地址可能很远。