CS 3210 Operating System Design
Spring 2003, TuTh
Homework 1
DUE:
Topics Covered:
·
OS/Kernel Intro
·
Booting/Kernel Init
·
System Calls, Modules, /proc
Please prepare typed or printed solutions to the
following questions (no handwritten solutions accepted) and bring to class on
the due date. Answers should be short but concise. Questions amplify material
from the lectures and the assigned readings. Questions frequently require you
to investigate Linux or OS features and capabilities. Please make use of all
available resources (web, man pages, kernel source, discussions with staff,
etc.). Most questions can be answered in about one page of well-written text.
1. IBM introduced a
novel virtual machine architecture for structuring operating
systems in the 1970’s called VM/370. Briefly describe the advantages and disadvantages of virtual machine architectures using
either the open-source emulator
User-Mode Linux or the proprietary VMware product as a case study.
User-Mode
Linux – usermodelinux.org
VMware – www.vmware.com
2. Two popular contemporary
approaches for structuring operating systems are microkernels
and exokernels. Compare and contrast the two
approaches. How are they similar? How are they different?
MIT
Exokernel Operating System - www.pdos.lcs.mit.edu/exo.html
DMOZ
Microkernel page –
dmoz.org/Computers/Software/Operating_Systems/Microkernel/
3. Druschel
and Zwaenepoel believe that efforts at OS extensibility have gone too far and
are “leading OS research astray”. Summarize their argument and offer your own
carefully reasoned (J)
response.
Druschel, Zwaenepoel
“Extensible Systems are Leading OS Research Astray”
Proceedings of Hot Topics in
Operating Systems VI
IEEE p. 38-42, 1997
http://www.cs.dartmouth.edu/~cs108/papers/druschel97.pdf
4. Capture a page of the boot screen startup messages (you can
use the dmesg command for this) from a standard Linux
system. Describe as many of the messages
as you can. Using lxr.linux.no, search for the
kernel code (printk) that outputs the messages and indicate where each message
is produced in the kernel.
dmesg
Running Linux
5. The Linux kernel has a built-in profiling mechanism. Explain
how code profiling works in general and how it works in the Linux kernel in
particular. Here is a code fragment from init/main.c
that initializes kernel profiling data structures:
376 if (prof_shift) {
377 unsigned int size;
378 /* only text is profiled */
379 prof_len = (unsigned long) &_etext - (unsigned long) &_stext;
380 prof_len >>= prof_shift;
381
382 size = prof_len * sizeof(unsigned int) + PAGE_SIZE-1;
383 prof_buffer = (unsigned int *) alloc_bootmem(size);
384 }
Extra-credit if you actually generate a
profile trace from your iPAQ or home Linux system.
6. Explain why special hardware support is required to secure an effective transition from user to kernel mode as part of
the system call sequence. Explain
why system calls can be made secure in the presence of such hardware support.
7. Describe in detail the mechanism used by dynamically loadable kernel modules (dlkm)
to import and export symbols from
the kernel symbol table (System.map).
8. Explore the /proc filesystem on your own Linux system or on the
Intel machines in the lab. Describe in detail 5 interesting proc files that you discover.
man proc
Rubini