CS40 Operating Systems

David Morgan
Santa Monica College
see syllabus for email address



Grade information

Course outline

SMC dates/deadlines

Zoom meeting recordings

Homework schedule

Stallings book's site
 8th edition
 6th edition
 5th edition

Remote Unix accounts


 different types
 why it works
 chip schematic

Fundamental Unix Commands

System calls

Linux syscall cheat sheet

Disks & booting:
 - Linux loader doc
 - Comparative MBRs
 -Interpreting Partition Records

Old school photos

Punched cards

1959 utility bill on punched card (like those mailed to my childhood home)

Memory mgmt:
 - Segmentation
 - Page replacement
 - Intel architecture (pdf)
 - Management types

Code relocation

 - code composition
 - memory organization 


Deadlock example

Filesystem analysis

Files vs devices

Foundation concepts

ASCII chart
 version 1
 version 2

Sys. architecture (interrupts)

Number bases:
  -Hex tutorial
  -Hex advocacy
  -Binary numbers
  -Number systems
conversion tools:
  Table, or
   - binary
   - hexadecimal

 Instruction sets
    instructions A-M
     instructions N-Z
   -Intel chip architecture
    Z80 instructions
  -Other makers

  -CPU registers
  -a CPU instruction

An assembler program
  -source code

Symbol management
for compiling, linking,
and loading

Data structures


Section 4072 6:45p - 9:50p Thursdays
online via Zoom

This Website (http://classpage.dmorgan.us/)  will be used extensively to communicate with you. Announcements, grade reports, and assignments will be posted here. Please access the website from any SMC computer lab. Alternatively, it can be viewed from an internet-connected browser anywhere. You are responsible for awareness of the information posted here

Announcements/grades/current topics

Course outline - with approximate weekly topic coverage corresponded to related readings, homework assignments, and in-class slides I will use. Please follow this outline as we move through the topics, for assignments and reading I will want to assign.

A virtual machine (VM) for you - hands-on lab exercises will be performed on a virtual machine that you can run in your own computer.
- Obtaining and installing your VM
- Transferring files in and out of it if necessary (accompanying howto video)
- Your VM's configuration

A Remote Unix system account is available for your use.

Using ssh (secure shell). ssh is an important tool you will use for interacting with remote computers. For that you will need an ssh client. There are a number of ssh client alternatives.

Distributing files from sputnik to the class as a whole,  publicly - the above file transfer discussion describes file movement to and from your own home directory, exclusive to you. Sometimes I will want to have someplace to put a file so everybody can get to it and download it. When I do that, here's how to download them.

Three revelatory pictures - I will refer back to them a number of times during our class. Each depicts relationships that, if learned early, will clarify your understanding of computers
 1 - Role and position of an operating system

 2 - Devices, and friends - partition tables, partitions, filesystems, files

 3 - Liftoff - how the computer picks itself up by its bootstraps in the morning

The answer is ... (read the lights),  what is the question? Let's understand what this picture shows. The device shows a project for adding 6 and 5 to produce 11. Here are "6 and 5". And here is "11".
Listen to this video from the 7:30 timing mark to the end, describing addition with switches for inputting addends, lights for outputting sums, and a 74xx Texas Instruments chip to hold the "wiring" that does the math.
74xx chip in 1962? No such thing. My classmate then made a science project that did the same thing as in the above video: switches to input addends, lights to output sums. But how did he make the math happen? He built the same functional circuitry as contained in 74xx chips, from basic discrete circuit components ( resistors, capacitors, inductors, diodes, transistors ). The circuits he wired up are as shown here in the several kinds of "logic gates" (scroll down to the circuit diagrams) and further described here.
Here is another discrete component enthsiast/purist's page

First personal computer - Altair by Ed Roberts

Altair - first personal computer

(click photo to enlarge, note switches and lights on front panel)

Fedora linux installation - time permitting I hope to demonstrate the installation of an operating system on a laptop in class.

Jobs for which operating systems have responsibility:
  memory management
  process management
  device management
  file management
  user interface

Textbook - Operating Systems: Internals and Design Principles, eighth edition, William Stallings, Pearson Prentice Hall. See the information about it on the author's website.  

Foundation concepts you should be(come) familiar with as background/prerequisite for this class:
 Data structures (lists, stacks)
 Binary and hexadecimal number representation
 Compiling/linking/loading (symbols, address fixups)
 ASCII code
 Processor instruction sets
 System architectures (bus, data lines, interrupt lines)
 Use of ssh
 Use of sftp for file transfer

Running linux at home.



Milestones in the history of computation

Tommy Flowers

Tommy Flowers

Colussus - 1944

Colossus - 1944



Eniac - 1946

Eniac - 1946 -