Adding current state of documentation to github
This commit is contained in:
parent
f237f33e89
commit
3aaad6e45c
18 changed files with 16014 additions and 0 deletions
76
LICENSE
Normal file
76
LICENSE
Normal file
|
@ -0,0 +1,76 @@
|
|||
This document is licensed under the Creative Commons Attribution NonCommercial
|
||||
ShareAlike 2.0 Belgium license. The general overview of this license can be
|
||||
seen at http://creativecommons.org/licenses/by-nc-sa/2.0/be/deed.en
|
||||
|
||||
The full legal text is available below this. The document text is in Dutch.
|
||||
|
||||
---
|
||||
|
||||
Creative Commons Legal Code
|
||||
|
||||
Naamsvermelding – NietCommercieel - GelijkDelen 2.0
|
||||
CREATIVE COMMONS CORPORATION IS GEEN ADVOCATENKANTOOR EN VERLEENT GEEN JURIDISCHE DIENSTEN. DE VERSPREIDING VAN DEZE LICENTIE VEROORZAAKT GEEN JURIDISCHE OF CONTRACTUELE RELATIE TUSSEN DE PARTIJEN BIJ DEZE LICENTIE EN CREATIVE COMMONS. CREATIVE COMMONS VERSTREKT DEZE INFORMATIE ZOALS ZE IS, ZONDER GARANTIE. CREATIVE COMMONS STAAT NIET IN VOOR DE VERSTREKTE INFORMATIE EN SLUIT ALLE AANSPRAKELIJKHEID UIT VOOR WELKE SCHADE DAN OOK DIE ZOU VOORTVLOEIEN UIT HET GEBRUIK VAN DEZE INFORMATIE.
|
||||
|
||||
Licentie
|
||||
|
||||
HET WERK (ZOALS HIERONDER OMSCHREVEN) WORDT TER BESCHIKKING GESTELD OVEREENKOMSTIG DE BEPALINGEN VAN DEZE CREATIVE COMMONS PUBLIC LICENSE (HIERNA “CCPL” OF “LICENTIE”). HET WERK WORDT BESCHERMD DOOR HET AUTEURSRECHT, EN/OF, INDIEN RELEVANT, DOOR DE NABURIGE RECHTEN, OF HET SUI GENERIS DATABANKENRECHT EN/OF ELK KRACHTENS DE GELDENDE WETGEVING VAN TOEPASSING ZIJNDE RECHT.
|
||||
ELK GEBRUIK VAN HET WERK DAT NIET UITDRUKKELIJK DOOR DEZE LICENTIE TOEGESTAAN WORDT, IS VERBODEN.
|
||||
ELK GEBRUIK VAN HET WERK, OP EEN MANIER DIE ONDER EEN IN DEZE LICENTIE BEHANDELD RECHT VALT, BRENGT DE AANVAARDING VAN DEZE LICENTIE MET ZICH MEE. DOOR DEZE LICENTIE KENT DE LICENTIEGEVER U DE HIERNA OMSCHREVEN RECHTEN TOE INDIEN U DE VOLGENDE BEPALINGEN EN VOORWAARDEN AANVAARDT
|
||||
1. Definities
|
||||
|
||||
1. Met “Collectief Werk” wordt een werk bedoeld waarin het Werk, in zijn geheel en in ongewijzigde vorm, samen met een aantal andere bijdragen, die elk een afzonderlijk en zelfstandig Werk vormen, tot een collectief geheel is samengevoegd. Collectieve Werken zijn onder andere geregeld een uitgave van een tijdschrift, bloemlezingen of encyclopedieën. Een Werk dat een Collectief Werk is, zal, krachtens deze Licentie, niet beschouwd worden als een Afgeleid Werk (zoals hieronder omschreven).
|
||||
2. Met "Afgeleid Werk" wordt een werk bedoeld dat gebaseerd is op het Werk of op het Werk en andere reeds bestaande werken, zoals een vertaling, een muziekarrangement, een toneel-, literaire of cinematografische bewerking, een geluidsopname, een kunstreproductie, een ingekorte versie, een samenvatting of elke andere vorm waarin het Werk gewijzigd, omgezet of bewerkt kan worden, met uitzondering van de Collectieve Werken, die niet als Afgeleide Werken zullen beschouwd worden in de zin van deze Licentie. Om onduidelijkheid te vermijden zal, indien het Werk een muziekwerk of een fonogram is, de synchronisatie van het Werk met een bewegend beeld (“synching”) als een Afgeleid Werk in de zin van deze Licentie beschouwd worden.
|
||||
3. Met "Licentiegever" wordt de natuurlijke persoon of rechtspersoon bedoeld die de rechten op het Werk toekent volgens de bepalingen van deze Licentie.
|
||||
4. Met "Oorspronkelijke Auteur” wordt de natuurlijke persoon bedoeld die het Werk gemaakt heeft of, indien het gaat om een voorwerp dat door een naburig recht beschermd wordt, de oorspronkelijke titularis van het naburig recht.
|
||||
5. Met "Werk” wordt het Werk van letterkunde of kunst bedoeld dat beschermd wordt door het auteursrecht en dat het voorwerp is van deze licentie. Voor de toepassing van deze Licentie omvat het “Werk” ook voorwerpen die beschermd worden door een naburig recht, zoals een uitvoering, een fonogram, een eerste vastlegging van film of radio-uitzending, alsook de databanken die beschermd worden door een sui generis-recht, voor zover deze het voorwerp vormen van deze licentie. Indien nodig, zullen de bepalingen van deze Licentie op zo een manier geïnterpreteerd worden dat ze op dergelijke beschermde voorwerpen toegepast kunnen worden.
|
||||
6. Met "U" wordt de natuurlijke persoon of rechtspersoon bedoeld die het Werk gebruikt op een wijze die geregeld wordt door de rechten waarop deze Licentie betrekking heeft en die de bepalingen van deze Licentie met betrekking tot het Werk niet eerder geschonden heeft of die de uitdrukkelijke toestemming van de Licentiegever gekregen heeft om rechten krachtens deze Licentie uit te oefenen ondanks een eerdere schending van deze.
|
||||
7. Met "Licentiekenmerken" worden de volgende generieke kenmerken van de licentie bedoeld, zoals gekozen door de Licentiegever en aangeduid in de titel van deze Licentie: Naamsvermelding, NietCommercieel, GelijkDelen.
|
||||
|
||||
2. Uitzonderingen en beperkingen op de exclusieve rechten
|
||||
|
||||
Niets in deze Licentie heeft de bedoeling de toepassing van de uitzonderingen op de exclusieve rechten van de rechthebbenden, de uitputting van deze rechten of andere beperkingen op deze rechten krachtens het auteursrecht, de naburige rechten, het sui generis databankenrecht of elk ander van toepasselijk recht te verminderen, te begrenzen of te beperken.
|
||||
3. Omvang van de toegekende Licentie
|
||||
|
||||
In overeenstemming met de bepalingen en voorwaarden van deze Licentie, verleent de Licentiegever U een licentie die wereldwijd, gratis, niet-exclusief en onbeperkt in tijd (voor de volledige duur van de bescherming van het Werk door het auteursrecht, de naburige rechten, het sui generis recht op de databanken) is om de volgende rechten met betrekking tot het Werk uit te oefenen:
|
||||
|
||||
1. het reproduceren, op welke wijze en in welke vorm dan ook, van het Werk, het opnemen van het Werk in één of meer Collectieve Werken en het reproduceren van het Werk zoals het opgenomen is in de genoemde Collectieve Werken;
|
||||
2. het maken en reproduceren van Afgeleide Werken;
|
||||
3. het uitlenen en verspreiden van exemplaren van het Werk, het meedelen aan het publiek en het ter beschikking stellen van het publiek. Hetzelfde geldt voor het Werk wanneer het opgenomen is in een Collectief Werk;
|
||||
4. het uitlenen en verspreiden van exemplaren van Afgeleide Werken, ze meedelen aan het publiek en ze ter beschikking stellen van het publiek;
|
||||
5. indien het Werk een databank is, het opvragen en hergebruiken van substantiële delen van de databank.
|
||||
|
||||
De hierboven vermelde rechten mogen uitgeoefend worden op alle bekende en onbekende dragers, media en formaten, met uitzondering van onbekende exploitatievormen. U heeft eveneens het recht om die wijzigingen aan het Werk aan te brengen die technisch noodzakelijk zijn voor de uitoefening van de hoger genoemde rechten op andere dragers, media en formaten. Oorspronkelijke Auteur ziet af van de uitoefening van zijn/haar morele rechten met betrekking tot de wijzigingen die technisch noodzakelijk zijn.
|
||||
De Licentiegever behoudt zich alle rechten voor die niet uitdrukkelijk overgedragen zijn in deze Licentie, waaronder inbegrepen, doch niet beperkt tot, de rechten die onder sectie 4(e) opgenomen zijn.
|
||||
|
||||
4. Beperkingen De in artikel 3 toegekende licentie wordt uitdrukkelijk op de volgende manier beperkt:
|
||||
|
||||
1. U mag het Werk enkel in overeenstemming met de bepalingen van deze Licentie, uitlenen, verspreiden, ter beschikking stellen van het publiek of meedelen aan het publiek op voorwaarde dat U een kopie van deze Licentie of de Uniform Resource Identifier van deze Licentie toevoegt aan elke kopie van het Werk dat U uitleent, verspreidt, ter beschikking stelt van het publiek of meedeelt aan het publiek. U mag geen voorwaarden op het gebruik van het Werk aanbieden of opleggen die de bepalingen van deze Licentie of de uitoefening van de toegekende rechten wijzigen of beperken. U mag het werk niet in onderlicentie geven. U moet alle aanduidingen die verwijzen naar deze Licentie en naar de garantieclausule en de uitsluiting van aansprakelijkheid intact houden. U mag het Werk niet uitlenen, verspreiden, ter beschikking stellen van het publiek of meedelen aan het publiek indien daarbij een technische maatregel gebruikt wordt die de toegang tot of het gebruik van het Werk op een met de bepalingen van deze Licentie strijdige wijze controleert. Het voorgaande geldt voor het Werk dat opgenomen is in een Collectief Werk maar dat houdt niet in dat het Collectief Werk zelf, afgezien van het Werk, onderworpen wordt aan de bepalingen van deze Licentie. Indien U een Collectief Werk maakt, dan moet U, op aanvraag van om het even welke Licentiegever en in de mate van het mogelijke, elke verwijzing naar de Licentiegever of de Oorspronkelijke Auteur uit het Collectief Werk verwijderen. Indien U een Afgeleid Werk maakt, dan moet U, op aanvraag van om het even welke Licentiegever en in de mate van het mogelijke, elke verwijzing naar de Licentiegever of de Oorspronkelijke Auteur uit het Afgeleide Werk verwijderen.
|
||||
2. U mag een Afgeleid Werk enkel uitlenen, verspreiden, ter beschikking stellen van het publiek of meedelen aan het publiek krachtens de bepalingen van deze Licentie, van een latere versie van deze Licentie met dezelfde Licentiekenmerken als deze Licentie of van een Creative Commons iCommons-licentie die dezelfde Licentiekenmerken bevat als deze Licentie (bv. Naamsvermelding – Niet-Commercieel – Gelijk Delen 2.0 Japan). U moet een kopie van deze Licentie, of elk andere licentie die in de voorafgaande zin gespecificeerd werd, of de Uniform Resource Identifier van deze Licentie toevoegen aan elke kopie van het Afgeleid Werk dat U uitleent, verspreidt, ter beschikking stelt van het publiek of meedeelt aan het publiek. U mag geen voorwaarden op het gebruik van het Afgeleid Werk aanbieden of opleggen die de bepalingen van deze Licentie of de uitoefening van de toegekende rechten wijzigen of beperken. U moet alle aanduidingen die verwijzen naar deze Licentie en naar de garantieclausule en de uitsluiting van aansprakelijkheid intact houden. U mag het Afgeleid Werk niet uitlenen, verspreiden, ter beschikking stellen aan het publiek of meedelen aan het publiek indien daarbij een technische maatregel gebruikt wordt die de toegang tot of het gebruik van het Werk op een met de bepalingen van deze Licentie strijdige wijze controleert. Het voorgaande geldt voor het Afgeleid Werk dat opgenomen is in een Collectief Werk maar dat houdt niet in dat het Collectief Werk zelf, afgezien van het Afgeleid Werk, onderworpen wordt aan de bepalingen van deze Licentie.
|
||||
3. U mag geen enkel van de door artikel 3 aan U toegekende rechten uitoefenen op een manier die voornamelijk bedoeld is voor of gericht is op het bekomen van een commercieel voordeel of een persoonlijke financiële compensatie. De uitwisseling van het Werk tegen andere Werken, die beschermd worden door het auteursrecht, de naburige rechten of het sui generis databankenrecht, door het elektronisch delen van bestanden of op een andere wijze, wordt niet beschouwd als zijnde bedoeld voor of gericht op het bekomen van een commercieel voordeel of een persoonlijke financiële compensatie, op voorwaarde dat de uitwisseling van de beschermde Werken geen betaling of financiële compensatie met zich meebrengt.
|
||||
4. Indien U het Werk, Afgeleide Werken of Collectieve Werken uitleent, verspreidt, ter beschikking stelt aan het publiek of meedeelt aan het publiek, dan moet U alle informatie betreffende het beheer van rechten met betrekking tot het Werk intact houden en, op een wijze die redelijk is in verhouding tot het gebruikte medium of middel, verwijzen naar de Oorspronkelijke Auteur, door het verstrekken van de naam van de Oorspronkelijke Auteur (of het pseudoniem indien van toepassing) indien deze wordt vermeld; de titel van het Werk indien deze wordt vermeld; in de mate dit redelijkerwijze mogelijk is en indien deze beschikbaar is, de Uniform Resource Identifier, dat de Licentiegever aanduidt als verbonden met het Werk, tenzij die URI niet verwijst naar de informatie betreffende het beheer van rechten met betrekking tot het Werk of naar de van toepassing zijnde licenties op het Werk; en in het geval van een Afgeleid Werk, door het aanduiden van het gebruik van het Werk in het Afgeleid Werk en door het identificeren van de elementen (bijvoorbeeld, door de aanduiding “Franse vertaling van het Oorspronkelijk Werk door de Auteur” “Franse vertaling van het Werk door de Oorspronkelijke Auteur” of “scenario gebaseerd op het Oorspronkelijk Werk door de Oorspronkelijke Auteur”). De verwijzing naar de Oorspronkelijke Auteur moet gebeuren op een redelijke manier. In het geval van een Afgeleid Werk of een Collectief Werk, moeten deze verwijzingen echter minstens weergegeven worden op dezelfde plaats en op dezelfde wijze als andere vergelijkbare auteursvermeldingen.
|
||||
5. Deze Licentie wijzigt geenszinsnde regeling van de billijke vergoedingen, die eventueel van kracht is in België of in andere landen, ter compensatie van de wettelijke erkenning van gedwongen licenties en heeft geen invloed op de inning van deze vergoedingen.
|
||||
|
||||
5. Garantieclausule en uitsluiting van aansprakelijkheid
|
||||
|
||||
TENZIJ ER TUSSEN DE PARTIJEN SCHRIFTELIJK ANDERS OVEREENGEKOMEN IS, BIEDT DE LICENTIEGEVER HET WERK AAN ZOALS HET IS EN DOET DE LICENTIEGEVER GEEN VERKLARINGEN OVER HET WERK OF VERPLICHT HIJ ZICH TOT GEEN ENKELE GARANTIE, ONGEACHT OF DEZE UITDRUKKELIJK OF STILZWIJGEND, KRACHTENS DE WET OF OP EEN ANDERE GRONDSLAG RUST, HIERIN BEGREPEN, MAAR NIET BEPERKT TOT DE GARANTIE TEGEN UITWINNING, DE COMMERCIALISEERBAARHEID VAN HET WERK, DE FUNCTIONELE CONFORMITEIT, DE AFWEZIGHEID VAN INBREUK OP RECHTEN VAN DERDEN, DE AFWEZIGHEID VAN VERBORGEN OF ANDERE GEBREKEN, DE NAUWKEURIGHEID VAN HET WERK OF DE AFWEZIGHEID VAN FOUTEN EN GEBREKEN MET BETREKKING TOT DE INFORMATIE, ONGEACHT OF DEZE AL DAN NIET OPSPOORBAAR ZIJN. INDIEN DE OP DEZE LICENTIE VAN TOEPASSELIJKE WETGEVING EEN DERGELIJKE UITSLUITING VAN VERANTWOORDELIJKHEID VERBIEDT OF REGLEMENTEERT, DAN IS DEZE UITSLUITING VAN AANSPRAKELIJKHEID EN GARANTIE SLECHTS IN DE MATE TOEGELATEN DOOR DE WET VAN TOEPASSING.
|
||||
6. Beperking van aansprakelijkheid
|
||||
|
||||
VOOR ZOVER DE VAN TOEPASSELIJKE WETGEVING DIT TOELAAT, ZAL DE LICENTIEGEVER IN GEEN ENKEL GEVAL AANSPRAKELIJK GEACHT WORDEN VOOR WELKE RECHTSTREEKSE OF ONRECHTSTREEKSE, MATERIËLE OF MORELE SCHADE DAN OOK, DIE VOORTVLOEIT UIT DEZE LICENTIE OF UIT HET GEBRUIK VAN HET WERK, ONGEACHT OF DE LICENTIEGEVER INGELICHT WERD OVER DE MOGELIJKHEID VAN DERGELIJKE SCHADE.
|
||||
7. Beëindiging
|
||||
|
||||
1. Elke inbreuk op de bepalingen van deze Licentie waarvoor U verantwoordelijk bent, leidt tot de ontbinding van rechtswege van deze Licentie en het einde van de rechten die er uit voortvloeien. Niettemin behouden de licenties op Afgeleide Werken of Collectieve Werken, die door U krachtens deze Licentie verleend werden aan natuurlijke personen of rechtspersonen, hun werking ten opzichte van deze natuurlijke personen of rechtspersonen, voor zover deze personen de bepalingen van deze licenties niet schenden. De artikels 1, 2, 5, 6, 7 en 8, blijven van kracht ongeacht de beëindiging van deze Licentie.
|
||||
2. Indien de hierboven vermelde bepalingen en voorwaarden in acht genomen worden, is deze licentie onbeperkt in tijd (voor de duur van de bescherming van het Werk door het auteursrecht, de naburige rechten en het sui generis databankenrecht). Desalniettemin behoudt de Licentiegever zich op elk ogenblik het recht voor om het Werk onder een andere licentie of onder andere voorwaarden te exploiteren of om elke verspreiding van het Werk stop te zetten, zonder dat het gebruik maken van deze mogelijkheid deze Licentie (of elke andere licentie die, krachtens de bepalingen van deze Licentie, verleend werd of verleend moest worden) ongedaan kan maken, en deze Licentie zal onverminderd van kracht blijven tenzij de beëindiging intreedt wegens de hoger aangegeven redenen.
|
||||
|
||||
8. Diversen
|
||||
|
||||
1. Telkens U het Werk of een Collectief Werk uitleent, verspreidt, meedeelt of ter beschikking stelt van het publiek, verleent de Licentiegever aan de ontvanger een licentie die van toepassing is op het Werk en die dezelfde bepalingen en voorwaarden bevat als deze Licentie.
|
||||
2. Telkens U het Afgeleid Werk uitleent, verspreidt, meedeelt of ter beschikking stelt van het publiek, verleent de Licentiegever aan de ontvanger een licentie die van toepassing is op het oorspronkelijke Werk en die dezelfde bepalingen en voorwaarden bevat als deze Licentie
|
||||
3. Indien een bepaling uit deze Licentie, krachtens het van toepassing zijnde recht, nietig of niet afdwingbaar is, dan zal dit geen invloed hebben op de geldigheid en de afdwingbaarheid van de andere bepalingen. In dit geval zal, zonder dat enige tussenkomst van de partijen hiervoor nodig is, een dergelijke bepaling op een zodanige wijze geïnterpreteerd worden dat haar geldigheid en afdwingbaarheid gevrijwaard blijven.
|
||||
4. Geen enkele afstand ten opzichte van de bepalingen en voorwaarden van deze Licentie wordt vermoed zonder een schriftelijke overeenkomst die ondertekend is door de partij die afstand doet. Geen enkele inbreuk op deze Licentie wordt door de andere partij aanvaard zonder schriftelijke overeenkomst, ondertekend door deze partij.
|
||||
5. Deze Licentie is het enige contract tussen de partijen met betrekking tot het Werk, dat het voorwerp is van deze Licentie. Er bestaat geen enkele overeenkomst of document van welke aard dan ook, die betrekking heeft op het Werk, bovenop wat hier bepaald is. De Licentiegever is gebonden door geen enkele bijkomende verplichting die voortvloeit uit enige communicatie afkomstig van U, ongeacht de vorm. Deze Licentie kan niet gewijzigd worden zonder de schriftelijke overeenkomst van beide partijen.
|
||||
|
||||
Creative Commons is geen partij bij deze Licentie en verleent geen enkele garantie met betrekking tot het Werk. Creative Commons sluit alle verantwoordelijkheid met betrekking tot deze Licentie tegenover U en tegenover elke derde uit, ongeacht de juridische grondslag van deze verantwoordelijkheid en ongeacht de aard van de opgelopen schade, of deze rechtstreeks of onrechtstreeks, materieel of moreel is.
|
||||
Zonder dat afbreuk gedaan wordt aan de vorige alinea, zal Creative Commons, indien deze zich uitdrukkelijk bekendgemaakt heeft als Licentiegever in het kader van deze Licentie, alle rechten en plichten van Licentiegever bezitten.
|
||||
Met uitzondering van het gebruik dat bestemd is om het publiek te informeren dat het Werk onder CCPL valt, zal geen enkele partij het merk “Creative Commons” of enige andere aanduiding of logo dat toekomt aan Creative Commons gebruiken zonder de voorafgaande schriftelijke instemming van Creative Commons. Elk door Creative Commons toegelaten gebruik moet in overeenstemming zijn met de trademark usage guidelines die van kracht zijn op het ogenblik van het gebruik, zoals deze gepubliceerd worden op de website of beschikbaar worden gesteld op individueel verzoek.
|
||||
Creative Commons kan gecontacteerd worden op http://creativecommons.org/
|
||||
|
112
src/linux_sea.xml
Normal file
112
src/linux_sea.xml
Normal file
|
@ -0,0 +1,112 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY whatislinux.xml SYSTEM "linux_sea/01-whatislinux.xml">
|
||||
<!ENTITY freesoftware.xml SYSTEM "linux_sea/02-freesoftware.xml">
|
||||
<!ENTITY community.xml SYSTEM "linux_sea/03-community.xml">
|
||||
<!ENTITY runninglinux.xml SYSTEM "linux_sea/04-runninglinux.xml">
|
||||
<!ENTITY linuxfs.xml SYSTEM "linux_sea/05-linuxfs.xml">
|
||||
<!ENTITY processes.xml SYSTEM "linux_sea/06-processes.xml">
|
||||
<!ENTITY kernelbuilding.xml SYSTEM "linux_sea/07-kernelbuilding.xml">
|
||||
<!ENTITY hardwaremanagement.xml SYSTEM "linux_sea/08-hardwaremanagement.xml">
|
||||
<!ENTITY softwaremanagement.xml SYSTEM "linux_sea/09-softwaremanagement.xml">
|
||||
<!ENTITY usermanagement.xml SYSTEM "linux_sea/10-usermanagement.xml">
|
||||
<!ENTITY networkmanagement.xml SYSTEM "linux_sea/11-networkmanagement.xml">
|
||||
<!ENTITY servicemanagement.xml SYSTEM "linux_sea/12-servicemanagement.xml">
|
||||
<!ENTITY storagemanagement.xml SYSTEM "linux_sea/13-storagemanagement.xml">
|
||||
<!ENTITY systemmanagement.xml SYSTEM "linux_sea/14-systemmanagement.xml">
|
||||
<!ENTITY graphicenvironment.xml SYSTEM "linux_sea/15-graphicenvironment.xml">
|
||||
<!ENTITY installgentoo.xml SYSTEM "linux_sea/16-installgentoo.xml">
|
||||
|
||||
<!ENTITY tipsandanswers.xml SYSTEM "linux_sea/90-tipsandanswers.xml">
|
||||
<!ENTITY glossary.xml SYSTEM "linux_sea/91-glossary.xml">
|
||||
<!ENTITY genindex.sgm SYSTEM "genindex.sgm">
|
||||
]>
|
||||
<book>
|
||||
<title>Linux Sea</title>
|
||||
|
||||
<bookinfo>
|
||||
<title>Linux Sea</title>
|
||||
|
||||
<author>
|
||||
<firstname>Sven</firstname>
|
||||
|
||||
<surname>Vermeulen</surname>
|
||||
</author>
|
||||
|
||||
<authorblurb>
|
||||
<para>
|
||||
Sven Vermeulen is a Gentoo Linux documentation developer, largely
|
||||
to blame for the Gentoo Handbook and a large number of Gentoo-related
|
||||
guides. You can find him online under the alias "SwifT" or reach him
|
||||
through his Gentoo e-mail address "swift@gentoo.org".
|
||||
</para>
|
||||
</authorblurb>
|
||||
|
||||
<abstract>
|
||||
<para>
|
||||
The book "Linux Sea" offers a gentle yet technical (from end-user
|
||||
perspective) introduction to the Linux operating system, using Gentoo
|
||||
Linux as the example Linux distribution. It does not nor will it ever
|
||||
talk about the history of the Linux kernel or Linux distributions or
|
||||
dive into details that are less interesting for Linux users.
|
||||
</para>
|
||||
<para>
|
||||
For various topics, the online Gentoo Handbook offers a very detailed
|
||||
approach and as such is mandatory reading for any Gentoo Linux user who
|
||||
wants to know the full power of this Operating System. Although there is
|
||||
definitely overlap between "Linux Sea" and the online Gentoo Handbook,
|
||||
"Linux Sea" is by no means meant to replace the online Gentoo Handbook.
|
||||
</para>
|
||||
<para>
|
||||
"Linux Sea" will attempt to focus on topics that everyday users would
|
||||
probably need to know to continue working with Gentoo Linux.
|
||||
</para>
|
||||
</abstract>
|
||||
|
||||
<edition>Linux Sea v1.1</edition>
|
||||
|
||||
<copyright>
|
||||
<year>2009, 2010</year>
|
||||
|
||||
<holder>Sven Vermeulen</holder>
|
||||
</copyright>
|
||||
|
||||
<legalnotice>
|
||||
<para>
|
||||
You are free to share (copy, distribute and transmit) the work as well
|
||||
as remix (adapt) the work under the conditions of the Creative Commons
|
||||
Attribution Noncommercial Share Alike 2.0 license, available at
|
||||
http://creativecommons.org/licenses/by-nc-sa/2.0/be/deed.en
|
||||
</para>
|
||||
</legalnotice>
|
||||
</bookinfo>
|
||||
|
||||
<toc></toc>
|
||||
|
||||
<!-- Part - On Linux and Free Software -->
|
||||
&whatislinux.xml;
|
||||
&freesoftware.xml;
|
||||
&community.xml;
|
||||
<!-- Part - Working with Linux -->
|
||||
&runninglinux.xml;
|
||||
&linuxfs.xml;
|
||||
&processes.xml;
|
||||
<!-- Part - Simple System Administration -->
|
||||
&kernelbuilding.xml;
|
||||
&hardwaremanagement.xml;
|
||||
&softwaremanagement.xml;
|
||||
&usermanagement.xml;
|
||||
&networkmanagement.xml;
|
||||
&servicemanagement.xml;
|
||||
&storagemanagement.xml;
|
||||
&systemmanagement.xml;
|
||||
&graphicenvironment.xml;
|
||||
<!-- Part - Installing Gentoo Linux -->
|
||||
&installgentoo.xml;
|
||||
<!-- Part - Addenda -->
|
||||
&tipsandanswers.xml;
|
||||
&glossary.xml;
|
||||
|
||||
&genindex.sgm;
|
||||
</book>
|
1026
src/linux_sea/01-whatislinux.xml
Normal file
1026
src/linux_sea/01-whatislinux.xml
Normal file
File diff suppressed because it is too large
Load diff
791
src/linux_sea/02-freesoftware.xml
Normal file
791
src/linux_sea/02-freesoftware.xml
Normal file
|
@ -0,0 +1,791 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
|
||||
<chapter>
|
||||
<title>How does Free Software affect Linux?</title>
|
||||
|
||||
<section>
|
||||
<title>Introduction</title>
|
||||
|
||||
<para>The Linux OS has become increasingly popular mainly due to the
|
||||
freedom it allows (and of course also the low or zero-fee price of the
|
||||
entire operating system). In this chapter we see how these freedoms come
|
||||
to life and how they are protected and sustained.</para>
|
||||
|
||||
<para>We also take a look at the development model used by free software
|
||||
projects in general because it is a major result of said freedoms, one
|
||||
that makes free software projects often more interesting than
|
||||
closed-source commercial software projects. The development model is also
|
||||
one of the major strengths of free software.</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Free Software</title>
|
||||
|
||||
<para>If we take a step back from all technical aspects, Linux differs
|
||||
from the closed-source commercial software in an important aspect:
|
||||
licensing. Licensing is what drives free software...</para>
|
||||
|
||||
<section>
|
||||
<title>What are Software Licenses?</title>
|
||||
|
||||
<para>Software is someone's intellectual property. Intellectual
|
||||
property<indexterm>
|
||||
<primary>intellectual property</primary>
|
||||
</indexterm> is a heavy word that shouldn't be interpreted to anything
|
||||
else than the result of some effort to create something that is not a
|
||||
plain copy. If you write some text, the resulting text is your
|
||||
intellectual property (unless you've copied it from somewhere).</para>
|
||||
|
||||
<para>Intellectual property is protected by law. Copyright<indexterm>
|
||||
<primary>copyright</primary>
|
||||
</indexterm> protects your intellectual property by prohibiting others
|
||||
to copy, adapt, reproduce and/or redistribute your ``thing'' without
|
||||
your consent. Mind you though that not every intellectual property is
|
||||
copyright protected and copyright differs from country to country. An
|
||||
example of intellectual property that isn't copyright protected is a
|
||||
mathematical method: even though the inventor of the method had to
|
||||
ponder years and years on it, his method isn't copyright protected (but
|
||||
if he wrote a text about this method, the text itself is). Copyright is
|
||||
automatically assigned: it doesn't cost you anything and it is broadly
|
||||
accepted.</para>
|
||||
|
||||
<para>Another protection is a patent<indexterm>
|
||||
<primary>patent</primary>
|
||||
</indexterm>. Patents are (or should be) granted to new inventions who
|
||||
are not known to the public at the time of the patent request. Patents
|
||||
are often used to protect intellectual property that isn't protected by
|
||||
the copyright: methods for doing stuff (including medical compositions).
|
||||
Sadly, the industry is often abusing patents for much more when they
|
||||
have a patent with a broad action field: the patent covers too much,
|
||||
allowing the company to force others not to use a method they actually
|
||||
do have the right to use. Also, both the request and the patent grant
|
||||
are very costly and only larger companies have the abilities to obtain
|
||||
(and protect) several patents. Smaller companies or individuals don't
|
||||
have the means to obtain a patent, let alone protect themselves in a
|
||||
court because they might have used a method that is described in one or
|
||||
more patents.</para>
|
||||
|
||||
<para>I use the word <emphasis>abuse</emphasis> because companies often
|
||||
get patents for methods that are broadly used or are so silly that you'd
|
||||
wonder what patent office (patent requests are - or should be - checked
|
||||
for their validity before they are granted) has granted those
|
||||
patents.</para>
|
||||
|
||||
<para>I'll abstain from elaborating on this (politically sensitive)
|
||||
topic more and move on to <emphasis>software
|
||||
licenses</emphasis><indexterm>
|
||||
<primary>software license</primary>
|
||||
</indexterm>. A software license is a contract between you, the
|
||||
software user, and the software copyright owner. It tells you what you
|
||||
can and cannot do with the software. Any software that is not licensed
|
||||
is fully copyright protected, meaning you shouldn't even have it, let
|
||||
alone run it.</para>
|
||||
|
||||
<para>Most commercial-grade licenses are often called the
|
||||
EULAs<indexterm>
|
||||
<primary>EULA</primary>
|
||||
</indexterm>, or End User License Agreements. They usually say what
|
||||
you are allowed to do with the software (often including what you are
|
||||
allowed to use the software for). The EULAs more often stress what is
|
||||
denied rather than allow anything. One of the many topics is
|
||||
redistribution of the software. Most EULAs explicitly disallow
|
||||
redistribution.</para>
|
||||
|
||||
<para>Linux (and free software in general) is different. The
|
||||
accompanying license grants you the right to copy the software, obtain
|
||||
the source code, modify it and redistribute it (with or without
|
||||
modifications) and even sell it. Because there are many variations
|
||||
possible there are many popular licenses.</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>What Licenses Exist?</title>
|
||||
|
||||
<para>I'll list a few of the more popular licenses here, but be advised,
|
||||
there are more than 800 licenses around. Many of those licenses are
|
||||
quite similar (or are exactly the same) and the free software community
|
||||
should start to consolidate all those licenses in a much smaller set.
|
||||
Sadly, they haven't done so yet. Luckily, the 90-10 rule here applies:
|
||||
90% of all free software uses 10% of the free software (or other)
|
||||
licenses. The other licenses are only marginally used, sometimes just
|
||||
for a single application.</para>
|
||||
|
||||
<section>
|
||||
<title>Public Domain</title>
|
||||
|
||||
<para>When software is placed under the public domain, you're free to
|
||||
do whatever you want with it: the author waves any right he can to
|
||||
allow for full freedom of his software.</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>MIT License and some BSD-like Licenses</title>
|
||||
|
||||
<para>The MIT license and some BSD-like licenses are almost like the
|
||||
public domain, but ask you to keep the copyright notice intact. This
|
||||
is a very popular license because the author allows you to do whatever
|
||||
you want as long as you keep his name on the product copyright notice
|
||||
as well.</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>GPL</title>
|
||||
|
||||
<para>The GNU Public License<indexterm>
|
||||
<primary>GPL</primary>
|
||||
</indexterm> is the most widely used free software license, but for
|
||||
some people also the most restrictive free software license. The GPL
|
||||
tells you that you can do whatever you want with the software, as long
|
||||
as you provide the source code of your modifications to whoever you
|
||||
distributed the modified version to and as long as this modification
|
||||
is under the GPL as well.</para>
|
||||
|
||||
<para>The Linux kernel is GPL licensed.</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>OSI Approved Licenses</title>
|
||||
|
||||
<para>An OSI approved license is a license that adheres to the
|
||||
<emphasis>Open Source Definition</emphasis><indexterm>
|
||||
<primary>Open Source Definition</primary>
|
||||
</indexterm> written down by the <emphasis>Open Source
|
||||
Initiative</emphasis><indexterm>
|
||||
<primary>Open Source Initiative</primary>
|
||||
</indexterm><indexterm>
|
||||
<primary>OSI</primary>
|
||||
</indexterm> of which the following points are a free
|
||||
interpretation:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>free redistribution</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>source code available</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>modifications are allowed (including redistribution)</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>no discrimination (people, fields ...)</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>FSF Approved Licenses</title>
|
||||
|
||||
<para>An FSF<indexterm>
|
||||
<primary>FSF</primary>
|
||||
</indexterm> approved license adheres to the <emphasis>Free Software
|
||||
</emphasis><indexterm>
|
||||
<primary>free software</primary>
|
||||
</indexterm>definition written down by the <emphasis>Free Software
|
||||
Foundation</emphasis> of which the following points are the core of
|
||||
the definition:</para>
|
||||
|
||||
<para>You should be free to ...</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>run the program for any purpose</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>study how the program works and adapt it to your
|
||||
needs</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>redistribute copies</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>improve the program and release your changes to the
|
||||
public</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Free Software isn't Non-Commercial</title>
|
||||
|
||||
<para>Free software is often perceived to be a pure hobbyist project: it
|
||||
would not be commercially viable to bring free software to the
|
||||
enterprise world. After all, if software is freely available, what kind
|
||||
of profit could a company make from it. Nothing could be further from
|
||||
the truth...</para>
|
||||
|
||||
<para>It is true that free software requires a different look on
|
||||
software in a commercial environment (including companies). Companies
|
||||
who <emphasis>use</emphasis> software want to be assured that they have
|
||||
support for the software when things go wrong. They often close (costly)
|
||||
support contracts with the software company where service level
|
||||
agreements (abbreviated to SLAs) are defined. Based on these contracts,
|
||||
the company has the assurance that if certain services become
|
||||
unavailable, the supporting company will do whatever it can to bring the
|
||||
service back or, in some occasions, compensate the financial damage that
|
||||
the downfall has caused.</para>
|
||||
|
||||
<para>Most of the time, these support contracts are closed with the
|
||||
software company itself because it has the most knowledge of the
|
||||
software (as it is probably the only company with access to the software
|
||||
code). Sadly, as good as this reason is, companies don't look at free
|
||||
software ``because there is no support''. This isn't true; support for
|
||||
free software is still (commercially) available, but most of the time
|
||||
not from the creators themselves. And although this scares the
|
||||
companies, the reason why this support is still as good as with
|
||||
off-the-shelf software remains the same: the supporting company has
|
||||
access to the source code of the tool and has professional knowledge
|
||||
about the tool. It probably has developers in the software project
|
||||
itself.</para>
|
||||
|
||||
<para>Companies that <emphasis>sell</emphasis> software are of course
|
||||
often against free software. When these companies major income depends
|
||||
on the sales of their software, it would not be viable to make the
|
||||
software free. If they would, competiting companies would have full
|
||||
access to the source code and improve their own product with it.</para>
|
||||
|
||||
<para>I don't think this is a disadvantage though. Software companies
|
||||
should use their main strength: knowledge about the tool. As mentioned
|
||||
before, other companies often want to close support contracts to ensure
|
||||
the service that the software delivers; if the software company creates
|
||||
free software, this wouldn't change. For many software companies,
|
||||
support contracts are the main source of income.</para>
|
||||
|
||||
<para>It is still possible to sell free software; some pioneering
|
||||
companies are payed to made modifications to free software because
|
||||
companies don't have the resources to do so themselves. These companies
|
||||
can keep the modifications private if the free software license allows
|
||||
this) but can also bring these modifications to the public by
|
||||
contributing it to the software project itself.</para>
|
||||
|
||||
<para>A major proof of this is the acceptance of free software by major
|
||||
software players such as Sun Microsystems and IBM, and the emergance of
|
||||
new software players that build their business upon free software, such
|
||||
as RedHat or MySQL<indexterm>
|
||||
<primary>MySQL</primary>
|
||||
</indexterm> (recently acquired by Sun Microsystems). The latter
|
||||
company uses a dual-licensed software approach: the MySQL source code is
|
||||
available in two licenses, a free software one for the public and a more
|
||||
closed one for companies who want support from MySQL itself. Using a
|
||||
dual-licensed approach allows the company to support a fixed state of
|
||||
their product while keeping the software free. Supporting a fixed state
|
||||
of the product is of course much easier than to support the software in
|
||||
general.</para>
|
||||
|
||||
<para>However, don't think that every free software project is
|
||||
enterprise-ready or that you will be able to find (paid) support for
|
||||
every software project. You should carefully check out every software
|
||||
title you want to use if you want to use software, free or not. For end
|
||||
users, distributions help you to pick software. If a distribution
|
||||
packages a certain software title, it feels that the software title is
|
||||
stable and well supported.</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>So Linux is Free?</title>
|
||||
|
||||
<para>Yes, Linux is free. It is certainly free in the sense of ``free
|
||||
speech'' and although most software titles are also free in the sense of
|
||||
``free beer'', you shouldn't be surprised to see distributions you can
|
||||
or have to pay for. In that case, you can be paying for the software
|
||||
medium (the burned DVD), accompanying printed documentation, 30-day
|
||||
installation and usage support or for the resources that the
|
||||
distribution has to acquire itself (like infrastructure).</para>
|
||||
|
||||
<para>Most distributions have free downloads with online documentation
|
||||
and wonderfull community support (active mailing lists or Internet
|
||||
fora), which is why Linux is that popular: you can download, install and
|
||||
use several distributions to decide which one is best for you. You can
|
||||
try the software (without loosing any functionality) and you don't even
|
||||
have to pay for it to continue using it (as is the case with
|
||||
shareware<indexterm>
|
||||
<primary>shareware</primary>
|
||||
</indexterm>). Gentoo is one of those distribution projects. Such
|
||||
distributions get their financial backing (for infrastructure and
|
||||
organisational needs, including juridical support and bureaucratic
|
||||
paperwork) from user donations or sales of pressed DVDs. Companies also
|
||||
tend to support distributions financially or with hardware / bandwidth
|
||||
donations.</para>
|
||||
|
||||
<para>Some distributions are only available when you pay for it. In that
|
||||
case you often pay for the support or for additional software in the
|
||||
distribution which isn't freely available. A popular distribution is
|
||||
RedHat Enterprise Linux, a Linux distribution specifically targetting
|
||||
companies who want to set up Linux servers. You don't just pay for the
|
||||
support, but also for the resources that RedHat has put in the
|
||||
distribution to make it certified for other software (such as Oracle and
|
||||
SAP) so that you can run (with support from the software company) this
|
||||
software on your RHEL installations.</para>
|
||||
|
||||
<para>It is important however to understand that distribution projects
|
||||
only develop a very small part of the software that you install on your
|
||||
system. Most software comes from other free software projects and these
|
||||
projects often don't get gifts from the distribution projects.
|
||||
Nonetheless they do face the same problems as any other (larger) free
|
||||
software project: bureaucratic paperwork, juridical support,
|
||||
infrastructure needs, ... So it comes to no surprise that these projects
|
||||
also have the same income streams as the distribution projects: user
|
||||
gifts, commercial sponsorship and software / support sales.</para>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Development Model</title>
|
||||
|
||||
<para>Due to the nature of free software projects, you'll find that it has
|
||||
quite some differences with closed-source commercial, off the shelf
|
||||
software...</para>
|
||||
|
||||
<section>
|
||||
<title>Multi-Project Development</title>
|
||||
|
||||
<para>One distribution provides an aggregation of software. Each of
|
||||
those software titles is built by a software project which usually
|
||||
differs from the distribution project. Hence, when you install a
|
||||
distribution on your system, it contains software from hundreds of
|
||||
software projects around the world.</para>
|
||||
|
||||
<para>So to obtain support for a flaw you found, or an issue you come
|
||||
across, the first place to seek support would be the distribution, but
|
||||
chances are that the distribution will put the support question
|
||||
<emphasis>upstream</emphasis><indexterm>
|
||||
<primary>upstream</primary>
|
||||
</indexterm>, meaning that it forwards the request to the software
|
||||
project that develops the software you have an issue with.</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Transparent Development</title>
|
||||
|
||||
<para>Free software is usually developed transparently: if you are
|
||||
interested in the development of your favorite software title, you can
|
||||
quickly find out how its development works and how to
|
||||
participate.</para>
|
||||
|
||||
<para>Usually, software projects use a <emphasis>concurrent versioning
|
||||
system</emphasis><indexterm>
|
||||
<primary>concurrent versioning system</primary>
|
||||
</indexterm> such as CVS<indexterm>
|
||||
<primary>CVS</primary>
|
||||
</indexterm> or SVN<indexterm>
|
||||
<primary>SVN</primary>
|
||||
</indexterm> to keep the source code in. Such systems allow for dozens
|
||||
(or even hundreds) of developers to work on the same source code
|
||||
simultaneously and keep track of all changes that have happened (so they
|
||||
can easily be reverted). This isn't just for free software projects -
|
||||
almost all software projects use such a system. However, free software
|
||||
projects usually allow non-developers to see the progress of the
|
||||
development by giving them read-only access to the system. This way, you
|
||||
can track every change to the software personally.</para>
|
||||
|
||||
<para>To discuss the future of the software, or to take software design
|
||||
decisions, most free software projects can't use real-life meetings:
|
||||
their developers are scattered around the world. A solution to this
|
||||
problem are communication systems such as mailing lists, IRC (chat) or
|
||||
forums (Internet or Usenet). Most of these communication systems are
|
||||
also open for non-developers to participate in the discussions, meaning
|
||||
that end users have direct communication with developers.</para>
|
||||
|
||||
<para>The latter has a major advantage: changes requested by the users
|
||||
are directly communicated to the developers so that misinterpretation is
|
||||
less frequent, allowing for projects to update their software more
|
||||
accurate and frequent.</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Fast Release Cycles</title>
|
||||
|
||||
<para>Larger free software projects have hundreds of contributors and
|
||||
several dozens of developers. Those developers are very motivated to
|
||||
work on the software by passion. If they weren't, they wouldn't be
|
||||
working on the software as there usually is no other incentive to work
|
||||
for (such as a nice pay check) although it must be said that there are
|
||||
software projects (and they aren't small in numbers) who have paid
|
||||
developers as well. As a result, the software is quickly progressing and
|
||||
new features are added quickly (some projects even have new features on
|
||||
an almost daily basis).</para>
|
||||
|
||||
<para>To make sure that new features and fixes are tested properly,
|
||||
software development snapshots are communicated to a broad community of
|
||||
testers and stable snapshots are often released to the general public as
|
||||
a new release of the software. Different release types are commonly used
|
||||
in free software environments:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><emphasis>nightly snapshots</emphasis><indexterm>
|
||||
<primary>release</primary>
|
||||
|
||||
<secondary>nightly snapshot</secondary>
|
||||
</indexterm> are extracts of the source code at a certain period
|
||||
in time which are built and put online for everyone to use. These
|
||||
releases are automatically generated and are bleeding-edge as they
|
||||
represent the state of the software title only a few moments ago.
|
||||
They are highly experimental and only meant for developers or
|
||||
experienced contributors</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><emphasis>development releases</emphasis> are intermediate
|
||||
releases, similar to nightly snapshots, but somewhat more
|
||||
coördinated by the developers. They usually have a
|
||||
ChangeLog<indexterm>
|
||||
<primary>ChangeLog</primary>
|
||||
</indexterm> which lists the changes in it since the previous
|
||||
release. Such releases are meant for experienced contributors and
|
||||
testers who don't mind the software to be broken from time to
|
||||
time.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><emphasis>beta releases</emphasis><indexterm>
|
||||
<primary>release</primary>
|
||||
|
||||
<secondary>beta</secondary>
|
||||
</indexterm> contain a preliminary vision of how the final release
|
||||
will look like. It might not be fully stable or complete but
|
||||
individuals who don't participate in the frequent tests can try and
|
||||
see if the new release would still work for them and contain the
|
||||
fixes they requested. Beta releases are also important for
|
||||
distributions as they can now start developing packages for the
|
||||
software so that they are ready when the final release of the
|
||||
software is made.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><emphasis>release candidates</emphasis><indexterm>
|
||||
<primary>release</primary>
|
||||
|
||||
<secondary>candidate</secondary>
|
||||
</indexterm> are proposals for final releases. They contain the
|
||||
software such as the developers would like to release it. They now
|
||||
wait for a certain period so that the testers and general public can
|
||||
run their tests to ensure no bugs are in it anymore. New features
|
||||
aren't added to the software now, only bug fixes. When no new (or
|
||||
major) bugs are found, the release candidate is converted to a new
|
||||
release</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><emphasis>stable release</emphasis><indexterm>
|
||||
<primary>release</primary>
|
||||
|
||||
<secondary>stable</secondary>
|
||||
</indexterm> are the final releases of the entire development
|
||||
process. These releases are now used by the users and distributions
|
||||
and the entire development process can start over.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Stable releases also tend to be released in specific gradations,
|
||||
reflected by their version number. A popular numbering scheme is x.y.z
|
||||
where:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>x is the major version; this version number is only updated
|
||||
when the software has been substantially changed. Often such
|
||||
releases also require all packages that depend on it to be updated
|
||||
as well because they might use features or libraries that are
|
||||
changed.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>y is the minor version; this version number is updated every
|
||||
time the software has been updated with lots of new features</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>z is the bugfix version; this version number is updated
|
||||
whenever mainly bug fixes have been added to the software</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>As an example I'll list the release dates for the KDE 4.1 release.
|
||||
Since KDE is a complete graphical environment its release cycle is
|
||||
``slower'' than others. Yet if you compare it with the release cycle of
|
||||
for instance Microsoft Windows its still blazingly fast. Of course, that
|
||||
would be like comparing apples with glass...</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>2008-04-29: KDE 4.1.0 alpha1 is released</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>2008-05-27: KDE 4.1.0 beta1 is released</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>2008-06-24: KDE 4.1.0 beta2 is released</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>2008-07-15: KDE 4.1.0 release candidate is released</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>2008-07-29: KDE 4.1.0 is released</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>2008-09-03: KDE 4.1.1 is released</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>2008-10-03: KDE 4.1.2 is released</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>2008-11-05: KDE 4.1.3 is released</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Just for your information, KDE 4.2 beta 1 is released on November
|
||||
26th, 2008, merely 7 months after KDE 4.1's alpha release.</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Large Documentation Base</title>
|
||||
|
||||
<para>Because the project often can't deliver human, paid support for
|
||||
the software, its success is largely based on the documentation the
|
||||
project delivers. If the accompanying documentation contains all
|
||||
information about the software, experienced or independent users can
|
||||
find all user related answers in the documentation.</para>
|
||||
|
||||
<para>Free software projects usually have high profile documentation,
|
||||
often better than the online available documentation of closed-source
|
||||
off the shelf software. Many larger projects even have all this
|
||||
documentation available in several languages. And if you don't find your
|
||||
answer in the project documentation, chances are that one or more users
|
||||
have written independent guides on the software elsewhere.</para>
|
||||
|
||||
<para>There are many sites on the internet that link to the various
|
||||
documentation resources and the same problem as with free software
|
||||
itself arises: often you have too many resources making it harder to
|
||||
find the correct document to guide you through your end user experience
|
||||
of the software. However, unlike the plethora on software titles around
|
||||
(making it difficult to find the right software for the right job) it is
|
||||
easier for a user to know if documentation is good or not so there is no
|
||||
need for a ``documentation distribution''.</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Software Life Cycle</title>
|
||||
|
||||
<para>If you buy software of an unknown, smaller company, you have the
|
||||
chance that after a number of years, the company doesn't exist anymore
|
||||
or is taken over and doesn't support that software since. Something
|
||||
similar is true with free software: if the project decides that there
|
||||
aren't enough resources to continue the development of the software
|
||||
(usually due to a shortage on developers) it can stop the development of
|
||||
the software, usually resulting in a drop of support from users as
|
||||
well.</para>
|
||||
|
||||
<para>However, unlike the case of the software company, the free
|
||||
software source code remains available to the public. If you desperately
|
||||
need the software to work for you, you can just pick the source code and
|
||||
continue the development of it yourself (or pay others to do it for
|
||||
you). You're also confident that the software will remain free.</para>
|
||||
|
||||
<para>If at any time all the copyright owners of the free software
|
||||
decide that the software falls under a different license which you don't
|
||||
agree after, you can take the sourcecode of the moment right before the
|
||||
copyright holders decided to switch the licenses and continue the
|
||||
development under that license (as that software is still under the
|
||||
original license and not the new one). This process (where a group of
|
||||
developers disagree with the development plans of the software and start
|
||||
a new project based on the same source code) is called
|
||||
<emphasis>forking</emphasis><indexterm>
|
||||
<primary>fork</primary>
|
||||
</indexterm> the project.</para>
|
||||
|
||||
<para>A well known example of such a fork is the creation of the X.org
|
||||
project, a fork of the XFree86 project which at a certain point in time
|
||||
decided to change their license. The license change wasn't the only
|
||||
reason for that fork: some developers were also unhappy with the
|
||||
development policy on new features and the development pace. Both
|
||||
projects are currently still around although X.org is now the most
|
||||
popular one.</para>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Open Standards</title>
|
||||
|
||||
<para>Because so many projects are involved, it is important that each
|
||||
project uses standards as much as possible. Only by complying to open
|
||||
standards can projects easily and efficiently work together. Next are a
|
||||
few important standards or well perceived specifications in the free
|
||||
software world.</para>
|
||||
|
||||
<section>
|
||||
<title id="fhs" xreflabel="Filesystem Hierarchy Standard">Filesystem
|
||||
Hierarchy Standard</title>
|
||||
|
||||
<para>The first standard I discuss is the <emphasis>Filesystem Hierarchy
|
||||
Standard</emphasis><indexterm>
|
||||
<primary>Filesystem Hierarchy Standard</primary>
|
||||
</indexterm>, abbreviated to FHS<indexterm>
|
||||
<primary>FHS</primary>
|
||||
</indexterm>. This standard is used by almost all distributions and
|
||||
discusses the file locations on a Linux file system. One can read the
|
||||
FHS online at <ulink
|
||||
url="http://www.pathname.com/fhs"><uri>http://www.pathname.com/fhs/</uri></ulink>
|
||||
but many other resources describe the FHS layout as well.</para>
|
||||
|
||||
<para>The file system layout for Unix/Linux is quite different from the
|
||||
file system layout as seen from within Microsoft Windows. Instead of
|
||||
marking partitions by a drive letter, Unix/Linux sees a file system as a
|
||||
tree-like structure, starting with a root and building up through
|
||||
directories and files. You could say that the branches in the structure
|
||||
are the directories and the leaves are the files. If you think you have
|
||||
not encountered a Unix/Linux file system before, think again: URLs that
|
||||
you use on the Internet are based upon this structure. For instance, the
|
||||
URL <ulink
|
||||
url="http://www.gentoo.org/doc/en/faq.xml">http://www.gentoo.org/doc/en/faq.xml</ulink>
|
||||
denotes the file called <filename>faq.xml</filename> which can be found
|
||||
on the server of <ulink
|
||||
url="http://www.gentoo.org">www.gentoo.org</ulink>, in the directory
|
||||
<filename>/doc/en</filename>. So, / is the root, "doc" is a branch of
|
||||
this root and "en" is a branch of "doc".</para>
|
||||
|
||||
<para>Distributions that adhere to the FHS allow their Linux users to
|
||||
easily switch between distributions: the file system structure remains
|
||||
the same so navigation between folders, device files ... doesn't change.
|
||||
It also enables independent packagers to create packages for several
|
||||
distributions at once (as long as the distributions use the same package
|
||||
format). But foremost, it allows Linux users of one distribution to help
|
||||
users of other distributions as there isn't actually any difference
|
||||
between their file system layouts.</para>
|
||||
|
||||
<para>The current version of this standard is 2.3, released on January
|
||||
29th, 2004.</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Linux Standard Base</title>
|
||||
|
||||
<para>The <emphasis>Linux Standard Base</emphasis><indexterm>
|
||||
<primary>Linux Standard Base</primary>
|
||||
</indexterm>, or LSB<indexterm>
|
||||
<primary>LSB</primary>
|
||||
</indexterm> sets the layout, binary compatibility, required
|
||||
libraries, required commands and more for a Linux operating system. If a
|
||||
distribution adheres to the LSB standard it can install, run and
|
||||
maintain LSB compliant (software) packages.</para>
|
||||
|
||||
<para>Distributions should adhere to the LSB if they want to ensure that
|
||||
they don't deviate from a good Linux standard. As a consequence, the LSB
|
||||
is an effort to ensure that distributions stay similar with regards to
|
||||
libraries, commands ... or in overall, user experience. It is a good
|
||||
effort to ensure that no fragmentation occurs in the Linux world.</para>
|
||||
|
||||
<para>Because the LSB is a broad standard, it comprises of other
|
||||
standards, including the forementioned FHS but also the <emphasis>Single
|
||||
Unix Specification</emphasis><indexterm>
|
||||
<primary>Single Unix Specification</primary>
|
||||
</indexterm> (SUS<indexterm>
|
||||
<primary>SUS</primary>
|
||||
</indexterm>) which defines how a Unix system should be. However, one
|
||||
cannot say that his Linux operating system is Unix because he would need
|
||||
to certify the OS (which requires serious financial support) and this
|
||||
certification wouldn't last long because the Linux OS changes
|
||||
often.</para>
|
||||
|
||||
<para>One of LSBs' largest advantages is that ISVs (Independent Software
|
||||
Vendors) such as Oracle, IBM, Sybase ... can package their software in
|
||||
an LSB-compatible software package which can then be installed on any
|
||||
LSB-compliant distribution.</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Free Desktop Specifications</title>
|
||||
|
||||
<para>On <uri>http://www.freedesktop.org</uri> you'll find a set of
|
||||
desktop specifications that are well known in the free software
|
||||
community. Although they aren't standards (as freedesktop<indexterm>
|
||||
<primary>freedesktop</primary>
|
||||
</indexterm> is no standards body and the specifications haven't been
|
||||
converted into OASIS or ISO standards) many distributions adhere to
|
||||
them.</para>
|
||||
|
||||
<para>These specifications define how menu entries are created and
|
||||
maintained, where icons should reside, but also how drag and drop
|
||||
between different libraries (most notably Qt<indexterm>
|
||||
<primary>Qt</primary>
|
||||
</indexterm> and GTK+<indexterm>
|
||||
<primary>GTK+</primary>
|
||||
</indexterm>, the graphical libraries for KDE and GNOME) should be
|
||||
made possible.</para>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Exercises</title>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>What is the difference between GPLv2 and GPLv3?</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Part of LSBs standard is the ELF or Executable and Linking
|
||||
Format, the binary format for executable, compiled code used by
|
||||
various Linux/Unix distributions. Can you find other operating systems
|
||||
that support the ELF format beyond Linux/Unix?</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Some people see fast releases as a weakness in the free software
|
||||
community: users are "forced" to upgrade their software more often and
|
||||
even though it is free, it still takes time (and sometimes headaches)
|
||||
to upgrade the software this often. Some distributions tend to help
|
||||
those users by offering stable (both in stability and in version
|
||||
releases) software only. How is this possible?</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>How is it possible that many distributions allow you to upgrade
|
||||
to the latest version without needing an installation CD or
|
||||
reinstallation from scratch?</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Further Resources</title>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><ulink
|
||||
url="http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/">The
|
||||
Cathedral and The Bazaar</ulink>, by Eric Steven Raymond - an essay on
|
||||
two different development models used in the Free Software
|
||||
community.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><ulink url="http://www.ffii.org">Foundation for a Free
|
||||
Information Infrastructure</ulink>, a NPO dedicated to establishing a
|
||||
free market in information technology.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><ulink
|
||||
url="http://www.gnu.org/philosophy/fighting-software-patents.htmlhttp://www.gnu.org/philosophy/fighting-software-patents.html">Fighting
|
||||
Software Patents</ulink>, by Richard Stallman - GNUs vision on
|
||||
software patents.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
</chapter>
|
489
src/linux_sea/03-community.xml
Normal file
489
src/linux_sea/03-community.xml
Normal file
|
@ -0,0 +1,489 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
|
||||
<chapter>
|
||||
<title>The Role of the Community</title>
|
||||
|
||||
<section>
|
||||
<title>Introduction</title>
|
||||
|
||||
<para>A very important asset of free software is the free software
|
||||
community. Just like with any technology or concept, free software has
|
||||
adepts that defend and promote free software to great extend. The free
|
||||
software community itself is very vivid and eager to help others in
|
||||
exploring the wonderful world of free software...</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Communities</title>
|
||||
|
||||
<para>Free software communities are similar to real communities, but with
|
||||
the Internet as main communication channel. Hence, these communities
|
||||
aren't clustered in space like real life communities would, but are
|
||||
scattered throughout the world. Nevertheless, the Internet ensures that
|
||||
participants of a community, even when they are lightyears (figure of
|
||||
speech) apart, talk to each other the same way as neighbours do.</para>
|
||||
|
||||
<para>The Internet is a great asset for these communities: you are not
|
||||
judged based on the color of your skin, your age or your looks. What
|
||||
matters is how you communicate with others, how you present yourself and
|
||||
how you react in discussions. Debates in a community can often become
|
||||
quite vivid, especially when the subject is one where facts aren't
|
||||
sufficient to provide good answers. And when these discussions change from
|
||||
debates into almost insulting fights, a flamewar<indexterm>
|
||||
<primary>flamewar</primary>
|
||||
</indexterm> is born.</para>
|
||||
|
||||
<para>In flamewars, facts and reason are often far away. You should
|
||||
definitely try to avoid flamewars for discussions where decisions have to
|
||||
be made, but it is impossible to really prevent them as they are the
|
||||
result of people who have an active interest in a subject they are eager
|
||||
to defend, especially when there is no clear answer to the question that
|
||||
started the flamewar.</para>
|
||||
|
||||
<para>Examples of such flamewars are ``What is the best Linux
|
||||
distribution?'' or ``What text editor should I choose?'' because these
|
||||
questions don't have clear answers: the best distribution for one person
|
||||
might be the worst for another, and there are many text editors around. In
|
||||
latin one would say ``de gustibus et coloribus non est disputandum'' (one
|
||||
shouldn't argue about tastes and colors) and this is very true for these
|
||||
kind of questions.</para>
|
||||
|
||||
<para>When you don't have a choice, flamewars don't exist: you cannot
|
||||
compare one product with itself. But in the free software world, choice is
|
||||
an important concept. You have the choice between many free operating
|
||||
systems (next to Linux you have many BSD flavors, Sun Solaris 10 and even
|
||||
less popular but promising operating systems like the GNU Hurd),
|
||||
distributions (there are over a hundred distributions around), graphical
|
||||
environments (not a single day goes by without battles about GNOME versus
|
||||
KDE), office suites, etc.</para>
|
||||
|
||||
<para>An often debated subject is ``the best distribution'' and although
|
||||
this book might seem a bit biased on the subject the best answer I can
|
||||
give you is that there is no best distribution, at least not generally
|
||||
speaking. The meaning of the term ``best'' is judged by people who have
|
||||
personal preferences about their operating system. And many of these
|
||||
people defend their best distribution very vividly.</para>
|
||||
|
||||
<para>Distribution communities are very active, mostly because they are
|
||||
quite large. The Gentoo community for instance is known for its
|
||||
responsiveness: the Gentoo chat channel is always alive (with more than
|
||||
800 participants at any time) as is its forum (with more than a thousand
|
||||
posts per day) and mailinglists. Of course, general flamewars on
|
||||
distributions are often on more neutral grounds, but heated discussions on
|
||||
other topics are a daily routine.</para>
|
||||
|
||||
<para>For this reason, most communities have people who keep the
|
||||
discussions sane and prevent flamewars from growing too much. People who
|
||||
try to induce flamewars on the communication channels (called
|
||||
<emphasis>trolls</emphasis><indexterm>
|
||||
<primary>troll</primary>
|
||||
</indexterm>) are taken care of by these operators: channel operators
|
||||
can kick or even ban such people from the chat channel, mailinglist
|
||||
operators remove these people from the list and forum operators remove the
|
||||
profiles of these users. You can safely say these people are the police of
|
||||
the community.</para>
|
||||
|
||||
<section>
|
||||
<title>Local Communities</title>
|
||||
|
||||
<para>A specific type of community is one which is local in space. Such
|
||||
communities often organise meetings (conferences, talks, barbequeues,
|
||||
...) and offer help to people local to the location where the community
|
||||
is hosted.</para>
|
||||
|
||||
<para>LUG<indexterm>
|
||||
<primary>LUG</primary>
|
||||
</indexterm>s (Linux User Group<indexterm>
|
||||
<primary>Linux User Group</primary>
|
||||
</indexterm>s) are succesful examples of such communities: these
|
||||
groups aggregate together, debating on the evolution in the Linux world
|
||||
and help others with Linux installations (Linux Install Fests<indexterm>
|
||||
<primary>Linux Install Fest</primary>
|
||||
</indexterm> are local meetings that offer help in deploying your
|
||||
favorite Linux distribution on your system). You might find a LUG very
|
||||
close by.</para>
|
||||
|
||||
<para>Many LUGs offer various services to their users which is often
|
||||
unseen in communities for commercial software. Moreover, many LUGs offer
|
||||
these services free-of-charge:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>individual, on-site help with installation, configuration and
|
||||
maintenance of a Linux distribution or other free software</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>courses, talks and presentations offering you more insight in
|
||||
available Free Software</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>specific documentation tailored to the needs of its own
|
||||
users</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>If you have some time to spare, I really recommend to join a local
|
||||
LUG - even if you are not searching for help, you can still offer your
|
||||
own expertise to others and make connections (yes, social networking is
|
||||
important).</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Online Communities</title>
|
||||
|
||||
<para>When people want to discuss a particular software topic or
|
||||
distribution, online communities are often formed. These communities do
|
||||
not (or to a less extend) organise meetings at a specific location
|
||||
(often called "in real life") but rather use the Internet as the meeting
|
||||
place ("online" meetings).</para>
|
||||
|
||||
<para>Online communities have the advantage that its members can be
|
||||
anywhere in the world and just like LUGs, they still offer services to
|
||||
its users, also most of the time free-of-charge:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>online help with installation, configuration and maintenance
|
||||
of the software</para>
|
||||
|
||||
<para>In particular cases, communities can even offer interactive
|
||||
help through technologies such as SSH<indexterm>
|
||||
<primary>SSH</primary>
|
||||
</indexterm> (Secure SHell - allows users to log on and work on
|
||||
another machine) and VNC<indexterm>
|
||||
<primary>VNC</primary>
|
||||
</indexterm> (Virtual Network Computing - allows users to
|
||||
graphically log on and work on another machine, or see read-only
|
||||
sessions).</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>courses and online presentations</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>documentation, more specialised to the software title but
|
||||
often also localised (translated)</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>This is possible thanks to the various technologies available on
|
||||
the Internet, including</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Wiki (online collaboration software for developing
|
||||
documentation) software has become quite popular for developing and
|
||||
releasing documentation. The use of wiki's allows users to edit
|
||||
existing documentation or author new documentation online (with a
|
||||
simple browser) and the results of their editing is immediately
|
||||
visible to others.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Online (web)forums, where people can participate in
|
||||
discussions by placing messages and reacting to other messages. The
|
||||
advantage of web forums is that they are accessible through your web
|
||||
browser (which most firewalls still allow), can be consulted after
|
||||
the discussion has long been closed and where messages can be
|
||||
extended with images, attachments and formatted text.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Mailinglists, which is similar (function-wise) to web forums,
|
||||
but then organised through e-mail. People subscribe to a mailinglist
|
||||
and then receive all mails sent to that mailinglist to their
|
||||
personal mailbox. Replies to these mails are sent back to the
|
||||
mailinglists where they are again distributed to all mailinglist
|
||||
participants. Mailinglists are quite popular in free software
|
||||
communities as they are easily moderated and can be filtered. Also,
|
||||
mails often reach people faster than messages on a webforum so you
|
||||
could see a mailinglist as a faster discussion medium.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>IRC<indexterm>
|
||||
<primary>IRC</primary>
|
||||
</indexterm> (Internet Relay Chat) is a way of communicating with
|
||||
many people interactively. Most people know Instant Messaging
|
||||
software such as MSN or Google Talk. Well, IRC is somewhat older but
|
||||
still very much used as it supports chatrooms where several hundreds
|
||||
of people can participate. IRC is the fastest medium for
|
||||
participating in discussions and can be seen as a method for
|
||||
creating "online" meetings.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Support</title>
|
||||
|
||||
<para>Communities often perform the role of support people: if you have a
|
||||
question about their software project they are eager to answer and help.
|
||||
If you think the software is insufficient, they will help you expand it or
|
||||
have it work together with other tools (or even redirect you to other
|
||||
software projects if they feel you want something out of their favorite
|
||||
tool that the tool isn't made for).</para>
|
||||
|
||||
<para>Support can be given on many levels...</para>
|
||||
|
||||
<section>
|
||||
<title>Documentation Guides</title>
|
||||
|
||||
<para>A documentation guide is often created with one goal: describe how
|
||||
to do something with the tool. Such guides are therefor often called
|
||||
HOWTOs<indexterm>
|
||||
<primary>HOWTO</primary>
|
||||
</indexterm>. Much work is put in such HOWTOs because they should be
|
||||
correct, well formed but also complete. The better the HOWTO, the lesser
|
||||
questions are asked after reading it. If you ask the community how to
|
||||
perform a certain action and the action is described in such a HOWTO,
|
||||
you'll be redirected to that HOWTO (sometimes with a more crude
|
||||
reference to the RTFM<indexterm>
|
||||
<primary>RTFM</primary>
|
||||
</indexterm> term, or ``Read The Fucking Manual'' - although the third
|
||||
term is also often read as ``Fine'').</para>
|
||||
|
||||
<para>Other types of documentation are FAQs (<emphasis>Frequently Asked
|
||||
Questions</emphasis>) which are generally very small HOWTOs or answers
|
||||
to conceptual questions rather than technical ones. When you're new to a
|
||||
certain tool it is very interesting to read through the FAQs before you
|
||||
ask your question. Not only are chances high that you find your answer,
|
||||
you might find out more about the tool which can be very
|
||||
interesting.</para>
|
||||
|
||||
<para>Some communities also offer a knowledge base. Such systems can be
|
||||
seen as an aggregation of questions and answers, but unlike FAQs they
|
||||
might not be frequently asked. Knowledge bases often offer support
|
||||
solutions to specific setups.</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Internet and Usenet Forums</title>
|
||||
|
||||
<para>Internet forums (webbased) or Usenet forums (newsgroups<indexterm>
|
||||
<primary>newsgroup</primary>
|
||||
</indexterm>) are a more interactive approach to obtain support.
|
||||
Internet forums have the additional advantage that you can add specific
|
||||
formatting in your questions: you can show command code, exceptions or
|
||||
errors better than in plain text. You can even include screenshots.
|
||||
These forums allow for any user to be helped quite fast: forums are read
|
||||
by many and the interface is simple enough to quickly see the new
|
||||
topics.</para>
|
||||
|
||||
<para>An additional advantage of internet forums is that, once a
|
||||
question has been asked and answered, it is stored in the database of
|
||||
the forum. Hence, the entire forum can be seen as a knowledge base with
|
||||
a multitude of answers. Very popular topics are often made sticky,
|
||||
meaning that the topic remains on top even when no further discussion
|
||||
happens on it, increasing the chance that new users read the
|
||||
topic.</para>
|
||||
|
||||
<para>Usenet forums (or newsgroups) are another popular approach to
|
||||
support although it must be said that newsgroups are not used that often
|
||||
for free software tools. Usually you'll find a newsgroup when the
|
||||
project itself doesn't provide a forum (anyone can launch a new
|
||||
newsgroup) although it does happen that internet forums and usenet
|
||||
forums are linked: posts in one forum are merged with the other.</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Mailinglists</title>
|
||||
|
||||
<para>A more direct approach are mailinglists<indexterm>
|
||||
<primary>mailinglist</primary>
|
||||
</indexterm>, e-mail addresses where several dozens (or even hundreds)
|
||||
individuals listen to. A mailinglist is often perceived to be a bit
|
||||
faster than forums because many developers frequent mailinglists but not
|
||||
forums due to the ease of use: mailinglists result in plain e-mails
|
||||
which can be easily filtered.</para>
|
||||
|
||||
<para>Most mailinglists are archived as well, allowing you to skim
|
||||
through the older topics in the list. Whereas forums are usually pure
|
||||
for user experience, mailinglists are used as the primary communication
|
||||
channel for development purposes. Some projects also have internal
|
||||
development mailinglists which aren't readable to the public. This isn't
|
||||
because they want to hide development stuff from the users: such mailing
|
||||
lists are used to communicate security issues, personal information
|
||||
(including account information) but also to talk about topics that are
|
||||
juridically difficult to defend if they are made public.</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Chat</title>
|
||||
|
||||
<para>Chatting is almost the most direct form of communicating with each
|
||||
other. Many free software projects use IRC<indexterm>
|
||||
<primary>IRC</primary>
|
||||
</indexterm> (Internet Relay Chat) as a central communication channel.
|
||||
Users can be quickly helped through IRC while developers can talk and
|
||||
discuss changes quickly.</para>
|
||||
|
||||
<para>Chat channels can be very popular. Gentoo's main chat channel
|
||||
(#gentoo on the freenode network) has between 800 and 1000 participants
|
||||
at any time.</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Real-life Meetings</title>
|
||||
|
||||
<para>Once in a while, developer groups come together for real-life
|
||||
support or to discuss the evolution of their software. In many cases,
|
||||
real-life meetings offer a way for people to get hands-on, interactive
|
||||
help. We have talked about LUG meetings (where real-life meetings are
|
||||
often held) but also software communities have real-life meetings. Many
|
||||
of these meetings offer a way for developers to meet each other (for the
|
||||
first time), discuss topics and learn from each other.</para>
|
||||
|
||||
<para>In some cases, <emphasis>hackfest</emphasis>s<indexterm>
|
||||
<primary>hackfest</primary>
|
||||
</indexterm> are organized. During these meetings, developers
|
||||
aggregate together with a single goal: to develop new features or remove
|
||||
bugs from the software. Although this can well be done offline,
|
||||
hackfests allow developers to communicate freely and help other
|
||||
developers with their problems. Meeting in real life allows developers
|
||||
to easily show the problem they have (some problems can be difficult or
|
||||
too time consuming to write down).</para>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Conferences</title>
|
||||
|
||||
<para>In the Free Software world, conferences are often organized. During
|
||||
these conferences</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>talks are given about certain software titles (design, features,
|
||||
evolution, ...) or projects (infrastructure, offered services, used
|
||||
technologies, ...)</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>booths are organized where projects can show themselves to the
|
||||
wide(r) public. Distributions frequently use booths to hand out
|
||||
installation CD/DVDs and show systems running the distribution.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>companies offer information on how they use (or develop) free
|
||||
software (and sometimes recruit developers)</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<section>
|
||||
<title>FOSDEM</title>
|
||||
|
||||
<para>FOSDEM<indexterm>
|
||||
<primary>FOSDEM</primary>
|
||||
</indexterm>, or the <emphasis>Free and Open Source Developers
|
||||
European Meeting</emphasis>, takes place in Brussels, Belgium at the
|
||||
beginning of each year (around mid-february). During this conference,
|
||||
talks are given about coding and development of software, but you'll
|
||||
also find booths about various software projects/distributions and
|
||||
developer rooms (where a single project can offer talks about
|
||||
project-specific topics).</para>
|
||||
|
||||
<para>FOSDEM is held during two days and has become a major conference
|
||||
in the Free Software community, especially in Europe as many other
|
||||
conferences are held in the USA.</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>FOSS.IN</title>
|
||||
|
||||
<para>FOSS.IN<indexterm>
|
||||
<primary>FOSS.IN</primary>
|
||||
</indexterm>, or the <emphasis>Free and Open Source Software
|
||||
conference in India</emphasis>, is one of Asia's largest FOSS
|
||||
conferences. It occurs at the end of every year in Balgalore, India,
|
||||
featuring talks, discussions, workshops, meetings and more from
|
||||
international speakers, users and developers.</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>LinuxTag</title>
|
||||
|
||||
<para>LinuxTag<indexterm>
|
||||
<primary>LinuxTag</primary>
|
||||
</indexterm> is a free software exposition with primary focus on the
|
||||
Linux-based operating systems and solutions. Unlike FOSDEM, LinuxTag
|
||||
focuses more on the integration of Linux (and free software) in larger
|
||||
environments, offering booths to both commercial companies and
|
||||
non-commercial organisations.</para>
|
||||
|
||||
<para>It's slogan is "Where .COM meets .ORG". You can visit LinuxTag
|
||||
around spring every year. </para>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Exercises</title>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>Try to find the online discussion methods (webforum,
|
||||
mailinglists, IRC) offered by the Gentoo Linux distribution.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Resources</title>
|
||||
|
||||
<para>A few more free software conferences:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>The <ulink url="http://www.linuxsymposium.org">Ottawa Linux
|
||||
Symposium</ulink> is held every year in Ottawa, Canada during summer
|
||||
break.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><ulink url="http://www.linux-kongress.org">Linux
|
||||
Kongress</ulink> has almost always been held in Germany although a
|
||||
single instance was in Cambridge, England.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><ulink url="http://linux.conf.au/">Linux.conf.au</ulink> is
|
||||
hosted in Australia in the beginning of every year</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><ulink url="http://www.ohiolinux.org/">Ohio Linux Fest</ulink>
|
||||
is held in Ohio every fall.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><ulink url="http://www.linuxfestnorthwest.org/">Linux Fest
|
||||
Northwest</ulink> is held in Washington every spring.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><ulink url="http://scale7x.socallinuxexpo.org/">SCaLE (Southern
|
||||
California Linux Expo)</ulink> is held late winter.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><ulink url="http://onlinux.ca/">Ontario Linux
|
||||
Fest</ulink></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><ulink url="http://www.linuxworldexpo.com/">LinuxWorld
|
||||
Conference and Expo</ulink></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><ulink url="http://freed.in/">Freed.IN</ulink></para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
</chapter>
|
1319
src/linux_sea/04-runninglinux.xml
Normal file
1319
src/linux_sea/04-runninglinux.xml
Normal file
File diff suppressed because it is too large
Load diff
1551
src/linux_sea/05-linuxfs.xml
Normal file
1551
src/linux_sea/05-linuxfs.xml
Normal file
File diff suppressed because it is too large
Load diff
646
src/linux_sea/06-processes.xml
Normal file
646
src/linux_sea/06-processes.xml
Normal file
|
@ -0,0 +1,646 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
|
||||
<chapter>
|
||||
<title>Working with Processes</title>
|
||||
|
||||
<section>
|
||||
<title>Process Trees</title>
|
||||
|
||||
<section>
|
||||
<title>Parent and Child Relationships</title>
|
||||
|
||||
<para>Each Linux (and Unix) process has a parent (except for the top
|
||||
process) and can have one or more childs. The relationship is crafted
|
||||
when a process is launched: the process that launched the new process
|
||||
becomes the parent of that process. As a user, you might not know what
|
||||
process you are currently working in. Every program is a process, being
|
||||
it the shell you're typing the commands in or the graphical environment
|
||||
you're working with.</para>
|
||||
|
||||
<para>For instance, a user who has a terminal open can have the
|
||||
following process structure for this terminal:</para>
|
||||
|
||||
<programlisting>init
|
||||
`- xterm
|
||||
`- bash</programlisting>
|
||||
|
||||
<para>You can obtain a tree of running processes using the
|
||||
<command>pstree</command> command:</para>
|
||||
|
||||
<programlisting>$ <command>pstree</command>
|
||||
init-+-acpid
|
||||
|-4*[agetty]
|
||||
|-agiletrack---java---19*[{java}]
|
||||
|-apache2---8*[apache2]
|
||||
|-bonobo-activati---{bonobo-activati}
|
||||
|-5*[dbus-daemon]
|
||||
|-dhcpcd
|
||||
|-gconfd-2
|
||||
|-gnome-keyring-d
|
||||
|-gnome-power-man
|
||||
|-gnome-screensav
|
||||
|-gnome-settings----{gnome-settings-}
|
||||
|-4*[gnome-vfs-daemo]
|
||||
|-gnome-volume-ma
|
||||
|-gpg-agent
|
||||
|-hald---hald-runner-+-hald-addon-acpi
|
||||
| |-hald-addon-cpuf
|
||||
| `-hald-addon-stor
|
||||
|-java---15*[{java}]
|
||||
|-login---bash---startx---xinit-+-X
|
||||
| `-gnome-session-+-gnome-panel
|
||||
| |-metacity
|
||||
| |-nautilus
|
||||
| `-{gnome-session}
|
||||
[...]</programlisting>
|
||||
|
||||
<para>Now, not every process launched immediately becomes a child of the
|
||||
process where it was launched from. Some processes might immediately
|
||||
become child of the root process, most often called
|
||||
<command>init</command><indexterm>
|
||||
<primary>init</primary>
|
||||
</indexterm>. The root process is the first process launched by the
|
||||
kernel when it boots up. It is responsible for running the necessary
|
||||
startup services and prepare the system for its duties.</para>
|
||||
|
||||
<para>Processes that become child of the root process usually do this
|
||||
because they don't want to be terminated when their parent process exits
|
||||
or dies: when this happens, the child processes become orphaned and the
|
||||
init process will terminate these processes as well. So, becoming a
|
||||
child of the init process will ensure that the process remains
|
||||
available. In the above example you'll find a good example: the
|
||||
<command>dhcpcd</command> command governs the IP address of the network
|
||||
interface through the DHCP protocol. If the process didn't continuously
|
||||
run, your IP address would be dismissed after a few minutes (or
|
||||
hours).</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Process Ownership</title>
|
||||
|
||||
<para>When a process is launched (usually through a command the user
|
||||
entered) it, by default, obtains the user id and group id of its parent
|
||||
process. When a user logs on to the system, the <command>login</command>
|
||||
process launches a shell process with the user id and group id of the
|
||||
user that logged on, so every command the user launches takes the user
|
||||
id and group id of that user, since the parent process of every launched
|
||||
command is either the beforementioned shell process or one of its child
|
||||
processes.</para>
|
||||
|
||||
<para>Some processes however explicitly ask the Linux kernel to use a
|
||||
different user id and group id. This is accomplished by setting the
|
||||
<emphasis>setuid</emphasis> or <emphasis>setgid</emphasis> flags on the
|
||||
process file itself. With <emphasis>setuid</emphasis><indexterm>
|
||||
<primary>setuid</primary>
|
||||
</indexterm> (set user id) and <emphasis>setgid</emphasis><indexterm>
|
||||
<primary>setgid</primary>
|
||||
</indexterm> (set group id) the owner of the process is the owner of
|
||||
the file rather than the user that launched the process.</para>
|
||||
|
||||
<para>An example is the <command>passwd</command> command, used to
|
||||
change the password of a user:</para>
|
||||
|
||||
<programlisting>$ <command>ls -l /bin/passwd</command>
|
||||
-rws--x--x 1 root root 28956 Jul 15 2007 passwd</programlisting>
|
||||
|
||||
<para>As you can see, the command file itself is owned by root. It also
|
||||
has the setuid bit set (see the s in <filename>-rws--x--x</filename>).
|
||||
If a user runs the <command>passwd</command> command, the command itself
|
||||
has root privileges rather than the privileges for the user. For the
|
||||
<command>passwd</command> command, this is necessary because it needs to
|
||||
update the password files (<filename>/etc/passwd</filename> and
|
||||
<filename>/etc/shadow</filename>) which are only writeable by the root
|
||||
user (the <filename>/etc/shadow</filename> file is not even readable for
|
||||
regular users).</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Viewing Process Information</title>
|
||||
|
||||
<para>Various tools exist to obtain process information. The next few
|
||||
chapters give a nice overview of these tools...</para>
|
||||
|
||||
<section>
|
||||
<title>Process Lists</title>
|
||||
|
||||
<para>The main program to create a process list is the
|
||||
<command>ps</command> command. If ran inside a shell, it shows the
|
||||
processes that are running inside the session (meaning the processes
|
||||
launched from the shell, including the shell itself):</para>
|
||||
|
||||
<programlisting>$ <command>ps</command>
|
||||
PID TTY TIME CMD
|
||||
24064 pts/3 00:00:00 bash
|
||||
24116 pts/3 00:00:00 ps</programlisting>
|
||||
|
||||
<para>The columns shown are:</para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>PID - process id of the process</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>TTY - controlling terminal (this is Unix inheritage where
|
||||
users were logged on through terminals, pts is a
|
||||
pseudoterminal)</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>TIME - the execution time the process took. In the above
|
||||
example, both commands hardly took any CPU time on the system
|
||||
(bash is the shell, which is most of the time waiting for input so
|
||||
not consuming any CPU time, the other one is ps which gave its
|
||||
results in less than a second)</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>CMD - the process name itself (the command)</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
|
||||
<para>Of course, several arguments to ps exist which change its
|
||||
behavior. For instance, with <command>ps -e</command> you see the same
|
||||
information, but for all processes runnin on the system. With
|
||||
<command>ps -f</command> a few more columns are added, including the
|
||||
parent process id and the time the process started.</para>
|
||||
|
||||
<para>You can also limit the processes to see based on the user
|
||||
(<command>ps -u username</command>), command name (<command>ps -C
|
||||
command</command>), really running processes (taking cpu time at the
|
||||
moment: <command>ps -r</command>) and more. For more information, see
|
||||
the ps manual page.</para>
|
||||
|
||||
<para>Another command that is often used to obtain process list
|
||||
information is the <command>top</command> program. The top command is
|
||||
an interactive command that shows you a process list, sorted by one or
|
||||
more values (default is CPU usage) and refreshes this list every 5
|
||||
seconds (this is of course configurable):</para>
|
||||
|
||||
<programlisting>top - 10:19:47 up 6 days, 6:41, 5 users, load average: 1.00, 1.27, 0.92
|
||||
Tasks: 120 total, 1 running, 119 sleeping, 0 stopped, 0 zombie
|
||||
Cpu(s): 3.2%us, 0.7%sy, 0.0%ni, 95.6%id, 0.3%wa, 0.1%hi, 0.0%si, 0.0%st
|
||||
Mem: 1545408k total, 1490968k used, 54440k free, 177060k buffers
|
||||
Swap: 2008084k total, 132k used, 2007952k free, 776060k cached
|
||||
|
||||
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
|
||||
4458 haldaemo 16 0 5488 3772 2388 S 2.0 0.2 4:23.69 hald
|
||||
27255 swift 15 0 2272 1064 768 R 2.0 0.1 0:00.01 top
|
||||
1 root 15 0 1612 544 468 S 0.0 0.0 0:00.48 init
|
||||
2 root 12 -5 0 0 0 S 0.0 0.0 0:00.00 kthreadd
|
||||
3 root 39 19 0 0 0 S 0.0 0.0 0:00.45 ksoftirqd/0
|
||||
4 root 10 -5 0 0 0 S 0.0 0.0 0:01.95 events/0
|
||||
5 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 khelper
|
||||
60 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 kblockd/0
|
||||
61 root 11 -5 0 0 0 S 0.0 0.0 0:25.77 kacpid
|
||||
62 root 11 -5 0 0 0 S 0.0 0.0 0:09.60 kacpi_notify
|
||||
171 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 ata/0
|
||||
172 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 ata_aux
|
||||
173 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 ksuspend_usbd
|
||||
176 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 khubd
|
||||