Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/batermj/swanson-os
An operating system made for virtualization.
https://github.com/batermj/swanson-os
Last synced: 15 days ago
JSON representation
An operating system made for virtualization.
- Host: GitHub
- URL: https://github.com/batermj/swanson-os
- Owner: batermj
- License: gpl-3.0
- Created: 2018-09-27T02:34:55.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2018-05-13T22:12:19.000Z (over 6 years ago)
- Last Synced: 2024-11-12T15:40:37.720Z (2 months ago)
- Language: C
- Size: 637 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
Swanson OS
==========
[![Build Status](https://travis-ci.org/swanson-os/swanson-os.svg?branch=master)](https://travis-ci.org/swanson-os/swanson-os)
[![Build status](https://ci.appveyor.com/api/projects/status/9ydfcp7s3t6pp4u8?svg=true)](https://ci.appveyor.com/project/tholberton/swanson-os)Swanson is an operating system built for virtualization.
It is intended to be a POSIX-complaint operating system that can run entirely in user space.
The idea is to have an operating system that can run on top of another operating system without much overhead.
### Motivation
It can be difficult using an operating system on a PC other than the one that was factory shipped.
Sometimes, installing the operating system may wreck the one that was factory shipped.
Other times, it may install successfully but the drivers for it won't work correctly.
And even if it does work okay, in a lot of cases it voids the warranty for the computer.This is the case where virtualization comes in handy.
With technology like QEMU or VirtualBox, it's easy to run an operating system without wrecking the one that came with the computer.
But there's one more problem with this kind of virtualization, it's kind of slow.That's where Swanson OS comes into play.
It's an experimental operating system design with a focus in compartmentalization and abstraction.### Building
CMake is the primary build system.
Build the project by doing this:
```shell-script
mkdir build && cd build
cmake ..
cmake --build .
```If you're developing the project in the terminal, QMake may be useful as well.
It generates Makefiles recursively, and creates a target for the test program.
This makes it easy to work inside the source directory, and run the test program as changes are made.Use it like so:
```shell-script
qmake
cd src
# Edit stuff
make
make check
```### Dependencies
Here's a list of dependencies for building the project.
| Name | Comment | Required |
|-----------------|---------------------------------------|----------|
| cmake | Used for building the project. | Yes |
| doxygen | Used for generating documentation. | No |
| graphviz | Used for generating documentation. | No |
| qmake | Used for development. | No |It's assumed you will have either GCC, Clang or Microsoft Visual Studio already installed.