Fix GPT sanity check for 1-sector partitions See merge request nakst/essence!5 |
||
---|---|---|
apps | ||
arch | ||
boot/x86 | ||
desktop | ||
drivers | ||
help | ||
kernel | ||
ports | ||
res | ||
shared | ||
util | ||
.gitignore | ||
LICENSE.md | ||
README.md | ||
start.sh |
README.md
Essence — An Operating System
Video demonstration as of October 2021, running on real hardware: (YouTube)
Links
For discussion, join our Discord server: https://discord.gg/skeP9ZGDK8.
Alternatively, visit the forums (not very active): https://essence.handmade.network/forums.
Supporters
To support development, you can donate to my Patreon: https://www.patreon.com/nakst.
Essence was a recipient of the prestigious 2021 Icculus Microgrant. You can view more details here: https://icculus.org/microgrant/.
Testing
You can download and test the latest nightly build from https://github.com/nakst/build-essence/releases. Download and extract Essence.tar.xz
. If you are using VirtualBox, import Essence.ova
. If you are using Qemu, run
qemu-kvm -drive file=drive,format=raw -m 2048 -smp 2 || qemu-system-x86_64 -enable-kvm -drive file=drive,format=raw -m 2048 -smp 2
These builds are configured to run on emulators only, to make testing easier. Builds for real hardware are coming soon :)
Building
See help/Building.md
for a description of how to build and test the system.
Features
Kernel
- Filesystem independent cache manager.
- Memory manager with shared memory, memory-mapped files and multithreaded paging zeroing and working set balancing.
- Networking stack for TCP/IP.
- Scheduler with multiple priority levels and priority inversion.
- On-demand module loading.
- Virtual filesystem.
- Window manager.
- Audio mixer. (being rewritten)
- Optional POSIX subsystem, capable of running GCC and some Busybox tools.
Applications
- File Manager
- Text Editor
- IRC Client
- System Monitor
Ports
- Bochs
- GCC and Binutils
- FFmpeg
- Mesa (for software-rendered OpenGL)
- Musl
Drivers
- Power management: ACPI with ACPICA.
- Secondary storage: IDE, AHCI and NVMe.
- Graphics: BGA and SVGA.
- Read-write filesystems: EssenceFS.
- Read-only filesystems: Ext2, FAT, NTFS, ISO9660.
- Audio: HD Audio.
- NICs: 8254x.
- USB: XHCI, bulk storage devices, human interface devices.
Desktop
- Custom user interface library.
- Software vector renderer with complex animation support.
- Tabbed windows.
- Multi-lingual text rendering and layout with FreeType and Harfbuzz.