0x00000000007b6800
idt: interrupts installed
pic: initialized
serial: COM1 initialized
serial: COM2 initialized
mb: multiboot initailized
mmap: 0: 9fc00 type 1
mmap: 9fc00: 400 type 2
mmap: f0000: 10000 type 2
mmap: 100000: 1ee0000 type 1
mmap: 1fe0000: 20000 type 2
mmap: fffc0000: 40000 type 2
mmap: total usable memory: 33029120 (31MB + 511KB)
mb: kernel command line 'init=init'
mb: user init at 0xffffffff801ce000
pmm: making new onepage region of length 159
pmm: physical memory map
pm: 0x0 => 0x9f000 : onepage
pm: 0x7b7000 => 0x1fe0000 : free
pm: 0x9f000 => 0xa0000 : hwreserved
pm: 0xf0000 => 0x100000 : hwreserved
pm: 0x1fe0000 => 0x2000000 : hwreserved
pm: 0xfffc0000 => 0x100000000 : hwreserved
pm: 0x100000 => 0x148000 : kernel
pm: 0x7b6000 => 0x7b7000 : multiboot
pm: 0x1ce000 => 0x7b6000 : initfs
pm: 0x148000 => 0x1ce000 : other!
vmm: init kernel vmm
new kernel pagetables root at 0x1000
(trying) to map 0xffffffff80100000: 0x000000000001c000 with flags 1
(trying) to map 0xffffffff8011c000: 0x00000000000b2000 with flags 3
(trying) to map 0xffffffff807b6000: 0x0000000000001000 with flags 3
(trying) to map 0xffffffff801ce000: 0x00000000005e9000 with flags 3
vm map dump:
vm_object{.base=0xffffffff81000000, .top=0xfffffffffffff000, .pages=520191, .flags=VM_FREE, .refcnt=0}
vfs: filesystem initialized
/dev/serial: tty ready
/dev/serial2: tty ready
threads: thread data at 0xffffffff8012aa30
threads: process structures initialized
vm_alloc() -> vm_object{.base=0xffffffff81000000, .top=0xffffffff81004000, .pages=4, .flags=VM_FREE, .refcnt=0}
threads: finalizer thread running
threads: thread_timer started
pci: found (8086:1237) at 00:00.0
pci: found (8086:7000) at 00:01.0
pci: found (8086:7010) at 00:01.1
pci: found (8086:7113) at 00:01.3
pci: found (1234:1111) at 00:02.0
pci: found (8086:100e) at 00:03.0
********************************
The Nightingale Operating System
Version v0.9.0-62-g404d120
********************************
pit: actual divisor: 1193
timer: ticking at 1000 HZ
vm_alloc() -> vm_object{.base=0xffffffff81004000, .top=0xffffffff81008000, .pages=4, .flags=VM_FREE, .refcnt=0}
vm_user_alloc before:
vm map dump:
vm_object{.base=0x0000000000001000, .top=0x00007fffffff0000, .pages=34359738351, .flags=VM_FREE, .refcnt=0}
(mid: 0xfffff020 / 0x1 / 0xfce)
vm_user_alloc after:
vm map dump:
vm_object{.base=0x0000000000001000, .top=0x00007fffff021000, .pages=34359734304, .flags=VM_FREE, .refcnt=0}
vm_object{.base=0x00007fffff021000, .top=0x00007fffff022000, .pages=1, .flags=VM_INUSE|VM_COW, .refcnt=0}
vm_object{.base=0x00007fffff022000, .top=0x00007fffffff0000, .pages=4046, .flags=VM_FREE, .refcnt=0}
vm_user_alloc before:
vm map dump:
vm_object{.base=0x0000000000001000, .top=0x00007fffff021000, .pages=34359734304, .flags=VM_FREE, .refcnt=0}
vm_object{.base=0x00007fffff021000, .top=0x00007fffff022000, .pages=1, .flags=VM_INUSE|VM_COW, .refcnt=0}
vm_object{.base=0x00007fffff022000, .top=0x00007fffffff0000, .pages=4046, .flags=VM_FREE, .refcnt=0}
(mid: 0x3ff / 0x4 / 0xffffec1d)
vm_user_alloc after:
vm map dump:
vm_object{.base=0x0000000000001000, .top=0x0000000000400000, .pages=1023, .flags=VM_FREE, .refcnt=0}
vm_object{.base=0x0000000000400000, .top=0x0000000000404000, .pages=4, .flags=VM_INUSE|VM_COW, .refcnt=0}
vm_object{.base=0x0000000000404000, .top=0x00007fffff021000, .pages=34359733277, .flags=VM_FREE, .refcnt=0}
vm_object{.base=0x00007fffff021000, .top=0x00007fffff022000, .pages=1, .flags=VM_INUSE|VM_COW, .refcnt=0}
vm_object{.base=0x00007fffff022000, .top=0x00007fffffff0000, .pages=4046, .flags=VM_FREE, .refcnt=0}
vm_user_alloc before:
vm map dump:
vm_object{.base=0x0000000000001000, .top=0x0000000000400000, .pages=1023, .flags=VM_FREE, .refcnt=0}
vm_object{.base=0x0000000000400000, .top=0x0000000000404000, .pages=4, .flags=VM_INUSE|VM_COW, .refcnt=0}
vm_object{.base=0x0000000000404000, .top=0x00007fffff021000, .pages=34359733277, .flags=VM_FREE, .refcnt=0}
vm_object{.base=0x00007fffff021000, .top=0x00007fffff022000, .pages=1, .flags=VM_INUSE|VM_COW, .refcnt=0}
vm_object{.base=0x00007fffff022000, .top=0x00007fffffff0000, .pages=4046, .flags=VM_FREE, .refcnt=0}
(mid: 0x0 / 0x1 / 0xffffec1c)
vm_user_alloc after:
vm map dump:
vm_object{.base=0x0000000000001000, .top=0x0000000000400000, .pages=1023, .flags=VM_FREE, .refcnt=0}
vm_object{.base=0x0000000000400000, .top=0x0000000000404000, .pages=4, .flags=VM_INUSE|VM_COW, .refcnt=0}
vm_object{.base=0x0000000000404000, .top=0x0000000000405000, .pages=1, .flags=VM_INUSE|VM_COW, .refcnt=0}
vm_object{.base=0x0000000000405000, .top=0x00007fffff021000, .pages=34359733276, .flags=VM_FREE, .refcnt=0}
vm_object{.base=0x00007fffff021000, .top=0x00007fffff022000, .pages=1, .flags=VM_INUSE|VM_COW, .refcnt=0}
vm_object{.base=0x00007fffff022000, .top=0x00007fffffff0000, .pages=4046, .flags=VM_FREE, .refcnt=0}
vm_alloc() -> vm_object{.base=0xffffffff81008000, .top=0xffffffff8100c000, .pages=4, .flags=VM_FREE, .refcnt=0}
vm_user_alloc before:
vm map dump:
vm_object{.base=0x0000000000001000, .top=0x0000000000400000, .pages=1023, .flags=VM_FREE, .refcnt=0}
vm_object{.base=0x0000000000400000, .top=0x0000000000404000, .pages=4, .flags=VM_INUSE|VM_COW, .refcnt=0}
vm_object{.base=0x0000000000404000, .top=0x0000000000405000, .pages=1, .flags=VM_INUSE|VM_COW, .refcnt=0}
vm_object{.base=0x0000000000405000, .top=0x00007fffff021000, .pages=34359733276, .flags=VM_FREE, .refcnt=0}
vm_object{.base=0x00007fffff021000, .top=0x00007fffff022000, .pages=1, .flags=VM_INUSE|VM_COW, .refcnt=0}
vm_object{.base=0x00007fffff022000, .top=0x00007fffffff0000, .pages=4046, .flags=VM_FREE, .refcnt=0}
(mid: 0xffffebeb / 0x10 / 0x21)
vm_user_alloc after:
vm map dump:
vm_object{.base=0x0000000000001000, .top=0x0000000000400000, .pages=1023, .flags=VM_FREE, .refcnt=0}
vm_object{.base=0x0000000000400000, .top=0x0000000000404000, .pages=4, .flags=VM_INUSE|VM_COW, .refcnt=0}
vm_object{.base=0x0000000000404000, .top=0x0000000000405000, .pages=1, .flags=VM_INUSE|VM_COW, .refcnt=0}
vm_object{.base=0x0000000000405000, .top=0x00007ffffeff0000, .pages=34359733227, .flags=VM_FREE, .refcnt=0}
vm_object{.base=0x00007ffffeff0000, .top=0x00007fffff000000, .pages=16, .flags=VM_INUSE|VM_COW, .refcnt=0}
vm_object{.base=0x00007fffff000000, .top=0x00007fffff021000, .pages=33, .flags=VM_FREE, .refcnt=0}
vm_object{.base=0x00007fffff021000, .top=0x00007fffff022000, .pages=1, .flags=VM_INUSE|VM_COW, .refcnt=0}
vm_object{.base=0x00007fffff022000, .top=0x00007fffffff0000, .pages=4046, .flags=VM_FREE, .refcnt=0}
vm_user_alloc before:
vm map dump:
vm_object{.base=0x0000000000001000, .top=0x0000000000400000, .pages=1023, .flags=VM_FREE, .refcnt=0}
vm_object{.base=0x0000000000400000, .top=0x0000000000404000, .pages=4, .flags=VM_INUSE|VM_COW, .refcnt=0}
vm_object{.base=0x0000000000404000, .top=0x0000000000405000, .pages=1, .flags=VM_INUSE|VM_COW, .refcnt=0}
vm_object{.base=0x0000000000405000, .top=0x00007ffffeff0000, .pages=34359733227, .flags=VM_FREE, .refcnt=0}
vm_object{.base=0x00007ffffeff0000, .top=0x00007fffff000000, .pages=16, .flags=VM_INUSE|VM_COW, .refcnt=0}
vm_object{.base=0x00007fffff000000, .top=0x00007fffff021000, .pages=33, .flags=VM_FREE, .refcnt=0}
vm_object{.base=0x00007fffff021000, .top=0x00007fffff022000, .pages=1, .flags=VM_INUSE|VM_COW, .refcnt=0}
vm_object{.base=0x00007fffff022000, .top=0x00007fffffff0000, .pages=4046, .flags=VM_FREE, .refcnt=0}
(mid: 0x1 / 0x20 / 0x0)
vm_user_alloc after:
vm map dump:
vm_object{.base=0x0000000000001000, .top=0x0000000000400000, .pages=1023, .flags=VM_FREE, .refcnt=0}
vm_object{.base=0x0000000000400000, .top=0x0000000000404000, .pages=4, .flags=VM_INUSE|VM_COW, .refcnt=0}
vm_object{.base=0x0000000000404000, .top=0x0000000000405000, .pages=1, .flags=VM_INUSE|VM_COW, .refcnt=0}
vm_object{.base=0x0000000000405000, .top=0x00007ffffeff0000, .pages=34359733227, .flags=VM_FREE, .refcnt=0}
vm_object{.base=0x00007ffffeff0000, .top=0x00007fffff000000, .pages=16, .flags=VM_INUSE|VM_COW, .refcnt=0}
vm_object{.base=0x00007fffff000000, .top=0x00007fffff001000, .pages=1, .flags=VM_FREE, .refcnt=0}
vm_object{.base=0x00007fffff001000, .top=0x00007fffff021000, .pages=32, .flags=VM_INUSE|VM_COW, .refcnt=0}
vm_object{.base=0x00007fffff021000, .top=0x00007fffff022000, .pages=1, .flags=VM_INUSE|VM_COW, .refcnt=0}
vm_object{.base=0x00007fffff022000, .top=0x00007fffffff0000, .pages=4046, .flags=VM_FREE, .refcnt=0}
vm map dump:
vm_object{.base=0x0000000000001000, .top=0x0000000000400000, .pages=1023, .flags=VM_FREE, .refcnt=0}
vm_object{.base=0x0000000000400000, .top=0x0000000000404000, .pages=4, .flags=VM_INUSE|VM_COW, .refcnt=0}
vm_object{.base=0x0000000000404000, .top=0x0000000000405000, .pages=1, .flags=VM_INUSE|VM_COW, .refcnt=0}
vm_object{.base=0x0000000000405000, .top=0x00007ffffeff0000, .pages=34359733227, .flags=VM_FREE, .refcnt=0}
vm_object{.base=0x00007ffffeff0000, .top=0x00007fffff000000, .pages=16, .flags=VM_INUSE|VM_COW, .refcnt=0}
vm_object{.base=0x00007fffff000000, .top=0x00007fffff001000, .pages=1, .flags=VM_FREE, .refcnt=0}
vm_object{.base=0x00007fffff001000, .top=0x00007fffff021000, .pages=32, .flags=VM_INUSE|VM_COW, .refcnt=0}
vm_object{.base=0x00007fffff021000, .top=0x00007fffff022000, .pages=1, .flags=VM_INUSE|VM_COW, .refcnt=0}
vm_object{.base=0x00007fffff022000, .top=0x00007fffffff0000, .pages=4046, .flags=VM_FREE, .refcnt=0}
threads: usermode thread installed
initialization took: 503299856
cpu: allowing irqs
[1:3] mmap((NULL), 16777216, 3, 8, -1, 0) -> 0x100000000000
[1:3] fork()vm_alloc() -> vm_object{.base=0xffffffff8100c000, .top=0xffffffff81010000, .pages=4, .flags=VM_FREE, .refcnt=0}
fork vm dump
vm map dump:
vm_object{.base=0x0000000000001000, .top=0x0000000000400000, .pages=1023, .flags=VM_FREE, .refcnt=0}
vm_object{.base=0x0000000000400000, .top=0x0000000000404000, .pages=4, .flags=VM_INUSE|VM_COW, .refcnt=1}
vm_object{.base=0x0000000000404000, .top=0x0000000000405000, .pages=1, .flags=VM_INUSE|VM_COW, .refcnt=1}
vm_object{.base=0x0000000000405000, .top=0x00007ffffeff0000, .pages=34359733227, .flags=VM_FREE, .refcnt=0}
vm_object{.base=0x00007ffffeff0000, .top=0x00007fffff000000, .pages=16, .flags=VM_INUSE|VM_COW, .refcnt=1}
vm_object{.base=0x00007fffff000000, .top=0x00007fffff001000, .pageHello World from a kernel thread
s=1, .flags=VM_FREE, .refcnt=0}
vm_object{.base=0x00007fffff001000, .top=0x00007fffff021000, .pages=32, .flags=VM_INUSE|VM_COW, .refcnt=1}
vm_object{.base=0x00007fffff021000, .top=0x00007fffff022000, .pages=1, .flags=VM_INUSE|VM_COW, .refcnt=1}
vm_object{.base=0x00007fffff022000, .top=0x00007fffffff0000, .pages=4046, .flags=VM_FREE, .refcnt=0}
-> 2
vm_alloc() -> vm_object{.base=0xffffffff81010000, .top=0xffffffff81020000, .pages=16, .flags=VM_FREE, .refcnt=0}
[1:3] waitpid(2, 0x00007ffffeffff9c, 0x0)
Thread: [2:4] ("<init>") experienced a fault
Unhandled exception at 0xffffffff801184fe
Fault: #GP (General Protection Fault), error code: 0x00
rax: 0 r8 : 0
rbx: 0 r9 : 0
rcx: 0 r10: 0
rdx: 0 r11: 0
rsp: ffffffff8100ffc8 r12: 0
rbp: 0 r13: 0
rsi: 0 r14: 0
rdi: 0 r15: 0
rip: ffffffff801184fe rfl: [ S I ] (282)
cr3: 26000 pid: 2
backtrace:
bp: 0 ip: ffffffff801184fe
end of memory
[PANIC]
Comments