Each week in 6.1800 you'll have a paper to read. In general, you
should read the paper before the first lecture of that week; for this
paper, you should read through Section 4 before Monday's lecture, and
through the rest of the paper before Wednesday's lecture. It is okay
if you don't understand everything in the paper during your first
read! It is normal to skim through some of the more confusing parts
and come back to them later.
Read
The UNIX Time-Sharing System. To help you as you read:
- By the end of section three, you should understand the
differences between ordinary files, directories, and special files.
- By the end of section four (along with section three), you should
be able to explain what happens when a user opens a file. For
instance, if a user opens
/home/example.txt, what does
the UNIX file system do in order to find the file's contents? You
should understand this in detail (e.g., at the i-node level). As
always, if you have any questions, post on Piazza!
- By the end of section five, you should understand the basics of
processes in UNIX (e.g., how fork() works, how memory is shared, how
processes communicate).
- By the end of section 6, you should understand the basics of
the shell. For instance, you should be able to describe what
happens if you type sh into the UNIX shell (how many
processes would be running?). Sections 7-10 wrap up the authors'
discussions on UNIX.
As you read, think about the following:
- What things in UNIX are named?
- How does the UNIX shell work?
- What 6.1800 concepts are exemplified by UNIX?
- What design principles, or objectives, do you think the authors
were following as they developed UNIX?
- UNIX was designed for programmers, by programmers. Who was a
programmer in this context? How does this affect the way we use
computers today?
Submit your answers to these questions
on Canvas
by 12:00pm on Friday 2/13. Your responses should be relatively brief;
just a few sentences per question. Your responses should be in your
own words, not direct quotations from the paper.