Giter Site home page Giter Site logo

moridin_simple_os's Introduction

Features (LAST UPDATED: 03/30/2013)
-------------------------------------------------------------------------------

  kernel: arch/, boot/, kernel/, lib/
    - binary loading (elf32)
    - system calls:
      * getpid
      * fork
      * yield
      * exit

  memory: arch/, mm/
    - physical memory management (frame allocator)
    - virtual memory (demand paging, mmap, copy-on-write)
    - kernel dynamic memory (kmalloc)
    - kernel dynamic mapping (kmap)

  filesystem: fs/
    - virtual filesystem
    - initial ramdisk (flat, readonly, filesystem)
 
  devices: dev/
    - interrupt timer
    - vga (console) driver
    - pci device scanning/discovery
    - serial port

  development
    - symbolic kernel backtraces

Build
-------------------------------------------------------------------------------

  The kernel is built using gcc and binutils, and being compiled for the
  i536 architecture. A good tutorial for building a cross compiler that
  will build this kernel is on osdev: http://wiki.osdev.org/GCC_Cross-Compiler.

  You will also need to install the GRUB utility programs and possibly xorisso.

Run
-------------------------------------------------------------------------------

  I am using bochs to test and run the kernel. You can download bochs from the
  bochs sourceforge page: https://sourceforge.net/projects/bochs/files/bochs/.

  Make sure you compile bochs with the debugging enabled:

    ./configure \
            --enable-pci \
            --enable-vmx \
            --enable-debugger \
            --enable-disasm \
            --enable-debugger-gui \
            --enable-logging \
            --enable-cdrom \
            --enable-fpu \
            --enable-x86-debugger \
            --enable-iodebug \
            --disable-plugins \
            --disable-docbook \
            --with-x --with-x11 --with-term

  To run the kernel with qemu run: 

    $ ./qemu.sh

Thanks
-------------------------------------------------------------------------------

  While I am writing the kernel and device code myself, there is some library
  code that lives in the kernel that I did not write.
    
    kernel/
      arch/           ===
        x86/          |
          bcopy.S     | 15-410 (OS course @ CMU)
          bzero.S     |
      dev/            ===
        pci/          |
          pci_table.c | minix
      inc/            ===
        asm_style.h   | 15-410
        boot/         ===
          multiboot.h | GNU (http://www.gnu.org/software/grub/manual/multiboot/)
                      ===
        errno.h       | minix
        lib/          ===
          ctype.h     |
          fmt.h       |
          fmt/        |
            doprnt.h  |
            doscan.h  |
          stdarg.h    |
          stddef.h    |
          stdint.h    |
          stdlib.h    | University of Utah (CSL) 
          string.h    | /
          types.h     | University of California (stdlib/qsort.c)
      lib/            | /
        stdlib/*      | Carnegie Mellon (Mach)
        string/*      |
        fmt/          |
          doprnt.c    |
          doscan.c    |
          sprintf.c   |
          sscanf.c    |
      mm/             |
        lmm/*         |
        malloc/*      ===

  All files retain their original copyright notices at the top. My many thanks
  to the original developers for their work.

  Also I'd like to thank everyone who contributed to the wiki at
  http://wiki.osdev.org, as it is an invaluable resource.

moridin_simple_os's People

Contributors

dmatlack avatar

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.