osdev

    3热度

    1回答

    我正在开发一个C语言的操作系统,我在分页上挣扎着。我通过分配内存并输出处理物理和虚拟页分配的低级内存分配输出来测试我的内核堆。 当PDE 0,一切的伟大工程0-1023页,但只要分配移动到PDE 1,如果我开始从不同的物理地址分配一个页面故障引发本标志设置,有时rw标志了。 我是否需要从cr2获取错误地址并将其映射回PDE和它所属的页面,然后设置或使用3的地址?之后,我需要重新启动指令,但我该怎么

    1热度

    1回答

    我正在编写一个需要与某些外部汇编程序函数接口的操作系统。我把声明的标题: namespace Kernel { class DescriptorTables { public: void init(); void gdt_set_gate(s32int,u32int,u32int,u8int,u8int); private:

    0热度

    3回答

    我正在研究大学的Pintos玩具操作系统,但使用GCC 4.6.2时出现了一个奇怪的错误。当我推入我的系统调用参数(在内联程序集中只有3个pushl-s)时,一些神秘的数据也出现在堆栈上,并且参数的顺序错误。设置-fno-omit-frame-pointer可以消除奇怪的数据,但参数仍然是错误的顺序。 GCC 4.5正常工作。任何想法什么具体选项可以解决这个问题 注意:问题仍然发生在-O0。

    8热度

    3回答

    我想了解更多关于osdev的信息。所以我想从其他小内核那里学习,在osdev上更好。有学习osdev的好内核吗?当然,它需要是GPL,所以我可以访问源代码并可以自由修改它。

    3热度

    1回答

    作为32位x86处理器的某些OS开发的一部分,我正在考虑在中断描述符表中使用页面错误向量的任务门。目的是强制任务切换,以确保处理程序的堆栈被映射(并避免中断任务的堆栈的一部分未被映射的情况)。 我正在QEMU下运行我的内核(但它是),但我发现当页面错误发生时,它崩溃(我回到命令提示符)。我一直在阅读和挖掘搜索提示,可能会帮助我找出确切的原因。我认为我错过了某些东西和/或误解了某些东西。顺便说一下,

    3热度

    2回答

    我制作了一个桌面操作系统,内含c打印“hello world”的内核。我正在尝试为c中的操作系统创建一个GUI(自定义窗口管理器,按钮),但我遇到了麻烦。我看着一个教程: http://www.osdever.net/tutorials/view/gui-development 是否有任何类型的GUI教程,是一个桌面操作系统Ç的? p.s.没有Linux和没有DOS。只有C标准。

    1热度

    3回答

    我试图做 memset(&idt_entries, 0, sizeof(idt_entry_t)*256); 产生 error: cannot convert 'idt_entry_t (*)[256] {aka idt_entry_struct ()[256]}' to 'u8int {aka unsigned char*}' for argument '1' to 'void memset

    5热度

    1回答

    在操作系统用户模式应用程序的虚拟地址空间是私有的,一个应用程序不能更改属于另一个应用程序的数据。每个应用程序都是独立运行的,并且如果应用程序崩溃,则崩溃仅限于该应用程序。其他应用程序和操作系统不会受到崩溃的影响 为什么在内核模式下操作系统不保护内存并发生BOSD?

    5热度

    1回答

    我正在为我的业余操作系统开发CPU检测和一般环境检测代码。是否曾经有过多次需要调用CPUID的情况?这就是说,如果系统有多个内核,操作系统是否需要在每个内核上调用CPUID? NUMA相同。 这两个AMD和Intel CPUID手册目前尚不清楚。有一篇关于osdev wiki的文章,提到调用CPUID为Detecting CPU Topology,但我的阅读不清楚CPUID需要被调用的时间和次数。

    1热度

    3回答

    我最近发现了旧的(非常旧的)笔记本电脑,尽管学习装配和一些基本的操作系统开发可能是一个很好的机会。 大会教程最常献给8086个芯片,所以我的问题是,这是否英特尔82340SX有什么区别?语言使用有什么变化吗?