All Projects β†’ UltraOS β†’ Ultra

UltraOS / Ultra

Licence: Apache-2.0 license
An operating system that doesn't try to be UNIX. Made completely from scratch with its own bootloader. 😊

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
assembly
5116 projects
CMake
9771 projects
shell
77523 projects
pascal
1382 projects

Projects that are alternatives of or similar to Ultra

Aqeous
(Inactive, Checkout AvanaOS, Rewrite of this) This is a New Operating System (Kernel right now). Made completely from scratch, We aim to make a complete OS for Learning purpose
Stars: ✭ 23 (-52.08%)
Mutual labels:  os, operating-system, i386
TravorOS
A simple OS running on Intel x86 architecture | No longer updating
Stars: ✭ 24 (-50%)
Mutual labels:  os, operating-system, i386
CinderOS
πŸ‘¨β€πŸ’»An operating system, built from scratch in C.
Stars: ✭ 26 (-45.83%)
Mutual labels:  os, operating-system
ez-rtos
A micro real-time operating system supporting task switching, delay function, memory allocator and critical section. It is writen on ARM Cortex-M3 assemble language, it runs successfully on STM32F103 MCU.
Stars: ✭ 57 (+18.75%)
Mutual labels:  os, operating-system
vinix
Vinix is an effort to write a modern, fast, and useful operating system in the V programming language
Stars: ✭ 1,512 (+3050%)
Mutual labels:  os, operating-system
Luakernel
Lua + SQLite + musl libc running on x86.
Stars: ✭ 223 (+364.58%)
Mutual labels:  os, operating-system
IntrOS
Free cooperative operating system (OS) for microcontrollers
Stars: ✭ 38 (-20.83%)
Mutual labels:  os, operating-system
CS Offer
εŽε°εΌ€ε‘εŸΊη‘€ηŸ₯θ―†ζ€»η»“οΌˆζ˜₯ζ‹›/秋招)
Stars: ✭ 352 (+633.33%)
Mutual labels:  os, operating-system
greenteaos.github.io
🏠 Homepage of the @GreenteaOS
Stars: ✭ 16 (-66.67%)
Mutual labels:  os, operating-system
zambesii
Non-unix, custom-API hybrid OS kernel written in C++ which can be thought of as an emulated microkernel. The native API is almost fully asynchronous and the kernel is aimed at high-scaling, high-throughput-requiring multiprocessor workloads, with working support for SMP and NUMA already implemented. Join the IRC channel, #zbz-dev on freenode!
Stars: ✭ 13 (-72.92%)
Mutual labels:  os, operating-system
MoonOS
MoonOS (just a kernel atm) is a micro kernel designed for the x86_64 and arm architecure.
Stars: ✭ 82 (+70.83%)
Mutual labels:  os, operating-system
AhnTri
Super-simple OS
Stars: ✭ 54 (+12.5%)
Mutual labels:  os, i386
Frosted
Frosted: Free POSIX OS for tiny embedded devices
Stars: ✭ 194 (+304.17%)
Mutual labels:  os, operating-system
SEAC
Systeme d'exploitation
Stars: ✭ 22 (-54.17%)
Mutual labels:  os, operating-system
Unikraft
Unikraft is an automated system for building specialized POSIX-compliant OSes known as unikernels. (Core repository)
Stars: ✭ 183 (+281.25%)
Mutual labels:  os, operating-system
Cyjon
A simple, clean code, multi-tasking operating system written in pure assembly language for 64-bit processors from the AMD64 family.
Stars: ✭ 184 (+283.33%)
Mutual labels:  os, operating-system
Onyx
UNIX-like operating system written in C and C++
Stars: ✭ 52 (+8.33%)
Mutual labels:  os, operating-system
Pinpog
Ping-Pong-like game in Assembly that works without OS
Stars: ✭ 177 (+268.75%)
Mutual labels:  os, operating-system
Pebble
Microkernel and userspace written in Rust exploring modern ideas
Stars: ✭ 184 (+283.33%)
Mutual labels:  os, operating-system
kora-kernel
Kernel for my operating system KoraOS
Stars: ✭ 15 (-68.75%)
Mutual labels:  os, operating-system

UltraOS

An operating system that doesn't try to be UNIX. Made completely from scratch with its own bootloader. 😊

Running DOOM alt-text

Panic screen alt-text

Current Features

  • Support for both i386 and AMD64
  • Symmetric Multiprocessing
  • ISTs for each core to protect against kernel stack corruptions
  • A well optimized thread-safe memory manager with support for stack overflow detection, with most components covered by unit tests
  • Support for symbolicated backtraces thanks to the kernel symbol file loaded by the bootloader
  • Support for deadlock detection for all lock types
  • Window manager
  • WC cached framebuffer for fast rendering on real hardware
  • Multicore RR preemptive O(1) scheduler
  • PS/2 controller driver with active multiplexing support + keyboard & mouse
  • Synaptics TouchPad with absolute mode and multifinger gesture support.
  • AHCI driver with async request queue, as well as full controller initialization according to the specification. Confirmed to work on all emulators and many real computers.
  • FAT32 read/write/create/delete + full VFAT support.
  • Own BIOS bootloader
  • Fully modern C++17 kernel
  • Almost everything in kernel/Common is fully covered by unit tests
  • No third party code

Tested on modern hardware βœ”οΈ

Getting started

Windows

Windows support is fully based on WSL, so you can't currently build the system without it.

  • Install QEMU, add it into your Path
  • Install WSL Ubuntu, or any other distro with apt
  • Install nasm for your WSL
  • run run_qemu.bat, you can choose to build for i386 or AMD64 by passing "32" or "64" respectively, the default build is AMD64

Linux

Currently only works for distributions with the apt package manager (used for pulling the toolchain dependencies).

  • Install QEMU
  • Install nasm
  • run run_qemu.sh, you can choose to build for i386 or AMD64 by passing "32" or "64" respectively, the default build is AMD64

MacOS

Mostly experimental support, but should work by following the same steps as Linux. (Expects to have brew available for pulling dependencies)


Virtualization Software

Pretty much any virtualization software you could find is supported as long as it can virtualize x86. The system is confirmed to correctly work on all popular virtual machines.

QEMU is supported out of the box with most optimal parameters by running the run_qemu.{sh/bar} script, which also recompiles/rebuilds the system if necessary.

For other virtual machines you can simply grab the VMDK image from the Images folder, generated via either Scripts/build_ultra.{sh/bat} or run_qemu.{sh/bar}.

Real Hardware

I've personally tested the system on multiple PCs as well as laptops and encountered no problems, so it will probably work on yours, too. However, keep in mind that the system is still in very early development stage and as a result might not be super stable/able to handle edge cases/peculiar hardware, so run at your own risk.

  • Build the system using ./Scripts/build_ultra.{sh/bat}
  • Find a free USB stick (the default image size is 64MB atm)
  • Find some software to write raw data to usb, I personally use SUSE ImageWriter
  • Write the Ultra{32/64}HDD-flat.vmdk to the stick
  • Insert the USB stick into your computer and boot from it (you might have to enable legacy boot/disable secure boot)

If you encounter any bugs/crashes/weird behavior please let me know so I can fix it. :)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].