Kernel Development Learning Pipeline
L0 - 18 January 2023
Lecture Recording
Notes on first class:
- Do this right now: </course_application.html>
- Online Syllabus: <../index.md>
- This is not like other classes!!!
- The course attempts to encapsulate the ethos of open source development in a classroom environment
- Introduce the tools, techniques and etiquette of submitting code to the kernel and provide practice with them
- Practical C coding, and plenty of it!
- Practical research
- This means:
- Public submissions
- Peer review
- Emphasis on presenting your work and explaining the process vs just getting the right answer
- Why should you care? Why is the grind worth it?
- This class will let you practice key skills for your career in a lower stakes environment:
- Practice communication skills that are absolutely invaluable in the tech industry
- Wisdom from people who already have careers in CS
- Experience with C programming on a large codebase
- Experience with git and other linux utilities
- And, if you are considering a career in kernel development:
- Instructors are the real deal
- Guest lectures from senior developers at Red Hat
- Linux Foundation Certificate
- Familiar with kernel code base / functions
- Familiar with mailing list workflow
- Requirements to be able to complete the class successfully (do, or have done this by add drop or you should drop the class):
- A Linux environment that you have root access to
- The following are not adequate:
- The UML CS servers (you do not have root access)
- WSL (need to be able to compile custom kernel)
- Recommended:
- Run Linux in a virtual machine
- Possible, but not recommended:
- Ideal, but expensive (don’t go buying hardware for this class)
- Even if you use linux as a daily driver, you might still consider a VM or dual booting to protect your main install (e.g. from downtime or data loss in case you mess something up since we are working on the kernel)
- Setup VM ASAP!
- If you are on Windows or an intel (x64) mac use Virtual box
- If you are on linux, use QEMU
- If you are on an M1 (aarch64) mac use UTM
- We recommend installing Fedora Linux since it is a fully open source distro that upstream pretty closely
- Download the iso file for the right architecture (x86_64 for windows and intel mac, aarch64 for M1 mac)
- Setup vm with appropriate amount of resources
- Ensure you can connect to it using ssh from your host machine
- Shut it down and set it to headless mode (no window). Start and stop as needed for your course work
- Go over course policies: <../policies/course_policies.html>
- Introductory assignments
- Fill out the form on the website. A(-1), due end of day today!
- Git and git patches. A0, due tomorrow!
- Setting up git send email, A0
- Shell. A1 due 11:59pm Jan 29
- Compiling kernel. A2 due 11:59pm Jan 29
- We will provide as much help and guidance as we can
- The lectures until Jan 30 will be reserved for questions about the assignments. If there are no questions, we will proceed with the scheduled lecture material.
- If you can’t handle the heat, get out of the kitchen…
- In conclusion
- This class is relatively frontloaded!
- If you can make it past A2, you will probably be fine.
- NO EXAMS! 😀
- Do this right now if you have not
- Mailing lists for A0:
- For UML students: kdlp-spring23-uml@googlegroups.com
- For LFX mentees: kdlp-spring23-lfx@googlegroups.com