├── rootfs ├── dev │ └── tmp ├── etc │ └── tmp ├── home │ ├── tmp │ └── root │ │ ├── no.txt │ │ └── yes.txt ├── usr │ └── tmp ├── var │ └── tmp └── yes.txt ├── include ├── ctype.h ├── math.h ├── audio │ └── pcspk.h ├── init.h ├── video │ ├── renderer.h │ └── video.h ├── debugout.h ├── memory │ ├── mem.h │ └── malloc.h ├── io.h ├── kernel.h ├── userinput │ ├── keyboard.h │ ├── mouse.h │ └── cursor.h ├── gpt.h ├── kernelDefines.h ├── time.h ├── arch │ └── x86 │ │ └── registers.h ├── bootloader.h ├── idt │ ├── idt.h │ └── interrupts.h ├── gdt │ └── gdt.h ├── assert.h ├── tty.h ├── tty │ └── fbCon.h ├── acpi │ └── acpi.h ├── pci │ └── pci.h ├── string.h ├── stdio.h ├── fs │ └── ramfs.h ├── forceInclude.h ├── disks │ └── sata.h └── limine.h ├── font.old ├── kernel ├── gpt.c ├── gdt │ ├── gdtasm.asm │ └── gdt.c ├── video │ ├── renderer.c │ ├── video.c │ ├── fbcon.c │ ├── ansi.c │ ├── printf.h │ └── printf.c ├── audio │ └── pcspk.c ├── panic.c ├── kernel.c ├── boot │ ├── limine │ │ ├── check.c │ │ └── framebuffer.c │ └── checkLoader.c ├── tty.c ├── io.c ├── serial │ └── comout.c ├── log.c ├── idt │ ├── interrupts.c │ └── idt.c ├── memory │ ├── mem.c │ └── malloc.c ├── init.c ├── pci │ ├── pci.c │ └── pciDesc.c ├── time.c ├── fs │ └── ramfs.c ├── userinput │ ├── keyboard.c │ └── mouse.c ├── acpi │ └── acpi.c ├── string.c └── disks │ └── sata.c ├── vgafont.f16 ├── OVMF_CODE.fd ├── tools ├── cursor.png ├── picsofbread.png ├── __pycache__ │ ├── misc.cpython-310.pyc │ └── misc.cpython-39.pyc ├── iso.sh ├── misc.py ├── navcc.perl └── icontest ├── .gitignore ├── limine.cfg ├── README.md ├── linker.ld ├── Makefile └── limine.h /rootfs/dev/tmp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /rootfs/etc/tmp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /rootfs/home/tmp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /rootfs/usr/tmp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /rootfs/var/tmp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /rootfs/home/root/no.txt: -------------------------------------------------------------------------------- 1 | another test! 2 | -------------------------------------------------------------------------------- /include/ctype.h: -------------------------------------------------------------------------------- 1 | extern int isdigit(int ch); 2 | -------------------------------------------------------------------------------- /font.old: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mine-man3000/SeshOS/HEAD/font.old -------------------------------------------------------------------------------- /kernel/gpt.c: -------------------------------------------------------------------------------- 1 | //no. I did not implement ChatGPT into SeshOS 2 | #include -------------------------------------------------------------------------------- /vgafont.f16: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mine-man3000/SeshOS/HEAD/vgafont.f16 -------------------------------------------------------------------------------- /OVMF_CODE.fd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mine-man3000/SeshOS/HEAD/OVMF_CODE.fd -------------------------------------------------------------------------------- /tools/cursor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mine-man3000/SeshOS/HEAD/tools/cursor.png -------------------------------------------------------------------------------- /tools/picsofbread.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mine-man3000/SeshOS/HEAD/tools/picsofbread.png -------------------------------------------------------------------------------- /include/math.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | typedef struct { 4 | uint64_t X; 5 | uint64_t Y; 6 | } point_t; -------------------------------------------------------------------------------- /include/audio/pcspk.h: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | 4 | void playSound(uint32_t nFrequence); 5 | void noSound(); 6 | void beep(); -------------------------------------------------------------------------------- /tools/__pycache__/misc.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mine-man3000/SeshOS/HEAD/tools/__pycache__/misc.cpython-310.pyc -------------------------------------------------------------------------------- /tools/__pycache__/misc.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mine-man3000/SeshOS/HEAD/tools/__pycache__/misc.cpython-39.pyc -------------------------------------------------------------------------------- /include/init.h: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #pragma once 4 | 5 | /** 6 | * @brief systemd but less bloated 7 | */ 8 | void init(); -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.o 2 | *.d 3 | *.elf 4 | limine/ 5 | iso_root/ 6 | initramfs 7 | *.iso 8 | .vscode 9 | log.txt 10 | test.disk 11 | !kernel/boot/limine 12 | build/ -------------------------------------------------------------------------------- /include/video/renderer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | #include 5 | 6 | #define Green "\e[32m" 7 | #define Blue "\e[34m" 8 | #define White "\e[37m" -------------------------------------------------------------------------------- /include/debugout.h: -------------------------------------------------------------------------------- 1 | extern void comout(const char* input); 2 | extern void comout_num(uint64_t num); 3 | 4 | extern void COM_LogWrapper(const char ch, const uint16_t x, const uint16_t y, const uint32_t fgColor, const uint32_t bgColor); -------------------------------------------------------------------------------- /include/memory/mem.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | extern volatile struct limine_memmap_request mmap; 8 | extern uint64_t physical_kernel_start; 9 | 10 | uint64_t getMemSize(); 11 | int numPages(); -------------------------------------------------------------------------------- /include/io.h: -------------------------------------------------------------------------------- 1 | #include 2 | void outb(uint16_t port, uint8_t value); 3 | uint8_t inb(uint16_t port); 4 | void outw (uint16_t port, uint16_t data); 5 | uint16_t inw (uint16_t port); 6 | void outl (uint16_t port, uint32_t data); 7 | uint32_t inl (uint32_t port); 8 | void io_wait(); -------------------------------------------------------------------------------- /tools/iso.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | xorriso -as mkisofs -b limine-bios-cd.bin -no-emul-boot -boot-load-size 4 -boot-info-table --efi-boot limine-uefi-cd.bin -efi-boot-part --efi-boot-image --protective-msdos-label iso_root -o bin/image.iso 3 | # I have to add a comment to have git play nice and push this file with the execute permission... 4 | -------------------------------------------------------------------------------- /kernel/gdt/gdtasm.asm: -------------------------------------------------------------------------------- 1 | [bits 64] 2 | LoadGDT: 3 | lgdt [rdi] 4 | mov ax, 0x10 5 | mov ds, ax 6 | mov es, ax 7 | mov fs, ax 8 | mov gs, ax 9 | mov ss, ax 10 | pop rdi 11 | mov rax, 0x08 12 | push rax 13 | push rdi 14 | retfq 15 | GLOBAL LoadGDT 16 | 17 | disablePIC: 18 | mov al, 0xff 19 | out 0xa1, al 20 | out 0x21, al 21 | ret 22 | GLOBAL disablePIC -------------------------------------------------------------------------------- /kernel/gdt/gdt.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | __attribute__((aligned(0x1000))) 4 | GDT DefaultGDT = { 5 | {0, 0, 0, 0x00, 0x00, 0}, // null 6 | {0, 0, 0, 0x9a, 0xa0, 0}, // kernel code segment 7 | {0, 0, 0, 0x92, 0xa0, 0}, // kernel data segment 8 | {0, 0, 0, 0x00, 0x00, 0}, // user null 9 | {0, 0, 0, 0x9a, 0xa0, 0}, // kernel code segment 10 | {0, 0, 0, 0x92, 0xa0, 0}, // kernel data segment 11 | }; -------------------------------------------------------------------------------- /include/memory/malloc.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | extern void *malloc(size_t size); 7 | extern void *realloc(char* ptr, size_t size); 8 | extern void free(void *ptr); 9 | extern void MEM_Init(unsigned char* addr); 10 | 11 | extern bool kernieHeap_is_set_up; 12 | extern bool have_allocated; 13 | extern unsigned char *last_valid_address; 14 | extern unsigned char *kernieHeap_space; 15 | -------------------------------------------------------------------------------- /include/kernel.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include