Skip to content
A small OS that doesn't do much
C Assembly Shell Makefile C++ Ruby GDB
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
arm64
x86_64
.gdbinit
.gitignore
ACKNOWLEDGEMENTS
COPYING
Makefile
README.markdown
bochsrc.txt
console.c
console.h
defs.h
elf.h
env.arm64.bash
env.common.bash
env.x86_64.bash
file.c
file.h
kalloc.c
klibc.c
lib.h
libc.c
libc.h
lock.h
main.c
mktoolchain.arm64.bash
mktoolchain.x86_64.bash
proc.c
syscall.c
syscall.h
systable.h
task1.c
u.h
ustart.S
vm.c

README.markdown

Thimble - A small OS that doesn't do much

Requirements

Thimble should work on Linux or OS X, though I've only tested it on OS X.

  • Bash
  • A C compiler
  • Make
  • Ruby (any version should do)

Building and running

$ bash mktoolchain.x86_64.bash   # Downloads and builds compiler, assembler and emulator. Only run this once.

$ source env.x86_64.bash
(thimble x86_64) $ make qemu

# When you're done working on thimble, `deactivate` will restore your path.
# It's kind of like a python virtual env:
(thimble x86_64) $ deactivate
$

Xv6

Thimble takes a lot of inspiration (including coding conventions and function naming) and some source code from xv6. As Thimble has grown, it has become more distinct from xv6, but there are a lot of similar design decisions that should feel familiar to anyone who knows the xv6 codebase.

For the xv6 license, see ACKNOWLEDGEMENTS

License

Thimble is copyright 2015-2019 David Albert and is available under the terms of the GNU GPLv3 or later. See COPYING for more info.

You can’t perform that action at this time.