This Course Will Introduce Students to Advanced Linux Kernel Development, Using Internal Kernel Apis and Data Structures. The Course Will Teach Students About The Kernel S Main Components, and It Will Allow Them to Make Nontrivial Changes, Primarily Focusing On Device Drivers. The Course Will Provide Hands-on, Practical Experience in Current Open Source Code Development Using Software Engineering Tools and Principles, Including Kernel Debugging, Working With Git, Structuring a Suggested Software Change As a Logical Sequence of Patches That Comprise a Patchset, Conducting Code Reviews,and Presenting a Suggested Project to Multiple Interested Parties. The Course Requires That Participants Have Successfully Completed The Basic Operating Systems Course. The Course Consists Of Weekly Lectures and Tutorials. The Overall Grade Is Based On a Number Of Practical Assignments and a Project, Which Will Be Presented At The End of The Semester to The Course Staff. The Lectures And Tutorials Will Be Conducted in English. The Course Fulfills One Project Requirement For Undergraduates. Learning Outcomes# at The End Of The Course The Students Will Be Able To# 1. Develop and Maintain Nontrivial Linux Kernel Features and Modules. 2. Understand and Partake in Open Source Software Communities. 3. Productively Give and Receive Feedback On Code Patches. 4. Stretch Their C Programming Skills to The Limit.

Faculty: Computer Science
|Undergraduate Studies |Graduate Studies

Pre-required courses

(46209 - Structure of Operating Systems and 46210 - Laboratory in Operating Systems and 234123 - Operating Systems)


Semestrial Information