590 likes | 682 Vues
Explore the vast realm of UNIX tools in this lecture, covering operating system fundamentals, utilities, scripting languages, programming tools, administration, security, and networking. Discover the history, evolution, impact, and key players in the UNIX ecosystem. Join us to delve into the technical strengths, liberal licensing, open-source movement, current landscape, and the battle between UNIX and Linux.
E N D
UNIX Tools 2006 – Lecture 1 Jeffrey KornErnest Lee
What will we cover? • Operating system overview • UNIX utilities • Scripting languages • Programming tools • Administration • Security • Networking
Schedule • Lectures Wednesdays 7-9 with short break • Midterm: In class 10/25 • Final: In class 12/13 • Project due after final • Office Hour: Before class
Who cares, how do I get an A? • Assignments: 30% • Project: 35% • Midterm: 15% • Final: 20%
Available Free Online http://proquest.safaribooksonline.com
Use the Web! • Wikipedia: http://wikipedia.org • http://google.com/linux
Administrivia • Make sure you have an account • Sign up for the mailing list • Check the website regularly: CS homepage -> Course Home Pages -> G22.2245-001http://cs.nyu.edu/courses/fall06/G22.2245-001/index.htm • TAs: To be announced in 2 weeks • Assignment 0 is due before class next week
Cheating • Don’t
Cheating • Don’t • Seriously, don’t
Our Heroes Ken Thompson Dennis Ritchie
Video Games Spark Innovation PDP-7 Space Pilot
In the Beginning • UNICS: 1969 – PDP-7 minicomputer • PDP-7 goes away, rewritten on PDP-11 to “help patent lawyers” • V1: 1971 • V3: 1973 (pipes, C language) • V6: 1976 (rewritten in C, base for BSD) • V7: 1979 (Licensed, portable) PDP-11
Derivative Systems • PWB, MERT • BSD: Adds many important features (networking, job control). • AT&T enters the computer business with System III, V
Commercial Success • AIX • SunOS, Solaris • Ultrix, Digital Unix • HP-UX • Irix • UnixWare -> Novell -> SCO -> Caldera ->SCO • Xenix: -> SCO • Standardization (Posix, X/Open)
…But Then The Feuding Began • Unix International vs. Open Software Foundation (to compete with desktop PCs) • Battle of the Window Managers Openlook Motif • Threat of Windows NT resolves battle with CDE
Send in the Clones • Linux • Written in 1991 by Linus Torvalds • Most popular UNIX variant • Free with GNU license • BSD Lite • FreeBSD (1993, focus on PCs) • NetBSD (1993, focus on portability) • OpenBSD (1996, focus on security) • Free with BSD license • Development less centralized
Darwin • Apple abandoned old Mac OS for UNIX • Purchased NeXT in December 1996 • Unveiled in 2000 • Based on 4.4BSD-Lite • Aqua UI written over Darwin • Open Source
Why did UNIX succeed? • Technical strengths! • Research, not commercial • PDP-11 was popular with an unusable OS • AT&T’s legal concerns • Not allowed to enter computer business but needed to write software to help with switches • Licensed cheaply or free
The Open Source Movement • Has fueled much growth in UNIX • Keeps up with pace of change • More users, developers • More platforms, betterperformance, better code • Many vendors switching to Linux
SCO vs. Linux • Jan 2002: SCO releases Ancient Unix : BSD style licensing of V5/V6/V7/32V/System III • March 2003: SCO sues IBM for $3 billion. Alleges contributions to Linux come from proprietary licensed code • AIX is based on System V r4, now owned by SCO • Aug 2003: Evidence released • Code traced to Ancient UNIX • Isn’t in 90% of all running Linux distributions • Already dropped from Linux in July • Aug 2005: Linux Kernel Code May Have Been in SCO Does Linux borrow from ancient UNIX or System V R4?
Linux Distributions • Slackware – the original • Debian – collaboration of volunteers • Red Hat / Fedora – commerical success • Ubuntu – currently most popular, based on Debian. Focus on desktop • Gentoo – portability • Knoppix – live distribution
In the 90’s, Thompson/Ritchie developed Plan 9 which applied UNIX ideas to distributed systems • Plan 9 evolved into Inferno, used for set top boxes • Lucent had problems, many people left • Thompson retired, now at startup • Ritchie still at Lucent
The UNIX Philosophy • Small is beautiful • Easy to understand • Easy to maintain • More efficient • Better for reuse • Make each program do one thing well • More complex functionality by combining programs • Make every program a filter
The UNIX Philosophy ..continued • Portability over efficiency • Most efficient implementation is rarely portable • Portability better for rapidly changing hardware • Use flat ASCII files • Common, simple file format (yesterday’s XML) • Example of portability over efficiency • Reusable code • Good programmers write good code;great programmers borrow good code
The UNIX Philosophy ..continued • Scripting increases leverage and portability print $(who | awk '{print $1}' | sort | uniq) | sed 's/ /,/g' List the logins of a system’s users on a single line. • Build prototypes quickly (high level interpreted languages) 9,176 lines
The UNIX Philosophy ..continued • Avoid captive interfaces • The user of a program isn’t always human • Look nice, but code is big and ugly • Problems with scale • Silence is golden • Only report if something is wrong • Think hierarchically
UNIX Highlights / Contributions • Portability (variety of hardware; C implementation) • Hierarchical file system; the file abstraction • Multitasking and multiuser capability for minicomputer • Inter-process communication • Pipes: output of one programmed fed into input of another • Software tools • Development tools • Scripting languages • TCP/IP
The Operating System • The government of your computer • Kernel: Performs critical system functions and interacts with the hardware • Systems utilities: Programs and libraries that provide various functions through systems calls to the kernel
Kernel Basics • The kernel is … • a program loaded into memory during the boot process, and always stays in physical memory. • responsible for managing CPU and memory for processes, managing file systems, and interacting with devices.
UNIX Structural Layout utilities shell scripts User Space C programs system calls compilers signal handler scheduler Kernel device drivers swapper terminal printer Devices disk RAM
Kernel Subsystems • Process management • Schedule processes to run on CPU • Inter-process communication (IPC) • Memory management • Virtual memory • Paging and swapping • I/O system • File system • Device drivers • Buffer cache