Getting Started

From XOmB wiki
Jump to: navigation, search
This page is part of a series on Guides.

As with any open source project, it's hard to know how to actually get involved with the project. We'd like to make that as easy as possible. We'd love your contributions!

Using XOmB

The easiest way of getting involved with XOmB is to use it. Well, actually, it would be the easiest, if XOmB was ready for general use. Unfortunately, we're not quite there yet. So this will have to be a little sparse for now.

Developing XOmB

Getting involved with XOmB development is a little complicated, but it is not too bad. It takes a lot of different tools to develop an OS; we've written guides for most of them on this wiki.

Getting the Source

This section may contain information that is in a state of flux. If something doesn't quite seem right, join the IRC channel #xomb on Freenode and ask someone.

We have a public repository available on GitHub. To get a copy of the source, you need to have git installed, and then you can

$ git clone http://github.com/xomboverlord/xomb.git

to clone our repository. However, if you're going to contribute back to XOmB, it's much simpler to sign up for a free account, and once you're logged in, fork our repo. This lets you contribute code back easily. After forking, type this:

$ git clone git@github.com:$YOUR_USERNAME/xomb.git

to clone your own repository.

Build Tools

Next, you'll need to set up all of the various Open Source Software We Use for Development. See that page for details, as there are a lot.

We've built a little repo for your convenience, if you'd like to try it.

   $ git clone https://github.com/xomboverlord/buildtools.git
   $ cd buildtools
   $ ./build.sh
   $ pwd
   take that value, add '/buildtools/local/bin' to it, add it to your PATH, probably by editing your .bashrc
   $ source ~/.bashrc

aaaand you're good to go!

Building XOmB

So you have downloaded all the build tools and the XOmB source. How do you build and run it? (NOTE: it's required to build the kernel once before trying to build it all using the build.sh script in the root folder)

cd xomb/build/

Currently, XOmB only supports x86_64, while the XOmB Bare Bones project supports both 32 and 64 bit x86.

./configure.sh [your architecture i.e. x86, x86_64]
./build

to build all applications run:

 cd ..
./build.sh


to build specific userspace applications (such as the XOmB shell, xsh)

cd ../runtimes/mindrt; make
cd ../runtimes/dyndrt; make
cd ../../app/d/xsh; ./build

Then you must update init, which the other files are embedded in.

cd ../../../app/d/init; ./build

Rebuilding the kernel updates the .iso with the latest init and XOmB kernel

cd ../../../build; ./build

Howerver, it is strongly recommended that you use simply the main build.sh script, especially if you are modifiying multiple components.

Then, run:

bochs -q

For faster emulation, without debugging support (if you have hardware virtualization)

 qemu -enable-kvm -cdrom xomb.iso 

Submitting Patches

Okay, so you've developed something new and awesome. How can you give back to the project? Well, we only use the xomboverlord account as a public central account, so you'll have to send wilkie a pull request via a message.