An operating system for fun and learning
- Create Boot Sector
- qemu
- nasm
- gcc
PS: On Mac, Using homebrew: brew install qemu nasm
nasm -f bin Vizix.asm -o Vizix.bin
qemu Vizix.bin
; Infinite loop
loop:
jmp loop
; Fill with 510 zeros minus the size of the previous code
times 510-($-$$) db 0
; Magic number
dw 0xaa55
- General Purpose Registers:
ax
; Accumulator (EAX)bx
; Base (EBX)cx
; Counter (ECX)dx
; Data (EDX)
- Stack Registers:
bp
; Base Pointer, Stores the base address of stack (EBP)sp
; Stack Pointer, Stores the top address of stack, sp gets decremented (ESP)
- Pointer Registers:
si
; Source Index, (ESI)di
; Destination Index, (EDI)ip
; Instruction Pointer
- Segmentation: Obsolete memory protection technique
- Segment Register: Can be altered using registers
cs
; Code Segment; Can not be alteredds
; Data Segmentss
; Stack Segmentes
; Extra Segmentfs
,gs
; General Purpose Segment
- Segment Register: Can be altered using registers
- Special Registers:
CR0,2,3
DR0,1,2,3,6,7
TR4,5,6,7
- Geek Loading: Everything in Boot Record
- One-stage Loading
- Two-stage Loading:
GRUB
(GRand Unified Bootloader)
- Little OS Book - https://littleosbook.github.io/
- https://wiki.osdev.org/Bare_Bones
- https://github.com/cfenollosa/os-tutorial
- https://www.cs.bham.ac.uk/~exr/lectures/opsys/10_11/lectures/os-dev.pdf
- https://www.cs.cmu.edu/~410/
- https://wiki.osdev.org/Main_Page
- http://stanislavs.org/helppc/idx_interrupt.html
- https://legacy.gitbook.com/book/samypesse/how-to-create-an-operating-system/details
- https://samypesse.gitbook.io/how-to-create-an-operating-system/
- https://github.com/SamyPesse/How-to-Make-a-Computer-Operating-System
- https://github.com/arjun024/mkernel
- http://3zanders.co.uk/2017/10/13/writing-a-bootloader/
- http://mikeos.sourceforge.net/write-your-own-os.html
- http://osblog.stephenmarz.com/index.html
- https://os.phil-opp.com/
- https://www.rpi4os.com/
- https://s-matyukevich.github.io/raspberry-pi-os/
- https://www.fysnet.net/osdesign_book_series.htm
- https://pages.cs.wisc.edu/~remzi/OSTEP/
- https://operating-system-in-1000-lines.vercel.app/en