Linux and the Free Software Movement
Invention of UNIX
Produced in 1970s at Bell Labs Linux and the Along with C programming language Rapidly spreads in academic world Free Software Movement Key advantages Starts simple and easily ported Core (“kernel”) is small Other components optional, e.g. the shell I202, Fall 2003 Tools mixed and matched as needed, shared library grows Session 9 The “pipe” mechanism allows interconnection of tools Thomas Haigh Capabilities gradually added Networking Virtual memory
i303, Session 9, Thomas Haigh 1 i303, Session 9, Thomas Haigh 2
Unix in the 1980s Stallman and GNU Standard OS for Computer science research and Free Software Foundation teaching Established by Richard Stallman, “last” MIT hacker Internet use Coordinates GNU project Emerging market for workstation, e.g. SUN GNU is Not Unix (recursive name) Gets X-Windows graphics Intended to produce open, free version of Unix support GCC (GNU C Complier) is biggest success
Never succeeds much on PC Stallman is fanatical, intolerant Hampered by fragmentation Ideological rather than pragmatic argument Many different versions Opposed to closed, proprietary software (even non- AT&T tries to make money free manuals) from selling it i303, Session 9, Thomas Haigh 3 i303, Session 9, Thomas Haigh 4
GNU GPL Linux: Origins
Personal project of Linus Torvalds Extreme commitment to open source Begun in 1991 as undergrad in Finland Inspired by the teaching system MINIX GNU General Public License (GPL) Free version of the UNIX kernel “copyleft” license Ran on Intel computers anything incorporating GPL Very early version released on net licensed code must be Others pitch in with drivers, patches, etc. issued under GPL license (including public source Torvalds continues to manage code) process Prevents incorporation into Pick who to trust, how to evolve kernel commercial products When to release new version, etc.
i303, Session 9, Thomas Haigh 5 i303, Session 9, Thomas Haigh 6
1 Linux: Commercialization Linux: Today
Estimated #2 in overall server OS market Under GPL, Linux is free Also gaining share in embedded systems Provides missing kernel need for GNU project Very popular among But, “distributions” are sold Computer scientists Bundle tested and compatible assortments Hobbyists and organizations with little money of thousands of different programs & drivers People needing web servers or basic file/print stuff Add installation routines, non-free products Gained almost all features of modern UNIX & technical support Support for multiple processors Dozens of rival versions Ever wider range of hardware support Some targeted at different niches Server versions can cost thousands of Ported to an enormous number of platforms dollars IBM backing in a big way, using for mainframes Runs commercial software, e.g. Oracle, DB2
i303, Session 9, Thomas Haigh 7 i303, Session 9, Thomas Haigh 8
Limits of Linux The BSDs
Tiny share of desktop/laptop market Family of UNIX derived free systems Limited support for office applications & games FreeBSD, OpenBSD, etc.
Still much harder than Windows to administer BSD = Berkeley Standard Distribution Installing & software is a pain Started as a bundle of UNIX tools Hackers love flexibility, but price is confusion Eventually became full OS
Now it’s cloned UNIX, what next? Widely used today What are non-ideological benefits? Different license, so code can be used in commercial Is copying Windows interface best plan? products MacOS X is based on one
i303, Session 9, Thomas Haigh 9 i303, Session 9, Thomas Haigh 10
Open Source vs. Free Free Software Projects
Two kinds of free: Internet is ideal open source environment Free as in freedom Swapping of patches, download of new versions Able to inspect code, modify, create own version Original browsers and servers were open Developed collaboratively So was BSD code for TCP/IP Free as in beer CVS system coordinates code and patches Allows splitting into “trees” Doesn’t cost money Examples: Not all open source software necessarily free Sendmail Another Berkeley program, developed in 1970s Until 1980s, operating system code usually public Handles most Internet mail transport Some software cost free but closed Mozilla Reworking of Netscape browser source code
i303, Session 9, Thomas Haigh 11 i303, Session 9, Thomas Haigh 12
2 Apache Non-Internet Projects
World’s most widely used webserver Open Office Free version of Sun’s Star Office suite July 2003 has 63% of all websites Word processor, spreadsheet, etc. Began as patch to original NCSA code Mame videogame emulator By 1995, completely rewritten Core team coordinate thousands of drivers Less restrictive “Apache license” WINE (Wine Is Not an Emulator) Commercial versions can be made Implementation of Windows API for Linux Commercial off-shoots for games and MSOffice
i303, Session 9, Thomas Haigh 13 i303, Session 9, Thomas Haigh 14
Current Limits of Open Source Raymond Various projects Author of “fetchmail” Great for stuff hackers like to do Maintainer of “Jargon File” (Hackers Web servers, File, print servers, routers, etc. Dictionary) Hacker type programming tools Strong personality
Science & engineering applications Libertarian Weak on stuff you don’t for fun Science fiction fan Gun enthusiast Database software Free markets guy Office and “productivity” applications Big time self promoter Corporate apps like accounting Widely interviewed This may be a fundamental limit Made paper fortune in Linux boom Popularized “open source” over “free software” i303, Session 9, Thomas Haigh 15 i303, Session 9, Thomas Haigh 16
Cathedral and Bazaar Reading “Cathedral”
Linux as template for new kind of large scale Don’t get too confused by early specifics programming project POP3, SLIP, MTA vs. MDA etc. “Cathedral” is traditional approach Look for the principles & assumptions Elaborate design and planning Started with a personal problem to solve Centralized control Produces single huge and finished structure presence of multiple existing free systems to fetch POP mail onto his PC “Bazaar” is collaborative version Incremental, frequent releases Ability to adapt existing system Debugging & improvement by users Releasing early, collaborating with users
i303, Session 9, Thomas Haigh 17 i303, Session 9, Thomas Haigh 18
3 Latter Part More Important Context: Fred Brooks Classic book “The Mythical Man Raises some big issues Month” Are “all bugs shallow with enough eyeballs”? Described his leadership of IBM Can “heroic” hacker debugging compensate for flaws in initial OS/360 project in 1960s design? A founding work of software Can all great software start from personal need? engineering Problems of managing programming Does this work for all kinds of software? different from managing manual E.g. accounting package with major bugs will never be used work E.g. “Adding more programmers to a Social issues late project makes it later” Are programmers motivated by desire for recognition? Raymond assumes his audience Does a strong leader need to dominate project? know Brooks & that tying his ideas into this will make people take them seriously
i303, Session 9, Thomas Haigh 19 i303, Session 9, Thomas Haigh 20
Context: Egoless Programming
Psychology of Computer Programming by Gerald Weinberg Another 1970s classic Based on experience of doing and teaching programming Treats code as something to be read Should have elegant style Popularizes “walk through” & “pair programming” Programmers must be “ego less”, accept constructive criticism. Major influence on modern “extreme programming” Raymond says that his model builds on Weinberg’s insights
i303, Session 9, Thomas Haigh 21
4