Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/Bone-Project/BoneOS

💥 BoneOS Kernel and Operating System Source Tree
https://github.com/Bone-Project/BoneOS

boneos c kernel operating-system osdev

Last synced: 3 months ago
JSON representation

💥 BoneOS Kernel and Operating System Source Tree

Awesome Lists containing this project

README

        

# [BoneOS](https://amanuel.io/projects/BoneOS/index.html)
### (Update: Learning Rust, since I will be doing a complete rewrite in Rust. Wish me luck 😭)

Documentation Status




Release Version
Release Date
Github Releases
SourceForge


V 0.0.1
Dec/29/2016








V 0.0.2
Jan/16/2017








V 0.0.3
Feb/05/2017







Branch
Status
Main Developer


master



BoneOS Community


amanuel_dev



amanuel2


doug_dev



doug65536


ashish_dev



Fortunate-MAN

Current BoneOS Version : V 0.0.2

### [BoneOS Issues](https://github.com/Bone-Project/BoneOS/issues)

Welcome! This is the official and main repository of BoneOS. This project is currently in high active development ,
and is predominately written in C ofcourse some parts such as hardware communication, scripting, building, etc ...will use
other languages.
If you find any issue using this OS please request an issue [**here**](https://github.com/Bone-Project/BoneOS/issues)!
If you have any contributions or pull requests, which will be highly appreciated, please issue a pull request
[**here**](https://github.com/Bone-Project/BoneOS/pulls)!

# WARNINGS
---

- Installing VirtualBox on Ubuntu may lead to problems.

# Discussions
---

Any Questions, Comments, Ideas, Feature Requests, etc. may be brought up [here](https://github.com/Bone-Project/BoneOS/issues).

# Installation
---

There are two ways to install BoneOS: one for the normal user to get it into his Virtual Machine and the other for the developer who want to contribute (building from source).

#### Normal Installation (For user)
To install a spsecific version , go to the top of readme where you will see the version number listed as well as installing the Image File via SourceForge or Github Releases. Choose whichever you would like and when you finish installing the ISO(Image File) plug it into your Virtual Machine. [**here**](https://www.youtube.com/watch?v=rBjlaEAzUZo&feature=youtu.be) is a video showing how to do this using VirtualBox as the Virtual Machine Emulator. You can download Virtual Box [**here**](https://www.virtualbox.org/). [Here](https://www.youtube.com/watch?v=yDiwl6AxNrc&feature=youtu.be) is a video showing how to get it in VMWare. VMWare is paid , there if a free trial though. You can get more Information at our Offical Download Page [here](https://boneos.org/download.html).

#### Nightly Builds (For Developer Or Normal User)

You can get the nightly builds for the latest updated iso for the master branch [here](https://bintray.com/boneos/BoneOS/download_file?file_path=BoneOS-master.iso) .

#### Building From Source (For developer)

First make sure you have a Ubuntu Terminal (If you are on Windows, use the new Linux Subsystem Feature). Then download the dependencies using `bash setup.sh`. Then compile BoneOS using `make`. Now that you have qemu after you executed `setup.sh` , you can go ahead and run on qemu using `make qemu_compile` for running the binary or `make qemu_iso` to run the actual Image File(.ISO).

#### Cloud9 Collaboration (For Developer)

You can collaborate with the Main BoneOS Developer in Cloud9. Cloud9 Is an Online IDE , with an Ubuntu Terminal. We use Cloud9IDE Terminal + NoVNC to make this possible.
the workspace is located [here](https://ide.c9.io/amanuel2/osdev) . You can learn more [here](https://community.c9.io/t/cant-install-grub/11653/5?u=phpcoder231).

If you want to setup NoVNC Server once you are in an Cloud9IDE You can use the command

```sh
make no_vnc
```

#### Extra Options (For Developer)

There are extra options when building(`make`ing) , this OS. You can set the compiler instead of the default
gcc(`$(CC)`) like so :

```sh
$ CC=clang make #If you want to run via clang
$ CC=gcc-5 make #If you want to run via GCC Version 5
$ ./configure --cc=gcc-5 && make # Optionally use the configure script to store variable permanently
```

You can see more in [Docs/Configuration](https://docs.boneos.org/en/latest/Configuration/Configuration/)

#### More Info(For Developer)
For more information, go [here](https://docs.boneos.org) for documentation.

# Directory Structure
----
Our directory structure currently is as follows:

- ***docs*** : Documentation for BoneOS
- ***apps*** : Applications
- ***term*** : Terminal
- ***.github*** : Github related files.
- ***ISSUE_TEMPLATE.md*** : Github Issues Template
- ***arch*** : Architecture Dependant Codes
- ***@(ARCH)*** : Architecture name.
- ***boot***: GRUB Bootloader information
- ***multiboot***: Grub Multiboot information
- ***drv*** : Device Drivers for @(ARCH) are located here.
- ***io*** : I/O Software Code
- ***link***: Where the linker is located.
- ***init***: Main kernel function getting called by GRUB Bootloader
- ***shared*** : Shared piece of code between Proccecor Families
- ***x86*** : Shared piece of code for x86 family
- ***bin*** : Non Adminstrator Terminal Commands
- ***sbin*** : Adminstrator Terminal Commands
- ***config*** : Configuration Files
- ***hdd*** : Default files on first time use
- ***platform*** : Platform Dependant Code
- ***pc*** : PC Platform
- ***libc***: C Library constructed and used by BoneOS, non-archecture and non-platform dependant code.
- ***utils***: Utilities for devs.
- ***cross_compiler***: Script for installing the cross compiler
- ***no_vnc***: Setup No_vnc server in Cloud9IDE
- ***watch.sh*** : Nodemon like script
- ***include***: All Include Files(.h).
- ***var*** : Common Variables used across the system.

# Documentation
---
You can take a look at the Documentation online hosted by gitbook [**here**](https://docs.boneos.org). Documentation are for presistant information , not code details.

# Architectures
---
Architecture | Status | Plan to support |
------------- | ------------- | -----------|
x86(32 BIT) | Ready | Already Supported |
x64| On Progress | Currently updating to support this architecture |
PowerPC| Unavailable | Yes, in later releases |
Arm| Unavailable | Yes, in later releases |
MIPS | Unavailable| Yes, in later releases |

if there are architectures you want BoneOS to support , please request an issue to talk about it.

# FAQ
---

1) **What is BoneOS Goal?**
Our goal is to make an Operating System for 'Everyone'. Ranging from Programmers
to Normal Users. We dont believe the "OS Problem" is solved by either Popular
Operating Systems such as Windows, Mac OSX or even kernels such as Linux.

2) **Any new features?**
We have some ideas in mind. But it will be a long way until we start adding
new feautres, as we are just starting in the osdev world :).

3) **Need Help?**
Absolutely! Any help would be appreciated! To get to us, either request an
issue or check ask a question: https://github.com/Bone-Project/BoneOS/issues

# License
---

BoneOS is Licensed under the GPLv3 License.