All Projects → flower-os → flower

flower-os / flower

Licence: Apache-2.0 License
A learning OS

Programming Languages

rust
11053 projects
assembly
5116 projects
Makefile
30231 projects

Projects that are alternatives of or similar to flower

DentOS
Experimental Stand-alone 32-bit Kernel with Bootloader written in AT&T Assembly and Freestanding C
Stars: ✭ 32 (-36%)
Mutual labels:  kernel, operating-system
beeos
A simple "Unix-like" kernel trying to be POSIX compliant
Stars: ✭ 103 (+106%)
Mutual labels:  kernel, operating-system
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 (-20%)
Mutual labels:  kernel, operating-system
wiser
🐎 Extremely minimal vmm for linux written in C. Hopefully someday will spin linux-vm for you.
Stars: ✭ 249 (+398%)
Mutual labels:  kernel, operating-system
TravorOS
A simple OS running on Intel x86 architecture | No longer updating
Stars: ✭ 24 (-52%)
Mutual labels:  kernel, operating-system
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 (+400%)
Mutual labels:  kernel, operating-system
SimpleOS
Operating System Coded in Assembly and C
Stars: ✭ 72 (+44%)
Mutual labels:  kernel, operating-system
pranaOS
A unix operating system written from scratch in c that gives support for arm, x86
Stars: ✭ 138 (+176%)
Mutual labels:  kernel, operating-system
cxos
Operating System development experiment in Ada
Stars: ✭ 32 (-36%)
Mutual labels:  kernel, operating-system
Methylenix
The operating system written in Rust
Stars: ✭ 32 (-36%)
Mutual labels:  kernel, operating-system
Osmanthus
A developing operating system
Stars: ✭ 36 (-28%)
Mutual labels:  kernel, operating-system
poplar
Microkernel and userspace written in Rust exploring modern ideas
Stars: ✭ 217 (+334%)
Mutual labels:  kernel, operating-system
sanos
Sanos operating system kernel
Stars: ✭ 55 (+10%)
Mutual labels:  kernel, operating-system
OpenHarmony
华为鸿蒙分布式操作系统(Huawei OpenHarmony)开发技术交流,鸿蒙技术资料,手册,指南,共建国产操作系统万物互联新生态。
Stars: ✭ 373 (+646%)
Mutual labels:  kernel, operating-system
SnowFlake
Technology is free, SnowFlakeOS
Stars: ✭ 38 (-24%)
Mutual labels:  kernel, operating-system
nautilus
Nautilus Aerokernel
Stars: ✭ 30 (-40%)
Mutual labels:  kernel, operating-system
Macaron
A sweet hobby made operating system written in C++ for x86 CPUs with GUI
Stars: ✭ 34 (-32%)
Mutual labels:  kernel, operating-system
Polaris
A WIP 64-bit UNIX-like kernel
Stars: ✭ 72 (+44%)
Mutual labels:  kernel, operating-system
georgios
Hobby Operating System
Stars: ✭ 19 (-62%)
Mutual labels:  kernel, operating-system
scaraOS
A 32bit multiboot OS kernel for IA32 (PC/AT) systems.
Stars: ✭ 31 (-38%)
Mutual labels:  kernel, operating-system

FlowerOS Gitter

A small learning OS

Setup

You will need:

  • rustup and a nightly Rust (if yours doesn't work, then update to latest) build to compile;
  • The rust-src component from rustup;
  • cargo-xbuild (cargo install it);
  • nasm;
  • ld;
  • qemu (to run in a virtual machine);
  • X server to run qemu;
  • GNU GRUB (grub-mkrescue);
  • GNU make;

It will currently build on rustc 1.36.0-nightly (e305df184 2019-04-24).

Building

You can make the iso with make iso, and launch qemu and run it with make run. To enable debug symbols, add debug=1 to the make command. If this does not work, try make cleaning and checking you're on the latest rust/cargo-xbuild version. If this does still not work, then open an issue.

You can also get builds from Flower's CI/CD.

Contributing

If you wish to PR something to Flower, thanks so much! Just note to please pull request into development, not master if you are making a change to the codebase.

Generally, the workflow for submitting a pull request goes like this:

  1. Open an issue that your PR aims to solve and request to be assigned. This is just so we don't have multiple people working on the same thing on different branches/forks.
  2. Fork flower
  3. Create a new branch from development (if you're editing code and not e.g the README) which briefly describes the thing you are doing, e.g acpi.
  4. Commit your things
  5. Open a pull request. Select base as development (again, if you're editing code).
  6. Wait for review. Sorry if the reviews are a bit nitpicky -- @gegy1000 and @Restioson (the maintainers) usually write reviews like that. It does help to keep code quality good though.
  7. Debate review comments/implement requested changes.
  8. Repeat until everyone is happy with the changes.
  9. Your PR should be merged Soon™!

Code Style

Generally, we try to follow the rust style guidline. To keep the code consistent, we ask if all contributors could also adhere to these guidelines. Unfortunately, we haven't run Clippy or Rustfmt on flower just yet, but this is slated to be done just before 0.2.0. Thus, please refrain from formatting things unrelated to the PR you are working on. This is to avoid merge conflicts.

Thanks

Much thanks to:

This is not, of course, an exhaustive list!

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