Skip to content

sbrookes/BearOS

 
 

Repository files navigation

**************** What is Bear? (And what is Bear NOT) *************************

This is a subset of the broader Bear system presented freely and openly for 
  purely pedagogical purposes. In particular, it is designed to showcase the 
  code described in "Symmetric Multiprocessing from Boot to Virtualization" 
  as appearing in Software Practice and Experience and authored by Robert Denz,
  Scott Brookes, Martin Osterloh, Stephen Kuhn, and Stephen Taylor.

In general, it is important to note that Bear is a purely research operating 
  system. This means that it is rough around the edges! It was not designed to 
  be deployed in production and may not be portable, robust, secure, or 
  reliable.

However, Bear is small and fully featured. This means that it is relatively 
  easy to wrap your mind around the system in its _entirety_, while still 
  having access to full 64-bit memory addressing, multicore hardware, and 
  type 1 virtualization. This combination is uniquely potent for prototyping 
  and benchmarking dramatic OS technologies that would be extremely difficult 
  to prototype on a full system like Linux.


**************** Configuring, building, running the bear system. **************

Configuring The System For Hardware Or Vmware:

STEP 0: Harware compatibility: 
     
     This version of Bear is designed to be run EXCLUSIVELY on the Dell 9010 
     workstation with a core i7 multicore processor. When running on a new 
     workstation, make sure that the BIOS is configured to support 
     virtualization.

STEP 1: Make sure the serial line is set at the right speed:

     sudo stty -F /dev/ttyUSB0 115200


STEP 2) If there is no build.x86_64 directory, run the "mkbuild"
script in the bear-v1.XXX directory:

       ./mkbuild

This will create the build.x86_64 directory, install newlib in it,
together with some scripts.


STEP 3) Change into the build.x86_64 directory


STEP 4) Start dhcp:

     ./start_dhcp eth0    --- typically dhcp is started on eth0


STEP 5) BUILD BEAR

The system is built using the "mkall" script. It can be build in several
configuations as follows:

    Usage: ./mkall [-c -rc -h -s]

      -h     : prints this help

    FIRST TIME USE -- 
      -s     : standalone = -hw but no networking support

    SUBSEQUENT USE:
      no args: rebuild only whats changed
      -c     : clean out object files and rebuild
      -rc    : -c + clean out the CMake repository

See the file "build_flags.txt" for a full list of args that
the system can be compiled with for debugging, memory checking, etc.

NOTES: 
-- If you control-c out during the build process the build system
may get screwed up. The following fixes this:

    sudo losetup -d /dev/loop0


STEP 6) At the shell prompt on the 9010, run the regression test suite using 
the command:

   : tests

(NOTE there must be a space between the colon and the word "tests")

You should see that 3 of the tests FAIL (6,8,10), the rest succeed;
the ps -s command prints to the backchannel.






About

The Bear Operating System

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 82.1%
  • Makefile 10.9%
  • Assembly 3.9%
  • M4 0.9%
  • TeX 0.9%
  • Shell 0.8%
  • Other 0.5%