/BoneOS

💥 BoneOS Kernel and Operating System Source Tree

Primary LanguageCOtherNOASSERTION

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

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! If you have any contributions or pull requests, which will be highly appreciated, please issue a pull request here!

WARNINGS


  • Installing VirtualBox on Ubuntu may lead to problems.

Discussions


Any Questions, Comments, Ideas, Feature Requests, etc. may be brought up here.

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 is a video showing how to do this using VirtualBox as the Virtual Machine Emulator. You can download Virtual Box here. Here 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.

Nightly Builds (For Developer Or Normal User)

You can get the nightly builds for the latest updated iso for the master branch here .

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 . You can learn more here.

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

make no_vnc

Extra Options (For Developer)

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

 $ 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

More Info(For Developer)

For more information, go here 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. 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.