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.

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.

  • 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
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

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)

  • devsummit/201205/oscourse.1336669396.txt.gz
  • Last modified: 2012/05/10 17:03
  • by DruLavigne