GithubHelp home page GithubHelp logo

bare-bones's Introduction

intermezzOS: kernel

intermezzOS is a hobby operating system. This repository is for a "bare bones" of its kernel. See the website for more about the project overall.

A "bare bones" is a ready-made beginning of an operating system. The code you'll find here will go "from boot to kmain," ready for you to write your own kernel on top of.

Also, feel free to join us at #intermezzOS on Freenode’s IRC network, if you want to chat.

Building

Make sure you have a nightly Rust installed. Something like this:

$ rustc --version
rustc 1.13.0-nightly (267cde259 2016-05-25)

If you don’t have Rust installed (and maybe even if you've installed Rust some other way), you should use rustup to get it; it makes using multiple Rust versions very easy.

Then get this stuff:

  • nasm
  • ld
  • grub-mkrescue: you may also need to install xorriso
  • qemu-system-x86_64

If you're on OS X, you might want to use this script to get them. You'll also need to set this in your ~/.cargo/config:

[target.x86_64-unknown-intermezzos-gnu]
linker = "/Users/yourusername/opt/bin/x86_64-pc-elf-gcc"

Where yourusername is your username.

After all that setup, it’s as easy as:

$ make run

This will:

  • Build the Rust code with Cargo
  • Compile the bit of assembly needed to boot
  • Link it all together
  • Build an ISO out of it all
  • Run that ISO in qemu

License

This project is dual licensed under Apache2/MIT. See the two LICENSE-* files for details.

Code of conduct

The intermezzOS project has a Code of Conduct, please observe it.

bare-bones's People

Contributors

alexcrichton avatar ashleygwilliams avatar steveklabnik avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

bare-bones's Issues

Trouble with default hardened GCC (eg. Gentoo-Hardened or Ubuntu 16.10+)

If compilation gives something like:

  = note: /usr/bin/ld: /storage/Projects/IntermezzOS_bare/target/x86_64-unknown-intermezzos-gnu/release/build/intermezzos-8ccbbf2f886be67d/out/libboot.a(boot.o): relocation R_X86_64_32 against `.bss' can not be used when making a shared object; recompile with -fPIC
          /usr/bin/ld: final link failed: Nie da się wyświetlić sekcji na wyjściu!
          collect2: error: ld returned 1 exit status

this is due to hardened compiler chain. To fix it, you need to change x86_64-unknown-intermezzos-gnu.json by adding "-no-pie" to "pre-link-args".

Hope this helps!

And yes, IntermezzOS book is an excellent lecture!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.