Here's a link to the famous (in the Linux community, anyway) debate
between Linus Torvalds and Andy Tanenbaum (the author of the course
textbook) in 1992 about Monolithic kernels vs. Microkernels.
You may find it interesting.
http://www.royans.net/v1/articles/linux/linux_is_obsolete.shtml
-Ian
----------
Ian Becker UNIX Systems Administrator
ibecker(a)fas.harvard.edu FAS Computer Services
(617) 495-9768 Harvard University
i've gotten several requests for quick and dirty directions to getting an
sfs file system up and running. so here we go.
1) make sure your sys161.conf has an appropriate lhd device (at least one,
you can have lots), with a line like:
4 disk rpm=360 sectors=10240 file=DISK.img
2) boot your system. quit. (this creates the DISK.img correctly.)
3) initialize the disk:
% ./host-mksfs DISK.img mydisk
(you can do this from inside OS/161 if userprograms run correctly.
it's /sbin/mksfs.)
4) boot your system again, specifying that you want to mount that device
as an sfs filesystem, and optionally as the bootfs (the fs that path's
without devices default to):
% sys161 kernel sfs:lhd0 boot:lhd0
5) try it:
OS/161 kernel [? for menu]: p
Program: emu0:/bin/sh
OS/161$ emu0:/bin/cp emu0:/sys161.conf lhd0:/sys161.conf
Shell (pid 2) exited with status 0
OS/161 kernel [? for menu]: p
Program: emu0:/bin/sh
OS/161$ emu0:/bin/cat lhd0:/sys161.conf
hope this helps!
-amos
A. Student (astudent(a)fas.harvard.edu) wrote:
> [...]
> /tmp/ccaaDgda.s: Assembler messages:
> /tmp/ccaaDgda.s:102: Fatal error: Can't extend frag 98. chars
>
> ... help?
This is a bug in the assembler; it's choking on the debug information
generated by the compiler.
The best workaround (crazy as it sounds) is as follows:
1. Rerun gcc by hand on the C file that blows up (let's suppose it's
foo.c), only with the -S flag where the -c flag normally goes.
This generates an assembler file, foo.s.
2. Look at the line in foo.s (in the case above, it would be line
102) that triggers the error. This will be a .stabs line (debug
info).
3. Look for the first meaningful symbol on the line. This will be the
name of a structure.
4. Edit the .h file that defines that structure and add a dummy
variable to the end of the struct, or rearrange the fields.
5. Run make again. If the problem doesn't go away, continue fiddling
as per 4. until it does.
This works because changing the structure changes the debug
information so the bug in the assembler doesn't get triggered.
If you can't get the problem to go away, the only other alternatives
appear to be (1) don't compile on an alpha, or (2) compile without
debug info, neither of which is practical. There's also (3) fix the
assembler, but that's even less practical... :-(
--
- David A. Holland | VINO project home page:
dholland(a)eecs.harvard.edu | http://www.eecs.harvard.edu/vino
since i can't get the host mksfs to compile, i'm using the os161 native
version. however, given the lines
# a fixed disk, with a 512K sector size. the arguments are pretty
# self-explanatory. you can create as many disks as will fit in your
# machine.
4 disk rpm=3600 sectors=10240 file=DISK.img
in my sys161.conf, none of the combinations of command line options i pass in
seem to do anything. i've tried '/sbin/mksfs disk: mydisk', '/sbin/mksfs disk
mydisk', '/sbin/mksfs ldh0: mydisk', '/sbin/mksfs diskraw: mydisk' and a few
others, but always i get a 'no such file or directory' or a 'no such device'
error.
so, i guess my question is, step by step how do you get an sfs filesystem
going?
thanks in advance,
brady
that might be the lines
# a fixed disk, with a 512K sector size. the arguments are pretty
# self-explanatory. you can create as many disks as will fit in your
# machine.
4 disk rpm=3600 sectors=10240 file=DISK.img
mightn't it?
brady
has anyone gotten mksfs to work? besides the current problems i'm having
getting it to compile (see previous message), when i run the sys161 binary
which came with the solution set, i get the inscrutable (to me) message:
/sbin/mksfs: Usage: mksfs device/diskfile volume-name
when i run fs1, i get this prompt:
Filesystem to test (default lhd0:):
where does this filesystem fit in to the device/diskfile and volume-name from
mksfs? are they at all related? do i need to change my sys161.conf to get
this to work?
i'm rather confused.
brady
Hi-
There are a bunch of patches listed on the Code Downloads section of the
website, some of which seem to have already been applied to the Asst2 Sol
Set, and some of which haven't. Is there a definitive list of which patches
we need to apply? I tried applying the ones I thought would be correct, and
fixed anything left in .rej files, but I'm getting compiler errors about vm
related functions being undefined.
Which patches do we need to apply?
Thanks,
Steve
has anyone else had trouble getting mksfs to compile? using the pristine
asst2-sol with the syscalls and synchronization patch for asst4 off the
website (which didn't apply cleanly, btw), i get:
frichard@ws11 mksfs/ $ make
gcc -Wall -Wwrite-strings -O2 -DHOST -I/home/f/r/frichard/courses/cs161/root \
mksfs.c disk.c -o host-mksfs
mksfs.c:5: err.h: No such file or directory
disk.c:6: err.h: No such file or directory
make: *** [host-mksfs] Error 1
and if i add a new -I or copy err.h into the cwd, i get a billion redefined
errors from deep within the alpha includes.
any ideas?
thanks,
brady
The synchronization and syscall patch for assignment 4 are now up on
the web page (on the assignments page). The syscall code should work
as-is for anything descended from the assignment 2 solution set;
integrating it with a different file table setup will take a little,
but hopefully only a little, work.
There is *also* a new and rather large bug fix patch for sfs up on the
downloads page. Be sure to get both patches.
After you apply the bug fix patch, do a make at the top of the source
tree; this will compile and install the mksfs and dumpsfs tools, which
accidentally got left out of the build. You get versions of these that
run on the host system as well as OS/161 versions; the host system
versions know how to skip the header on the System/161 disk images.
The solution set for 3 is coming soon, but I don't know the precise
details. If it's not ready in time, you can run the *initial*
performance test from the assignment 2 solution set or even the base
system - just be sure all the patches are applied.
There is also a new version of System/161 coming, but probably not
until tomorrow.
--
- David A. Holland | VINO project home page:
dholland(a)eecs.harvard.edu | http://www.eecs.harvard.edu/vino
ok, i'm pretty sure that i'm missing something obvious (this is backed up by
the way i just tromped all over my cvs repository by accident), but the asst4
handout says we should use the asst3 solution set and apply the asst4 patch;
having been to both the download and the assignments page on the website, i
can't find either.
hoping to find them soon so we can run the performance tests, though. thanks
for any help.
brady