辅导案例-COMP3231/9201
.COMP3231/9201 Operating Systems 2020/T2 Administration - Notices - Course Outline - UNSW Timetable - Consultations - Group Nomination - Survey Results!! Work - Lectures - Tutorials Support - Piazza Forums - Wiki Assignments - Submission Guide - Assignment 0 Warm-up - Assignment 1 - Assignment 2 Resources OS/161 - General - Man Pages - Sys161 Pages C coding - Info Sheet Debugging - Learn Debugging General - "Hardware" Guide - R3000 Reference Manual - Intro. to Prog. Threads Previous years - 2020 T1 - 2019 T1 - 2018 S1 - 2017 S1 - 2016 S1 - 2015 S1 - 2014 S1 - 2013 S1 - 2012 S1 - 2011 S1 - 2010 S1 - 2009 S1 - 2008 S1 - 2007 S1 - 2006 S1 - 2005 S2 - 2005 S1 - 2004 S2 The OS/161 System Background OS/161 is an educational operating system developed by the Systems Research at Harvard group, at Harvard University. It aims to strike a balance between giving students experience working on a real operating system, and potentially overwhelming students with the complexity that exists in a fully fledged operating system, such as Linux. Compared to most deployed operating systems, OS/161 is quite small (approximately 20,000 lines of code), and therefore it is much easier to develop an understanding of the entire code base. The complete OS/161 environment consists of three major parts: • OS/161 itself; • System/161, the simulated machine that OS/161 runs on; • development tools required to compile and debug code for the simulated machine. In your assignments, you will be working exclusively on the OS/161 operating-system source code. System/161 and the development tools are already installed on CSE machines — you will not need to modify nor understand their source code. OS/161 The OS/161 source code distribution contains a full operating system source tree, including the kernel, libraries, various utilities (ls, cat, etc.), and some test programs. OS/161 boots on the simulated machine in the same manner as a real system might boot on real hardware. The assignment specifications will contain instructions on how to get a copy of the sources for each particular assignment. Warning: Only use OS/161 sources obtained from the assignment specifications. We modify some parts of the environment for local use. Hence, there are no guarantees that any local assignments will be - 2004 S1 Staff - Kevin Elphinstone (LiC) - TBD (Admin) Grievances - Student Reps achievable or assessed correctly if you use components sourced from elsewhere. System/161 System/161 simulates a "real" machine to run OS/161 on. The machine features a MIPS R2000/R3000 CPU including an MMU, but no floating point unit or cache. The number of CPUs available in the machine is configurable, but we will only be using a uniprocessor configuration at UNSW. It also features simplified hardware devices hooked up to lamebus. These devices are much simpler than real hardware, and thus make it feasible for you to get your hands dirty, without having to deal with the typical level of complexity of physical hardware. Using a simulator has several advantages. Unlike software you have written thus far, buggy software may result in completely locking up the machine, making to difficult to debug and requiring a reboot. A simulator allows debuggers access to the machine below the software architecture level as if debugging was built into the CPU chip. In some senses, the simulator is similar to an in circuit emulator (ICE) that you might find in industry, only it's done in software. The other major advantage is speed of reboot. Rebooting real hardware takes minutes, and hence the development cycle can be frustratingly slow on real hardware. Development tools The OS/161 environment uses modified versions of the usual GNU development tools (compiler, linker, etc.), named with the os161- prefix: os161-gcc, os161-gdb, os161-ld, etc. The OS/161 build system hides most of the complexity of using these tools directly. However, you will still need to learn to use GDB. You should already be familiar the GDB, the GNU debugger. GDB allows you to set breakpoints to stop your program under certain conditions, inspect the state of your program when it stops, modify its state, and continue where it left off. It is a powerful aid to the debugging process that is worth investing the time needed to learn it. GDB allows you to quickly find bugs that are very difficult to find with the typical printf style debugging. Our GDB tutorial is a brief and focused introduction to using GDB with OS/161. Details beyond the level you need to know can be found at http://www.gnu.org/software/gdb/gdb.html. Working from home See the wiki for instructions for installing System/161 and the development toolchain on non-CSE machines. Feel free to build and install them at home. However, while we make every endeavour to ensure the tools build and function for you, we cannot be responsible for them working (or not) on your machine. We absolutely will NOT take “It worked for me at home” as an excuse for submissions not working as expected during our automated assessment process. If you are not confident of your submission working at CSE, ensure that your submission correctly builds and functions on CSE machines! Page last modified: 12:56pm on Tuesday, 23rd of February, 2016 Print Version CRICOS Provider Number: 00098G