Course overview - FSU Computer Science
Download
Report
Transcript Course overview - FSU Computer Science
Course Overview
Mark Stanovich
COP 5641 / CIS 4930
Instructors
Lead Instructor: Mark Stanovich
Office: 105-E Love Building
Office hours
TA: Muye Liu
After class and by appointment (email)
Office hours: TBA
Class Websites
http://ww2.cs.fsu.edu/~stanovic/teaching/ldd/
Blackboard
Meeting Place and Times
Tuesday/Thursday: 9:30am – 10:45am
LOV 103 (sometimes at MCH 202)
You will work in lab MCH 202
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 corrupting
Can bring into the lab for demos
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
Understand and make changes to the sources
Use internal kernel services
Design and implement a kernel module
Modify/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
Final project can be added to your portfolio
Prerequisites
COP 4610
or, COP 5570
Undergraduate Operating Systems
Concurrent, Parallel, and Distributed
Programming (old Advanced Unix Programming)
or,
Proficiency in Unix environment and C, and
General knowledge of operating systems design
principles
Course Material
Lecture notes (posted at the class website)
Required textbook
Linux Kernel Development (3rd Ed)
ISBN: 978-0672329463
Course Material
Recommended additional textbook
Linux Device Drivers, 3rd Edition
ISBN: 0-596-00590-3
Online version (free)
http://www.lwn.net/Kernel/LDD3
Class Grading
Assignment 1 (individual):
Assignment 2 (prob. individual):
Assignment 3 (individual):
Assignment 4 (individual):
Assignment 5 (team + report):
Quizzes:
10%
5%
15%
15%
30%
25%
Assignments
Reading
Programming
You will be provided access to a PC (MCH 202)
First four 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
Raspberry pi
Cellular phone sensors
Virtual devices (virtual machine pass-through)
Solid-state storage (e.g., flash)
Future course lab project
Add functionality to an existing device driver
May partially include upgrading to a recent version of the
kernel
Some Possible Team Projects
New kernel features/optimizations
Optimize storage management routines
Security
Assist with ongoing research projects
Scheduling (CPU, block layer)
Your ideas?
BEWARE
Assignments may be very time consuming
Non-deterministic error
Obscure error symptoms
May not have much information about where/when an
error occurred
Fewer and more difficult to setup debugging tools
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
Good editor, IDE (search code)
Git (backup, versions)
General knowledge of Linux logging
subsystem
Knowledge of grub usage
Kernel debugging tools
Kdb, gdb (on modules)
“Kernel hacking” configuration menu items
“Magic SysRq”
Quizzes
Several short quizzes
Not necessarily announced in advance
Will throw out one quiz (worst score)
Missed quizzes
For excused absences or lateness
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.
Blackboard account (@my.fsu.edu)
Grade posting via Blackboard
Card activation for MCH 202 lab
Fill out survey
Need your FSU card number
Your choice of a 4 digit PIN #
Course Policies
Attendance mandatory
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 in at the
beginning of Thursday’s class
Reading
Syllabus
Start with LKD Chapters 1 and 2 (quick overview)
Then read LDD Chapters 1 and 2 for more depth
Familiarize yourself with Assignment 1