1 / 29

The Unix Time-sharing System

The Unix Time-sharing System. Chuck Davin Software Design & Engineering CSE 350 Spring 2001. The Unix Time-sharing System. D. M. Ritchie and K. Thompson. The Unix time-sharing system. BSTJ , 57:6 (July-August, 1978), 1905-1929. K. Thompson. Unix implementation.

senta
Download Presentation

The Unix Time-sharing System

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. The Unix Time-sharing System Chuck Davin Software Design & Engineering CSE 350 Spring 2001

  2. The Unix Time-sharing System • D. M. Ritchie and K. Thompson. The Unix time-sharing system. BSTJ, 57:6 (July-August, 1978), 1905-1929. • K. Thompson. Unix implementation. BSTJ, 57:6 (July-August, 1978), 1931-1946.

  3. Features • A hierarchical filesystem incorporating demountable volumes • Compatible file, device, interprocess communication • The ability to initiate asynchronous processes • System command language selectable on a per-user basis • Over 100 subsystems including a dozen languages • High degree of portability

  4. Unix History • First version (ca. 1969-70) on DEC PDP-7 and PDP-9. • Second version on unprotected DEC PDP-11/20. • Third version with multiprogramming on PDP-11/34, 40, 45, 60, 70. • Fourth version on DEC PDP-11/70 and Interdata 8/32. February, 1971: PDP-11 Unix first operational. Familiar epoch: midnight, January 1, 1970.

  5. Economics of the 1970s • Hardware cost: $40,000 • Software cost: two man-years • Cost recovery for disk space

  6. PDP-11/70 Platform • 16-bit word (8-bit byte) • 768 KBytes core memory • System kernel 90 KBytes • Minimal system 96 Kbytes • Two 200 MByte moving-head disks • 20 variable speed (300 to 1200 baud) communication interfaces • 12 communication lines (9600 baud) • Synchronous interfaces (2400 and 4800 baud) for inter-machine file transfer • Nine-track tape, line printer, phototypesetter • Voice synthesizer, digital switching network, chess machine

  7. A Unix System in 1978 • User population: 125 • Maximum simultaneous users: 33 • Directories: 1630 • Files: 28300 • Disk blocks (512-byte) used: 301,700 • Daily command invocations: 13500 • Daily (non-idle) CPU hours: 9.6 • Daily connect hours: 230

  8. The C Programming Language • System re-coded in C in summer, 1973 • 1/3 bigger than assembler language version

  9. Observation "The most important role of the system is to provide a file system." (Page 1907)

  10. Filesystem Properties • Internal file structure controlled by application programs • Internal file structure not imposed by system • Hierarchy • Directories as files • "." and ".." convention • Links • Restrictions on namespace topology • Mountable volumes

  11. File Types • Ordinary • Directory • Special • Character • Block

  12. Filesystem Representation • i-Number • i-List • i-Node

  13. File Properties • Owner user-id • Owner group-id • Protection bits • Physical disk (or tape) address of contents • Size • Time of creation • Time of last use • Time of last modification • Number of links • File type

  14. File Protection • User (owner) read, write, execute • Group read, write, execute • Others read, write, execute • Set-user-id --drwxwrxrwx • "Execute" permission on directories

  15. Filesystem API • filep = open (name, flag) • filep = create (name) • n = read (filep, buffer, count) • n = write (filep, buffer, count) • location = lseek (filep, offset, base)

  16. File Space Management • Blocks 0 through 9 indicated in i-Node • Blocks 10 through 137 indicated indirectly • Blocks 138 through 16521 indicated doubly indirectly • Blocks 16522 and higher indicated triply indirectly Performance Techniques: caching and read-ahead

  17. Special File Naming • Example Name: /dev/foo • Major Device Number: selects driver code • Minor Device Number: selects device instance within class

  18. File System Data Structure

  19. Process Management API • processid = fork () • execute (file, arg1, ..., argN) • processid = wait (& status) • exit (status) • filep = pipe () • Traps, Signals • Minimalist, integrated process synchronization

  20. Process Control Data Structure

  21. The Shell and Reusability • Redirection • Stdin, stdout, stderr • Pipes and filters • Argument parsing and globbing • Multitasking • Basic control structures

  22. Perspective "The success of the Unix system is largely due to the fact that it was not designed to meet any predefined objectives.“ (Page 1926) Motivation: dissatisfaction with existing facilities.

  23. Retrospective Design Considerations • Easy to write, test, run programs • Interactive use • Constraints on size • Self-maintenance • Available source code

  24. Easy Programming • Device-independent file abstraction • No "access methods" • Few system constraints on program

  25. Influences • fork () from GENIE time-sharing system • I/O API from Multics • Shell concept from Multics • Implementing "system" code as user primitives from Multics

  26. Unix Implementation • 10,000 lines of C code • 1,000 lines of assembler code • 800 lines not possible in C • 200 lines for efficiency

  27. Observation "Throughout, simplicity has been substituted for efficiency." (Page 1932)

  28. Observation "The UNIX kernel is an I/O multiplexer more than a complete operating system. This is as it should be." (Page 1945)

  29. Unsupported Features • File access methods • File disposition • File formats • File maximum size • Spooling • Command language • Logical records • Physical records • Logical file names • Multiple character sets • Operator and operator console • Login and logout

More Related