Skip to content

labs of Operating System Engineering, Fall 2022, MIT 6.1810 (former name 6.s081/6.828)

License

Notifications You must be signed in to change notification settings

Cyrus-iwnl/xv6-labs-2022

Repository files navigation

xv6-labs-2022

labs of Operating System Engineering, MIT 6.1818(Fall 2022)

Introduction

Design and implementation of operating systems, and their use as a foundation for systems programming. Topics include virtual memory; file systems; threads; context switches; kernels; interrupts; system calls; interprocess communication; coordination, and interaction between software and hardware. A multi-processor operating system for RISC-V, xv6, is used to illustrate these topics. Individual laboratory assignments involve extending the xv6 operating system, for example to support sophisticated virtual memory features and networking.

You may wonder why we are studying xv6, an operating system that resembles Unix v6, instead of the latest and greatest version of Linux, Windows, or BSD Unix. xv6 is big enough to illustrate the basic design and implementation ideas in operating systems. On the other hand, xv6 is far smaller than any modern production O/S, and correspondingly easier to understand. xv6 has a structure similar to many modern operating systems; once you've explored xv6 you will find that much is familiar inside kernels such as Linux.

Websites

Lab Report

How to debug user-level program

debug ls.c for example

  1. set a breakpoint at main() of it
  2. make qemu-gdb and gdb-multiarch kernel/kernel
  3. pause gdb and type -exec file ./_ls in gdb console
  4. unpause gdb and invoke ls in qemu
  5. when running to main() of ls.c, set breakpoints at any place you want

if you don't do like above, you'll run into cannot access memory error when setting breakpoints.

中文翻译

可能不准确并且过时,仅供参考。

About

labs of Operating System Engineering, Fall 2022, MIT 6.1810 (former name 6.s081/6.828)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published