Giter Club home page Giter Club logo

dros's Introduction

The Truly Dreadful Operating System

Do you feel that your life is just too easy? Are you tired of software that Just® Works™? If so, you are in the right place. Written by someone who has no experience with kernel development and only a basic understanding of C, this operating system almost certainly does not do what you want it to do.

Build instructions

vagrant up
vagrant ssh
cd devel/dros
./build.sh
qemu-system-i386 -kernel kernel.elf

Helpful tricks

QEMU has the ability to work with GDB (which is not in the least bit dreadful). You can instruct QEMU to start the guest and wait for a remote debugger to attach and continue the execution:

$ qemu-system-i386 -s -S -kernel kernel.elf
$ gdb
(gdb) target remote localhost:1234

There is a very good guide for GDB at http://www.dirac.org/linux/gdb/.

Layout

A brief description of the repository layout.

kernel

Contains generic kernel code.

arch

Contains the architecture specific code. This includes some assembly which acts as an entry point for the kernel and calls the generic kernel main function.

freestanding

GCC requires that a freestanding environment provide the following functions:

  • memcpy
  • memmove
  • memset
  • memcmp
  • abort (if __builtin_trap is used and the target does not implement the trap pattern).

This requirement is stated in Section 2.1 of the GCC User Manual (for GCC 5.3). These functions are provided by the string.h and stdlib.h standard library interfaces. Although these functions are defined in the libc implementation, they are duplicated here using kernel methods rather than system calls.

In addition to the required methods above, additional methods are implemented for the sake of convenience.

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.