Homework 5: Infinite files for xv6 To get started, take a fresh pull of the folder you cloned for homework 4 and download the necessary files attached with this instructions page. In this assignment you’ll increase the maximum size of an xv6 file. Currently xv6 files are limited to 140 sectors, or 71,680 bytes. This limit comes from the fact that an xv6 inode contains 12 “direct” block numbers and one “singly-indirect” block number, which refers to a block that holds up to 128 more block numbers, for a total of 12+128=140....

7 min

CS5460/6450 Operating Systems Home Homework 2: ELF files This assignment will make you more familiar with organisation of ELF files. Technically, you can do this assignment on any operating system that supports the Unix API (Linux CADE machines, your laptop that runs Linux or Linux VM, and even MacOS, etc.). You don’t need to set up xv6 for this assignment Submit your programs and the shell through Gradescope (see instructions at the bottom of this page)....

21 min

Homework 3: Boot into C This assignment will teach you to build a minimal bootable code that boots on real hardware into C. Technically, you can do this assignment on any operating system that allows you to use GCC, make and QEMU (CADE machines, your laptop that runs Linux or Linux VM, e.g., WSL on Windows, and even MacOS with cross compilation via nix, etc.). You don’t need to set up xv6 for this assignment, but if you’re running on CADE you’ll have to install QEMU, see QEMU setup instructions....

54 min

HW4: System Calls This homework teaches you how to set up xv6, start debugging it and finally extend it with a simple system call. You will program the xv6 operating system. We suggest you use a custom version of xv6 that includes small modifications that support VSCode Debugger integration. For this assignment (and for future xv6 assignments), follow the xv6 setup instructions. After you're done with them, you'll be ready to start working on the assignment....

9 min

Homework 1 - Shell

This assignment will teach you how to use the Unix system call interface and the shell by implementing a small shell, which we will refer to as the 5460/6450 shell. You will also learn how to use GDB to debug your code. You can do this assignment on any operating system that supports the Unix API (Linux CADE machines, your laptop that runs Linux or Linux VM, and even MacOS, etc....

18 min