From: mckus...@toe.CS.Berkeley.EDU (Kirk McKusick)
Subject: Advanced 4.4BSD Kernel Internals Class
Date: 1995/12/12
Message-ID: <4ajdv7$gdj@agate.berkeley.edu>
X-Deja-AN: 121746195
organization: University of California, Berkeley
newsgroups: comp.unix.bsd.netbsd.misc,comp.unix.bsd.freebsd.misc


This is your opportunity to get an intensive code-level
BSD-based internals class taught by some of us that were
in charge of developing it. The short summary of the
course is given below followed by a more detailed course
description.

	Course: ``4.4BSD UNIX Kernel Internals: An Intensive Code Walkthrough''
	Instructor: Marshall Kirk McKusick plus selected guests
	Dates: Thursday evenings 7PM to 10PM, February 8th to May 30th
		except April 4th and April 11th (15 class meetings).
	Site: 60 Evans Hall, University of California at Berkeley Campus
	Registration Number: EDP 313189
	Priority Code: 594DS
	Fee: $1425 includes complete source listing (printed or on CD-ROM)
		and weekly lecture notes.
	Further Information and Reservations: 510-642-4151
	Sign-up: 510-642-4111 (voice); 510-642-0374 (FAX)
	Postal: Continuing Education in Engineering
		UC Berkeley Extension
		1995 University Ave
		Berkeley, CA 94720-7010

Enrollment is limited, so if you think that you will want to take
the class, call to get a `reservation'; they will give you several
weeks to get permission and money from your boss.

Full course description follows.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

	    	     4.4BSD Kernel Internals:
		   An Intensive Code Walkthrough

		   Dr. Marshall Kirk McKusick
		      Author and Consultant

		   Thursday evenings 7:00-10:00PM
		    February 8 to May 30, 1996
		    (no meeting April 4 and 11)
			  60 Evans Hall
		      U. C. Berkeley Campus

Who Should Take this Course
---------------------------
This course provides an in depth study of the source code of
the 4.4BSD-Lite Kernel. This course is aimed at users with a good
understanding of the algorithms used in 4.4BSD-Lite that want to learn
the details of their implementation. Students are expected to have
either taken the one week UNIX Kernel Internals class taught by
the instructor or to have throughly read and understood ``The
Design and Implementation of the 4.3 BSD UNIX Operating System''
(published by Addison-Wesley Publishing Company). They are also
expected to have a complete background in reading and programming
in the C programming language. Students will not need to prove
relationship with a source license holder, as the course will be
based on the non-proprietary kernel sources released by The University
of California at Berkeley.

Description
-----------
This course will provide a detailed background in the BSD UNIX
kernel, including 4.3BSD, 4.3BSD-Tahoe, 4.3BSD-Reno, and the latest
non-proprietary release by the University of California at Berkeley,
4.4BSD-Lite, Release 2. The BSD kernel is used as the porting base
for most of the major commercial UNIX vendors, although some replace
the BSD user interface with the UNIX System V user interface.
Beginning with System V Release 4, this will no longer be necessary
as System V will have directly adopted most of the BSD code. In this
course, only the BSD system interface and services will be covered
since the other systems would require students to be covered by a
Novell source license. The course will cover all the basic parts of
the system including process managment, memory management, scheduling,
I/O structure, filesystems, and networking. The main emphasis will
be on the machine independent parts of the system; little time will
be spent on the machine specific parts of the system such as device
drivers. Where machine specific topics are covered, the Intel PC
architecture will be used for illustration.

Course Organization
-------------------
The course will meet once per week for fifteen weeks. Each student
will receive either a printed kernel source listing or a CD-ROM
with the source code at the beginning of the course; additional
handouts of the weeks lecture material will be provided at the
beginning of most classes. Assignments will include reading the
code to be covered the following week and one ten-page paper or a
project. Although the overall structure of the course has been
set, the set of topics to be emphasized will be determined by the
interests of the class. Enrollment will be limited to a size that
encourages interaction. The fifteen weeks will be structured as
follows:

	 1) Organization, overview of source layout
	 2) Kernel header files
	 3) Basic kernel services (sleep/wakeup, clock management)
	 4) Process structure (fork/exec, exit/wait, signal handling)
	 5) Memory management (header files, private and shared objects)
	 6) Paging, swapping, and scheduling
	 7) Pathname resolution (open, namei, lookup, ufs_lookup)
	 8) I/O (write, ufs_write, spec_write, block allocation, close, vrele)
	 9) Special files, line disciplines, multiplexing I/O
	10) Autoconfiguration strategy, device driver structure
	11) Support for multiple filesystems, stackable filesystems
	12) Network File System (NFS), union filesystem, portals
	13) Framework for networking and interprocess communication
	14) Unix domain, UDP
	15) TCP/IP (connection setup, send/receive, algorithms)

About the instructor
--------------------
Dr. McKusick got his undergraduate degree in Electrical Engineering
from Cornell University.  His graduate work was done at the University
of California, where he received Masters degrees in Computer Science
and Business Administration, and a Ph.D. in the area of programming
languages.  While at Berkeley he implemented the 4.2BSD fast file
system and was involved in implementing the Berkeley Pascal system.
He was the Research Computer Scientist at the Berkeley Computer
Systems Research Group, overseeing the development of 4.3BSD and
4.4BSD. He is currently an independent consultant teaching courses
and writing a book on the design and implementation of 4.4BSD.  He
is a past president of the Usenix Association, a member of the
editorial board of UNIX Review Magazine, and a member of ACM and IEEE.