Go to file
nakst 0a70170952 Merge branch 'gpt' into 'master'
Fix GPT sanity check for 1-sector partitions

See merge request nakst/essence!5
2023-08-11 17:25:54 +00:00
apps general: bugfixes 2022-03-25 11:17:57 +00:00
arch api: cleanup error codes 2022-02-10 12:18:26 +00:00
boot/x86 files: storing file content type 2022-03-21 14:25:58 +00:00
desktop Fix handle replication logic 2023-08-06 03:21:16 +02:00
drivers esfs: prevent allocating blocks past end of file system 2022-03-21 14:53:08 +00:00
help misc: merge updates 2022-07-11 10:45:33 +01:00
kernel misc 2022-12-16 11:18:37 +00:00
ports general: use contentType field for file types 2022-03-24 16:58:35 +00:00
res building: moved line-count into start.script 2022-03-19 18:14:59 +00:00
shared Fix GPT sanity check for 1-sector partitions 2023-08-11 17:25:54 +00:00
util Format EFI system partition 2023-08-06 08:02:22 +02:00
.gitignore hide email 2021-08-13 21:22:26 +01:00
LICENSE.md bundle license files for mesa and gcc separately 2022-01-12 19:56:16 +00:00
README.md misc 2022-12-16 11:18:37 +00:00
start.sh misc: merge updates 2022-07-11 10:45:33 +01:00

README.md

Essence — An Operating System

Discord Automated build status

Screenshot showing the file manager, text editor, and bitmap image editor.

Video demonstration as of October 2021, running on real hardware: (YouTube)

Video demonstration as of October 2021.

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.