CS146

This class is about Unix, which is a command-line driven OS. If you want a GUI, you're in the wrong course. Suitably, then, the web page for this class looks very boring. To understand why, Follow the below link:

Read this article by one of the inventors of Unix.

People

Computing Environment

Note that the programming assignments will be graded based on whether they work on an ICS Openlab machine. That means you can write the code on any Unix/Linux machine you want, but you must submit it---and it will be graded---on an ICS Linux Openlab machine. If your code works on some random machine you used to develop it but not on an openlab machine, you may get zero. You can learn more about openlab here; BE SURE TO ACTIVATE YOUR ACCOUNT, since you need it to do Assignment #1. If you already have access to a Unix/Linux machine, use "ssh" to get to openlab. If you're using Windows, then a popular program to remotely log in to a Unix machine is call PUTTY; another is MobaXterm, which allows a limited amount of graphical interaction.

All work must be submitted on the command line of an ICS Openlab machine using the command "/home/cs146/bin/submit". Run that command with no arguments to get help.

Syllabus

Course Textbook

I would prefer to be using The Unix Programming Environment by Brian Kernighan and Rob Pike, but unfortunately it's out of print. There exist PDFs of it online, but I'm not sure of the copyright status of such PDFs. Thus, as a half-decent surrogate, the official text is legally available as a free PDF (also available is the old First Edition), but I won't be referring to it much. If my lectures aren't enough, I encourage you to consult either of the above books, or any of the ones below.

Lectures (PDF--be prepared to add your own markups)

Office Hours: to be negotiated with class based on their schedules

Assignments