summary refs log tree commit diff stats
path: root/gitlab/issues_text/target_missing/host_missing/accel_missing/1159
blob: 6275e1d5cc9ca2ed34bca607f92b9c5453dcdf92 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Strange invalid access errors for very basic OS
Description of problem:
Currently I'm studying OS development. I found numerous guides on that topic, however [this one](https://github.com/cfenollosa/os-tutorial/tree/master/01-bootsector-barebones) is most close to what I have been doing.  
When `.bin` file is launched with `-d guest_errors` flag, before any OS output exactly 512 error messages appear in logs, that look like that:
```
Invalid access at addr 0xFEBB0000, size 1, region '(null)', reason: rejected
Invalid access at addr 0x0, size 1, region '(null)', reason: rejected
Invalid access at addr 0xFEBB0001, size 1, region '(null)', reason: rejected
Invalid access at addr 0x1, size 1, region '(null)', reason: rejected
Invalid access at addr 0xFEBB0002, size 1, region '(null)', reason: rejected
...
and it goes up to
...
Invalid access at addr 0xFEBB00FE, size 1, region '(null)', reason: rejected
Invalid access at addr 0xFE, size 1, region '(null)', reason: rejected
Invalid access at addr 0xFEBB00FF, size 1, region '(null)', reason: rejected
Invalid access at addr 0xFF, size 1, region '(null)', reason: rejected
```
Apparently, the OS boots normally after that. Should I be concerned about these messages or Should I just ignore them?
That looks strange and confusing, not a piece of my code calls these addresses. Maybe I'm doing something wrong?
Steps to reproduce:
1. Install `nasm` compiler (nasm package for apt)
2. Create a file named `os.asm` with exactly four lines:
```asm
loop:
    jmp loop
times 510-($-$$) db 0
dw 0xaa55
```
3. Build it with `nasm -f bin os.asm -o os.bin`
4. Run it with `qemu-system-i386 -d guest_errors -drive format=raw,file=./os.bin`
5. ...enjoy error messages.