Welcome to Virtualization! This course will introduce students to a range of exciting topics including:
Aside from teaching you the concepts behind virtualization, this course is meant to get you familiar with the commonly used tools and software. You should get used to using virtual machines, and containers. You will gain more experience with Git, and with real-world code bases.
This course carries the Independent Inquiry flag. Independent Inquiry courses are designed to engage you in the process of inquiry over the course of a semester, providing you with the opportunity for independent investigation of a question, problem, or project related to your major. You should therefore expect a substantial portion of your grade to come from the independent investigation and presentation of your own work.
The expected background for this course is an undergraduate operating systems course, in which you learned the basics of an OS: virtualizing the CPU, virtualizing memory, file systems, and so forth. Probably you learned it out of some book like Silberschatz or Tanenbaum or the free OS book from Wisconsin.
You should also have some hardware background, as in a basic understanding of how a machine works, what caches and TLBs are, and things like that. This knowledge is particularly useful because the OS sits at the lowest levels of the system, and thus we sometimes need to know things about the hardware.
There are no prescribed books for this course. The content will be sourced from publications, blogs, and reading the code.
We believe the following resources will be useful:
Students with disabilities may request appropriate academic accommodations from the Division of Diversity and Community Engagement, Services for Students with Disabilities, 512-471-6259, http://www.utexas.edu/diversity/ddce/ssd/.
Religious Holy Days: A student who is absent from an examination or cannot meet an assignment deadline due to the observance of a religious holy day may take the exam on an alternate day or submit the assignment up to 24 hours late without penalty, if proper notice of the planned absence has been given. Notice must be given at least 14 days prior to the classes which will be missed. For religious holy days that fall within the first 2 weeks of the semester, notice should be given on the first day of the semester. Notice must be personally delivered to the instructor and signed and dated by the instructor, or sent certified mail. Email notification will be accepted if received, but a student submitting email notification must receive email confirmation from the instructor.
ScheduleWho: Vijay Chidambaram
When: TuTh 2-3:30 PM
Where: GDC 1.304
First class: August 31st
Office Hours: TuTh 3:30-4:30 PM
TA: Dhathri Purohith
We will be using Canvas for course administration. Check out the course page here. You will need your UT EID to log in.
I will be making all important announcements on Canvas (although some of it may be on this page as well). Check Canvas regularly!
PiazzaWe will be holding our class discussions on Pizza. Please sign up here.
The state-of-the-art in virtualization rapidly changes due to the massive industry focus on it. We will have a number of industrial speakers to gain an understanding of pressing problems in this space in industry.
Grading30% Exams (15% each midterm)
20% Assignments (10% each assignment)
50% Projects (25% each project)
Extra CreditOne of the goals of this course is to give students exposure to open-source projects. You will be given extra credit if:
ExamsThere will be two mid-terms. Each mid-term will count for 15% of the grade.
Midterm 1: Oct 12th (tentatively)
There will be two big projects in the course. Students will work in groups of two or three for both projects.
The first project will involve building your own hypervisor. You will need to know the basics of operating systems, C, and assembly to complete this project.
The second project is open-ended, and will involve adding a new feature to any open-source project related to virtualization and containers. Students will propose what they want to do, get the proposal approved, and then present on what they did at the end of the semester. You are encouraged to add a useful feature to an open-source project (and potentially get it merged with the code base).
More details about the projects will be added shortly.
The assignments will be smaller scope than the projects, but will be related to the projects. You can think of them as exercises meant to "warm-up" for the projects.
AcknowledgementsThis course is inspired by (and uses material from) courses taught by Alison Norman, Remzi Arpaci-Dusseau, Don Porter, Simon Peter, and Chris Rossbach.
Copyright Notice: These course materials, including, but not limited to, lecture notes, homeworks, and projects are copyright protected. You must ask me permission to use these materials.
I do not grant to you the right to publish these materials for profit in any form. Any unauthorized copying of the class materials is a violation of federal law and may result in disciplinary actions being taken against the student or other legal action against an outside entity. Additionally, the sharing of class materials without the specific, express approval of the instructor may be a violation of the University's Student Honor Code and an act of academic dishonesty, which could result in further disciplinary action. This includes, among other things, uploading class materials to websites for the purpose of sharing those materials with other current or future students.