The picture CS40 Operating Systems

David Morgan
Santa Monica College
see syllabus for email address

Be greater than average
C.A.V.U.

Administrativa

Course outline

Recordings - of Zoom meetings and/or lectures

Homework schedule

Grade information

Syllabus

SMC dates/deadlines


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

Remote Unix accounts


TechInfo

Foundation concepts

Caching
 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

Overlays
 - code composition
 - memory organization 

Threads

Deadlock example

Filesystem analysis

Files vs devices


 

FALL 2021
Section 1828
Online

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

Grades - have been updated, link entitled "Grade information" at left. They include the page replacement and filesystem assignments. These grades cover the full set of assignments for the semester plus the first test. Please check your grades and let me know of any anomalies. (12/20)

Test hints - these are recorded comments from a previous semester. The upcoming test is largely the same as the one described in the recording. (12/15)

Images from/for the test - Canvas does not display some images if you use browsers that are not "up to date." A few of my questions do contain images. Depending on your browser you might not be able to see them. In case that happens to you during the test, they are alternatively available here:

Image1 for questions 11 and 12

Image2 for questions 11 and 12

Image for questions 13, 14, 15, and 16

Image1 for question 36

Image2 for question 36

You are free to look at them in advance of and during the test. (12/10)

Second test - The SMC College District Calendar shows a final exam period December 14-21. We will have an online, non-cumulative Test2 on current topics, similar to our recent Test1 on the earlier topics. It will be on Canvas. The test will be available throughout the four day period Friday 12/17 through Monday 12/20. It is a 2.5-hour test, closing 2.5 hours a (150 minutes) after you start it. Take it any time at your convenience, on one of those four days. (You shouldn't start after 9:30pm Monday, as you will be cut off at midnight and not have a full 2.5 hours.) I plan to publish some video hints about the content of the test, probably on Wednesday 12/15  (12/10)

Grades - have been updated, link entitled "Grade information" at left. They include the address translation and buddy system assignments.  Please check your grades and let me know of any anomalies. (12/6)

Homework - last assignments
do - the page replacement exercise; prepare it on paper then scan or photograph it into pagerepl.jpg (or .png) - due in your assignments subdirectory by end of day Friday 12/10

read - per course outline section 13, the 9-page section of the textbook from chapter 12 about secondary storage management.
listen - to the narrated slides about chapter 12, file management, at the links in course outline section 13 slides column entitled "part1" and "part2"
view - the links in section 13's Reading column to articles depicting the structure of the FAT and the ext filesystems. Do not read them in any great detail, just to note the parallelism between two ways to accomplish the same thing-- having files.
do - reading and homework, course outline section 13. Do the "ext2 filesystem" assignment on paper, specifically on a printed copy of this dump of a floppy diskette (or use this pre-labeled version of the dump). Before doing the assignment listen to its recorded explanation (see links entitiled "part1" "part2" and "part3" in section 13 homework column). due in your assignments directory on the remote server by the end of Friday 12/10

(12/1)


Remaining topics
- memory management (chapters 7, 8); filesystems.

"memory3.c" memory exhaustion / virtual mem demo experiment:

  classroom dell rh (old P166) monarch V1
RAM 512 512 64 1037 64
swap 1024 1024 150 2048 313
           
slowdown     51   45
termination 1309/1450 1434

these are some results I got in the past on some older machines. For a video background explanation see the link entitled "memory exhaustion" in course outline section 11 Homework column. If you wish to run the memory-exhauster programs yourself, the memory1.c, memory2.c, and memory3.c source files are in /home/public/ on the server, get them as outlined here. Compile as: gcc memory3.c -o memory3 ).

more, newer data:

  bkupserver frausto f16 vserver
OS knoppix fedora 10 fedora 16 fedora 14
kernel version 2.6.24 2.6.27 3.1.0 2.6.35
bit architecture 32 32 32 64
RAM amount 495 375 1002 7946
swap amount 0 767 11625 10446
slowdown point none ~300 ~630 ~7400
terminate point 404 1088 3044 17775

The general pattern is that the amount of physical memory available to the program is as much as is installed in the box less how much of it is already in use (by the operating system and maybe other things). Then beyond that, an amount of "pseudo-memory," apparent to the program as if physical and called swap space or virtual memory, is also available. When the program has consumed all the available physical  memory and begins to consume swap, it slows down (because using swap is using the disk). When it consumes all of the box's available swap space, the operating system gracefully terminates it. Historically overconsuming memory resulted in a system crash requiring a reboot. (11/22)

Homework -
read - per course outline sections 11 and 12 (chapters 7 and 8) on the subject of memory management (I call your attention to Chapter 7's appendix 7A on Loading and Linking, don't overlook it)
listen - to the narrated slides at the link entitled "Ch 7" in course outline section 11 slides column.
listen - to the talk at the link entitled "memory exhaustion" in course outline section 11 Homework column.
listen - to the video at the link entitled "symbol management video." Find it by following the link in the column at left entitled "Foundation concepts." The link is on that page under the heading "Compiling/linking/loading (symbols, address fixups)."
do - buddy system homework in course outline section 11 due in your assignments directory by end-of-day Tuesday 11/30. 
do - address translation in course outline section 11 due in your assignments directory by end-of-day Tuessday 11/30.
anticipate -  reading and homework, course outline section 13 on the subject of device and file management.  (11/22)

Context
- put the different types of memory management we are talking about into this context.

For overlays, see link at left under heading entitled "Overlays". (11/22)

Grades - have been updated, link entitled "Grade information" at left. They include the recent test. (Grades for a few individual cases may not yet be included.) To help interpret the test grade, please see this general explanation.  Please check your grades and let me know of any anomalies. (11/19)

Test hints - in a recent semester I characterized a test that is nearly identical to the one you will take. In the video, as I am speaking, I am looking at a copy of the test on my monitor and talking about it. Please have a listen. (11/12)

Test - is published on Canvas. It will be available Sunday and Monday, November 14 and 15. It is timed, allowing 90 minutes from the time it is started. Take it any time Sunday or Monday. (You shouldn't start after 10:30pm Monday, as you will be cut off at midnight and not have a full 90 minutes.) The test covers everything we have studied up through the topic of processes. The posts below about mutual exclusion are our next concern, and are not covered by the test. It is 29 multiple-choice questions. To log in to Canvas go to www.smc.edu and choose the horizontal menu item entitled "Login." (11/10)

Grades - have been updated, link entitled "Grade information" at left. Includes the "process scheduling" and "process states" exercises. Includes some individual grade adjustments, e.g. for some late work. May not yet include same for recent requests. Please call any anomalies to my attention.
Course drop date and homework amnesty - please be aware November 20 is the deadline for being able to drop the course. If your average is low and you believe you can raise it, it can make sense to remain in the course. If it's low and you don't believe you can raise it, it may make better sense to consider the option to drop while it is available. I must issue grades for all students who remain enrolled beyond November 20, and your average will determine. Missing grades are a major factor in the formula for grade averages. I will accept and grade past assignments if you turn them in. In that case you would have to tell me you did so, in order that I become aware that there is something I need to grade. I reserve the right to deduct a penalty but you are far better off with a grade of substance than with a zero. (11/10)

Homework - turn your attention to these after the test
listen - to the narrated slides about "IPC and mutual exclusion" in course outline section 8's Slides column. (The recording has two successive parts, at links entitled "part1" and "part2.")
listen - to the video explanation of the Peterson's Algorithm homework in course outline section 14's Homework column. (The recorded explanation has two successive parts, at links entitled "part1" and "part2.")
do - the "Peterson's Algorithm" assignment in course outline section 14. You can do this assignment on sputnik.smc.edu (easiest), any clone of our VM fedora31-spring21, or another suitably equipped linux platform due in your assignments subdirectory by end of day Sunday 11/21 
read - per course outline sections 11 and 12 (chapters 7 and 8) on our next topic, memory management (11/10)

Mutual exclusion - why do we need it?

integer n is shared between processes P and Q

Process P 
Account receives amount nP

Computation: n = n +nP:

P1. Load Reg_P, n
P2. Add Reg_P, nP
P3. Store Reg_P, n
Process Q 
Account receives amount nQ

Computation: n = n +nQ:

Q1. Load Reg_Q, n
Q2. Add Reg_Q, nQ
Q3. Store Reg_Q, n

what's wrong?

Some possible Interleaves of Executions of P and Q:
these 2 give the expected result n= n + nP + nQ
  P1, P2, P3, Q1, Q2, Q3
  Q1, Q2, Q3, P1, P2, P3

these 5 give erroneous result n = n+nQ
  P1, Q1, P2, Q2, P3, Q3
  P1, P2, Q1, Q2, P3, Q3
  P1, Q1, Q2, P2, P3, Q3
  Q1, P1, Q2, P2, P3, Q3
  Q1, Q2, P1, P2, P3, Q3

these 5 give erroneous result n = n + nP
  Q1, P1, Q2, P2, Q3, P3
  Q1, Q2, P1, P2, Q3, P3
  Q1, P1, P2, Q2, Q3, P3
  P1, Q1, P2, Q2, Q3, P3
  P1, P2, Q1, Q2, Q3, P3

from
http://deptinfo.unice.fr/twiki/pub/Minfo/DistributedAlgo/2015-11DistAlgo_Exmut.pptx

compare this to the explanation of the very similar example found in the Peterson's Algorithm homework write-up.

(11/9)

Test - it will be time for a test after we finish covering the topic of processes. It will cover what we have studied through that topic. Before the test, I will describe it more specifically (10/30)

Grades - have been updated, link entitled "Grade information" at left. Includes the "multifork" assignment (demonstrates the process scheduler's unpredictable autonomy, controlling which processes run when and in what order). Please call any anomalies to my attention. (10/30)

Homework
homework and reading in course outline section 8
do - link entitled "process scheduling exercise" in homework column of course outline section 8. Listen to the "explanatory lecture" video link about how to do the exercise.
due in your assignments subdirectory by end of day next Thursday 11/4
do - "process states exercise" in course outline section 8; please use name "process-states.jpg" or "process-states.png" for the file you submit showing your filled-in spreadsheet due in your assignments subdirectory by end of day next Monday, 11/8
read - about threads, per course outline section 10 Reading column
read - the concurrency related topic material in course outline section 8 Reading column
listen - to the several snippets of videos identified in the "Real-world real-time" and "Online university classes" postings below.
 (10/30)

Real-world real-time process scheduling for self-driving cars. youtube videos:
Google's self-driving cars (8:50-13:45)
University of York research toward autonomous car operating systems (0:00-3:15)

Online university classes have become popular and available in recent years. I have been listening to several of the lectures in one of them recently. It's UC Berkeley's Advanced Operating Systems Structures and Implementation by professor John Kubiatowicz. In relation to process scheduling these parts of his lectures apply:
  lecture   9  40:40 -   43:20
  lecture 10    0:00 -     3:00
  lecture 11  14:45 - ~20:00
(There is  another UC Berkeley course online, that I have not listened to but seems interesting, Operating Systems and System Programming.) (10/30)

Grades - have been updated, link entitled "Grade information" at left. They include both the debugger replication of textbook Figure 1.4, where 3 is added to 2 in machine language, and the "waste time" assignment contrasting busy- versus sleep-waiting. Please call any anomalies to my attention. (10/23)

Homework
reading in course outline section 7, on next broad major topic of processes
do - link entitled "order is unpredictable" due in your assignments subdirectory by end of day next Wednesday, October 27   
view - video at link entitled "process scheduler video animation"  (10/22)

Dropped students - I dropped non-participating students. That's reversible, but of questionable advisability this late in the semester, upon request. If you think completing the course is not infeasible for you please tell me about it and request a reinstate code.  (10/22)

Interrupts/signals and their handlers/traps - interrupts are similar to signals, with a difference. Handlers process interrupts, traps process signals. (10/22)

Jump versus call machine instructions. A call is really a jump+a return (10/22)

Homework -
read - textbook chapter 2, through its section 2.4 (you need not read the rest)
listen - narrated slides at links entitled
  "Ch2-part1-history," course outline section 6 Slides column
  "Ch2-part2-OSoverview," course outline section 6 Slides column
  "explanation" of busywaiting homework, course outline section 5 Topic column
  "explanation" of deadlock exercise (not assigned), course outline section 7 Topic column)
do - the exercise at the link entitled "waste time" in course outline section 5's Topic column. Do it in your VM. When you reach the end of the instructions, before you exit from the two terminal windows you will use, make a screenshot. I suggest you use a screenshot maker in your host computer (not the VM) for that purpose. I want to see your VM's screen, split horizontally, with the terminated exercise in the upper terminal window and the "top" utility active in the lower one. Name the screenshot timewasters.jpg or timewasters.png and upload it to your assignments directory on sputnik. Due on sputnik by end-of-day Friday 10/22.
past reading - make sure that by now you have read everything in the Reading column of the first 6 sections of the course outline. When I make up a test anything in the reading to-date is potential material for creating questions.
anticipate - next topic, after finishing chapter 2, will be processes. It will involve chapter 3 and part of 9. (10/17)

What's wrong  
- with this video?

- with this headline's claim?

 

Here is what's wrong: you can't know (video 12m).  (10/18)

Grades - have been published, at the link entitled "Grade reports" at left. They include the caching homework (textbook problem 1.12). Please call any anomalies to my attention. (10/12)

Homework - 
do -
the exercise at the link entitled ""3+2=5" in course outline section 3 topic column (it is given as an "in-class exercise" but is homework). You will run an assembly language replication of the 3+2=5 procedure represented in the textbook's Figure 1.4 (and your earlier homework) in the debugger. You saw earlier different program (hello world) in the debugger, modeling the tool. If you wish to review that, it's at the link entitled "use of debugger" in course outline section 3 Topic column.
 Due on sputnik by end-of-day Thursday 10/14.
listen - to the video at the link entitled "Time sharing" below (28m)
 (10/8)

Time sharing - a way to allow multiple interactive processes to share a computer's CPU pioneered by Fernando Corbato at MIT. (10/8)

Facebook outage on Monday - an explanation of my understanding what happened, prepared for my networking class. Listen to it optionally if you are interested. (10/8)

Restaurant plate stack - of the type I used when I was a busboy. It compares with a stack data structure. It has a common, relevant characteristic. Namely, the confinement of accessibility for adding or removing an element to the stack's top. You can't put an additional plate into the restaurant stack at the bottom or middle, only the top. You can't get a plate from the stack by pulling it out from the bottom or middle, only the top. This is a real stack, from which the stack data structure gets its name. (10/8)

Good, optional videos explaining interrupts:
 "What is an Interrupt? Types of Interrupts"
 "Interrupt Handling Explained in Detail"
 "Software Interrupts and System Calls"
I chanced upon the youtube series of about 40 20-minute lectures for an online operating system course, and liked it. (10/8)

Caching - there are lots of different kinds, computer and non-computer
  memory cache
  disk cache
    inside disks themselves
    within operating systems
  virtual memory page cache
  web page cache
  instruction branch / execution order cache
  book cache (Mutlu 41:20-43:50)
  food cache (hamsters, birds)  (10/2)

Homework - 
listen - narrated slides  at links entitled
  "Ch1-part2-interrupts" in course outline section 4
  "Ch1-part3-caching" in course outline section 5
  "lists, queues, stacks" in course outline section 3
read - Reading column of section 4  of the course outline, start Ch 2
read/view - concerning speculative execution, the two links in section 3 Topic column entitled "demo program source" and "demo program run"
read/listen - the items found in the Homework column of sections 4 and 5
anticipate - next homework will be the one at section 3 Topic column link entitled "3+2=5". There are two supporting links there, entitled "use of debugger" and "explanation" of 3+2=5. You may listen to those now in anticipation of the future assignment, to be made next week.

do - the exercise at the link entitled "caching" in Homework column of section 5
submittal instructions for "caching" assignment write it out on paper and submit it as a scan of that page. Name the file containing your scan caching.jpg (or caching.png). Upload that file to your assignments directory on sputnik.smc.edu. Due on sputnik by end-of-day Saturday 10/9
----------------
Some helpful explanation - here is how to correspond or reconcile the vocabulary in the textbook problem, and that at the end of my related writeup. There are 3 terms involved. What he calls T
m, I call Tslow. What he calls Tc, I call Tfast. What he calls "effective access time, I call Tave. There is no difference between what he and I are talking about, it's the same situation. The first term is talking about the native access time of one type of manufactured physical memory, and the second term about that of another. The second one is superior, does its job (moving data in and out) faster, costs more no doubt. Engineers buy that to make their caches. They buy the first, slower kind to make their RAM memory modules (regular memory) that you stick into the slots on your motherboard. The third term, on the other hand, is a little different in that it isn't talking about the native access time of anything. Rather, it's talking about the access time that would be experienced in actually using the computer. That doesn't match the native access time of either of the 2 memory types that the computer contains, since the computer uses a blend of both so that the experienced access time will fall somewhere in between their native times. Better than the slow one, not as good as the fast one. But in doing the problem just recognize that

 Tm = = Tslow

 Tc = = Tfast

 effective access time = = Tave
----------------
(10/2)

Grades - have been published, at the link entitled "Grade reports" at left. The include the textbook Probem 1.1, diagramming device I/O operation. Please look yourself up by the same anonymous 5-digit value you derived in calculating your sputnik remote server password. Please call any anomalies to my attention. (10/3)

Homework - 
 read - do the reading in the Reading column of section 2 and 3  of the course outline.

 listen - to the "hardware interrupts" discussion in the Homework column of section 4
 read/listen - the links entitled "exploit advisory" and "my demonstration" thereof in course outline section 3 Topic column. They show the execution of data as code thereby demonstrating the main concept of vonNeumann architecture.
 do - the "variation on figure 1.4" assignment found in the "Homework" column of section 3.
----------------
Some helpful explanation about textbook's problem 1.1 at the end of the chapter. It is very similar to the one in the book in Figure 1.4 (and the matching assembly language in-class exercise we did). The difference is, he wants to get/put numbers from/to some devices, instead of memory. So, he gives you 2 new instructions (to go with the 3 you already know) in his hypothetical machine language, for the purpose of shuttling data back and forth to devices.  The instructions require id's of some kind for devices (just as memory locations require addresses, which serve as their id's). The author doesn't provide id's for the devices, but you can do so. You can make up your own id format and system. A good choice for this academic exercise might be 3-digit numbers such as 001 for device 1, 002 for device 2, and so on. Then, putting together the drawing I ask for is a matter of showing the devices and their contained values, and constructing a drawing pretty much the same as the one in Figure 1.4.)
----------------

submittal instructions submit it as a scan of your diagram. Name the file containing your scan device-io.jpg (or device-io.png). Upload that file to your assignments directory on sputnik.smc.edu. Due on sputnik by end-of-day  Wednesday 9/29
(9/23)

Grades - have been published, at the link entitled "Grade reports" at left. They include the "disassembly" assignment. Please look yourself up by the same anonymous 5-digit value you derived in calculating your sputnik remote server password. Please call any anomalies to my attention. (9/23)

Explanation of "disassembly" assignment's extra credit (video, 10m). (9/23)

Apple M1 chip - exemplifies whole "system on a chip" mentioned in chapter 1.  (9/23)

Microfilm for long-term storage durability - is preferred by the National Archives (the people who keep the Declaration of Independence). A discussion of data storage durability came up in class last year. It may surprise that  for data archiving, old-school is oldest. A tidbit FYI. (9/23)


Stress test SMP/multicore
- I stumbled on y-cruncher. It has a feature for calculating digits of pi out to very great decimal length. This is interesting because it is an example of "pure computation." That is, input/output-less. Most programs involve some interaction or other with an outside device (i.e., input/output or "I/O"). That interrupts them, so massively slows them down. y-cruncher's pi feature is a rare example that can show the CPU operating at something like "native speed" since it is I/O-free. It shows how fast the CPU runs when free of constant interruption. (This relates to the discussion of interrupts at the link entitled "hardware interrupts" in course outline section 4 Homework column.) (9/23)

Homework - 
view/listen -
course outline section 2 Slides column's "Ch 1-part1" narrated slides. These are publisher's slides corresponding to the textbook.
read the items in course outline section 3 Reading column (up to but not including those about interrupts). They are concerned mainly about instruction sets and the IA-32 Intel Architecture Software Developer's Manual.
read and view - see the posting below entitled "The answer is." In that posting are some links. Visit them all and understand what you see there.
do the "assembly language" assignment found in course outline section 3  "Homework" column. It illustrates the use of numeric instructions and their interspersion with straight numbers (their operands), a centerpiece of the Von Neuman architecture. Visit and read/view the links embedded in that assignment.
Due on sputnik (where it is also to be performed) by end-of-day Wednesday 9/22.
(do not do the other assignment there, about interrupts) (9/17)

Grades - have been published, at the link entitled "Grade reports" at left. Please look yourself up by the same anonymous 5-digit value you derived in calculating your sputnik remote server password. Please call any anomalies to my attention. (9/15)

A lecture (1h 33m) for this week - I've recorded a lecture that supplements/complements the other things I have published in recent days. Please listen to it. Please note there are a couple of silent gaps in the recording. One is from timing mark 19:58 to 26:33. The other is from 58:25 to 1:00:12. Please advance your video viewer past these sections, with my apology (I had some technical problems). (9/9)

Homework - please
 do - the "binary and hexadecimal addition problems" assignment found in the "Homework" column of section 2 of the course outline. Note, in the assignment on the course outline, the accompanying how-to video for you to watch if you need some explanation.  due date (file on remote server) Monday September 13 end-of-day  
read - the items in the Reading column of course outline section 2
read - the short discussion of line termination conventions at the link entitled "explanatory document" in the Homework column of course outline section 2
note - the several commands and utilities in the hexdump product category that are featured at the bottom of the Homework column of course outline section 2. Be aware of their existence and purpose. Consider installing one of the Windows products if you are a Windows users. od and xxd are installed in our virtual machine. They might also be found in a Mac terminal.
listen - to the narrated slides in the Slides column of course outline section 2, "vonNeumann architecture" and "Ch 1"   (9/8)

What does forty-five mean? to your Intel CPU (9/8)

What does "run" mean? (9/8)

Versatility of the computer: not only can it add, it can subtract!!! - but how do we get it to do one of the tricks in its repertoire, versus some other? In the earliest computers, they were rewired to do each task:

"The ENIAC was programmed by wiring cable connections and setting three thousand switches on the function tables. This had to be done for every problem and made using the machine very tedious." 
                http://ei.cs.vt.edu/~history/ENIAC.Richey.HTML

the term for setting the computer to do some certain task is "programming the computer."
see "Programing the ENIAC"

Do modern computers re-wire in order to set and determine what they will do? (9/8)

Three new videos -I call your attention to three new links added to section 1 of the course outline today. They are the ones entitled "science project computer," "binary number system," and "hexadecimal number system." The latter two are optional. If you well understand the binary and hexadecimal methods of number representation you can dispense with them (although they are interesting and well done). Please do listen to the first one, which describes from my personal experience an initial exposure to how computers really do their work. (9/4)

How-to video about the ways and means of remote server access. Several programs that provide login connection to a remote server, file transfer connection, or both, are discussed and demonstrated. These are the tools for accessing sputnik.smc.edu. Please listen if you are unsure how to 1) log in and 2) transfer files to sputnik. (9/3)

Opportunity - ICANN (Internet Corporation for Assigned Names and Numbers) "Shaping the Future of the Internet: ICANN's Newcomer Programs"   (8/30)

Opportunity - NASA community college aerospace scholars program (8/30)

Welcome/Kickoff lecture - course description and details. Please listen.  (8/26)

First homework will be:
do - all the activities in section 1 of the course outline. Visit each of the links, read and listen to the indicated materials. please upload your "introduction.txt" file to your assignments directory on sputnik by Friday 9/10
install - make progress in installing VirtualBox on your computer, and my delivered VM in VirtualBox (see link below entitled "Obtaining and installing". (9/3)

Course outline - with rough 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
     (direct link to fedora31-spring21.ova file on Google Drive)
- 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 about the 6+5 project. (11m)
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.

NASA Perseverence Mars rover landing today. NASA YouTube channel

Operating systems used by mission components:
VxWorks (Rover and Landing Visualization System)
RTEMS (Electra radios)
linux (Ingenuity helicopter)
none -TDS Landing Radar software, MOXIE Mars Oxidation In-situ Experiment

according to JPL's Dj Byrne today. 

...and make success happen (2/18)

Jobs for which operating systems have responsibility:
 Internal
  memory management
  process management
  device management
  file management
 External
  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 for representing characters
 Processor instruction sets
 System architectures (bus, data lines, interrupt lines)
 Use of ssh
 Use of sftp/scp for file transfer

Running linux at home.

Dates and deadlines
Class Census Day: SEP 13, 2021
Class 60% Day: NOV 4, 2021
Last Day to Withdraw to Receive a Refund: SEP 12, 2021
Last Day to Withdraw to Avoid a "W": SEP 12, 2021
Last Day to Withdraw to Guarantee a "W": NOV 20, 2021
Last Day to Request for Pass/No Pass Grade: NOV 20, 2021

 

 

Milestones in the history of computation


Tommy Flowers

Tommy Flowers


Colussus - 1944

Colossus - 1944

 

 

Eniac - 1946

Eniac - 1946 -