小编bsc*_*r13的帖子

本土内核的三重故障

我正在尝试编写一个内核,主要是出于娱乐目的,我遇到了一个问题我相信它是三重故障.在我尝试启用分页之前,一切正常.破解的代码是这样的:

void switch_page_directory(page_directory_t *dir){

 current_directory = dir;
 asm volatile("mov %0, %%cr3":: "r"(&dir->tablesPhysical));

 u32int cr0;
 asm volatile("mov %%cr0, %0": "=r"(cr0));

 cr0 |= 0x80000000;//enable paging
 asm volatile("mov %0, %%cr0":: "r"(cr0)); //this line breaks


}//switch page directory
Run Code Online (Sandbox Code Playgroud)

我一直在关注各种教程/文档,但我用于分页的是http://www.jamesmolloy.co.uk/tutorial_html/6.-Paging.html.我不确定其他代码对于解决这个问题会有什么用处,但如果有更多代码我应该提供,我将非常乐意这样做.

编辑=====

我相信CS,DS和SS正在选择正确的条目,这是用于设置它们的代码

global gdt_flush     
extern gp            
gdt_flush:

    lgdt [gp]        ; Load the GDT with our 'gp' which is a special pointer
    mov ax, 0x10      ; 0x10 is the offset in the GDT to our data segment

    mov ds, ax
    mov es, ax
    mov …
Run Code Online (Sandbox Code Playgroud)

c assembly operating-system kernel

9
推荐指数
1
解决办法
2994
查看次数

停止bash从命令行扩展$

我有一个我试图调用的脚本需要将$符号传递给它.如果我运行脚本为

./script "blah$blah" 
Run Code Online (Sandbox Code Playgroud)

它传递得很好,但然后脚本调用另一个我无法控制的程序,然后将参数扩展为"blah".该程序由命令程序调用$@.我想知道是否有办法防止参数传递到下一个脚本时被扩展.

bash

2
推荐指数
1
解决办法
226
查看次数

标签 统计

assembly ×1

bash ×1

c ×1

kernel ×1

operating-system ×1