├── .github └── workflows │ └── main.yml ├── .gitignore ├── README.md ├── fat32_cp.sh ├── grub ├── grub.cfg └── stage2_eltorito ├── hello.jpg ├── makeiso.sh ├── mkfat32.zig ├── src ├── bootloader │ ├── 2ndstage.asm │ ├── 32bit_functions.asm │ ├── Makefile │ ├── bootloader.asm │ ├── descriptors_macros.asm │ ├── enabling_a20.asm │ ├── fat_descripter.asm │ ├── functions.asm │ ├── macros.asm │ └── memory.asm └── kernel │ ├── arch.zig │ ├── arch │ └── x86 │ │ ├── arch.zig │ │ ├── boot.zig │ │ ├── cmos.zig │ │ ├── gdt.zig │ │ ├── idt.zig │ │ ├── interrupts.zig │ │ ├── irq.zig │ │ ├── isr.zig │ │ ├── keyboard.zig │ │ ├── link.ld │ │ ├── multiboot.zig │ │ ├── paging.zig │ │ ├── pci.zig │ │ ├── pic.zig │ │ ├── pit.zig │ │ ├── rtc.zig │ │ ├── serial.zig │ │ ├── syscalls.zig │ │ ├── tty.zig │ │ └── vga.zig │ ├── bitmap.zig │ ├── code_page │ ├── code_page.zig │ └── cp437.zig │ ├── elf.zig │ ├── filesystem │ ├── fat32.zig │ ├── initrd.zig │ └── vfs.zig │ ├── heap.zig │ ├── keyboard.zig │ ├── kmain.zig │ ├── log.zig │ ├── mem.zig │ ├── panic.zig │ ├── pmm.zig │ ├── scheduler.zig │ ├── serial.zig │ ├── syscalls.zig │ ├── task.zig │ ├── tty.zig │ └── vmm.zig └── test ├── fat32 └── test_files │ ├── ....leading_dots.txt │ ├── A_verY_Long_File_namE_With_normal_Extension.tXt │ ├── Sma.ll.txt │ ├── UTF16.€xt │ ├── UTF16€.txt │ ├── [nope].txt │ ├── dot.in.file.txt │ ├── file.long_ext │ ├── file.t x t │ ├── file~a.txt │ ├── folder1 │ ├── file1.txt │ └── folder2 │ │ ├── file2.txt │ │ └── folder3 │ │ ├── file3.txt │ │ └── folder4 │ │ ├── file4.txt │ │ └── folder5 │ │ ├── file5.txt │ │ └── folder6 │ │ ├── file6.txt │ │ └── folder7 │ │ ├── file7.txt │ │ └── folder8 │ │ ├── file8.txt │ │ └── folder9 │ │ └── file9.txt │ ├── large_file.txt │ ├── nope.[x] │ ├── s p a c e s.txt │ ├── short.txt │ └── αlpha.txt ├── gen_types.zig ├── mock └── kernel │ ├── arch_mock.zig │ ├── cmos_mock.zig │ ├── gdt_mock.zig │ ├── idt_mock.zig │ ├── mock_framework_template.zig │ ├── paging_mock.zig │ ├── pci_mock.zig │ ├── pic_mock.zig │ └── vga_mock.zig ├── ramdisk_test1.txt ├── ramdisk_test2.txt ├── runtime_test.zig ├── user_program.ld ├── user_program.s └── user_program_data.s /.github/workflows/main.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/.github/workflows/main.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/.gitignore -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/README.md -------------------------------------------------------------------------------- /fat32_cp.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/fat32_cp.sh -------------------------------------------------------------------------------- /grub/grub.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/grub/grub.cfg -------------------------------------------------------------------------------- /grub/stage2_eltorito: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/grub/stage2_eltorito -------------------------------------------------------------------------------- /hello.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/hello.jpg -------------------------------------------------------------------------------- /makeiso.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/makeiso.sh -------------------------------------------------------------------------------- /mkfat32.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/mkfat32.zig -------------------------------------------------------------------------------- /src/bootloader/2ndstage.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/bootloader/2ndstage.asm -------------------------------------------------------------------------------- /src/bootloader/32bit_functions.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/bootloader/32bit_functions.asm -------------------------------------------------------------------------------- /src/bootloader/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/bootloader/Makefile -------------------------------------------------------------------------------- /src/bootloader/bootloader.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/bootloader/bootloader.asm -------------------------------------------------------------------------------- /src/bootloader/descriptors_macros.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/bootloader/descriptors_macros.asm -------------------------------------------------------------------------------- /src/bootloader/enabling_a20.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/bootloader/enabling_a20.asm -------------------------------------------------------------------------------- /src/bootloader/fat_descripter.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/bootloader/fat_descripter.asm -------------------------------------------------------------------------------- /src/bootloader/functions.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/bootloader/functions.asm -------------------------------------------------------------------------------- /src/bootloader/macros.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/bootloader/macros.asm -------------------------------------------------------------------------------- /src/bootloader/memory.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/bootloader/memory.asm -------------------------------------------------------------------------------- /src/kernel/arch.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/kernel/arch.zig -------------------------------------------------------------------------------- /src/kernel/arch/x86/arch.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/kernel/arch/x86/arch.zig -------------------------------------------------------------------------------- /src/kernel/arch/x86/boot.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/kernel/arch/x86/boot.zig -------------------------------------------------------------------------------- /src/kernel/arch/x86/cmos.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/kernel/arch/x86/cmos.zig -------------------------------------------------------------------------------- /src/kernel/arch/x86/gdt.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/kernel/arch/x86/gdt.zig -------------------------------------------------------------------------------- /src/kernel/arch/x86/idt.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/kernel/arch/x86/idt.zig -------------------------------------------------------------------------------- /src/kernel/arch/x86/interrupts.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/kernel/arch/x86/interrupts.zig -------------------------------------------------------------------------------- /src/kernel/arch/x86/irq.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/kernel/arch/x86/irq.zig -------------------------------------------------------------------------------- /src/kernel/arch/x86/isr.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/kernel/arch/x86/isr.zig -------------------------------------------------------------------------------- /src/kernel/arch/x86/keyboard.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/kernel/arch/x86/keyboard.zig -------------------------------------------------------------------------------- /src/kernel/arch/x86/link.ld: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/kernel/arch/x86/link.ld -------------------------------------------------------------------------------- /src/kernel/arch/x86/multiboot.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/kernel/arch/x86/multiboot.zig -------------------------------------------------------------------------------- /src/kernel/arch/x86/paging.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/kernel/arch/x86/paging.zig -------------------------------------------------------------------------------- /src/kernel/arch/x86/pci.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/kernel/arch/x86/pci.zig -------------------------------------------------------------------------------- /src/kernel/arch/x86/pic.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/kernel/arch/x86/pic.zig -------------------------------------------------------------------------------- /src/kernel/arch/x86/pit.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/kernel/arch/x86/pit.zig -------------------------------------------------------------------------------- /src/kernel/arch/x86/rtc.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/kernel/arch/x86/rtc.zig -------------------------------------------------------------------------------- /src/kernel/arch/x86/serial.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/kernel/arch/x86/serial.zig -------------------------------------------------------------------------------- /src/kernel/arch/x86/syscalls.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/kernel/arch/x86/syscalls.zig -------------------------------------------------------------------------------- /src/kernel/arch/x86/tty.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/kernel/arch/x86/tty.zig -------------------------------------------------------------------------------- /src/kernel/arch/x86/vga.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/kernel/arch/x86/vga.zig -------------------------------------------------------------------------------- /src/kernel/bitmap.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/kernel/bitmap.zig -------------------------------------------------------------------------------- /src/kernel/code_page/code_page.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/kernel/code_page/code_page.zig -------------------------------------------------------------------------------- /src/kernel/code_page/cp437.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/kernel/code_page/cp437.zig -------------------------------------------------------------------------------- /src/kernel/elf.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/kernel/elf.zig -------------------------------------------------------------------------------- /src/kernel/filesystem/fat32.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/kernel/filesystem/fat32.zig -------------------------------------------------------------------------------- /src/kernel/filesystem/initrd.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/kernel/filesystem/initrd.zig -------------------------------------------------------------------------------- /src/kernel/filesystem/vfs.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/kernel/filesystem/vfs.zig -------------------------------------------------------------------------------- /src/kernel/heap.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/kernel/heap.zig -------------------------------------------------------------------------------- /src/kernel/keyboard.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/kernel/keyboard.zig -------------------------------------------------------------------------------- /src/kernel/kmain.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/kernel/kmain.zig -------------------------------------------------------------------------------- /src/kernel/log.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/kernel/log.zig -------------------------------------------------------------------------------- /src/kernel/mem.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/kernel/mem.zig -------------------------------------------------------------------------------- /src/kernel/panic.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/kernel/panic.zig -------------------------------------------------------------------------------- /src/kernel/pmm.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/kernel/pmm.zig -------------------------------------------------------------------------------- /src/kernel/scheduler.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/kernel/scheduler.zig -------------------------------------------------------------------------------- /src/kernel/serial.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/kernel/serial.zig -------------------------------------------------------------------------------- /src/kernel/syscalls.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/kernel/syscalls.zig -------------------------------------------------------------------------------- /src/kernel/task.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/kernel/task.zig -------------------------------------------------------------------------------- /src/kernel/tty.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/kernel/tty.zig -------------------------------------------------------------------------------- /src/kernel/vmm.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/src/kernel/vmm.zig -------------------------------------------------------------------------------- /test/fat32/test_files/....leading_dots.txt: -------------------------------------------------------------------------------- 1 | ....leading_dots.txt -------------------------------------------------------------------------------- /test/fat32/test_files/A_verY_Long_File_namE_With_normal_Extension.tXt: -------------------------------------------------------------------------------- 1 | A_verY_Long_File_namE_With_normal_Extension.tXt -------------------------------------------------------------------------------- /test/fat32/test_files/Sma.ll.txt: -------------------------------------------------------------------------------- 1 | Sma.ll.txt -------------------------------------------------------------------------------- /test/fat32/test_files/UTF16.€xt: -------------------------------------------------------------------------------- 1 | UTF16.€xt -------------------------------------------------------------------------------- /test/fat32/test_files/UTF16€.txt: -------------------------------------------------------------------------------- 1 | UTF16€.txt -------------------------------------------------------------------------------- /test/fat32/test_files/[nope].txt: -------------------------------------------------------------------------------- 1 | [nope].txt -------------------------------------------------------------------------------- /test/fat32/test_files/dot.in.file.txt: -------------------------------------------------------------------------------- 1 | dot.in.file.txt -------------------------------------------------------------------------------- /test/fat32/test_files/file.long_ext: -------------------------------------------------------------------------------- 1 | file.long_ext -------------------------------------------------------------------------------- /test/fat32/test_files/file.t x t: -------------------------------------------------------------------------------- 1 | file.t x t -------------------------------------------------------------------------------- /test/fat32/test_files/file~a.txt: -------------------------------------------------------------------------------- 1 | file~a.txt -------------------------------------------------------------------------------- /test/fat32/test_files/folder1/file1.txt: -------------------------------------------------------------------------------- 1 | file1.txt -------------------------------------------------------------------------------- /test/fat32/test_files/folder1/folder2/file2.txt: -------------------------------------------------------------------------------- 1 | file2.txt -------------------------------------------------------------------------------- /test/fat32/test_files/folder1/folder2/folder3/file3.txt: -------------------------------------------------------------------------------- 1 | file3.txt -------------------------------------------------------------------------------- /test/fat32/test_files/folder1/folder2/folder3/folder4/file4.txt: -------------------------------------------------------------------------------- 1 | file4.txt -------------------------------------------------------------------------------- /test/fat32/test_files/folder1/folder2/folder3/folder4/folder5/file5.txt: -------------------------------------------------------------------------------- 1 | file5.txt -------------------------------------------------------------------------------- /test/fat32/test_files/folder1/folder2/folder3/folder4/folder5/folder6/file6.txt: -------------------------------------------------------------------------------- 1 | file6.txt -------------------------------------------------------------------------------- /test/fat32/test_files/folder1/folder2/folder3/folder4/folder5/folder6/folder7/file7.txt: -------------------------------------------------------------------------------- 1 | file7.txt -------------------------------------------------------------------------------- /test/fat32/test_files/folder1/folder2/folder3/folder4/folder5/folder6/folder7/folder8/file8.txt: -------------------------------------------------------------------------------- 1 | file8.txt -------------------------------------------------------------------------------- /test/fat32/test_files/folder1/folder2/folder3/folder4/folder5/folder6/folder7/folder8/folder9/file9.txt: -------------------------------------------------------------------------------- 1 | file9.txt -------------------------------------------------------------------------------- /test/fat32/test_files/large_file.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/test/fat32/test_files/large_file.txt -------------------------------------------------------------------------------- /test/fat32/test_files/nope.[x]: -------------------------------------------------------------------------------- 1 | nope.[x] -------------------------------------------------------------------------------- /test/fat32/test_files/s p a c e s.txt: -------------------------------------------------------------------------------- 1 | s p a c e s.txt -------------------------------------------------------------------------------- /test/fat32/test_files/short.txt: -------------------------------------------------------------------------------- 1 | short.txt -------------------------------------------------------------------------------- /test/fat32/test_files/αlpha.txt: -------------------------------------------------------------------------------- 1 | αlpha.txt -------------------------------------------------------------------------------- /test/gen_types.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/test/gen_types.zig -------------------------------------------------------------------------------- /test/mock/kernel/arch_mock.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/test/mock/kernel/arch_mock.zig -------------------------------------------------------------------------------- /test/mock/kernel/cmos_mock.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/test/mock/kernel/cmos_mock.zig -------------------------------------------------------------------------------- /test/mock/kernel/gdt_mock.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/test/mock/kernel/gdt_mock.zig -------------------------------------------------------------------------------- /test/mock/kernel/idt_mock.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/test/mock/kernel/idt_mock.zig -------------------------------------------------------------------------------- /test/mock/kernel/mock_framework_template.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/test/mock/kernel/mock_framework_template.zig -------------------------------------------------------------------------------- /test/mock/kernel/paging_mock.zig: -------------------------------------------------------------------------------- 1 | pub const PAGE_SIZE_4KB = 4096; 2 | -------------------------------------------------------------------------------- /test/mock/kernel/pci_mock.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/test/mock/kernel/pci_mock.zig -------------------------------------------------------------------------------- /test/mock/kernel/pic_mock.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/test/mock/kernel/pic_mock.zig -------------------------------------------------------------------------------- /test/mock/kernel/vga_mock.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/test/mock/kernel/vga_mock.zig -------------------------------------------------------------------------------- /test/ramdisk_test1.txt: -------------------------------------------------------------------------------- 1 | Testing ram disk -------------------------------------------------------------------------------- /test/ramdisk_test2.txt: -------------------------------------------------------------------------------- 1 | Testing ram disk for the second time -------------------------------------------------------------------------------- /test/runtime_test.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/test/runtime_test.zig -------------------------------------------------------------------------------- /test/user_program.ld: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/test/user_program.ld -------------------------------------------------------------------------------- /test/user_program.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/test/user_program.s -------------------------------------------------------------------------------- /test/user_program_data.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZystemOS/pluto/HEAD/test/user_program_data.s --------------------------------------------------------------------------------