小编smu*_*e49的帖子

内核如何设置寄存器cr3?

我知道处理器的 mmu 使用寄存器cr3将线性地址转换为物理地址,前提cr3是正确设置为页目录的物理地址。但是在内核分配了页表之后,它如何找到表的物理地址并设置cr3为它呢?

编辑:我说的是 linux 内核。

linux x86 kernel

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

elf符号表中value列的含义

我有一个elf二进制文件,它具有以下dynsym符号表作为输出readelf:

Num:    Value          Size Type    Bind   Vis      Ndx Name
 0: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT  UND 
 1: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND __libc_start_main@GLIBC_2.2.5 (2)
 2: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND __gmon_start__
 3: 0000000000400440     0 FUNC    GLOBAL DEFAULT  UND printf@GLIBC_2.2.5 (2)
 4: 0000000000400460     0 FUNC    GLOBAL DEFAULT  UND fgets@GLIBC_2.2.5 (2)
Run Code Online (Sandbox Code Playgroud)

value栏是什么意思?由于此表有400440for printf,这是否意味着动态链接器必须映射printf到该地址?如果是,这个值是如何决定的?是随机的吗?

编辑:另外,这是带有gcc的linux x86-64

c assembly elf

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

标签 统计

assembly ×1

c ×1

elf ×1

kernel ×1

linux ×1

x86 ×1