This is an old revision of the document!
FreeBSD Developer Summit OS Course Working Group
Or… Teaching an operating system course with FreeBSD.
May 1th (Thursday), room will be announced when it is known.
Overview
The purpose of this May 2012 developer summit working group session is to discuss teaching undergraduate- and graduate-level operating system courses using FreeBSD. Several members of the academic community already teach such courses – others would like to create them, and more generally encourage the teaching of OS courses using FreeBSD. Further, we have industrial consumers of FreeBSD who would love to see more graduating students with a background in operating systems, especially FreeBSD. Finally, we have current students involved in teaching and research, Google Summer of Code, etc. We hope to bring these groups together to identify goals, requirements, methodology, and resources to work towards a common teaching platform that might allow coursework that might be shared across universities. We are also interested in alternative outlets for this material – for example, a YouTube lecture series on operating systems and teaching exercises useful outside of a traditional university context.
If you would like to participate, contact the chairperson below and CC devsummit@. You will be then added to this page. Please include a list of things you want to talk about or the areas you are interested in. This helps in planning the session and to bring people together with common interests.
Goals
- Discuss goals of teaching operating systems at the undergraduate/graduate level
- Identify universities already teaching FreeBSD-based operating systems courses
- Identify existing FreeBSD-based teaching material (books, slides, exercises, platforms)
- Consider potential paths to improving shared, community-provided teaching material
- Brainstorm teaching exercises and their technical dependencies
- Discuss how we could make FreeBSD a better operating system for teaching about/on/with
- Consider other less standard outlets for OS courses, including YouTube/iTunes/etc
Attendees
| Name | Affiliation | Topics of interest | Other notes |
|---|---|---|---|
| RobertWatson | University of Cambridge | Developing a new masters-level OS course at the University of Cambridge Computer Laboratory | As an undergrad, took CMU's OS course, and it clearly influenced what I do today! |
| GeorgeNevilleNeil | |||
| BenedictReuschling | FreeBSD Project, University of Applied Sciences, Darmstadt, Germany | teaching, creating/sharing course materials, adapting courses like this one to *BSD | |
| BjoernZeeb | May join session late | ||
| MikeKarels | McAfee | ||
| Ermal Luçi | pfSense | ||
| Warner Losh | FusionIO | ||
| DruLavigne | iX | aggregating which FreeBSD courses are available, courseware creation, video courses |
Results
Notes from the session:
* hard to find employees who understand operating system internals
* consider Foundation sponsoring mentoring of students outside of GSoC e.g. non-US summer terms
* Use DTrace to analyze operating system (FreeBSD, Mac OS X) and teach basic concepts that way
* Problem: C is not taught anymore or not as much as it used to be
* create a repository of tools, modules, materials which can be customized, makes it more appealing to base a OS
* course on FreeBSD needs to be very modular: academics want to pick and choose / customise
* industry engagement: companies might co-sponsor final year projects
* the Foundation might act as a rendezous service between projects and students
* what do you need to teach an OS course?
notes / slides
concurrency
lock internals?
GCD kind of stuff?
filesystems
how things have changed (e.g. the road to ZFS)
networking
device driver
platform for practical exercises
Raspberry Pi v. VM
cross-build, debugging…
cross-compiling reasonable: FreeBSD can self-host, toys can be cross-compiled
Toy v. real OS
Kirk: Universities prefer toys these days
goals
people to understand operating systems
people to be familiar with FreeBSD
make FreeBSD a platform for teaching
is it to have a practical sense of the theory?
is it to demonstrate an ability to do a deep project (and get hired)?
identify frameworks for exercises
project structure:
analysis / instrumentation
modification
evaluation
VMs v real hardware
Brainstorming for projects/modules:
schedulers:
graphing
benchmarking
round robin scheduler
I/O priority boost experiment
detecting/fixing priority inversion (why theory matters)
filesystems:
GEOM: I/O tracing, replay, add dtrace probes, RAID module, integrity checking module on a memory disk, write aggregation module, I/O scheduler, module for content storage (e.g. dedup-ish)
stackable filesystems: add access control, encryption
fuse: simple inode based fs + optimization project, distributed fs?
specialized filesystems: e.g. does one thing well
security:
MAC framework: implement a policy
Capsicum-ize an app
security auditing
write IDS
write exploits
networking:
netgraph: write error correction
tap/tun: write a simple VPN or simple encapsulation layer
write a firewall
implement a simple network protocol
write a device driver
tweak packet loss properties
network tracing
device driver (storage), KLD, create a system call
concurrency
dtrace, add probes, profiling
optimizing power use
simulated device
interrupt handling (is the course in C or C and assembly?)
threads, parallelization
Action Items:
find existing materials (doc people, master students can help in prepping material): Kirk, Ken, Backman,
create a repo e.g. freebsd.org/teaching that credits content creators
VM generation tools (multiple VMs using templates), nested VM support
develop teaching plans, homework assignments, reading lists, how to structure the course (e.g. template for 1 week course, semester course, etc.)
generate ebook and CD from selected modules (ideal for e-learning)
gather contacts, arrange guest lectures (in person and by video)
record sample lectures on Youtube channel
make modules easily translatable
identify universities to partner in initiative e.g. Darmstadt (bcr)
recognize younger generation's learning style, show course's relevance to industry
teaser talk for EuroBSDCon (get students interest)