Skip to content

j1sk1ss/CordellOS.PETPRJ

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CordellOS.MPRJ

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? [ ]

Alt Text

About

Simple hobby OS based on GRUB2 as boot loader, and .c kernel with user-land programs

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Languages