Courses/Computer Science/CPSC 457.W2012/Lecture Notes/Overview

Jump to: navigation, search

Course Introduction and OS Overview

Instructor will cover course structure, topics, and policies. Approaches to teaching OS; homeworks/assignments

This session will briefly consider the purpose and roles of an OS along with a multi-perspective view of a program in execution.


Operating systems evolved from the very manual process of literally loading code, data, and control information into mechanical devices to the highly automated time and resource-sharing systems we have today.

Slides from today. They considered the main motivation for why an operating system exists.

In this class, we wrote a simple helloworld program. We compiled it to assembly via gcc -S. We used the 'more' command to examine the contents of this assembly listing (hello.s). We compiled the program with

gcc -Wall -o hello hello.c

to produce the 'hello' binary. We used 'hexdump' and 'ghex2' to examine the raw contents of this file. We learned that with the 'file' command, we can see that this "binary" pile of bytes is actually an instance of an ELF file. We used the objdump and readelf programs to enumerate the sections of this ELF file and noted the purpose of a subset of these sections.

The main idea here was to gain an appreciation of the different perspectives we might adopt when looking at what a "program" really is. In the next class, we will begin trying to understand how this program (ELF binary) is transformed into a running process.


  • A Brief History of Unix
  • Hands-on Work
  • MOS: 1.1: What is an Operating System?
  • MOS: 1.2: History of Operating Systems
  • MOS: 1.4: The Operating System Zoo
  • MOS: 1.5: Operating System Concepts
  • MOS: 10.1: History of Unix and Linux
  • MOS: 13.1: The Nature of the Design Problem