Update README.md
This commit is contained in:
parent
450a87a775
commit
efb06deb60
106
README.md
106
README.md
|
@ -1,3 +1,105 @@
|
||||||
# basekernel
|
|
||||||
|
|
||||||
Basekernel for Edcucation
|
|
||||||
|
|
||||||
|
# The Basekernel Operating System Kernel
|
||||||
|
|
||||||
|
Simple Operating System for Education
|
||||||
|
|
||||||
|
Original source: https://github.com/dthain/basekernel
|
||||||
|
|
||||||
|
Basekernel is a simple operating system kernel for research, teaching, and fun.
|
||||||
|
|
||||||
|
Basekernel is *not* a complete operating system, but it is a starting
|
||||||
|
point for those who wish to study and develop new operating system code.
|
||||||
|
If you want to build something *different* than Windows, Linux, or Multics,
|
||||||
|
Basekernel may be a good place to try out your new ideas.
|
||||||
|
|
||||||
|
Basekernel can boot an Intel PC-compatible virtual machine in 32-bit protected
|
||||||
|
mode, with support for VESA framebuffer graphics, ATA hard disks, ATAPI optical
|
||||||
|
devices, process management, memory protection, simple graphics, and basic filesystem.
|
||||||
|
From there, it's your job to write user-level programs and expand the system.
|
||||||
|
|
||||||
|
To be clear, this is raw low-level code, not a production system.
|
||||||
|
If you want to hack code and learn about operating system, you will like Basekernel.
|
||||||
|
If you are looking for a new OS to run on your laptop, then this is not what you want.
|
||||||
|
|
||||||
|
This project is led by Prof. Douglas Thain at the University of Notre Dame.
|
||||||
|
A variety of students have contributed to the code, including
|
||||||
|
Jack Mazanec, Douglas Smith, Ethan Williams, Jon Westhoff, and Kevin Wern.
|
||||||
|
|
||||||
|
To learn more, see the [Basekernel Wiki](https://github.com/dthain/basekernel/wiki).
|
||||||
|
|
||||||
|
## Quick VM86
|
||||||
|
|
||||||
|
<browser> ../../dist/webv86/web/vm86.html
|
||||||
|
|
||||||
|
|
||||||
|
cd ../../dist/webv86/web/
|
||||||
|
<browser> vm86.html
|
||||||
|
|
||||||
|
|
||||||
|
VM86 Set-up is redirected to basekernel.iso in this folder.
|
||||||
|
|
||||||
|
## Elf GCC Crosstools
|
||||||
|
|
||||||
|
1. http://edu-9.de/uploads/software/gcc-elf-cross/i686-elf-tools-linux.zip
|
||||||
|
2. http://edu-9.de/uploads/software/gcc-elf-cross/i686-elf-tools-windows.zip
|
||||||
|
3. http://edu-9.de/uploads/software/gcc-elf-cross/make-3.81-bin.zip
|
||||||
|
4. http://edu-9.de/uploads/software/gcc-elf-cross/make-3.81-dep.zip
|
||||||
|
|
||||||
|
> Windows host (development) OS requires 2-4
|
||||||
|
|
||||||
|
|
||||||
|
## Quick Start Instructions
|
||||||
|
|
||||||
|
If you are building on a Linux-X86 machine
|
||||||
|
and have the QEMU virtual machine installed:
|
||||||
|
|
||||||
|
```
|
||||||
|
git clone https://github.com/dthain/basekernel
|
||||||
|
cd basekernel
|
||||||
|
make
|
||||||
|
qemu-system-i386 -cdrom basekernel.iso
|
||||||
|
```
|
||||||
|
|
||||||
|
And you should see something like this:
|
||||||
|
|
||||||
|
<img src=screenshot.png align=center>
|
||||||
|
|
||||||
|
After some initial boot messages, you will see the kernel shell prompt.
|
||||||
|
This allows you to take some simple actions before running the first
|
||||||
|
user level program. To automatically boot the first available filesystem,
|
||||||
|
whether on cdrom or harddisk, run <tt>automount</tt>:
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
automount
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
Then use the <tt>list</tt> command to examine the root directory:
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
list /
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
And use the <tt>run</tt> command to run a program.
|
||||||
|
For example, <tt>/bin/manager.exe</tt> runs a simple
|
||||||
|
four-pane window manager with several tasks in parallel.
|
||||||
|
(Use TAB to switch focus between programs, and tilde
|
||||||
|
to cancel out of the window manager.)
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
run /bin/manager.exe
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<img src=screenshot-windows.png align=center>
|
||||||
|
|
||||||
|
Press TAB to change the focus between windows,
|
||||||
|
and you can interact with each process in turn.
|
||||||
|
|
||||||
|
## Cross-Compiling Instructions
|
||||||
|
|
||||||
|
If you are building on any other type of machine,
|
||||||
|
you will probably need to build a cross-compiler
|
||||||
|
using `build-cross-compiler.sh` and then edit
|
||||||
|
`Makefile.config` to use the cross compiler binaries,
|
||||||
|
then execute `make` to create `basekernel.iso`
|
Loading…
Reference in New Issue
Block a user