US freight industry carrying MicroSD = 0.5 Zetabits/s
grep is able to quickly look through the huge file because it makes use of lseek with SEEK_DATA. This works on a "holey" file (a file that seems to be very large, but contains huge regions of zeroes so does not store as much information as it claims). These files do not use as much memory as they appear to, which is why this enormous file is able to fit into memory a all. Using lseek, grep is able to bypass these large regions of zeroes that cannot possibly contain the target character and only search a small part of the file.
$ echo x >> big $ grep x big Binary file 'big' matches
Course Organization
17 Lectures
1 Midterm, 100 minutes long (1/9 of total grade)
Open book, open notes, closed computer
Bring a copy of all assignments done
Open ended essay questions about work done
1 Final exam, 180 minutes (2/9's of total grade)
4 Labs (groups of at most 2) (1/3 of total grade)
First lab has three parts: A, B, C
Subsequent labs do not have this hand-holding
Lab 1: Shell Interpreter
Lab 2: Kernel Hacking
Lab 3: Write a File System
Lab 4: Distributed
2 Mini-labs (done solo, non-linux) (2/15's of total grade)
Scheduling
Virtual memory
Design problem (groups of 2) (1/12 of total grade)
Create your own extension to a lab. write a report, etc.
Scribe notes for a single lecture (posted online) (groups of ≤ 4) (1/20 of total grade)
A set of principles, etc., a scheme, method (from Greek σύστημα, organized whole, government, constitution, etc.) (roots: "set up with")
System (textbook):
Section 1.A.2: a set of interconnected components that has a specified behavior observed at the interface with its environment
Operating system:
(Encarta 2007): master control program in a computer (side-note: Windows only cares about control)
(American Heritage Dictionary 4th ed, 2000): software designed to control the hardware of a specific data processing system in order to allow users and application programs to make use of it (side-note: by this definition, OSes are machine specific, which was true when this definition was created)
(Wikipedia, 2015-01-03): software that manages computer hardware and software resources and provides common services for computers (side-note: "controls" has been replaced with the softer word "manages", "resource" is a new word, common services are used to avoid duplication, goal is CLARITY)
Common Systems Problems
Incomensurate scaling
Quantitative
Diseconomies of scale: as something gets larger, it gets more expensive per unit (e.g. star network)
If a human is 12 feet tall, their bones would be too weak because of a lack of density
Star network: an 8 port router is much cheaper than a 48 port router ($100's vs $1000's) because many times less connections
Economies of scale: as something grows, it gets cheaper per unit (e.g. pin factory)
Pin factory: village of people, 1 person designs pins with specialized equipment. This is more efficient than everyone making their own pins.
Problems of both: breakage, waste
Emergent properties
Qualitative
Examples
UCLA built out internet for students, but the students used it to pirate music instead of to do homework more efficiently
Tacoma Narrows Bridge collapsed when the engineers didn't plan for the resonant frequency
Propagation of effects
When one system's behavior causes bugs in another system that is linked to the first system
Example: When Microsoft added support for Japanese characters to Windows (system A) but not to its filesystem (system B). When people made files with Japanese characters in the file names, there were issues because part of the Japanese characters were interpreted as backslashes, making Windows treat the file as a directory.
Tradeoffs
Waterbed effect
Fix one problem, cause others (as if pushing down on a waterbed, the other parts of the bed raise up)
COMPLEXITY
Moore's Law: Complexity of computers doubles every 18-24 months at the cheapest design point
Kryder's Law: Disk drive capacity grows exponentially