Code Monkey home page Code Monkey logo

biscuitos's Introduction

BiscuitOS

Hello everybody:

I'm doing an OS for X86. This has been brewing since March, I'd like any feedback on things people like/dislike in Linux. as my OS resembles it somewhat.

A tiny operate system has work on i386. I'll add more features like virtual file-system, virtual memory and general device driver.

BTW, it's only a toy (just a hobby), I only want to know machanism of linux, and won't be big and professional like Linux.

                     Buddy ([email protected])  ^_^

Basic information

OS information:

Item contents
OS Name BiscuitOS
Release Version V0.0.2
Target Platform I386(X86 family)
Emulator Qemu
Memory limit 16 M
Disk Floppy
Rootfs none
Host Machine Ubuntu16.04
Paging Support
Segmenting Support
Bit 32-bit

Usage

This OS running on X86 machine, if you don't have X86 machine, you can use X86 emulator to run OS. This OS have ran on qemu, qemu is an useful X86 emulator to emulate environment of X86. Please follow specific steps to make it work.

  1. Install essential tools

    sudo apt-get install qemu
    sudo apt-get install figlet gcc make gdb git
    sudo apt-get install cflow graphviz gawk indent
    

    If you use 64 bit system, please install 32 bit library.

    sudo apt-get install lib32z1 lib32z1-dev
    
  2. Download source code

    Download souce code from github, please connect network first.

    git clone https://github.com/BuddyZhang1/BiscuitOS.git
    
  3. Compile BiscuitOS

    make clean  
    make 
    make start
    
  4. Debug BiscuitOS

    If you want to debug BiscuitOS, please open debug macro on top Makefile.

    vi */BiscuitOS/Makefile
    --- DEBUG := 
    +++ DEBUG := 1
    

    Then, recompile source code.

    make clean
    make
    

    Now, we can start to debug OS. On Host:

    make debug
    

    On Target:

    You can utilize gdb to single debug and so on. follow these steps:

      gdb tools/build/system
      (gdb)target remote :1234
      (gdb)b main
      (gdb)c
      (gdb)n
      or 
      (gdb)s
    

    You can also utilize objdump to get more useful information, such as:

      objdump -x -s -S -dh tools/build/system
    

    If you want to debug bootsect.s and setup.s, you should follow these steps:

      gdb tools/build/.debug_bootsect
      or 
      gdb tools/build/.debug_setup
      (gdb)target remote :1234
      (gdb)b *0x7C00
      (gdb)c
      (gdb)d
      (gdb)(delete break?)y
      (gdb)ni
      or 
      (gdb)si
    

    You can also uitlize objdump to get more useful information,like:

      objdump -x -s -S -dh tools/build/.debug_bootsect
    
  5. Draw calling graph

    BiscuitOS supports automatic draw calling graph of function. If you want to utilize this tools, you should follow these steps:

      cd */BiscuitOS/
      make draw FUN=xxx
    

    Basic command make draw that draws a new calling graph, you should input function name (like make draw FUN=printk).

    And, The firefox browser will display the calling graph.

    Note! This tools base on firefox browser, so you should install firefox on your PC.


Documention

I have collected more useful documentions, you can access my github to get it. The github link:

  https://github.com/BuddyZhang1/Book-Segment

Contact

If you have any new source code or problem, you can send email to me. This is my frequently used email:


Other

Software is like sex. It's better when it's free

                 --- Linus Torvalds

biscuitos's People

Contributors

buddyzhang1 avatar rocklee104 avatar

Watchers

Ted Feng avatar

Forkers

zys1310992814

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.