Todays topics OS Society Software development models Reading

  • Slides: 21
Download presentation
Today’s topics OS & Society Software development models Reading Open Source definitions Microsoft Corp.

Today’s topics OS & Society Software development models Reading Open Source definitions Microsoft Corp. , "Some Questions Every Business Should Ask About the GNU General Public License (GPL)", 2001 Brookshear, Chapter 6 Comp. Sci 001 13. 1

OS & Software Development 1. Who writes software? 2. How are they paid for

OS & Software Development 1. Who writes software? 2. How are they paid for it? l How is software developed? Comp. Sci 001 13. 2

CS and Information Technology Comp. Sci 001 13. 3

CS and Information Technology Comp. Sci 001 13. 3

CS Interest over the years Comp. Sci 001 13. 4

CS Interest over the years Comp. Sci 001 13. 4

How about Duke? Comp. Sci 001 13. 5

How about Duke? Comp. Sci 001 13. 5

How about Intro? Comp. Sci 001 13. 6

How about Intro? Comp. Sci 001 13. 6

UNIX: History of an OS l 1969: UNIX created ä Private research project at

UNIX: History of an OS l 1969: UNIX created ä Private research project at Bell Labs ä High-level language used by system and application developers ä Good programming interface Sophisticated apps 1971: First edition released 1972: Dennis Ritchie rewrites B ä What did he call the new language? 1977: Berkeley Software Design releases BSD Unix l UNIX is ubiquitous in research institutions l l l Comp. Sci 001 13. 7

Richard Stallman’s quest l In January 1984 I quit my job at MIT and

Richard Stallman’s quest l In January 1984 I quit my job at MIT and began writing GNU software. Leaving MIT was necessary so that MIT would not be able to interfere with distributing GNU as free software. If I had remained on the staff, MIT could have claimed to own the work, and could have imposed their own distribution terms, …. I had no intention of doing a large amount of work only to see it become useless for its intended purpose: creating a new software-sharing community. Comp. Sci 001 13. 8

From software to politics? l Help change the world? Comp. Sci 001 13. 9

From software to politics? l Help change the world? Comp. Sci 001 13. 9

A post from 1991 Hello everybody out there using minix I'm doing a (free)

A post from 1991 Hello everybody out there using minix I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386 (486) AT clones. This has been brewing since april, and is starting to get ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things). I've currently ported bash (1. 08) and gcc (1. 40), and things seem to work. This implies that I'll get something practical within a few months, and I'd like to know what features most people would want. Any suggestions are welcome, but I won't promise I'll implement them : -) Linus (torvalds@kruuna. helsinki. fi) PS. Yes - it's free of any minix code, and it has a multi-threaded fs. It is NOT protable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that's all I have : -( Comp. Sci 001 13. 10

Linux Timeline l l l l 10/1991 : v 0. 02 - first usable

Linux Timeline l l l l 10/1991 : v 0. 02 - first usable Linux 01/1992 : v 0. 12 - first 'actually working' version, under GPL 03/1992 : comp. os. linux 04/1992 : v 0. 95 - capable of using X 09/1992 : Linux stops being Minix-like and becomes UNIXlike 03/1994 : 1. 0 06/1996 : 2. 0. 0 12/2003 : 2. 6. 0 l l What is Linux? ä Freely available OS ä Based on Linux kerrnel developed by Torvalds ä Collection of common UNIX utilities and programs ä Anyone who can code can make modifications to them Impact? Marketshare? ä 25% of servers ä 2. 8% of desktops • [IDC 2004] Comp. Sci 001 13. 11

Types of software Software Licenses l Proprietary (closed) software ä Public domain ä Freeware

Types of software Software Licenses l Proprietary (closed) software ä Public domain ä Freeware ä Free ä Shareware ä Open Source ä Adware ä Copylefted ä Spyware ä Semi-free l Commercial ä Commercial Academic licenses l Specific licenses ä GNU Public License ä Mozilla Public License ä Lots more… Say you buy software using (steep) student discounts that are available at the Duke Computer Store? l Can you use it when you leave Duke and are no longer a student? What do you buy when you purchase software? Comp. Sci 001 13. 12

Open source l l Commercial software license schemes ä Microsoft’s Embrace and Extend ä

Open source l l Commercial software license schemes ä Microsoft’s Embrace and Extend ä What’s a EULA? Rights ä Make copies of the program and distribute them ä Access to the software’s source code ä Make improvements to the program Results ä All contributors at same relative level ä Lots of competition in distribution or support ä Why does it work? Free Software Foundation formed in 1984 ä GNU General Public License (Copyleft) ä Seminal work produced (emacs, gnu compiler) ä Spawned different licenses like the Open Source Definition Comp. Sci 001 13. 13

What’s special about software? l Why is there no significant "Free Hardware Movement" analogous

What’s special about software? l Why is there no significant "Free Hardware Movement" analogous to the Free Software Foundation's work? l What about the One Laptop per Child Project? Comp. Sci 001 13. 14

Emerging methods in programming l Individual vs. Group, Proprietary vs. Open source Agile programming

Emerging methods in programming l Individual vs. Group, Proprietary vs. Open source Agile programming l Extreme programming l Comp. Sci 001 13. 15

Quotations from Fred Brooks l l Plan to throw one away; you will anyhow.

Quotations from Fred Brooks l l Plan to throw one away; you will anyhow. Successful software always gets changed. Good judgment comes from experience; experience comes from bad judgment The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds castles in the air, from air, creating by exertion of the imagination. Few media of creation are so flexible, so easy to polish and rework, so readily capable of realizing grand conceptual structures. Yet the program construct, unlike the poet's words, is real in the sense that it moves and works, producing visible outputs separate from the construct itself. It prints results, draws pictures, produces sounds, moves arms. The magic of myth and legend has come true in our time. One types the correct incantation on a keyboard, and a display screen comes to life, showing things that never were nor could be. . The computer resembles the magic of legend in this respect, too. If one character, one pause, of the incantation is not strictly in proper form, the magic doesn't work. Human beings are not accustomed to being perfect, and few areas of human activity demand it. Adjusting to the requirement for perfection is, I think, the most difficult part of learning to program. Comp. Sci 001 13. 16

XP and Refactoring (See books by Kent Beck (XP) and Martin Fowler (refactoring)) l

XP and Refactoring (See books by Kent Beck (XP) and Martin Fowler (refactoring)) l e. Xtreme Programming (XP) is an agile design process ä Communication: unit tests, pair programming, estimation ä Simplicity: what is the simplest approach that works? ä Feedback: system and clients; programs and stories ä Courage: throw code away, dare to be great/different l Make it run, make it right, make it fast, make it small Do the simplest thing that can possibly work (XP) l Comp. Sci 001 13. 17

Beyond software - licensing for all Comp. Sci 001 13. 18

Beyond software - licensing for all Comp. Sci 001 13. 18

http: //creativecommons. org Comp. Sci 001 13. 19

http: //creativecommons. org Comp. Sci 001 13. 19

Comp. Sci 001 13. 20

Comp. Sci 001 13. 20

Sources of material l l Organizations ä The Electronic Frontier Foundation ä Center for

Sources of material l l Organizations ä The Electronic Frontier Foundation ä Center for Democracy and Technology Media and discussion ä Wired Magazine ä Slashdot Databases of information and laws ä Lexis/Nexis ä Thomas Social issues in Computer Science ä Computer Professionals for Social Responsibility Comp. Sci 001 13. 21