Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Garnek0/GarnOS
OS powered by a modular kernel
https://github.com/Garnek0/GarnOS
c kernel operating-system os osdev
Last synced: 2 months ago
JSON representation
OS powered by a modular kernel
- Host: GitHub
- URL: https://github.com/Garnek0/GarnOS
- Owner: Garnek0
- License: bsd-2-clause
- Created: 2023-08-02T10:54:06.000Z (over 1 year ago)
- Default Branch: alpha
- Last Pushed: 2024-11-04T16:19:43.000Z (3 months ago)
- Last Synced: 2024-11-04T17:27:53.319Z (3 months ago)
- Topics: c, kernel, operating-system, os, osdev
- Language: C
- Homepage:
- Size: 6.66 MB
- Stars: 8
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-os - GarnOS - Hobby OS powered by a modular kernel. (Open Source Operating Systems)
README
# GarnOS
![C](https://img.shields.io/badge/c-%2300599C.svg?style=for-the-badge&logo=c&logoColor=white&color=orange)
![](https://tokei.rs/b1/github/garnek0/garnos?type=c,c++,cheader,assembly,assemblyGAS,Rust&style=for-the-badge&color=orange)GarnOS is a simple, open-source, 64-bit hobby operating system.
The main goals of GarnOS are compatibility and modularity.
## Notable Features
- Terminal Emulator
- Module Loader
- Userspace
- Device Manager# Building & Running
## Dependencies
- GCC and Binutils
- At least a minimum toolset to build a cross-toolchain
- QEMU
- Xorriso (for ISO images)
- GNU Parted
- Git
- make/gmake and cmake (cmake is required by mlibc)## Building
First of all, you need to build the toolchain:
```
make all-toolchain
```Then, in the root directory, run:
```
make all # ISO Image
make all-hdd # HDD Image
```
NOTE: The ISO image will probably not work. Use the HDD image instead!You may also run the OS directly, as described below, since the `run-*` targets also build the OS in case it hasn't been built already.
## Running
In the root directory, run:
```
make run # Run using ISO Image
make run-hdd # Run using HDD Image
```You can also run GarnOS in an EFI environment by appending `-uefi` to the commands shown above
For debugging, it is recommended to append `DEBUG=y"` to whatever make command you're using.
## License
See LICENSE for details.## Known Bugs
- Disk access doesnt work properly on "large" drives (> ~512 MiB).
- Disk access is EXTREMELY slow. It's so slow it takes 2-4 seconds to load a simple program such as `ls`.
- AHCI driver doesn't work on real hardware.
- mlibc sometimes panics when running user programs.## Support
**General**: PCI \
**Input**: PS/2 Keyboards \
**Storage**: IDE, AHCI \
**File Systems**: FAT32 \
**Graphics**: Standard Graphics## Acknowledgements
- Limine Bootloader (mintsuki et al.)
- uACPI (d-tatianin and DataBeaver)