https://github.com/araujo88/primus-os
A simple bare-bones 32-bit operating system written in Assembly x86 and C for educational purposes
https://github.com/araujo88/primus-os
operating-system operating-system-kernel operating-system-learning operating-systems operating-systems-learning operating-systems-project operating-systems-tutorials
Last synced: 4 months ago
JSON representation
A simple bare-bones 32-bit operating system written in Assembly x86 and C for educational purposes
- Host: GitHub
- URL: https://github.com/araujo88/primus-os
- Owner: araujo88
- License: gpl-3.0
- Created: 2022-07-11T23:57:30.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-09-19T08:20:09.000Z (over 1 year ago)
- Last Synced: 2023-09-19T11:11:30.957Z (over 1 year ago)
- Topics: operating-system, operating-system-kernel, operating-system-learning, operating-systems, operating-systems-learning, operating-systems-project, operating-systems-tutorials
- Language: C
- Homepage:
- Size: 67.2 MB
- Stars: 28
- Watchers: 1
- Forks: 7
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# PrimusOS
A simple bare-bones 32-bit Ring 0 operating system written in Assembly x86 and C for educational purposes.
Inspired by Terry A. Davis (in memoriam).## Dependencies for building
`xorriso`
`mtools`## Bootloader "hello world" example
### Compile bootloader
`nasm -o bootloader.bin bootloader.asm`
### Testing with QEmu
`qemu-system-x86_64 bootloader.bin`
## Compiling the kernel example
`gcc -c kernel.c -o kernel -ffreestanding -m32`
## Generating the ISO image
`make check_dir`
`make clean`
`make primus-os.iso`## About pull requests
PLEASE, comment on the related issue BEFORE sending a pull request! Thanks. Contributions and improvements are always welcome.
## TODO
- Implement unit tests and bechmarks (math functions)
- Implement memory management
- Add file system and disk partitioning
- Add multithreading
- Implement calculator (parsing of command-line tokens)
- Implement basic text editor
- Create documentation
- Add games (tic-tac-toe, chess, etc.)
- Implement other VGA graphic modes
- Implement complex number library in C++
- Implement linear algebra library, scientific computing, etc.