Simple OS based on .asm / .c double stage boot loader, and .c / .cpp based kernel with GCC .c / .cpp compiler.
For building you can download image in packages, then run container with next commands:
docker run -it -v [path to your project]:/home/os-dev/project --privileged=true --rm ghcr.io/j1sk1ss/os-dev-env:v02
Where:
-it - means that when you run this container you will get command line (fedora 38)
-v [path]:[path] - means that we connect your project with container directory
--privileged=true - needs for working with dev loop (Optional for creating images of OS)
--rm - delete container after use (Optional)
Before compile be sure that your script has right link to tool_chain. In this container tool_chain placed in
/home/os-dev/tool_chain
Used GSS 11.2.0
And used binutils 2.37
Also this container contains fedora 38, gcc, gcc-c++, make, bison, flex, gmp-devel, libmpc-devel, mpfr-devel, texinfo, nasm, mtools, qemu-system-x86, and grub tools.
This container tested in MacOS 10.15, Windows 10 (On win10 can be problems with image building. But compiling works fine) and Fedora 38
TODO List: | Status: | Features: |
---|---|---|
[?] - WIP | ||
[✓] - complete | ||
1) Multiboot struct | [✓] | 1) Physical memory manager |
2) Phys and Virt manages | [✓] | 2) Virtual memory manager (paging) |
2.0) Make page and phys prints... | [✓] | 3) Multitasking |
3) ELF check v_addr | [✓] | 4) Syscalls |
3.1) Fix global and static vars | [✓] | 4.0) Std libs for user programs |
3.2) Loading ELF without malloc... | [✓] | 4.1) Cordell-ASM compiler |
4) Paging (create error with... | [✓] | 5) Mouse & keyboard support |
4.0) Random Page fault (Null... | [✓] | 6) VBE support |
4.1) Tasking with paging | [✓] | 7) ELF support |
4.2) ELF exec with tasking... | [✓] | 8) BMP support |
5) VBE / VESA | [✓] | 9) FAT32/16/12 support |
5.0) VBE kernel | [✓] | 10) Boot config |
5.0.1) Kshell scrolling | [ ] | 11) Multidisk support |
5.1) Double buffering | [ ] | 12) Networking |
6) Keyboard to int | [✓] | 12.0) DHCP |
7) Reboot outportb(0x64, 0xFE); | [✓] | 12.1) UDP |
8) Mouse support | [✓] | 12.2) ARP |
8.0) Std lib for graphics | [✓] | 12.3) RLT8139 driver |
8.0.0) Objects | [ ] | |
8.0.1) Click event | [ ] | |
8.1) Loading BMP without malloc... | [✓] | |
8.1) Syscalls to std libs | [✓] | |
8.1.0) Syscalls for content... | [✓] | |
8.1.1) Syscalls for content... | [✓] | |
8.1.2) Syscalls for _kmallocp... | [✓] | |
8.2) VBE userland | [ ] | |
8.2.0) VBE file manager | [?] | |
8.2.1) VBE text editor | [?] | |
9) Malloc optimization | [ ] | |
10) Bugs | [?] | |
10.0) Tasking page fault... | [?] | |
10.1) Mouse page fault | [✓] | |
10.2) Tasking with page allocator | [✓] | |
11) Ethernet | [?] | |
11.0) ethernet | [?] | |
11.0.0) Send packets | [✓] | |
11.0.1) Receive packets | [✓] | |
11.0.2) DHCP | [✓] | |
11.0.3) Sending data | [✓] | |
11.0.3.0) Sending normal... | [✓] | |
11.1) IP Udp, Arp | [✓] | |
11.2) Receive data on Host server | [✓] | |
11.3) STD libs for networking | [✓] | |
11.4) TCP | [ ] | |
11.5) Host sending to VK/TG etc | [ ] | |
12) KShell to ELF program | [✓] | |
12.1) MEM-DATA progs | [✓] | |
13) DOOM? | [ ] |