Had a bus, a PPU (peripheral processing unit): act independently and programmable a CPU Expensive mainframes maybe had 2 CPUs
Mainframes dirty secret: getting data in and out of it
Focused on:
Big names:
Example of cluster:
hooked up over network, fast speeds, each box has own disk
Can be heterogenous, x86-64 is typical
Single-image cluster -> OS handles everything. However, there are optimization problems, hard to patch
Big names:
Political Issues
Technical Issues
Big names
Cloud advantages over clusters/grids
Cloud disadvantages
Additional Concerns:
Clouds could be software jails
Problem:
Want:
ACLs - Access Control Lists
Owner of a resource can specify access list (list pf principals and their accesses)
ACL key idea: make sure default ACLs are right when a resource is created
Mechanisms for enforcing access control
From an OS viewpoint, OSes don't trust appplications, because they don't trust users and apps run on behalf of users
But some programs are trusted
i.e. "login" (how does it work?)
//////////////////////////setuid(10976); -- only root can do it!
setuid program r-s r-x r-x _ root
Which programs do we trust?
How can we trust "login"?
How does vendor trust "login"?
Reflections on Trusting Trust -K. Thompson // highly recommended reading about how login cannot be trusted
run gdb and disassemble the code gdb could have been overwritten
Moral of the story: You HAVE to trust somebody. Or you could just write everything yourself (remember the first lecture?)