Homework 5: Infinite files for xv6-64 To get started, continue from the xv6-64 tree you set up for homework 4 and download the necessary files attached to 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....
2026s
x86-64 Assembly Guide (AMD64 / Intel 64, Intel (NASM) syntax)
Contents: Registers | Memory and Addressing | Instructions | Calling Convention (System V AMD64) This page is a 64-bit (x86-64) adaptation of the classic 32-bit x86 Assembly Guide, rewritten for NASM in Intel syntax. We assume x86-64 on UNIX-like systems (Linux/BSD/macOS) and focus on the instruction subset used in typical systems/CS courses. NASM + Intel syntax basics Compared to AT&T syntax: Operand order is destination, source. Registers are written without a % prefix (e....
x86-64 Assembly Guide (GNU/AT&T syntax)
Contents: Registers | Memory and Addressing | Instructions | Calling Convention (System V AMD64) This page is a 64-bit (x86-64) adaptation of the classic 32-bit x86 Assembly Guide (AT&T syntax / GNU as). It keeps the same teaching style and subset of instructions, but updates: register names and sizes, stack behavior, addressing, and the calling convention. We assume the GNU assembler (gas) using the standard AT&T syntax on UNIX-like systems. Operand order is source, destination....
CS5460/6450 Operating Systems Home Homework 2: ELF files This assignment will make you more familiar with the organization of ELF files. You can complete it on any operating system that supports the Unix API—for example: Linux CADE machines Your own laptop running Linux (or a Linux VM) macOS but only if your Mac is Intel (x86-64) or you can setup a cross-compilation environment (we suggest you use nix for this) You do not need to set up xv6 for this assignment....
Homework 3: Boot into C This assignment will teach you to build a minimal bootable kernel that boots into C on real x86_64 hardware. It will boot using GRUB, print "Hello, world!" on the screen, and then print "Hello from C!" on the serial line from the main() function. Technically, you can do this assignment on any operating system that lets you use GCC, make, GRUB2, and QEMU (CADE machines, your laptop running Linux, a Linux VM such as WSL on Windows, and even macOS with cross-compilation via Nix, etc....
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 that you use our xv6-64 course fork, which includes small modifications to support VSCode debugger integration. For this assignment, and for future assignments involving xv6, follow the xv6-64 setup instructions. After you’re done, you’ll be ready to start working on the assignment....
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....