All Projects → LittleFox94 → lf-os_amd64

LittleFox94 / lf-os_amd64

Licence: MIT license
Hobby operating system for amd64 with high ambitions - mirror

Programming Languages

c
50402 projects - #5 most used programming language
perl
6916 projects
CMake
9771 projects
C++
36643 projects - #6 most used programming language
assembly
5116 projects
Vim Script
2826 projects

Projects that are alternatives of or similar to lf-os amd64

MeetixOS
An hobby OS written in modern C++20 which aims to be Unix-like. Currently based on EvangelionNG, a GhostOS derived kernel
Stars: ✭ 179 (+496.67%)
Mutual labels:  osdev, hobby-os
kwast
Rust operating system running WebAssembly as userspace in ring 0
Stars: ✭ 83 (+176.67%)
Mutual labels:  osdev, microkernel
SynnixOS
Hobbyist Operating System targeting x86_64 systems. Includes userspace, Virtual File System, An InitFS (tarfs), Lua port, easy porting, a decent LibC and LibM, and a shell that supports: piping, file redirection, and more.
Stars: ✭ 40 (+33.33%)
Mutual labels:  osdev, hobby-os
Macaron
A sweet hobby made operating system written in C++ for x86 CPUs with GUI
Stars: ✭ 34 (+13.33%)
Mutual labels:  osdev, hobby-os
Fukuro
Simple microkernel (early stage)
Stars: ✭ 18 (-40%)
Mutual labels:  osdev, microkernel
duckOS
Yet another hobby x86 UNIX-like operating system written in C and C++. Features a dynamically linked userspace, an in-house c standard library, and more! And yes, it runs DOOM.
Stars: ✭ 250 (+733.33%)
Mutual labels:  osdev, hobby-os
xtrix
xtrix OS repo
Stars: ✭ 23 (-23.33%)
Mutual labels:  osdev, microkernel
kora-kernel
Kernel for my operating system KoraOS
Stars: ✭ 15 (-50%)
Mutual labels:  osdev, hobby-os
Sigma
Abandoned overcomplicated Microkernel using modern x86_64 features
Stars: ✭ 36 (+20%)
Mutual labels:  osdev, microkernel
KnutOS
An x86_64 hobbyist OS written in C and Assembly
Stars: ✭ 16 (-46.67%)
Mutual labels:  osdev, hobby-os
AhnTri
Super-simple OS
Stars: ✭ 54 (+80%)
Mutual labels:  osdev, hobby-os
saturn
A microkernel based operating system developed from scratch. This repository also includes all Saturn services and applications.
Stars: ✭ 21 (-30%)
Mutual labels:  osdev, microkernel
moros
MOROS: Obscure Rust Operating System 🦉
Stars: ✭ 508 (+1593.33%)
Mutual labels:  osdev, hobby-os
Nebulet
A proof-of-concept microkernel that implements a WebAssembly "usermode" that runs in Ring 0.
Stars: ✭ 2,237 (+7356.67%)
Mutual labels:  osdev, microkernel
MoonOS
MoonOS (just a kernel atm) is a micro kernel designed for the x86_64 and arm architecure.
Stars: ✭ 82 (+173.33%)
Mutual labels:  osdev, microkernel
georgios
Hobby Operating System
Stars: ✭ 19 (-36.67%)
Mutual labels:  osdev, hobby-os
poplar
Microkernel and userspace written in Rust exploring modern ideas
Stars: ✭ 217 (+623.33%)
Mutual labels:  osdev, microkernel
munix
🦠 µnix is a UNIX-like operating system
Stars: ✭ 57 (+90%)
Mutual labels:  osdev, microkernel
rust os
My hobby operating system microkernel written in Rust
Stars: ✭ 33 (+10%)
Mutual labels:  osdev, microkernel
Luakernel
Lua + SQLite + musl libc running on x86.
Stars: ✭ 223 (+643.33%)
Mutual labels:  osdev

LF OS

This is the 5th(?) attempt at writing an operating system from scratch, where "attempt" means: starting from zero.

Development mainly happens on my Gitlab at https://praios.lf-net.org/littlefox/lf-os_amd64 - check it out!

It can run Doom!

Key difference to previous attempts

  • amd64, why use i386 like everyone else when I did not even manage to get a working system there?
  • uefi and custom loader, why use Grub like everyone else when I did not even ...... ^
  • I'm actually able to program things now
    • I actually became a good software developer in the meantime
    • first attempt was even before finishing school
  • there are some docs
  • I thought about system design and even wrote some things down
  • I don't write throw-away code or just paste tutorials right now
    • maybe later in user space though

Design

This will be a microkernel providing the following inside the kernel

  • base system initialization (CPU, physical memory, common bus systems)
  • memory management for processes (virtual memory)
  • inter-process communication facilities
    • mostly via shared memory and message queues
    • later also via helper userspace programs to make communication between processes A and B over an arbitrary channel between C and D, where A, B, C and D may run on different computers
    • IPC between different computers will be transparent to processes in a later version
  • service registry
    • processes announce services (file system, block device, character device, ...)
    • other processes need services
    • ask kernel for process implementing service x
    • IPC to process for service x

All drivers for special hardware (everything not attached to a common bus) are userspace programs that will be designed to recover after crashed. They can store a small amount of information in the kernel (like hard disk x is fully initialized, just read from address $y and port $x) and when they crash, they are just restarted.

Since IPC between processes running on different computers is planned to be transparent, it's actually possible to run a single instance of LF OS on a whole data center (or bigger, but latency).

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].