15-412 Projects

15-412 Projects

412 Project Suggestions (Overview) Dave Eckhardt [email protected] 1 Movie Night “Primer” – Thursday, August 29th – 19:30, Gates 4401 – Presented by the CMU Computer Club – $1 pizza 2 Disclaimer ● Most entries on my list are Plan 9 projects ● You don't have to do a Plan 9 project ● Going over the list is designed mainly to spark inspiration (at this point) ● For today, think of Plan 9 as just a platform with an unusual number of low-hanging-fruit projects – Plus it has shock value at parties 3 Plan 9 “Kernel” Projects ● Tegra “TrimSlice” Arm mini-PC ● PlayStation 3 ● MIPS32 or MIPS64 laptop ● Partial SPARC-64 (non-laptop) port ● SpeedStep ● Add support for USB devices – More Ethernet – Serial – 802.11 4 “TrimSlice” ● Small cute box ● Lots of features – USB, DVI, built-in wireless, ... ● NVIDIA Tegra ARM (dual-core Cortex A9) ● Documentation is mostly Linux source ● Plan 9 runs on other ARM platforms – SheevaPlug 5 PlayStation 3 Port ● Processor: IBM Cell “Broadband Engine” – A slow-ish PowerPC plus 7 co-processors ● Platform – Third-party OS's run under a hypervisor – “Yellow Dog Linux” is fallback documentation ● Related work – Partial port of Inferno to Cell via 2007 GsoC – Initial investigation during Fall '08 15-412 6 MIPS32/64 ● Plan 9 used to run on MIPS32 ● A MIPS64 port is in progress – Compiler “nearly done” – Kernel partly done – ...both by external mentor (who has “more insight than time”) ● Why? – Clean RISC architecture, embedded h/w – Three existing laptops... plus one supercomputer... 7 SPARC-64 Port ● Plan 9 used to run on sparc-32 (2e) ● A 4e sparc-32 port is in progress ● Also a 4e sparc-64 port (further along) ● Machine in use: Ultra-2 (I have one) ● Plan – Get Ultra-2 running here (good infrastructure) – Work toward a more modern machine (SB- 100/150) ● Why? “Niagara” 8 Processor Speed Control ● Processors are hot these days – scalding! ● Conceptually easy to slow when load is low – Check length of run queue – My 1.6 GHz laptop frequently runs at 150 MHz ● “The nice thing about standards is there are so many to choose from” – Pentium M (early), Pentium M (modern), ... ● Goal: kernel device, user-space daemon 9 USB (Non-kernel) Hacking ● There are lots of USB devices (that's the point) – Memory-card readers – Wireless (and wired!) network interfaces – RS-232 serial port adaptors ● Plan – Pick one, make it work well ● One 802.11 device has a nice OpenBSD driver – Warm-up: some kind of device-tree browser 10 802.11 PCI/PCIe ● Currently: solid 802.11b support for “Wavelan” (AT&T/Lucent/Agere/Avaya “Orinoco”) cards ● I believe reasonable and documented g hardware exists ● “Framework” work – some done, some to do 11 Plan 9 “File System” Projects ● Extensions to cdfs, the cd-burner file system – “Burn-free” buffer-underrun protection? – Add DVD-RAM support ● UDF file-system support – UDF is like ISO9660 but “more so” – Three steps ● Reader (“nice exercise”) ● One-shot creator (not too hard) ● Live writer (“future work”) 12 Plan 9 “VM client” Projects ● VMware defined a “smart client” API – Share cut&paste buffer between guest & host – Mouse management – Old API: NDA, no longer works perfectly – New API: public, not supported yet... ● Microsoft released “make Linux run better in Hyper-V” code – Maybe other OS's could run better, too... 13 Plan 9 Security: PubCookie ● “PubCookie” web authentication – Like AFS – once you have it, you wonder how you lived without it – Crypto experience in real world ● Potentially interesting – Compare resulting code against Apache module – If extra time: provide auth server too ● PubCookie is fairly simple, hence obsolete – The new hotness: Shibboleth 14 Plan 9 Security Projects ● X.509-certificate file system ● OpenPGP-message file system ● SSH 2 “the right way” ● Add pre-auth to p9sk1 (“isomorphic to” krb4) – Key ingredient: sign-off from a security expert ● Add AES to existing SSL file system ● Disk encryption ● Work on WPA (some work in progress) 15 Plan 9 Language Projects ● Squeak – Open source Smalltalk VM, written in Smalltalk – Basis for exciting distributed applications – Architected for portability – Local enthusiast available to mentor 16 QEMU for Plan 9 ● QEMU is ... odd – Emulation, but not via an interpreter – Binary translation, but without knowing target machine language ● Status of QEMU for Plan 9 – Christoph Lohmann ported some infrastructure – Wes Filardo did 95% of code translator... – QEMU rewrote code translator from scratch! 17 QEMU for Plan 9 ● Why? – You'll really understand binary translation ● (one of the VMware mysteries) – Better understanding of PC hardware – Interesting networking code to do, too 18 “Platform” Projects ● May or may not be Plan 9 – LinuxBIOS CoreBoot – Xen ● Port Plan 9 to latest Xen ● Plan 9 “domain 0” for Xen ● Other projects (improve FreeBSD support) ● Soekris (mini-PC) boxes – Maybe some porting (there's a new one); bridge 19 “Platform” Projects ● “Odd boxes” – Palm Pre (custom kernels can be built) – PowerPC ● Kuro Box ● PegasosPPC.com “Open Desktop Workstation” – OpenFirmware+PPC...we have some code like that... – CerfCube – 3-inch cube with a PPC machine inside 20 OS X / Darwin ● Work on Darwin OpenAFS cache manager – Working code base, with rough edges – Local mentor available ● Upgrade OS X ext2 support to ext3 (journal) ● (Some) support for ELF binaries on OS X? 21 Illumos/OpenIndiana ● Once upon a time there were happy OpenSolaris users... – Then Oracle became disinterested – Fork! ● Illumos (the OS) could use volunteers ● We have some SPARC hardware... 22 NetWatch ● NetWatch is “fun stuff” hidden in SMM ● Useful directions – Port to another motherboard – Emulate a (small) IDE disk 23 Other Projects ● FreeBSD S4OS – Goal: suspend-to-disk – Well understood, but not easy ● The trail is littered with corpses ● Grading will be scaled appropriately ● FreeBSD Tilera port – 8x8 array of CPU's with semi-shared memory – Some code exists from last year 24 Other Projects ● Click “modular router” project – Target: Soekris tiny router box (start: simics) – Goal: point-and-click DSL link scheduler ● [insert your project here] ● Clean-room RFC 6090 (elliptic curve crypto) ● Linux – kernelnewbies.org ● FreeBSD – freebsd.org ● NetBSD – you get the idea ● “Finish” Plan 9 port on PPC iMac 25 “Dave's Top Picks” ● Plan 9 user-space USB RS-232 driver ● Plan 9 user-space USB driver (TEW-429UB) ● Plan 9 (U)EFI hacking ● Plan 9 on MIPS (laptop eventually) ● Plan 9 WebISO or X.509 file system ● Plan 9 UDF/X.509/OpenPGP file systems ● Plan 9 on PS3 ● FreeBSD S4OS 26 Next Steps ● Read the Amoeba/Sprite paper for Friday/Wednesday ● Turn things over in your mind... – Linux/BSD projects abound ● May be higher turmoil – We have Plan 9 “mini-projects” for warm-up ● Multiple ways to coherence – Pick an OS, pick a type of project, pick a partner – Any constraint will help you focus 27 Extend P9 iMac kernel ● Status – Ajay, Adam, Ian got a kernel running – Device drivers (character-mode screen, keyboard) pass through to OpenFirmware drivers ● Moving forward – OF Ethernet driver (should be 2-3 days) – Investigate OF graphics, mouse ● Possible goal: slow but portable port – Cutting the OF cord (PCI, interrupt controller) 28 Extend P9 iMac kernel ● Good news – Code is locally understood ● Bad news – In theory, PowerPC Macs are an orphaned platform 29 Plan 9 “Kernel” Projects ● AC’97 Audio support – AC’97 is a multi-vendor hardware standard – Mature, well-documented – Handles sound and “win” modems (same thing) ● Plan 9 audio support – Code for ancient ISA Sound Blaster – Support for some USB audio devices – Jukebox user code 30 Nokia 770 / N800 ● The device – Size of a paper-back book – ARM, RAM, Flash, 802.11, touch screen – Running Linux (e.g., some documentation) ● Plan 9 runs on (old) Compaq iPaq, also ARM – I can borrow some from Satya 31.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    31 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us