83
! A •
"#%$(' "%#%$
Awk (Aho, Weinberger, and Kernighan): Een programmeertaal om gegevensbestanden je uit te manipuleren. De GNU versie wordt Gawk genoemd. Als bijvoorbeeld meerdere velden bestaande gegevensbestand is, drukt
) #+*,.- )+/1032 #54+6 2(798%:<; = $ )(>@?A2CB $ 2D?A)@E%F -G"#%$(' "%#%$ de velden 1 en 4 van iedere regels in %" # H$ I # ' " %# $ af waarvan het tweede veld de string ``abc'' bevat. Tegenwoordig wordt Awk steeds vaker vervangen door Perl.
•
Archive: Eén groot bestand dat meerdere kleinere bestanden bevat, meestal gecompresseerd om geheugenruimte te sparen. Populaire archiefformaten zijn ARJ, TAR, ZIP en ZOO.
•
ARJ: ARJ is een van de meest populaire compressiemethodes die beschikbaar zijn voor UNIX/Linux en DOS/Windows. ARJ is sinds 1990 beschikbaar en de bedenker van deze compressiemethode is Robert K Jung. ARJ bestanden hebben meetsal een .arj of .ar extensie.
B •
Bash (Bourne Again SHell): Een verbeterde versie van de Bourne Shell.
•
Bin: Directory met alle uitvoerbare programma bestanden welke gezien kunnen worden als zijnde standaard voor het GNU/Linux systeem.
•
Binaries: Broncode die gecompileerd is tot uitvoerbare bestanden.
•
Bourne Shell: A popular command line shell offering many advantages over the DOS command prompt.
•
Bzip2: A newer file compression program for UNIX/Linux, providing smaller file sizes than Gzip.
C •
CGI (Common Gateway Interface): Used on Web servers to transmit data between scripts and/or applications and then return the data to the Web page or browser. CGI scripts are often created using the Perl language, and can generate dynamic Web content (including e-commerce shopping baskets, discussion groups, survey forms, current news, etc.).
•
Client: programma, dat voor zijn werking afhankelijk is van informatie van een server.
•
Cluster: Een netwerk van werkstations met Linux (zie ook Beowulf).
•
Compileren,compiler: Het omzetten van broncode naar uitvoerbare binaire code (een werkend programma) dmv een programma genaamd compiler. In GNU/Linux is dit gcc.
83
84 •
Copyleft: De benaming voor diversen copyright overeenkomsten die bij vrijwel alle GNU/Linux zaken gehanteerd worden.
•
CSS (Cascading Style Sheets): CSS is een mechanisme om een bepaalde stijl (vb.: lettertype, kleur) toe te passen op Web documenten. Style Sheets bepalen hoe een document wordt weergegeven op een scherm of op een afdruk. Er zijn twee W3C (W3 Consortium) aanbevelingen (CSS1 en CSS2).
•
CVS (Concurrent Version System): CVS is een front-end voor RCS. RCS is verantwoordelijk voor het beheren van verschillende versies van een bestand. CVS gebruikt dit versie beheersysteem zodat het mogelijk wordt voor verschillende ontwikkelaars tegelijkertijd hetzelfde bestand te bewerken. CVS is o.a. in gebruik bij populaire opensource projecten zoals Mozilla, Apache, SAMBA, GIMP, KDE en GNOME.
D •
Daemon: Programma dat op de achtergrond draait om bepaalde taken uit te voeren zoals het aansturen van printer, modem, system logs, enz.
•
Dependencies: Een bepaald programma is afhankelijk van andere bestanden. Deze afhankelijkheid wordt de dependencies genoemd. Zonder deze bestanden kan dit programma niet uitgevoerd worden.
•
Desktop: Bureaublad, grafische omgeving met achtergronden, icoonen en allerlei programma's die dezelfde vormgeving hebben. De meeste van deze programma's zijn niet gebonden aan een desktop omgeving, dus bijv. een GNOME E-mail programma kan , met de bijbehorende libraries, gebruikt worden in KDE, het heeft dan natuurlijk niet de vormgeving.
•
Distributies, distro's: Benaming voor de verschillende 'merken' Linux zoals Debian, Redhat, Mandrake, Slackware, Suse enz. Deze distro's kunnen gezien worden als verschillend geconfigureerde GNU/Linux systemen, met ieder zijn eigen installatie programma's en documentatie. Het enigste waar zij in verschillen zijn de uiterlijkheden en de configuratie, verder is alles wat geschikt is voor GNU/Linux, geschikt voor alle distro's.
E •
ECMAscript 262 (Javascript): Sinds de introductie van JavaScript in 1995 door Netscape, is JavaScript een wereldwijd geaccepteerde scripting taal geworden. Op basis van de JavaScript specificatie heeft Netscape in samenwerking met ECMA (a European association for standardizing information and communications systems) de ECMA-262 (ECMAScript) standard ontwikkeld. Overeenkomstig met de toewijding van Netscape voor open standards is JavaScript volledig compatibel met ECMA-262. De broncode van JavaScript is beschikbaar op mozilla.org.
F •
Firewall: Een manier om al het in- en uitgaande netwerk verkeer (internet) te controleren en desgewenst te blokkeren of door te laten. Wordt primair gebruikt om onverlaten buiten te sluiten. De firewall is ingebouwd in de kernel en wordt bestuurd door de programma's ip-chains en packet filter (kernel 2.4.0).
84
85 •
FTP (File Transfer Protocol): een standaard om bestanden uit te wisselen over een netwerk.
G •
GCC (GNU C Compiler): Een C compiler onder de General Public License (GPL).
•
GIMP (GNU Image Manipulation Program): Een populair tekenprogramma voor Linux.
•
GNOME (GNU Network Object Model Environment): werkomgeving gebaseerd op de GTK toolkit. Zie ook www.gnome.org .
•
GNU (GNU is Not Unix): Een pakket applicaties en programma's gebaseerd op UNIX en allemaal onder de noemer 'vrije software' te plaatsen. GNU software valt onder de GPL licentie.
•
GNU/Linux: zie Linux. Soms GNU/Linux om te verwijzen naar de vele GNU tools die geleverd worden in een Linux distributie.
•
GPL: General Public Licence, Overeenkomst die garandeert dat alle software en /of documentatie die onder deze overeenkomst valt volledig vrij is van welke restictie dan ook, en dat alle hieruit voortkomende zaken dat ook zijn.. ('vrij' in de zin van vrijheid, niet gratis). Zie ook www.linuxdoc.org/LDP/gs/app-gpl/node1.html .
•
Gtk/Gtk+ (Gnome toolkit): Een snelle en krachtige open source toolkit voor het X window systeem op UNIX/Linux. Deze toolkit vormt de basis van GNOME.
•
GUI (Graphical User Interface): De verzameling van iconen, vensters en andere grafische elementen op het beeldscherm die de interactie mogelijk maken tussen gebruiker en besturingssysteem. Zie ook Desktop en Window manager.
•
Gzip (GNU zip – www.gzip.org): Het programma Gzip is het programma dat verantwoordelijk is voor bestanden die eindigen op de extensie GZ, Z en GZIP. Het programma is geschreven door Jean-loup Gailly en Mark Adler. Bestanden met een .tgz of .tar.gz extensie zijn TAR-bestanden die naderhand gecomprimeerd zijn met gzip.
H •
HTML 4.x: Om informatie wereldwijd te verspreiden heeft men een universeel verstaanbare taal nodig. Een soort "moedertaal om te publiceren" dat door alle computers kan begrepen worden. De publiceertaal die gebruikt wordt op het World Wide Web is HTML (van HyperText Markup Language). HTML geeft auteurs de mogelijkheid om: • Documenten online te publiceren met hoofdingen, tekst, tabellen, lijsten, foto's, enz. • Online informatie via hypertext links op te halen door het klikken op een knop. • Formulieren te ontwerpen voor transacties met remote services, voor het zoeken naar informatie, om reservaties te maken, om producten te bestellen, enz. • Spread-sheets, video clips, geluid clips, en andere toepassingen in hun documenten te integreren. Als toevoeging van de tekst, multimedia en hyperlink kenmerken van de vorige versies van HTML (HTML 3.2 en HTML 2.0 [RFC1866]), ondersteunt HTML 4 meer multimediamogelijkheden, scripting talen, style sheets, betere afdrukmiddelen en documenten die meer toegankelijk zijn voor gebruikers met invaliditeiten. HTML 4 neemt
85
86 ook grote stappen naar de internationalisering van documenten, met het doel het Web werkelijk World Wide te maken. HTML 4 is een SGML toepassing volgens de Internationale Standaard ISO 8879 -- Standard Generalized Markup Language [ISO8879]. •
HTTP (Hyper Text Transport Protocol): HyperText Tranfer Protocol, een standaard om tekstbestanden met opmaak (web-pagina's) over een netwerk te versturen.
I •
IMAP: IMAP staat voor Internet Message Access Protocol en is gesofisticeerder dan POP3.
•
Interpreted Language: Unlike a compiled program, which is converted from source code to an executable one time, by a compiler, and then run from its binary form, an interpreted program is converted to binary on the fly each time it is run, by an interpreter program. Interpreted languages (and thus their programs) tend to be slower than compiled and pcode languages/programs, and generally have limited authorization to low-level operating system functions or direct hardware access. On the other hand, they do not require compilers (which can be expensive), are often included along with operating systems, and are usually easier to program than compiled languages. Examples of interpreted languages are BASIC, Perl, Python and REXX/Object REXX.
J •
Java: Java is een Object georiënteerde en platform onafhankelijke programmeer taal die ontwikkeld door James Gosling van Sun Microsystems, en oorspronkelijk Oak heette. Java is platformonafhankelijk, zolang dat specifieke platform over een Java Virtual Machine (JVM) beschikt. Dit is het geval voor Linux (als ook o.a. voor Windows, MacOS en Unix). Het grote voordeel hiervan is dat als een Java programma één keer gemaakt is, het er niet toe doet op welk platform hij uitgevoerd wordt. Dit strategische voordeel van Java staat bekend als: 'Write once, run anywhere.'
•
Java Applets: Small Java programs that are embedded in a Web page and run within a browser, not as a stand-alone application. Applets cannot access some resources on the local computer, such as files and serial devices (modems, printers, etc.), and generally cannot communicate with other computers across a network.
•
Java Beans: A component architecture for the Java language. JavaBeans components are called Beans.
•
JavaScript: Javascript is een scripttaal die bij HTML pagina's ingevoegd wordt om de functionaliteit van een pagina te verhogen. Maar je ziet het meer in HTML om de desbetreffende webpagina's aantrekkelijker te maken. Voorbeelden zijn o.a. een andere afbeelding laden als de muis over een link gaat of een lichtkrant maken in de statusbalk.
•
JDK (Java Development Kit): A Java programming toolkit from Sun, IBM or others, available for UNIX/Linux and other operating systems.
•
JFS (Journaled/Journaling File System): A file system that includes built-in backup/recovery capabilities. Changes to the index are written to a log file before the
86
87 changes take effect so that if the index is corrupted (by a power failure during the index write, for example), the index can be rebuilt from the log, including the changes. •
Jini: Pronounced “Genie”. Software from Sun that works somewhat like “plug-and-play”, in that it allows a hardware device to announce itself to the operating system (and provide details about the device) when the hardware is attached, without requiring a system reboot. It also announces itself to the network the system is connected to, providing easy network sharing of the device.
•
Journaling: Same as “logging.” Writing information to a journal (log) file as a method of tracking changes.
•
JVM (Java Virtual Machine): A Java runtime environment, required for the running of Java programs, which includes a Java interpreter. A different JVM is required for each unique operating system (Linux, OS/2, Windows 98, etc.), but any JVM can run the same version of a Java program.
K •
KDE (Kool Desktop Environment): KDE is een krachtige grafische gebruikersomgeving gebaseerd op de Qt toolkit, uitgegeven onder een Open Source-licentie. Het combineert gebruiksgemak, moderne functionaliteit en een uitstekende grafische design met de technologische superioriteit van het Unix-besturingssysteem. KDE vormt tevens de basis voor een groeiend aantal applicaties. KDE biedt een hoogwaardig ontwikkelingskader dat een snelle en efficiënte programmaontwikkeling mogelijk maakt. Zie ook www.kde.org .
•
Kernel: het centrale gedeelte van het besturingssysteem
•
Korn Shell: Een verbeterde versie van de Bourne shell met uitgebreide ondersteuning voor scripting en command line editing. Het ondersteund de meeste scripts van de Bourne shell.
L •
LILO (Linux Loader): boot-manager waarmee diversen besturingssystemen geladen kunnen worden, met vele configuratie mogelijkheden. LILO is meestal standaard bootmanager voor Linux, en het kan ook andere besturingssystemen opstarten.
•
Linus Torvalds: De geestelijke vader van Linux, en nog steeds ontwikkelaar en eindredacteur van de Linux kernel.
•
Linux: Een volledig vrij van patenten en, copyright zijnde besturingssysteem gebaseerd op UNIX. Het GNU/Linux systeem kenmerkt zich door een stormachtige ontwikkeling op alle computer terreinen. Het voor iedereen toegangelijk zijn van de source code en het daardoor voor iedereen mogelijk maken toepassingen te ontwikkelen niet gehindert door licencies of andere, innovatie beperkende, maatregelen. Een zeer kenmerkend aspect van dit systeem is de nadruk die gelegd wordt op de beveiliging van de privacy en computer bestanden en de zeer grote vrijheid van systeem configuratie, van de boot-manager tot aan de grafische desktop en alles daartussen. Op deze gebieden heeft dit besturingssysteem alle andere systemen ver achter zich gelaten.
87
88 •
Log: To store application or system messages or errors. Also, a file that holds this information.
•
Lynx: Een populaire niet -grafische (tekstgebaseerde) Web browser.
O •
Object-Oriented: A software development methodology that offers the programmer standard reusable software modules (components), rather than requiring the developer to write custom programming code each time. Using standard components reduces development time (because the writing and testing of those components has already been done by other programmers), and ensures a standard look and feel for programs using the same components.
•
OO: Zie Object-Oriented.
•
Open Source: A somewhat ambiguous term that refers to software that is released with its source code. The fact that the source code is provided does not necessarily mean that users can modify and redistribute the source code. The term is sometimes used interchangeably with “free software,” although they are not always the same.
•
Operating system, besturingssysteem: Verzameling programma bestanden die het mogelijk maken om de hardware aan te sturen. Hierbij zitten ook de meest elementaire toepassingen om te communiceren met deze hardware.
•
OSS (Open Source Software): zie Open Source.
P •
PAM (Pluggable Authentication Modules): A replaceable user authentication module for system security, which allows programs to be written without knowing which authentication scheme will be used. This allows a module to be replaced later with a different module without requiring rewriting the software.
•
Perl (Practical Extraction and Report Language): Perl is een programmeertaal bedacht in 1987 door Larry Wall en is tegenwoordig een veel gebruikt script in web-applicaties, met name de CGI-scripts zijn in Perl geschreven. Perl kan los gebruikt worden als script, maar ook als lijm tussen verschillende systemen.
•
Permission: The authority to read and write files and directories, and execute programs. Varying permission levels can be assigned by the Superuser, or root operator, on a filebyfile, directory-by-directory basis or by account name (User ID).
•
PGP (Pretty Good Privacy): A high-security, public-key data encryption program for UNIX/Linux and other operating systems.
•
POP3: POP-server: POP staat voor Post Office Protocol (postkantoor-protocol). Een mail-server die de berichten in ontvangst neemt, de berichten in de juiste postbussen stopt en de berichten van de postbussen verstuurt naar de rechtmatige ontvangers.
88
89 •
POSIX (Portable Operating System Interface for uniX):A set of programming interface standards governing how to write application source code so that the applications are portable between operating systems. POSIX is based on UNIX and is the basis for the X/Open specification of The Open Group.
•
Public Key Encryption: A method of data encryption that involves two separate keys: a public key and a private key. Data encrypted with the public key can be decrypted only with the private key and vice versa. Typically, the public key is published and can be used to encrypt data sent to the holder of the private key, and the private key is used to sign data.
•
Python: Python is een object georiënteerde Open Source programmeertaal, gelijkaardig aan Perl, die vooral populair is door de eenvoudige syntax. Python werd in 1991 ontwikkeld door Guido van Rossum, die het noemde naar Monty Python's Flying Circus. Python is vooral geschikt voor Rappid Application Development, voor scripting en als lijm tussen verschillende systemen.
Q •
Qt: Qt is een snelle en krachtige Open Source C++ toolkit die beschikbaar is op Linux, UNIX, Macintosh en Windows. KDE is gebaseerd op Qt. Zie ook Gtk/Gtk+ en KDE.
R •
RAID (Redundant Array of Independent/Inexpensive Disks/Devices): A method of providing data redundancy, improved performance and/or quick data recoverability from disk crashes, by spreading or duplicating data across multiple disk drives. Commonly used RAID types include RAID 0 (Data Striping), RAID 1 (Disk Mirroring) and RAID 5 (Striping with Distributed Parity). RAID configurations typically require SCSI disk drives (not IDE/EIDE) and may require identical drives (same capacity, brand, etc.). RAID arrays appear to the operating system as a single device.
•
RCS (Revision Control System): RCS is verantwoordelijk voor het beheren van verschillende versies van een bestand. Het biedt mogelijkheden om een bestand te openen en/of op te slaan in verschillende versies, het loggen van wijzigingen tussen verschillende versies, en het samenvoegen van verschillende versies van een bestand.
•
RFC (Request For Comments): RFC is a set of documentations and specifications that describe several standards, e.g. protocols used on the Internet as e.g. TCP/IP.
•
Root: Gebruiker met toegang tot het hele systeem, met de mogelijkheid om het systeemtaken uit te voeren (ook Superuser genoemd).
•
RPM (RedHat Package Manager): een programma om het instaleren van software te vergemakkelijken. Het is een open packaging systeem bruikbaar voor iedereen, en werkt op Red Hat Linux systemen, maar ook op andere Linux systemen bv SuSE, Mandrake, etc voor rpm gebruik met slackware zie: RPM+Slackware Mini-Howto. RPM kan ook op andere Unix systemen zoals Tru64 Unix, AIX, Solaris en SunOS gebruikt worden. Met RPM kun je software met de extensie .rpm erachter installeren, unistalleren, verificeren, zoeken en zelf RPMS maken maar dit onderdeel wordt in dit document niet verder besproken. Red Hat Package Manager : One of the real benefits of the Red Had distribution is RPM, a powerful console program to manager program installs, upgrades and un-installs. Developed by Red
89
90 Hat, RPM is used by several Linux distributors. In addition, there are GUI front-ends: both Gnome-RPM and KDE's Package Manager are good. + DEB
S •
Script: Een script is een tekstbestand met een sequentie van commando’s, gelijkaardig aan een batch bestand in het DOS besturingssysteem. Een script wordt meestal gebruikt voor sequenties van commando’s die een gebruiker regelmatig nodig heeft.
•
Server: Meestal een grote computer of meerdere gekoppelde computers, bedoeld om grote hoeveelheden informatie te verstrekken of te bewerken. Met Linux kun je ook probleemloos servers opzetten, met alle mogelijkheden en voordelen van de grootte UNIX systemen.
•
Shell: Een shell is de commando interpreteerder van een besturingssysteem en een set van commando’s die gebruikt kunnen worden om te communiceren met dit systeem. Meestal is dit een venster in text-modus met een command line interface naar het besturingssysteem.
•
SHTTP (Secure Hyper Text Transport Protocol): HTTPS is een beveiligde, geëncrypteerde versie van http dat gebruikt wordt voor bijvoorbeeld financiële transacties en andere vertrouwelijke informatie die over het Internet verzonden wordt.
•
SMTP: SMTP-server: SMTP staat voor Simple Mail Transport Protocol: eenvoudig protocol voor posttransport. Deze server zorgt ervoor dat de berichten die men verstuurt naar de juiste bestemming gaan.
•
SSL (Secure Sockets Layer): SSL is een protocol dat instaat voor de betrouwbaarheid en de privacy tussen twee communicerende applicaties. Betrouwbaarheid betekent dat elke aanpassing in de boodschappen kan gedetecteerd worden door SSL. Privacy betekent dat de boodschappen niet onderschept kunnen worden door luistervinken. SSL is een standaard voor het verstrekken van een beveiligde toegang tot bijvoorbeeld internet bankieren en e-commerce.
T •
Tar (Tape ARchive): De extensie TAR staat voor Tape Archive. Dit formaat is in staat om meerdere bestanden en directories onder te brengen in een enkel bestand, zonder compressie toe te passen. Om wel compressie mogelijk te maken wordt TAR vaak gebruikt in combinatie met gzip, waardoor bestanden ontstaan met extensies als ".tar.gz".
•
Tarball: Een bestand dat gemaakt werd met een Tar gereedschap, dat één of meerdere al dan niet gecompresseerde bestanden bevat.
•
Toolkit (Widget set): Wordt een collectie van onderdelen mee bedoeld die te samen het zichtbare gedeelte van een grafisch georienteerd programma vormen. Bijv de verschillende buttons/knoppen, schuifbalken, pop-up schermen, enz. Hierdoor krijgen alle programma's die dezelfde widget set gebruiken een zelfde uiterlijk.
•
Tux: Naam van het Linux pinguïn logo.
90
91
figuur: Tux de Linux pinguïn
U •
UNIX: Een multi-user, multi-tasking besturingssysteem dat in de jaren 60 ontwikkeld werd door Bell Laboratories. Meestal gebruikt op grote computers en mainframes. Uiteindelijk versplinterde het in tientallen incompatibele versies zoals Apple (Mac OS X), Digital (Digital UNIX), Hewlett-Packard (HPUX), IBM (AIX®) en NeXT (NeXTSTEP). GNU/Linux is gebaseerd op en is compatible met UNIX.
W •
Widget: Een GUI programmeerobject (bijvoorbeeld button, scrollbar, radio button en check box) voor het X window systeem.
•
Window Manager (WM): The graphical user interface (GUI) that runs on top of X Window to provide the user with windows, icons, taskbars and other desktop objects. (Also, see Desktop.) Programma om vensters, en meestal achtergronden, voor de desktop te leveren en de mogelijkheden om deze te configureren. Een window manager zit bovenop de X-windows en daardoor is het mogelijk om willekeurig welke manager te gebruiken, er zijn er meer dan 20. Bekenste zijn Enlightement, Sawfish(Gnome), KDM(KDE), WM en fvwm.
X •
X Window System: Een grafische windowing omgeving voor UNIX die aan de basis ligt van vele werkomgevingen zoals KDE en GNOME. Zie ook Xfree86.
•
X11: Versie 11 van het X window systeem.
•
XDM (X Display Manager): Een gebruiksvriendelijk login-scherm voor het X window systeem.
•
Xfree86: Een versie van het X window systeem voor Linux, dat gebruikt wordt door GNOME, KDE en andere Linux werkomgevingen en window managers.
•
XHTML (extensible Hyper Text Markup Language): Een verbeterde versie van HTML die extensies zoals XML ondersteund.
•
XML (eXtensible Markup Language): Een krachtige nieuwe markup taal die de programmeur toelaat eigen markup tags te definiëren.
91
92
Z •
Zip: Deze compressiemethode is naast ARJ een van de meest gebruikte compressiemethodes. Deze bestanden hebben .zip als extensie. De maker is Phil Katz.
•
Zoo: Bestanden die eindigen op de extensie zoo zijn het product van het gelijknamige compressieprogramma dat is gemaakt door Raoul Dhesi.
92
93
A
Appendix B: OSS Licenses
A.1.1.1
There is a widely agreed definition of what constitutes an Open Source license. It can be found at http://www.opensource.org/docs/definition_plain.html. The definition is reproduced below:
A.2
The Open Source Definition
Version 1.8 Introduction
Open source doesn't just mean access to the source code. The distribution terms of open-source software must comply with the following criteria: 1. Free Redistribution
The license shall not restrict any party from selling or giving away the software as a component of an aggregate software distribution containing programs from several different sources. The license shall not require a royalty or other fee for such sale. 2. Source Code
The program must include source code, and must allow distribution in source code as well as compiled form. Where some form of a product is not distributed with source code, there must be a well-publicized means of obtaining the source code for no more than a reasonable reproduction cost–preferably, downloading via the Internet without charge. The source code must be the preferred form in which a program mer would modify the program. Deliberately obfuscated source code is not allowed. Intermediate forms such as the output of a preprocessor or translator are not allowed. 3. Derived Works
The license must allow modifications and derived works, and must allow them to be distributed under the same terms as the license of the original software. 4. Integrity of The Author's Source Code
The license may restrict source-code from being distributed in modified form only if the license allows the distribution of "patch files" with the source code for the purpose of modifying the program at build time. The license must explicitly permit distribution of software built from modified source code. The license may require derived works to carry a different name or version number from the original software.
93
94
5. No Discrimination Against Persons or Groups
The license must not discriminate against any person or group of persons. 6. No Discrimination Against Fields of Endeavor
The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research. 7. Distribution of License
The rights attached to the program must apply to all to whom the program is redistributed without the need for execution of an additional license by those parties. 8. License Must Not Be Specific to a Product The rights attached to the program must not depend on the program's being part of a particular software distribution. If the program is extracted from that distribution and used or distributed within the terms of the program's license, all parties to whom the program is redistributed should have the same rights as those that are granted in conjunction with the original software distribution. 9. License Must Not Contaminate Other Software
The license must not place restrictions on other software that is distributed along with the licensed software. For example, the license must not insist that all other programs distributed on the same medium must be open-source software. A.2.1.1
Although the supporters of Open Source software often stress that it is free only in the sense of “free speech”, it is important to note that Clause 1 above explicitly states that the license shall not require a royalty or other fee for such a sale. This means that although it is permissable to charge for derived works, the underlying OSS remains freely available (in every sense of the word) to the IT community.
A.2.1.2
The Open Source definition also makes it clear that the originators of OSS cannot stop another group from cloning the software and producing a separate project development line that creates a variant of the OSS. This process is known in the community as “forking” a project. A number of high profile OSS projects have created competitive forks – often with significant animosity between the different projects. A benefit of OSS is that when the original developers, or the original investors, lose interest in a project there is nothing to stop another group picking up and running with software (indeed this situation is quite common and happened recently to the Python programming language).
A.2.1.3
There are two major variants in OSS licenses. There is the GNU General Public License (GPL – http://www.gnu.org/copyleft/gpl.txt) and there are other licenses, which tend to be referred to as Berkeley-style licenses. The differences between
94
95 these licenses appear subtle, but are in fact extremely significant. It is not unusual for the arguments as to the benefits and weaknesses in these two styles of licenses to get very heated indeed. The importance and emotion can be best understood by understanding why the GPL was produced (the Berkeley style license was the original OSS license): A.2.1.4
The University of California at Berkeley produced a large amount of software that made up a significant part of the leading UNIX operating system in the late 1970s. The Berkeley license allowed proprietary system vendors, such as SUN, IBM and HP to separately fork closed source variants of Berkeley’s software. Each vendor’s UNIX became subtly incompatible so that programs written for one closed variant of UNIX would not run unchanged on other closed variants of UNIX. This did a lot to destroy the role of UNIX as an interoperability standard. The GPL was created with a clause that outlaws the creation of closed forks. It does this by requiring that any derived work must be distributed with the source text under GPL. For this reason the GPL is sometimes called a viral license, because it infects forks with the GPL’s license conditions. This means that GPL is highly suited to OSS that is intended to act as an interoperability standard, such as Linux. It also undermines some commercial exploitations, as it limits what can be charged for a derived work because the deriving organisation is forced to freely publish the source text of the derived work.
A.2.1.5
The original Berkeley license allows greater freedom for commercial exploitation, but at the danger that multiple, incompatible closed derivatives will emerge.
A.2.1.6
An additional feature is that it is easy for a GPL project to incorporate Berkeleylicensed code, but a Berkeley-licensed OSS project has to be careful not be infected by GPL code.
A.2.1.7
GPL proved to be unsuitable for some software libraries that were an integral part of some popular software development tools developed under GPL. This led to the situation that if you compiled a program using one of these tools, your program would contain some of the libraries, so your program had to be published under GPL. A lesser GPL (LGPL) was constructed which stated that linked libraries did not infect the programs to which they linked.
There are a host of different Berkeley style licenses, which have subtle differences (such as the precise definition of derived works), but there are no differences that the authors feel are significant enough to discuss.
95