CSC209: Software Tools and Systems Programming

Total Page:16

File Type:pdf, Size:1020Kb

CSC209: Software Tools and Systems Programming COURSE INTRODUCTION Software Tools EECS2031 Winter 2018 Manos Papagelis Thanks to Karen Reid and Alan J Rosenthal for material in these slides What EECS2031 is about? A useful way to think about this course is that it is about the environment in which your programs run understanding the environment developing tools: for interacting with the environment for getting information about it for influencing it learning a new language (or two) to help us Course Overview Part I (UNIX, Shell Programming) ~3 Weeks UNIX Understanding the Shell and Shell Programming Part II (C Programming) ~7 Weeks C Fundamentals, Input/Output Expressions, Selection Statements, Loops, Types Arrays, Functions Pointers, Arrays, Strings Structures, Dynamic Memory Management Part III (UNIX Programming) ~2 Weeks Processes, Signals, Pipes Self Study Topics Using Unix - some tutorial coverage Using software tools an editor – vi, emacs, nedit, … a debugger – gdb, … an IDE – eclipse, … Readings Environment Environment: EECS Computing Facility UNIX/LINUX system SSH to eecs.yorku.ca Use your EECS login and password Windows & Mac Users Windows: If you want to do some of your work on your own machine, you will need to install cygwin: http://www.cygwin.com/ MacOS: Use the “Terminal” application For my interest How many of you have UNIX/LINUX knowledge? How many of you have done some shell scripting? How many of you have programmed in C or had attended an introductory course in C? How many of you have understanding of processes, pipes, signals in UNIX environment? Today’s Overview Course Administrivia Unix & Unix as a File System The Big Picture EECS2031 Administrivia Course Information Lectures (CLH E): Tue, 9:30-10:30am Thu, 9:30-10:30am Tutorials/labs (LAS1006): Lab01: Tue, 13:00-15:00 Lab02: Wed, 13:00-15:00 Course Website (soon online): https://www.eecs.yorku.ca/~papaggel/courses/eecs2031/ Communication Office hours: TR 10:30am – 11:30am by appointment in special cases Email: Subject must include EECS2031 Email is a formal method of communication: State your question clearly, with enough context Sign it (Name, login and student # are the most useful) Course Textbooks • C Programming: A Modern Approach, Second Ed., K.N. King. W. W. Norton and Company, 2008. • (optional) Unix System Programming Second Edition, Keith Haviland, Dina Gray, Ben Salama. Addison-Wesley, 1998. • (optional) The Linux Programming Interface, Michael Kerrisk. No Starch Press, 2010. Assignments A1: Shell Use and Programming A2: Tools in C (Loops, Arrays, Strings) A3: More tools in C (Dynamic Memory Management, Files, Linked Lists) All assignments, tests and exam are individual work Assignment Policies Assignments are due at 11:59 p.m. on the due date - check website for final due dates Late Assignment Policy: 3 grace days Code must work on EECS servers Marking assignment 1, 2, 3: (mostly) based on auto-markers Code that does not compile gets zero Did you catch that? Code that does not compile will receive a grade of 0 Submitting Assignments You will be using the submit tool to manage and submit your assignments Details will be provided on how to submit your assignments Do not wait until the last minute to try to commit your assignment for the first time Plagiarism “The work you submit must be your own, done without participation by others. It is an academic offense to hand in anything written by someone else without acknowledgement.” You are not helping your friend when you give them a copy of your assignment You are hurting your friend when you ask them to give you a copy of their assignment What is Cheating? Cheating is copying parts or all of another student’s assignment including code from books, web sites, other courses without attribution getting someone else to do substantial parts of your assignment giving someone else your solution Cheating is not helping to find a bug in a friend’s code (be careful) helping each other understand man pages or example code A few do’s and don’ts Do ask questions if you don’t understand something work together to understand concepts/assignments use tutorials/labs and office hours read textbook or provided online material before class Don’t hand in other peoples’ work (it’s cheating) harass others (see the University’s policies) distract or disrupt the class (it’s immature) Course Marking Scheme Work Weight Comment 3 Assignments 45% 15% each Midterm Test 15% In-class, paper-based You must get >=40% in the Final Exam 40% final exam to pass the course UNIX Unix History Developed in 1969 (in assemply) by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, Michael Lesk and Joe Ossanna. Dennis Ritchie and Ken Thompson ported an enhanced version to a PDP-11/20 in 1970. Ritchie and Rudd Canaday ported a cut down version of the BCPL language to Unix, calling it B. Pipes and C (successor of B) were added in 1971-73 “License to universities, but no support.”, BTL Lawyers This led to extensive sharing More Unix History Canadian connection: Brian Kernighan, Rob Pike, Bill Reeves, ... Berkeley Software Distribution grew out of collecting and distributing bug fixes (Led to FreeBSD, NetBSD) Bill Joy started at Berkeley but joined the startup Sun Microsystems in 1982 1991, Linus Torvalds (Linux kernel initiator) posts a note describing his experimental OS modeled on Minix (Unix-like OS) Evolution of Unix and Unix-like Systems Minix Linux MacOSX FreeBSD Android … Why Unix? Multi-user, multi-tasking computer operating system Available on a number of platforms Shares computer resources sensibly Permits manipulation of files, processes, and programs Allows inter-process and inter-machine communication Permits access to its operating features The Unix Philosophy Write programs that do one thing and do it well Write programs to work together Write programs that handle text streams, because that is a universal interface Ways of Looking at a System Some of the ways we look at UNIX: As an end user As an environment for programs to run As a file system - part of the overall environment UNIX: End-user Interaction Unix has a rich set of tools for dealing with its own structures and data: need to be familiar with them to manage (your portion of) the system you may already know some (i.e., move around filesystem, list, copy and remove files, run programs and performing other tasks) Involves learning how to write UNIX shell scripts UNIX: Environment for Programs How programs get ready to run What happens when a program is run What happens when your program writes to/reads from a file How your code can start other pieces of code and interact with them how programs "talk" to each other how programs "talk" to the outside world (networks) UNIX: As a File System What are files? what are directories? how are they organized, maintained? what information is accessible about them? What different file types are there? How to access them? Unix as a File System Files and Directories “Everything is a file.” Unix provides a file interface for all Input/Output. regular files Try ls –l /dev and look directories at the permissions string. devices crw------- brw------- video (block) c = character, b = block keyboard (character) sound (audio) network (block) File interface = open, read, write, close File System Hierarchy Everything starts in the “root” directory whose name is “/” A directory is a file that contains directory entries A directory entry maps a file name to an inode An inode is the data structure that contains information about a file, including which disk blocks contain the file data File System Hierarchy / hard link u h usr u1 u2 u3 bin lib c4 csc209h symbolic reid 01 links winter c4reidka Use df to see all the different disk pub partitions on EECS servers. repo Haviland File Systems and Links Ch. 4.5, 4.3, 3.2 One file system per disk partition A file system can be mounted at any point in the directory tree of another file system A hard link is an entry in a directory file which specifies an inode There can be several hard links to a file, but hard links cannot cross file systems A soft link (symbolic link) is a small file containing the path name of the linked file or directory Soft links work across file systems Directories and Links directory file 2 . 2 .. 14 u 46505 home 139412 cdrom 201345 lib % ls –l / drwxr-xr-x 2 root root 4096 Nov 8 17:56 bin/ drwxr-xr-x 2 root root 4096 Aug 10 14:46 cdrom/ drwxrwsr-x 2 root staff 4096 Feb 8 2002 home/ drwxr-xr-x 6 root root 4096 Sep 2 15:26 lib/ lrwx------ 1 root root 6 Sep 2 15:32 u -> /cdf/u/ Inodes and Directory Entries Inode 12345 Directory Entry size owner UID, GID 12345 afile access time modified time creation time link and block counts permissions direct pointers to file blocks single indirect pointer pointers to double indirect pointer next file blocks triple indirect pointer Haviland Stat Ch 3.3 stat(): A Unix system call that returns useful data about a file inode greywolf% stat csc209h File: `csc209h' Size: 512 Blocks: 2 IO Block: 8192 directory Device: 16h/22d Inode: 27612 Links: 7 Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 517/ csc209h) Access: 2010-01-06 11:32:44.293409000 -0500 Modify: 2010-01-04 12:06:15.987312000 -0500 Change: 2010-01-04 12:06:15.987312000 -0500 Permissions Ch 3.1 -rwxr-xr-x 1 reid 0 Jan 6 11:35 allexec* -r--r--r-- 1 reid 0 Jan 6 11:35 allread dr-xr-xr-x 2 reid 512 Jan 6 11:36 dir-read/ dr-x--x--x 2
Recommended publications
  • UNIX and Computer Science Spreading UNIX Around the World: by Ronda Hauben an Interview with John Lions
    Winter/Spring 1994 Celebrating 25 Years of UNIX Volume 6 No 1 "I believe all significant software movements start at the grassroots level. UNIX, after all, was not developed by the President of AT&T." Kouichi Kishida, UNIX Review, Feb., 1987 UNIX and Computer Science Spreading UNIX Around the World: by Ronda Hauben An Interview with John Lions [Editor's Note: This year, 1994, is the 25th anniversary of the [Editor's Note: Looking through some magazines in a local invention of UNIX in 1969 at Bell Labs. The following is university library, I came upon back issues of UNIX Review from a "Work In Progress" introduced at the USENIX from the mid 1980's. In these issues were articles by or inter- Summer 1993 Conference in Cincinnati, Ohio. This article is views with several of the pioneers who developed UNIX. As intended as a contribution to a discussion about the sig- part of my research for a paper about the history and devel- nificance of the UNIX breakthrough and the lessons to be opment of the early days of UNIX, I felt it would be helpful learned from it for making the next step forward.] to be able to ask some of these pioneers additional questions The Multics collaboration (1964-1968) had been created to based on the events and developments described in the UNIX "show that general-purpose, multiuser, timesharing systems Review Interviews. were viable." Based on the results of research gained at MIT Following is an interview conducted via E-mail with John using the MIT Compatible Time-Sharing System (CTSS), Lions, who wrote A Commentary on the UNIX Operating AT&T and GE agreed to work with MIT to build a "new System describing Version 6 UNIX to accompany the "UNIX hardware, a new operating system, a new file system, and a Operating System Source Code Level 6" for the students in new user interface." Though the project proceeded slowly his operating systems class at the University of New South and it took years to develop Multics, Doug Comer, a Profes- Wales in Australia.
    [Show full text]
  • The Strange Birth and Long Life of Unix - IEEE Spectrum Page 1 of 6
    The Strange Birth and Long Life of Unix - IEEE Spectrum Page 1 of 6 COMPUTING / SOFTWARE FEATURE The Strange Birth and Long Life of Unix The classic operating system turns 40, and its progeny abound By WARREN TOOMEY / DECEMBER 2011 They say that when one door closes on you, another opens. People generally offer this bit of wisdom just to lend some solace after a misfortune. But sometimes it's actually true. It certainly was for Ken Thompson and the late Dennis Ritchie, two of the greats of 20th-century information technology, when they created the Unix operating system, now considered one of the most inspiring and influential pieces of software ever written. A door had slammed shut for Thompson and Ritchie in March of 1969, when their employer, the American Telephone & Telegraph Co., withdrew from a collaborative project with the Photo: Alcatel-Lucent Massachusetts Institute of KEY FIGURES: Ken Thompson [seated] types as Dennis Ritchie looks on in 1972, shortly Technology and General Electric after they and their Bell Labs colleagues invented Unix. to create an interactive time- sharing system called Multics, which stood for "Multiplexed Information and Computing Service." Time-sharing, a technique that lets multiple people use a single computer simultaneously, had been invented only a decade earlier. Multics was to combine time-sharing with other technological advances of the era, allowing users to phone a computer from remote terminals and then read e -mail, edit documents, run calculations, and so forth. It was to be a great leap forward from the way computers were mostly being used, with people tediously preparing and submitting batch jobs on punch cards to be run one by one.
    [Show full text]
  • The Strange Birth and Long Life of Unix - IEEE Spectrum
    The Strange Birth and Long Life of Unix - IEEE Spectrum http://spectrum.ieee.org/computing/software/the-strange-birth-and-long-li... COMPUTING / SOFTWARE FEATURE The Strange Birth and Long Life of Unix The classic operating system turns 40, and its progeny abound By WARREN TOOMEY / DECEMBER 2011 They say that when one door closes on you, another opens. People generally offer this bit of wisdom just to lend some solace after a misfortune. But sometimes it's actually true. It certainly was for Ken Thompson and the late Dennis Ritchie, two of the greats of 20th-century information technology, when they created the Unix operating system, now considered one of the most inspiring and influential pieces of software ever written. A door had slammed shut for Thompson and Ritchie in March of 1969, when their employer, the American Telephone & Telegraph Co., withdrew from a collaborative project with the Photo: Alcatel-Lucent Massachusetts Institute of KEY FIGURES: Ken Thompson [seated] types as Dennis Ritchie looks on in 1972, shortly Technology and General Electric after they and their Bell Labs colleagues invented Unix. to create an interactive time-sharing system called Multics, which stood for "Multiplexed Information and Computing Service." Time-sharing, a technique that lets multiple people use a single computer simultaneously, had been invented only a decade earlier. Multics was to combine time-sharing with other technological advances of the era, allowing users to phone a computer from remote terminals and then read e-mail, edit documents, run calculations, and so forth. It was to be a great leap forward from the way computers were mostly being used, with people tediously preparing and submitting batch jobs on punch cards to be run one by one.
    [Show full text]
  • Cannibal Code
    KIll it with Fire © 2021 by Marianne Bellotti 2 CANNIBAL CODE f technology advances in cycles, you might assume the best legacy I modernization strategy is to wait a decade or two for paradigms to shift back and leapfrog over. If only! For all that mainframes and clouds might have in common in general, they have a number of significant dif- ferences in the implementation that block easy transitions. While the architectural philosophy of time-sharing has come back in vogue, other components of technology have been advancing at a different pace. You can divide any single product into an infinite number of elements: hard- ware, software, interfaces, protocols, and so on. Then you can add specific techniques within those categories. Not all cycles are in sync. The odds of a modern piece of technology perfectly reflecting an older piece of tech- nology are as likely as finding two days where every star in the sky had the exact same position. So, the takeaway from understanding that technology advances in cycles isn’t that upgrades are easier the longer you wait, it’s that you should avoid upgrading to new technology simply because it’s new. KIll it with Fire © 2021 by Marianne Bellotti Alignable Differences and User Interfaces Without alignable differences, consumers can’t determine the value of the technology in which they are being asked to invest. Completely innovative technology is not a viable solution, because it has no refer- ence point to help it find its market. We often think of technology as being streamlined and efficient with no unnecessary bits without a clear purpose, but in fact, many forms of technology you depend on have ves- tigial features either inherited from other older forms of technology or imported later to create the illusion of feature parity.
    [Show full text]
  • A Short UNIX History How Our Culture Created Linux
    A Short UNIX History or How Our Culture Created Linux Clement T. Cole Witch Doctor Compaq [email protected] A UNIX Family History RIG CMU CMU CMU CMU OSF1 Tru64 Linux Accent Mach Mach Mach Linux . 1.X Other Players 2.5 3.0 99 Minix Multics Idris BBN GNU C 386/BSD FreeBSD Generic TCP/IP Net 2.0 Net 1.0 4BSD 4.1A UCB BSD 2BSD 3BSD 4.1BSD 4.2BSD 4.3BSD 4.3Tahoe 4.3Reno 4.4BSD Research X Windows X 10 X 11 32V 1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th Ed Ed Ed Ed Ed Ed Ed Ed Ed Ed NT/OS2 NT/Win PWB PWB/UNIX PWB 1.0 PWB 2.0 Sys III Sys V Sys V. SVR3 SVR4 SVR4/ 2 ESMP µSoft/SCO µSoft/Xenix SCO/Xenix SCO/UNIX UNIXWARE ‘72 ‘73 ‘74 ‘75 ‘76 ‘77 ‘78 ‘79 ‘80 ‘81 ‘82 ‘83 ‘84 ‘85 ‘86 ‘87 ‘88 ‘89 ‘90 ‘91 ‘92 ‘93 Clem Cole Themes ◆ Something new is really something old. ◆ The Open Source Culture predates UNIX and Linux. ◆ Evolution is good. ◆ Fighting is not always bad, but learn when it’s good enough and stop fighting. Clem Cole Agenda ◆ Technical History ◆ Legal History ◆ What it all means Clem Cole A Word on Engineers “Good programmers write good programs. Great programmers start and build upon other great programmer’s work.” Unknown origin, often attributed to Fred Brooks. Clem Cole Multics ◆ MULTiplexed Information and Computing Service ❖ or “Many Unbelievably Large Tables In Core Simultaneously.” ❖ Actually very cool system, see: The Multics system; an Examination of its Structure, Elliott I.
    [Show full text]
  • Contents of Lecture 8 on UNIX History
    Contents of Lecture 8 on UNIX History Before UNIX Origin of UNIX Commerical wars and other threats Linux Game over. UNIX won. Continued work by the original UNIX team: Plan 9 and Inferno Microkernels vs Monolithic kernels and other issues. Jonas Skeppstedt ([email protected]) Lecture 8 2014 1 / 67 CTSS The Compatible Time-Sharing System was designed at MIT in the early 1960s. Supported up to 32 simultanously logged in users: proof of the time-sharing idea. Ran on IBM 7090 with 32K 36 bit words, of which the monitor used 5K. User programs were swapped in from a magnetic drum (disk). Multilevel feedback scheduling queue. Higher priorities have shorter time quantum Initial priority (quantum) reflects size of the executable file so it can be swapped in and run. CTSS was extremely successful and used as late as 1972: basis for MULTICS. Jonas Skeppstedt ([email protected]) Lecture 8 2014 2 / 67 MULTICS Multiplexed Information and Computing Ser vice designed by MIT, AT&T, and GE. AT&T and GE provided telephone and electricity ser vices as utilities. GE also produced computers, eg the GE-645 used in MULTICS development. Why not do the same with computing power? The goal was one computer for 100,000s users in Boston (on hardware equivalent to about 386 or 486). Designed as an extension to CTSS with virtual memory and sophisticated protection (more levels than UNIX user vs superuser). MULTICS was written in PL/1 and consisted of about 300,000 lines. Jonas Skeppstedt ([email protected]) Lecture 8 2014 3 / 67 End of MULTICS Lots of people were very enthusiastic about MULTICS, including the newly graduated Ken Thompson from Berkeley.
    [Show full text]
  • The Development of the C Languageߤ
    The Development of the C Languageߤ Dennis M. Ritchie Bell Labs/Lucent Technologies Murray Hill, NJ 07974 USA [email protected] ABSTRACT The C programming language was devised in the early 1970s as a system implementation language for the nascent Unix operating system. Derived from the typeless language BCPL, it evolved a type structure; created on a tiny machine as a tool to improve a meager programming environment, it has become one of the dominant languages of today. This paper studies its evolution. Introduction This paper is about the development of the C programming language, the influences on it, and the conditions under which it was created. For the sake of brevity, I omit full descriptions of C itself, its parent B [Johnson 73] and its grandparent BCPL [Richards 79], and instead concentrate on characteristic elements of each language and how they evolved. C came into being in the years 1969-1973, in parallel with the early development of the Unix operating system; the most creative period occurred during 1972. Another spate of changes peaked between 1977 and 1979, when portability of the Unix system was being demonstrated. In the middle of this second period, the first widely available description of the language appeared: The C Programming Language, often called the ‘white book’ or ‘K&R’ [Kernighan 78]. Finally, in the middle 1980s, the language was officially standardized by the ANSI X3J11 committee, which made further changes. Until the early 1980s, although compilers existed for a variety of machine architectures and operating systems, the language was almost exclusively associated with Unix; more recently, its use has spread much more widely, and today it is among the lan- guages most commonly used throughout the computer industry.
    [Show full text]
  • Berkeley Odyssey
    BERKELEY ODYSSEY Ten years of BSD history by Marshall Kirk McKusick Ken Thompson and Dennis Ritchie presented the first UNIX paper at the Symposium on Operating Systems Principles at Pur­ due University in November, 1973. Professor Bob Fabry was in attendance and immediately became interested in obtaining a f copy of the system to experiment with at Berkeley. - At the time, Berkeley had only large mainframe computer systems doing batch processing, so the first order of business was to get a PDP-11/45 suitable for running the then current Version 4 of UNIX. The Computer Science Department, together with the Mathematics Department and the Statistics Department were able to jointly purchase a PDP-11/45. In January, 1974, a Version 4 tape was delivered and UNIX was installed by graduate student ¥<~ Keith Standiford. Although Ken Thompson was not involved in the installation — as he had been for most systems up to that time — his exper­ tise was soon needed to determine the cause of several strange system crashes. Because Berkeley had only a 300 baud acoustic- coupled modem without auto answer capability, Thompson would call Standiford in the machine room and have him insert the phone into the modem; in this way Thompson was able to remote­ ly debug crash dumps from New Jersey. 9mm £££ SK wmmMm&?<%?+•*>' '-•fy&Z j?m gis£^t - WMm ^ssg®mmm m^f, ?*S£ SP mm? r^^^m^^S?^^ :%%&m. ':•! '-^SS&^i * Jfjfe BERKELEY ODYSSEY Many of the crashes were project became the first group in immediate interest in the new caused by the disk controller's the Computer Science department system.
    [Show full text]
  • CSC209: Software Tools and Systems Programming Administrivia More
    Administrivia • Email: [email protected] CSC209: Software Tools and – Email must include your name. – Please set up your mail program to use plain text, Systems Programming not html. – Email is a formal method of communication: Richard Krueger • Use proper English. • State your question clearly, with enough context. Email : [email protected] • Sign it. Office hours: BA 3234 2 More on email Course Information • Not helpful – I used the makefile you gave us, but my program • Check the course information sheet (handed doesn’t compile. What could be wrong?” out and on the course web page) for – My program gets a seg fault error message, but I – Office hours don’t know why. – Contact information • Much better – Assignment schedule – When I compile my program, I get the following error message. It seems to indicate that there is a problem • The course web page is the official source of with the following lines of code. (cut and paste error announcements. messages and code.) http://www.cs.utoronto.ca/~csc209h/ – The debugger tells me that the seg fault I’m getting is • Make sure you have the prerequisites! on the following line. I don’t see what the problem is with this line. (file included below) 3 4 Assignments Submitting Assignments • A1: Shell programming (Bourne shell) • You will be using CVS to manage and submit • A2: Manipulating files and directories (in C) your assignments. • A3: Processes (in C) • The repositories will be set up this week. • A4: Sockets (in C) • You should start learning how to use it as • The assignments are best done over a couple of soon as possible.
    [Show full text]
  • Chapter 9 on the Early History and Impact of Unix Tools to Build the Tools for a New Millennium
    Chapter 9 On the Early History and Impact of Unix Tools to Build the Tools for a New Millennium “When the barbarian, advancing step by step, had discovered the native metals, and learned to melt them in the crucible and to cast them in moulds; when he had alloyed native copper with tin and produced bronze; and, finally, when by a still greater effort of thought he had invented the furnace, and produced iron from the ore, nine tenths of the battle for civilization was gained. Furnished, with iron tools capable of holding both an edge and a point, mankind were certain of attaining to civilization.” Lewis Henry Morgan “When Unix evolved within Bell Laboratories, it was not a result of some deliberate management initiative. It spread through channels of technical need and technical contact.... This was typical of the way Unix spread around Bell Laboratories.... I brought out that little hunk of history to point out that the spread and success of Unix, first in the Bell organizations and then in the rest of the world, was due to the fact that it was used, modified, and tinkered up in a whole variety of organizations.” Victor Vyssotsky “UNIX is a lever for the intellect.” John R. Mashey Iron Tools and Software Tools Our era is witnessing the birth of an important new technology, different from any in the past. This new technology is the technology of software production. The new tools of our era are tools that make it possible to produce software. Unlike the tools forged in the past, software tools are not something you can grab or hold.
    [Show full text]
  • UNIX® Evolution: 1975-1984 Part I Diversity
    UNIX® Evolution: 1975-1984 Part I ߝ Diversity Copyright © 1984, 1985, 1986 Ian F. Darwin SoftQuad Inc. Geoffrey Collyer University of Toronto ABSTRACT This article traces some of the intermediate history of the UNIX Operating System, from the mid nineteen-seventies to the early eighties. It is very slightly updated from an article that appeared as ‘‘The Evolution of UNIX from 1974 to the Present, Part 1’’ in Microsystems, November, 1984 (Vol 5, Number 11), page 44. It was intended as part 1 of 3; unfortunately that issue was also the last issue of Microsystems. This part discusses ‘‘Research UNIX’’; v6, v7 and v8, and tells the tale of many programs and subsystems that are today part of 4BSD and/or System V. 1. Introduction Nobody needs to be told that UNIX is suddenly popular today. In this article we will show you a little of where UNIX was yesterday and has been over the past decade. And, without meaning in the least to min- imise the incredible contributions of Ken Thompson and Dennis Ritchie, we will bring to light many of the others who worked on early UNIX versions, and try to show where some of the key ideas came from, and how they got into the UNIX of today. Our title says we are talking about UNIX evolution. Evolution means different things to different people. We use the term loosely, to describe the change over time among the many different UNIX variants in use both inside and outside Bell Labs. Ideas, code, and useful programs seem to have made their way back and forth ߝ like mutant genes ߝ among all the many UNIXes living in the phone company over the last decade.
    [Show full text]
  • News@UK the Newsletter of UKUUG, the UK’S Unix and Open Systems Users Group Published Electronically At
    news@UK The Newsletter of UKUUG, the UK's Unix and Open Systems Users Group Published electronically at http://www.ukuug.org/newsletter/ Volume 18, Number 2 ISSN 0965-9412 June 2009 Contents News from the Secretariat 3 Chairman's report 3 Open Tech 2009 4 EuroPython 2009 – 28th June to 4th July 2009, Birmingham, UK 4 FFII announcement: Petition to stop software patents 5 LugRadio Live 2009 announcement 5 Spring Conference report 6 Press release from the Free Software Pact 7 The Birth of UNIX 8 Instant Cloud Computing with openQRM 11 Book review: Algorithms in a Nutshell (In a Nutshell (O'Reilly)) 14 Book review: Learning JavaScript 16 Book review: MediaWiki (Wikipedia and Beyond) 17 Book review: Using Drupal 17 Book review: Masterminds of Programming 18 Book review: Ubuntu Kung Fu 19 Book review: The Google Way 20 Book review: Python for Unix and Linux System Administration 21 Contributors 22 Contacts 23 news@UK UKUUG Newsletter News from the Secretariat Jane Morrison I am very pleased to note that the Spring Conference held between the 24th and March in London was very well attended. In fact numbers really did surpass our expectations after all the gloomy reports about the recession at the beginning of the year. Since then we have been really busy organising a full schedule of events for the rest of 2009, all of which are detailed on our web site: • OpenTech 2009: Saturday 4th July • Summer Conference and Tutorials: 7th–9th August, Birmingham • Request Tracker Tutorial: 11th August, London • EuroBSDCon 2009: September 18th–20th, Cambridge • Advanced DNS Administration using BIND9: 13th October, London • Perl Tutorials: 3 separate days 24th, 25th and 26th November, London The tutorials listed above are being organised through collaboration with Josette Garcia at O'Reilly.
    [Show full text]