Course Overview Ted Baker Andy Wang COP 5641 / CIS 4930 Instructors Ted Baker Andy Wang Office: LOV 207A Office hours: after class and by appointment Office: LOV 264 Office hours: after class and by appointment Class website: www.cs.fsu.edu/~baker/devices Meeting Place and Times Monday – Friday: 12:30am – 1:45pm LOV 301 (sometimes at LOV 016) In addition You will spend lots of time on projects Projects will need to be done in the lab, unless you have a PC that you: Don't mind trashing, through kernel bugs Can bring into the lab for demos Have your own device Course Objectives Make yourself into a Linux kernel “hacker”, who can: Configure, compile, and install a Linux kernel Do the same for a kernel module Navigate and read the Linux kernel sources Use the API for internal kernel services Design and implement a kernel module Modify, or design and implement a device driver Measure the performance of your implementation Applicability of Kernel Hacking Skills Software engineering Concurrent programming Thesis and dissertation Employment Prerequisites COP 4610 or, COP 5570 Undergraduate Operating Systems Advanced Unix Programming or, Proficiency in UNIX environment and C Course Material Lecture notes (posted at the class website) Textbook Writing Linux Device Drivers ISBN: 978-1448672387 Course Material Recommended textbook Linux Device Drivers, 3rd Edition ISBN: 0-596-00590-3 Online version http://www.lwn.net/Kernel/LDD3 Class Grading Assignment 1 (individual): Assignment 2 (individual): Assignment 3 (individual): Assignment 4 (team + report): Quizzes: 10% 15% 15% 30% 30% Class Participation Two absences are allowed without question or justification Grade will be reduce by 1% for each missed class Exceptions: Documented religious holidays and emergency Cases pre-approved by the instructor Assignments Reading Programming You will be provided access to a PC (LOV 16) First three assignments: lab. exercises Last assignment: team projects It may need to be shared Each member will evaluate the contribution of the other team members Warning: they get more difficult, exponentially Some Possible Team Projects Device drivers Video cards Cellular phone sensors LED devices Solid-state storage (e.g., flash) New kernel features/optimizations Mechanisms to optimize flash deletes Mechanisms to track and categorize storage I/Os Mechanisms to perform secure deletion BEWARE Assignments may be very time consuming Non-deterministic bugs Obscure bug symptoms Not much information about where an error occurred Need frequent reboots and OS reinstallations Implications Start your projects early You are responsible for backing up your work BEWARE If you plan to use your own computer You will need to bring in your machine to demonstrate your code You might trash your hard drives Some Useful Tools Virtual machines VMWare Xen Virtual PC User Mode Linux (UML) These take time to learn and install Will not help when you get to a real device driver No time to cover them in class You will need to teach yourself Quizzes Several short quizzes On average, one quiz per week Not necessarily announced in advance (Dates on calendar are just illustrative.) No make-ups for missed quizzes For excused absences or lateness The missing quizzes will be dropped Class Grading 91% - 100% 89% - 90% 85% - 88% 81% - 84% 79% - 80% 75% - 78% 71% - 74% 69% - 70% 64% - 68% A AB+ B BC+ C CD+ 61% - 63% 59% - 60% 0% - 58% D DF Computer Accounts, etc. ACNS account (@garnet.fsu.edu) Grade posting will be via Blackboard Card activation for 016 Love lab Fill out survey form and turn it in to Dr. Wang Need your FSU card number Door PIN Course Policies Attendance mandatory No makeup quizzes Honor code: read your student handbook Students with disabilities Report to Student Disability Resource Center Bring me a letter within the first week of class Things for you to do Fill out survey form and turn it in to Dr. Wang Read chapters 1 and 2 of the text Do lab assignment 1