Downloads: Kernel Development
Here you'll find various files that will help your kernel development efforts.
Development VM
Use one of the following download links to get an older Debian system
with all required development tools pre-installed:
Tutorial
The following tutorial exercise sheets were used in a course at
Nuremberg University of Technology (TH Nuernberg). If you redo these
exercises, you'll develop a system that can handle memory (segmentation
and paging), interrupts, and user mode with simple process management.
(from: http://ohm.hgesser.de/be-ws2015/)
The second link in each entry links to an automatic English translation:
I have run the PDFs through the PDF translation service at
https://www.onlinedoctranslator.com/
which uses Google Translate. Don't expect more from those versions than from other content you've run
through an auto-translator :) You may want to look at the German and English documents side-by-side.
(I really like how it's translated my name: my last name was turned into "Eater"...)
You can find detailed explanations in the slides and lecture videos at
http://ohm.hgesser.de/be-ws2015/
or -- with much more detail and in English! -- in the ULIX book
(ulix-book-0.13.pdf).
Bochs on Ubuntu 20.04
The article published in Linux Magazine issue 240 (November 2020) describes how
to setup a development system on Ubuntu 20.04. With the following commands you
can downgrade the PC emulator Bochs to release 2.6.9:
sudo apt install libtinfo5
wget http://de.archive.ubuntu.com/ubuntu/pool/main/r/readline/libreadline7_7.0-3_amd64.deb
for pkg in 396601834/bochsbios_2.6.9+dfsg-2_all.deb \
396601839/bochs-x_2.6.9+dfsg-2_amd64.deb \
396601840/bochs_2.6.9+dfsg-2_amd64.deb ; do \
wget https://launchpadlibrarian.net/$pkg; done
sudo dpkg -i bochs*.deb libreadline*.deb
Configuration file .bochsrc for Bochs:
megs: 64
romimage: file=/usr/share/bochs/BIOS-bochs-latest
vgaromimage: file=/usr/share/bochs/VGABIOS-lgpl-latest
floppya: 1_44=ulixboot.img, status=inserted
boot: a
log: bochsout.txt
clock: sync=realtime
cpu: ips=5000000
display_library: x, options="gui_debug"
port_e9_hack: enabled=1
info: action=report
magic_break: enabled=1
debug_symbols: file=ulix.sym
|