-
Notifications
You must be signed in to change notification settings - Fork 13
a hobby operating system written in C
License
nickbjohnson4224/rhombus
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Rhombus Operating System 0.8 Alpha -- Have a problem? Check the Wiki and FAQ first! -- Introduction ***************************************************************************** What is Rhombus? Rhombus is a hobby operating system project designed and written primarily by me (Nick Johnson), since some time in late 2008. Currently, it consists of a microkernel, a C library, a shell and simple utilities, and a small set of device drivers. It should run on any standard PC hardware with a Pentium or better processor, and uses 32 bit protected mode. The Rhombus system is roughly UNIX-like in many areas, but it is mostly its own system, and is not POSIX compliant (although it may be partially so in the future.) It has a particularly interesting VFS mechanism that allows any process to act as not only a file, but a whole mounted file system. It also is very fundamentally event-driven and multithreaded, which is good for driver writing and scalability over multiple processors (or at least it will be, once I get around to adding SMP support :P). It has been a sort of sandbox for my ideas, so there are plenty of other interesting bits as well. How do I use Rhombus? At the moment, Rhombus is not stable enough for real use, but it is rapidly progressing toward that point. It already can run a Lua interpreter, which is written in standard C, and all of its source code can be compiled with all warning flags and all optimization flags for CLang. The first beta release of Rhombus will likely occur soon. All code in the Rhombus core (kernel, libc, libdriver, basic drivers) as well as most of the rest of the system uses an OpenBSD-like copyright statement. In essence, this means you can freely modify and redistribute Rhombus as long as you keep the license and copyright information on each of the files that contains it. The OpenBSD license statement is a certified open source license, but you may incorporate Rhombus code into closed source projects if you wish. What are the goals of Rhombus? Rhombus, much like the original UNIX, strives to give the programmer powerful, general connections with which to combine system components. With UNIX came text pipelines and device files; Rhombus extends this with uniform resource addressing, a general purpose command system for system daemons and services, graphics and event pipelines, and pseudo-filesystems that can be presented by any user process. In addition, Rhombus strives to allow easy modification, when existing stacks and protocols prove insufficient. Rhombus is built to be rebuilt, to be taken apart and understood, and to be a foundation for new ideas. Every core piece of Rhombus is intended to be simple enough for a single person to completely understand, and if necessary, to for a single person to rewrite. Documentation (at release at least) will be comprehensive from the largest library down to the smallest function, to aid those who wish to hack. Build Instructions ***************************************************************************** This system is meant to be built with x86 or x86_64 Linux as a host: it may build and test on other Linux platforms, and will probably build on any UNIX-like system. To reliably build the system, you should use a cross-compiler. Instructions for how to install a cross-compiler for Rhombus are found here: https://github.com/nickbjohnson4224/rhombus/wiki/Environment-setup To build the system, type "make". To create a CD image from the built system, type "make image" -- the image will be created at rhombus/run/rhombus.iso. To build and then test the system using QEMU, type "make test". To remove all object files, type "make clean".
About
a hobby operating system written in C
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published