Save this video free

cs6465 Advanced OS - Lecture 08 - HW2 Discussion (xv6 on top of xv6)

Anton Burtsev · 1:20:43 · Watch on YouTube

Part of University of Utah CS 6465. See all 15 lectures and search them

These notes were made with YouTube Collector. Paste any YouTube link and get the same: a summary, chapters and a searchable transcript.

cs6465 Advanced OS - Lecture 08 - HW2 Discussion (xv6 on top of xv6) Watch on YouTube →

Overview

Anton Burtsev develops a practical design for running xv6 as a VMX non-root guest on an xv6-based hypervisor, starting from the kernel’s 32-bit entry point and loading ELF segments through an EPT-backed guest memory interface. He works through the minimum filesystem changes, device emulation, interrupt handling, and single-CPU assumptions needed to reach an interactive guest, while explaining how to keep most device emulation in user space.

Key takeaways

Chapters

0:00 Homework 2 Goal: Boot xv6 Inside xv6
3:00 Use xv6’s Existing 32-Bit Kernel Entry Point
13:00 Why xv6’s Original Inode Limits Kernel File Size
21:00 Extend xv6 File Capacity with a Radix-Tree Layout
27:00 Load ELF Segments into EPT-Backed Guest Memory
33:00 Choose Minimal Guest Input Devices
37:00 Route xv6 Console Output Through Serial Emulation
40:00 Simplify PIC, LAPIC, and IOAPIC by Using One CPU
50:00 Provide BIOS-Like MP Tables for xv6 Startup
54:00 Return Device Exits to the User-Space VM Runner
58:00 Emulate UART OUT Instructions and Advance Guest RIP
1:05:00 Handle REP OUTS Buffers for IDE I/O
1:07:00 Capture Host Interrupts and Preserve Pending Guest Events
1:12:00 Poll Host Standard Input and Inject Serial Interrupts
1:15:00 Emulate IDE Requests Synchronously
1:17:00 Use Timer Interrupts for Guest Scheduling and Host Polling
1:19:00 Homework 2 Consolidates the Hypervisor Design

Keep these chapters and the full searchable transcript in your own library.

Transcript excerpt

0:53 Yes, so welcome back everyone. Um So, what I wanted to do today is virtually talk through the homework two. Uh and again, the reason is that uh I can publish it. I can do everything. But I'm still not sure whether that you really learn from it. Just because, you know, you can either chat GPT or maybe like scroll through the blog posts and stuff. So, my goal today is to essentially, assuming that you worked on a plan for how to build it, I'll brainstorm with you for how can we build a hypervisor, which which actually or how can we change homework one rather uh in such a manner that we can actually boot X 386 on the lower axis. All right?

1:40 Make sense? By the way, any any questions about uh about the homework homework one? >> I didn't really figure out, but I was getting an error about deep stack bound in BMA. >> Uh-huh, but I fixed it and replied to your a I think it's fixed. >> I know that it was like Yeah, it was uh just two specific grab for specific clients. That was fixed. I think you getting concrete right now, but you fixed it. One way or another, you already fixed it. Right? Otherwise, no questions. Okay, guys. So, then like let's let's jump on it and tell me like what is that we need to do uh to to boot X with 6 and double of X with 6.

2:29 We don't have to rush. We have the boat. The reason The reason I'm doing it because this is essentially the essence of what it that I wanted to teach you. Like if someone approaches you tomorrow like or in half a year and ask you, "Okay, build me a hypervisor."

This is the start of the transcript. Save this video free for the whole transcript, searchable and time-coded.

In this course

Related notes

Summary, takeaways, and chapters were generated by AI from the video's transcript and may contain errors. The video belongs to its creator, Anton Burtsev.

Want the full transcript?

Save this video in YouTube Collector to get its complete searchable transcript, your own AI summaries, and a library that keeps every video you collect in one place.