mirror of
https://github.com/0xAX/linux-insides.git
synced 2024-11-01 04:29:39 +00:00
fix 1f offset
on the context,the offset of 1f should be 0x21.
This commit is contained in:
parent
6b7c961d77
commit
5f56136420
@ -202,7 +202,7 @@ startup_32 (0x0) +-----------------------+
|
|||||||
+-----------------------+
|
+-----------------------+
|
||||||
```
|
```
|
||||||
|
|
||||||
`startup_32` is linked to run at address `0x0` and this means that `1f` has the address `0x0 + offset to 1f`, approximately `0x22` bytes. The `ebp` register contains the real physical address of the `1f` label. So, if we subtract `1f` from the `ebp` we will get the real physical address of the `startup_32`. The Linux kernel [boot protocol](https://www.kernel.org/doc/Documentation/x86/boot.txt) describes that the base of the protected mode kernel is `0x100000`. We can verify this with [gdb](https://en.wikipedia.org/wiki/GNU_Debugger). Let's start the debugger and put breakpoint to the `1f` address, which is `0x100022`. If this is correct we will see `0x100022` in the `ebp` register:
|
`startup_32` is linked to run at address `0x0` and this means that `1f` has the address `0x0 + offset to 1f`, approximately `0x21` bytes. The `ebp` register contains the real physical address of the `1f` label. So, if we subtract `1f` from the `ebp` we will get the real physical address of the `startup_32`. The Linux kernel [boot protocol](https://www.kernel.org/doc/Documentation/x86/boot.txt) describes that the base of the protected mode kernel is `0x100000`. We can verify this with [gdb](https://en.wikipedia.org/wiki/GNU_Debugger). Let's start the debugger and put breakpoint to the `1f` address, which is `0x100021`. If this is correct we will see `0x100021` in the `ebp` register:
|
||||||
|
|
||||||
```
|
```
|
||||||
$ gdb
|
$ gdb
|
||||||
|
Loading…
Reference in New Issue
Block a user