1. Einführung
Ziel der Übungen ist es, den praktischen Umgang mit konkreten
Systemen einzuüben sowie Teile der theoretischen Konzepte in
funktionierende Systeme umzusetzen.
Da das primäre Ziel darin besteht, Realzeitsysteme verstehen und
erzeugen zu können, zielt diese Übungen darauf ab, möglichst schnell
ein
Verständnis für die praktische Generierung eines Realzeitsystems
zu
bekommen, um so die Voraussetzungen zu schaffen, eigene Modelle gezielt
implementieren zu können.
Ziel der heutigen Übung ist es, zunächst das Entwicklungswerkzeug
ELinOS der Firma Sysgo AG nutzen zu lernen, ohne dass schon alle
technischen und theoretischen Hintergründe geklärt sind; dies erfolgt
schrittweise im Verlauf der nächsten Vorlesungen und Übungen (Achtung:
für diese Übung benutzen wir nicht die neueste Version von ELinOS).
Für die ersten Beispiele wird ferner angenommen, dass diese Systeme
per Diskette gebootet werden sollen. Die Libraries für Intel- und
PowerPC-Plattformen stehen zur Verfügung. Wir werden zunächst nur die
Intel-Plattformen berücksichtigen. Damit kann jeder das selbst erzeugte
Betriebssystem auf jedem Intel-PC ausprobieren (andere Bootverfahren
werden im weiteren Verlaufe noch behandelt. Wer z.B. das Booten von
CD-ROM anstatt des Bootens von Floppy benutzen will, kann dies tun.
Sofern die von CD-ROM bootfähige Version gut dokumentiert ist und sich
durch andere reproduzieren lässt, gibt es dafür zusätzliche
Übungs-Punkte).
START
2. ELinOS im RT-Lab
Die Software ELinOS steht jedem Studenten nach der Anmeldung
entweder direkt im Realzeitlabor zur Verfügung oder über ssh von zu
Hause aus ( 'ssh eigener_login_name@194.94.80.8' ). Die fertig
kompilierten Dateien kann man dann mittels 'sftp
eigener_login_name@194.94.80.8' auf den eigenen Rechner herunterladen
und dort bootfähig machen. Wie dies geht, wird weiter unten
beschrieben.
START
3. Eigenes init.c Programm
Das erste Projekt zur Erzeugung eines bootfähigen Systems soll
gleich auch mit einer eigenen init.c Datei starten. Damit kann
man von Anbeginn festlegen, wie sich das System verhalten soll. Als
Beispiel sei hier ein ganz einfaches init.c-Programm aufgelistet:
/*******************************
*
* init.c
*
* ****************************/
#include <stdio.h>
#include <unistd.h>
int main(void)
{
int i;
/***************************************
Linux doesn_t like init to finish, therefore
an infinite loop will be prepared...
***************************************/
for(;;)
{
printf("Hallo wrld!!!\n");
printf("This is the first Programm ...");
for(i=0; i<100000000; i++){;}
}
return 0;
}
Bevor dieses Programm benutzt werden kann, müssen wir zunächst ein
bootfägiges System mit einer init.c-Datei erstellen, die wir dann
durech unsere eigene init.c-Datei ersetzen. Dieses System erstellen
wir, indem wir uns auf den FH-Informatik-Realzeit-Server einloggen und
die dort installierte ELinOS-Software benutzen.
START
4. Ferncompilierung
Von zu Hause aus startet man ein Shellfesnter und gibt den Befehl
ssh eigener_login@194.94.80.8 ein. Hier mein Beispiel:
gerd@kant:~/public_html/fh/I-RT05/EX/EX4> ssh doeben@194.94.80.8
Password:
Last login: Wed Dec 14 18:27:53 2005 from .....t-dialin.net
Have a lot of fun...
doeben@webserver:~> ls
BusyBox Desktop devc++
I-RT05 KDesktop1 Mail
nsmail
public_html TEST
c++ Desktop1 DISKUSSION
index.html
KDesktop kurse.html MND OpenOffice.org1.1
scilab.hist
Ich lande in meinem eigenen Homeverzeichnis. Dort gibt
es erwartungsgemäss einige Ordner. Es gibt aber noch keinen Ordner
MyFirst. Es soll jetzt mit Hilfe von ELinOS ein schon bestehendes
Demoprojekt 'Hello' geklont werden, und zwar in den eigenen ordner mit
Namen MyFirst.
START
5. Projekt MyFirst
Wir beginnen damit, ein schon vorhandes Projekt mit Namen 'Hello'
im Verzeichnis '/opt/elinos/demos' in ein lauffähiges eingebettetes
System zu verwandeln.
Der erste Schritt besteht darin, einen 'Clone' dieses Projektes zu
erzeugen. Dazu wird zunächst nicht das grafische Frontend benutzt,
sondern die verfügbaren Shell-Befehle, hier der Befehl elinos-cloneproject
im Verzeichnis /opt/elinos/bin.Bevor man mit der Generierung
des Programms beginnt muss man in das Verzeichnis /opt/elinos
wechseln, da nur dort die Quota für Studenten aufgehoben ist. Man muss
das Quellprojekt angeben und den Zielnamen (Die nachfolgende
Bildschirmausgabe stammt von einem lokalen Linuxrechner. Die Angaben
sind aber direkt übersetzbar).
doeben@webserver:~> /opt/elinos/bin/elinos-cloneproject
/opt/elinos/demos/Hello MyFirst
CLONING PROJECT `MyFirst' FROM `/opt/elinos/demos/Hello'
========================================================
Checking existing project /opt/elinos/demos/Hello... ok
Checking new project MyFirst... ok
Cloning project /opt/elinos/demos/Hello as MyFirst... ok
CONFIGURING PROJECT
===================
Configuration: reading from ./project.config... ok
Current Settings:
ELINOS_BOARD = custom
ELINOS_CPU = x86
ELINOS_ARCH = 386
ELINOS_LIBC = libc6
ELINOS_DOSNAME = hello
ELINOS_BOOT_STRAT = floppy
Please select your board type.
(1) 386_libc5
(2) 486_libc5
(3) 486_FPU_libc5
(4) 386_FPU_libc5
(5) dilnet_pc_libc5
(6) 386
(7) 486
(8) 486_FPU
(9) 386_FPU
(10) dilnet_pc
(11) custom
Hier muss man sich für eine Architektur entscheiden. Für ältere PCs
hat sich die Option '486' bewährt.
Board Type [custom]: 7
Hier folgen nun weitere Eingaben:
Project Name (8 characters at most, no blanks) [hello]: myfirst
You must now select the boot strategy for your new project:
(1) floppy -- Floppy Bootstrap
(2) lilo -- Hard-Disk Bootstrap
(3) rolo -- x86 ROM Bootstrap with ROLO
(4) rolo_rawdisk -- ROLO disk boot image (eg.
for CompactFlash)
(5) etherboot -- Diskless Network Bootstrap
(6) etherboot_multi -- Diskless Network
Bootstrap (one Image for Kernel/Root-Filesystem)
Boot Strategy: [floppy]:
Please select your kernel source tree. The suggested order is:
(1) linux-x86-2.4.18
Kernel Source Tree [1]:
Checking Kernel-Source /opt/elinos/linux/linux-x86-2.4.18... ok
Wiping old kernel... ok
Setting up new kernel... ok
Rename mkefs script "hello.mkefs" to match new project name? [y]:
Writing file ./project.config... ok
Writing file ELINOS.sh... ok
Configuring Features in /home/profs/doeben/MyFirst
==================================================
*** initializing features
*** feature input complete
*** initializing features
*** feature input complete
*** running feature configuration scripts ...
(prepare) done.
(commit) done.
(mkefs) done.
(kernel) done.
(unkernel) done.
*** merging kernel configuration with feature-config ...
Feature build complete.
----------------------------------------------
Your new project has been set up successfully.
To work on it, type:
sh# cd "/home/profs/doeben/MyFirst"
sh# . ELINOS.sh
----------------------------------------------
CLONING DONE.
Damit sind die Vorbereitungen getroffen. Man muss jetzt nur eine
Reihe von Umgebungsvariablen mittels des Shell-Scripts ELINOS.sh
initialisieren. Dies tut man, indem man die Shell mit dem
vorgeschalteten Punkt startet:
doeben@webserver:~> cd MyFirst
doeben@webserver:~/MyFirst> ls
app.rootfs boot
ELINOS.sh feature.mkefs kernel.rootfs
makeboot myfirst.mkefs README
autonode.sh configure
elk feature.rootfs
linux
Makefile project.config src
doeben@webserver:~/MyFirst> . ELINOS.sh
STARTING ELINOS SESSION
=======================
Setting up CDK x86_386 for libc6
$ELINOS_BOARD = 486
$ELINOS_BIN_PREFIX = x86_386
$ELINOS_PROJECT = /home/profs/doeben/MyFirst
$ELINOS_DOSNAME = myfirst
$CC
= x86_386-gcc
$CXX
= x86_386-g++
$AS
= x86_386-as
$GDB
= x86_386-gdb
Dies sind nur einige der vielen Shellvariablen, die gesetzt werden.
Man koennte sich auch all anzeigen lassen. Hier nun kann man die
vorerzeugte init.c-Datei durch die eigene init.c-Datei ersetzen. Dazu
muss man die Datei init.c im Verzeichnis src/rc ersetzen. Dies erfolgt
in 2 Schritten: (i) Löschen der vorgegebenen Datei, (ii) Hochladen der
eigenen Datei.
doeben@webserver:~/MyFirst> cd src/rc
doeben@webserver:~/MyFirst/src/rc> ls
init.c Makefile.elinos
doeben@webserver:~/MyFirst/src/rc> rm init.c
doeben@webserver:~/MyFirst/src/rc> ls
Makefile.elinos
doeben@webserver:~/MyFirst/src/rc> logout
Connection to 194.94.80.8 closed.
Nachdem man sich aus der ssh ausgelogged hat, greift man mittels
sftp wieder neu zu, um die eigene Datei hochzuladen:
gerd@kant:~/public_html/fh/I-RT05/EX/EX4> sftp doeben@194.94.80.8
Connecting to 194.94.80.8...
Password:
sftp> ls
BusyBox
DISKUSSION
Desktop
Desktop1
I-RT05
KDesktop
KDesktop1
MND
Mail
MyFirst
OpenOffice.org1.1 TEST
c++
devc++
index.html
kurse.html
nsmail
public_html
scilab.hist
Nun gibt es den Ordner 'MyFirst'. In diesen muss man hineingehen und
dort im Verzeichnis src/rc die neue Datei init.c ablegen:
sftp> cd MyFirst
sftp> ls
ELINOS.sh
Makefile
README
app.rootfs
autonode.sh
boot
configure elk
feature.mkefs feature.rootfs
kernel.rootfs
linux
makeboot
myfirst.mkefs project.config src
sftp> cd src/rc
sftp> ls
Makefile.elinos
sftp> lls
Aufgabe4_Fernkompilierung_EigenesProgramm.txt
Aufgabe4_Fernkompilierung.txt BusyBox my_init
Aufgabe4_Fernkompilierung_EigenesProgramm.txt~
Aufgabe4_Fernkompilierung.txt~ init.c
sftp> put init.c
Uploading init.c to /home/profs/doeben/MyFirst/src/rc/init.c
init.c
100% 463 0.5KB/s 00:00
sftp> ls
Makefile.elinos init.c
sftp> quit
Nachdem die eigene Datei in den ordner src/rc eingefügt worden ist,
muss man sich wieder mittels ssh einloggen, um den Kopiervorgang
starten zu können.
gerd@kant:~/public_html/fh/I-RT05/EX/EX4>
gerd@kant:~/public_html/fh/I-RT05/EX/EX4> ssh doeben@194.94.80.8
Password:
Last login: Wed Dec 14 19:45:34 2005 from ....t-dialin.net
Have a lot of fun...
doeben@webserver:~> ls
BusyBox Desktop devc++
I-RT05
KDesktop1 Mail MyFirst OpenOffice.org1.1
scilab.hist
c++ Desktop1 DISKUSSION
index.html
KDesktop kurse.html MND nsmail
public_html TEST
doeben@webserver:~> cd MyFirst
doeben@webserver:~/MyFirst> ls
app.rootfs boot
ELINOS.sh feature.mkefs kernel.rootfs
makeboot myfirst.mkefs README
autonode.sh configure
elk feature.rootfs
linux
Makefile project.config src
Wir schauen kurz nach, ob auch tatsaechlich die eigene Datei
vorhanden ist:
doeben@webserver:~/MyFirst> cd src/rc
doeben@webserver:~/MyFirst/src/rc> ls
init.c Makefile.elinos
doeben@webserver:~/MyFirst/src/rc> cat init.c
/*******************************
*
* init.c
*
* ****************************/
#include <stdio.h>
#include <unistd.h>
int main(void)
{
int i;
/***************************************
Linux doesn_t like init to finish, therefore
an infinite loop will be prepared...
***************************************/
for(;;)
{
printf("Hallo wrld!!!\n");
printf("This is the first Programm ...");
for(i=0; i<100000000; i++){;}
}
return 0;
}
Es sieht so aus. Dann starten wir den Bootprozess. Das kann etwas
dauern...
doeben@webserver:~/MyFirst> make boot
Reading feature configuration ... complete
Reading implications from /opt/elinos/elk/valid.elk ... ok.
Reading implications from /home/profs/doeben/MyFirst/valid.elk ... n/a.
make -C /home/profs/doeben/MyFirst/linux symlinks clean install
make[1]: Entering directory `/home/profs/doeben/MyFirst/linux'
rm -f include/asm
( cd include ; ln -sf asm-i386 asm)
( cd drivers/rtai/include ; rm -f asm ; ln -s asm-i386 asm)
make[2]: Entering directory
`/home/profs/doeben/MyFirst/linux/arch/i386/boot'
rm -f tools/build
rm -f setup bootsect zImage compressed/vmlinux.out
rm -f bsetup bbootsect bzImage compressed/bvmlinux.out
make[3]: Entering directory
`/home/profs/doeben/MyFirst/linux/arch/i386/boot/compressed'
rm -f vmlinux bvmlinux _tmp_*
make[3]: Leaving directory
`/home/profs/doeben/MyFirst/linux/arch/i386/boot/compressed'
make[2]: Leaving directory
`/home/profs/doeben/MyFirst/linux/arch/i386/boot'
find . \( -name '*.[oas]' -o -name core -o -name '.*.flags' \) -type f
-print \
| grep -v lxdialog/ | xargs rm -f
........................
Checking device node type on target file system ... device file system
Reading kernel configuration ... complete
Reading feature configuration ... complete
Running mkefs ... complete
Reading target file system ... complete
Reading implications from /opt/elinos/elk/valid.elk ... ok.
Reading implications from /home/profs/doeben/MyFirst/valid.elk ... n/a.
./makeboot myfirst.tgz
Checking for CONFIG_ELINOS_CMDLINE ... adding custom parameters:
"devfs=mount root=ramfs"
Preparing for floppy-boot:
Checking for banner ... installing default banner.
Writing syslinux.cfg ... ok.
Ok.
Nachdem alles kompiliert worden ist, fordert das Programm uns auf,
die folgenden Dateien auf eine Diskette zu kopieren. Anschliessend muss
die Floppy bootfähig gemacht werden.
As a final step to get a bootable floppy disk, please copy the
following files to an empty, MS-DOS formatted floppy:
cp syslinux.cfg /floppy/syslinux.cfg
cp banner /floppy/banner
cp boot/vmlinuz /floppy/linux
cp myfirst.tgz /floppy/myfirst.tgz
To make the floppy bootable, please type:
/opt/elinos/bin/syslinux /dev/fd0
- NOTE -
You may need root privileges to execute the above commands.
- NOTE -
You may want to customise this script to meet any special
requirements of your target hardware. For instance, you
could
add the commands neccessary to copy the boot files to a
floppy
disk, or to the download directory of your tftp-server.
The script is located here:
/home/profs/doeben/MyFirst/makeboot
Da wir aus der Ferne kein Floppy einlegen können holen wir uns die
Dateien mit sftp auf den eigenen Rechner, präparieren dort eine Floppy
und machen diese dann bootfähig (alternativ würde man die Dateien auf
eine CD-ROM bringen oder auf einen USB-Stick. Für die vorliegende Übung
werden allerdings nur Floppy oder CD-ROM akzeptiert).
doeben@webserver:~/MyFirst> logout
Connection to 194.94.80.8 closed.
gerd@kant:~/public_html/fh/I-RT05/EX/EX4> sftp doeben@194.94.80.8
Connecting to 194.94.80.8...
Password:
sftp> ls
BusyBox
DISKUSSION
Desktop
Desktop1
I-RT05
KDesktop
KDesktop1
MND
Mail
MyFirst
OpenOffice.org1.1 TEST
c++
devc++
ergebnis_7_7_05.tgz
index.html
kurse.html
nsmail
public_html
scilab.hist
sftp> cd MyFirst
sftp> ls
ELINOS.sh
Makefile
README
app.rootfs
autonode.sh
banner
boot
configure
elk
feature.mkefs feature.rootfs
kernel.rootfs
linux
makeboot
myfirst.mkefs myfirst.tgz
project.config
src
syslinux.cfg
sftp> lls
Aufgabe4_Fernkompilierung_EigenesProgramm.txt
Aufgabe4_Fernkompilierung.txt BusyBox my_init
Aufgabe4_Fernkompilierung_EigenesProgramm.txt~
Aufgabe4_Fernkompilierung.txt~ init.c
Da es bis jetzt noch kein Verzeichnis MyFirst auf dem lokalen
Rechner gibt, wird dieser Ordner jetzt angelegt, um darin die Dazeien
abzulegen:
sftp> lmkdir MyFirst
sftp> lls
Aufgabe4_Fernkompilierung_EigenesProgramm.txt
Aufgabe4_Fernkompilierung.txt BusyBox MyFirst
Aufgabe4_Fernkompilierung_EigenesProgramm.txt~
Aufgabe4_Fernkompilierung.txt~ init.c my_init
sftp> lcd MyFirst
sftp> lls
sftp> ls
ELINOS.sh
Makefile
README
app.rootfs
autonode.sh
banner
boot
configure
elk
feature.mkefs feature.rootfs
kernel.rootfs
linux
makeboot
myfirst.mkefs myfirst.tgz
project.config
src
syslinux.cfg
sftp> get banner
Fetching /home/profs/doeben/MyFirst/banner to banner
/home/profs/doeben/MyFirst/banner
100% 2532 2.5KB/s 00:00
sftp> get syslinux.cfg
Fetching /home/profs/doeben/MyFirst/syslinux.cfg to syslinux.cfg
/home/profs/doeben/MyFirst/syslinux.cfg
100% 74 0.1KB/s 00:00
sftp> get myfirst.tgz
Fetching /home/profs/doeben/MyFirst/myfirst.tgz to myfirst.tgz
/home/profs/doeben/MyFirst/myfirst.tgz
100% 161KB 80.5KB/s 00:02
sftp> cd boot
sftp> ls
System.map vmlinuz
sftp> get vmlinuz
Fetching /home/profs/doeben/MyFirst/boot/vmlinuz to vmlinuz
/home/profs/doeben/MyFirst/boot/vmlinuz
100% 319KB 63.9KB/s 00:05
sftp> ls
System.map vmlinuz
sftp> lls
banner myfirst.tgz syslinux.cfg vmlinuz
sftp> quit
Damit sind alle Dateien im lokalen Ordner MyFirst. Damit kann man
sich wieder ausloggen und die Übertragung auf die Floppy vorbereiten.
Entweder man hat schon eine fertig formatierte MS-DOS-Diskette oder man
muss eine erstellen. Unter Linux bieten sich folgende Befehle an:
gerd@kant:~/public_html/fh/I-RT05/EX/EX4> fdformat /dev/fd0h1440
Doppelseitig, 80 Spuren, 18 Sektoren/Spur, Totale Kapazität: 1440kB.
Formatieren ... Beendet
Überprüfen ... Beendet
Falls man die mtools installiert hat (was bei den meisten
Distributionen der Fall ist), kann man nun einfach die m-Befehle
benutzen:
gerd@kant:~/public_html/fh/I-RT05/EX/EX4> mformat a:
gerd@kant:~/public_html/fh/I-RT05/EX/EX4> mdir
Volume in drive A has no label
Volume Serial Number is 1823-3AD2
Directory for A:/
No files
1 457 664 bytes free
Das Floppy ist formatiert. Jetzt müssen die Dateien vom lokalen
Verzeichnis auf das Floppy kopiert werden. Dabei ist zu beachten, dass
die Datei mit Namen 'vmlinuz' umbenannt werden muss in 'linux'.
gerd@kant:~/public_html/fh/I-RT05/EX/EX4>
gerd@kant:~/public_html/fh/I-RT05/EX/EX4> cd MyFirst
gerd@kant:~/public_html/fh/I-RT05/EX/EX4/MyFirst> ls
banner myfirst.tgz syslinux.cfg vmlinuz
gerd@kant:~/public_html/fh/I-RT05/EX/EX4/MyFirst> mcopy syslinux.cfg
banner myfirst.tgz a:
gerd@kant:~/public_html/fh/I-RT05/EX/EX4/BusyBox> mcopy vmlinuz
a:linux
gerd@kant:~/public_html/fh/I-RT05/EX/EX4/MyFirst> mdir
Volume in drive A has no label
Volume Serial Number is 1823-3AD2
Directory for A:/
syslinux cfg 74
2005-12-14 20:19
banner
2532 2005-12-14 20:19
myfirst tgz 164948 2005-12-14 20:20
linux
326925 2005-12-14 20:20
4
files
494 479 bytes
962 048 bytes free
Jetzt sind zwar alle Dateien auf dem Floppy, aber man muss es noch
bootfähig machen. Dies kann man unter Linux mit dem recht
vielseitigen Programm 'syslinux' tun. Man kann sich dieses programm
entweder selbst aus dem Internet herunterladen und installieren, oder
aber --für den vorliegenden Fall-- einfach mittels sftp aus dem
Verzeichnis /opt/elinos/bin herunterladen.
// download von syslinux
gerd@kant:~/public_html/fh/I-RT05/EX/EX4> sftp doeben@194.94.80.8
Connecting to 194.94.80.8...
Password:
sftp> cd /opt/elinos/bin
sftp> ls
autonode.pl
autonode.sh
ddd
depmod.pl
disdosbb
dismbr
disnbi
elinos-2.0-to-2.1
elinos-boardinfo
elinos-bsp
elinos-cloneproject
elinos-configure
elinos-get-kernels
elinos-isrv
elinos-linkkernel
elinos-makeboot
elinos-makeboot-compat
elinos-mkext2rd.sh
elinos-netcat
elinos-newproject
elinos-qt-setup.sh
elinos-rpm
elinos-rpm2cpio
elinos-sysinfo
elinos-tools.sh
elinos-validate
elinos-validate-tgz.pl
elinos-version
elk
feature-config
gendiff
gethostip
lxdialog
mkefs
mkelf-linux
mkelf-menu
mknbi-dos
mknbi-fdos
mknbi-linux
mknbi-menu
mknbi-rom
mksquashfs
rolo
rolo.com
rolo.sys
syslinux
traceanalyze
tracedcore
tracedump
traceview
tracevisualizer
sftp> get syslinux
Fetching /opt/elinos/bin/syslinux to syslinux
/opt/elinos/bin/syslinux
100% 392KB 65.4KB/s 00:06
sftp> lls
Aufgabe4_Fernkompilierung_EigenesProgramm.txt
Aufgabe4_Fernkompilierung.txt
Aufgabe4_syslinux_installieren.txt init.c my_init
Aufgabe4_Fernkompilierung_EigenesProgramm.txt~
Aufgabe4_Fernkompilierung.txt~
BusyBox
MyFirst syslinux
sftp> quit
Nachdem man das Programm heruntergeladen hat, kann man mit diesem
Programm dann die Diskette bootfähig machen. Dazu muss man
normalerweise root sein. Statt sich als normaler User abzumelden und
als root neu anzumelden kann man verschiedene Umwege gehen. einer ist
der Befehl 'sudo' (:= super user do). Man gibt den Befehl ein gefolgt
von dem Befehl ./syslinux und dem Argument /dev/fd0:
gerd@kant:~/public_html/fh/I-RT05/EX/EX4> sudo ./syslinux /dev/fd0
Password:
gerd@kant:~/public_html/fh/I-RT05/EX/EX4>
Ab jetzt sollte diese Diskette von jedem geeigneten Intel-PC als
Bootdiskette akzeptiert werden. Man muss sich allerdings vergewissern,
dass im Falle einer bootfähigen Floppy der PC auch so eingestellt ist,
dass er zunächst vom Diskettenlaufwerk aus booten will. Wenn dies der
Fall ist, dann kann man nun seine eigene bootfähige Diskette in das
Laufwerk schieben und zuschauen, wie der PC mit dem eigenen System
bootet.......Man sollte diesen letzten Test eher nicht erst während der
Übung machen. Das könnte schiefgehen.....
START
6. Aufgabe
Die Übung Nr.4 zielt darauf ab, (i) das Programm ELinOS so benutzen
zu lernen, dass man eigene Betriebssystemkerne bootfähig erzeugen kann,
und (ii), dass man im Rahmen des Betriebssystems ein eigenes Programm
init.c implementieren kann, das das Verhalten des Systems steuert.
Erwartetes Ergebnis: eine bootfähige beschriftete Diskette
mit einem eigenen ausführbaren Programm, das sich von den
vorausgehenden
Beispielen unterscheidet. (5 Pkt). Dazu kleiner Vortrag und
Dolumentation des eigenen init.c-Programms.
Sonderpunkte: Falls ein Team es schafft, eine bootfähige
CD-ROM zu erstellen, wobei der Prozess der Erstellung gut dokumentiert
sein muss und von Dritten reproduzierbar ist, dann kann es dafür
bis zu 10 Pkte extra geben.
START