
\section{Open Source Software}




%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Definition}

Open Source bezeichnet im allgemeinen Software, deren Quellcode frei zug\"anglich ist und weiterverarbeitet werden darf. 
Die Open Source Initiative\footnote{http://www.opensource.org/} (OSI) wendet den Begriff Open Source auf all die Software an, deren Lizenzverträge den folgenden drei charakteristischen Merkmalen entspricht:
\begin{description}
  \item[Die Software (d. h. der Programmcode) liegt in einer verst\"andlichen Form da:] Meistens wird nur die Source gliefert und der Benutzer muss das Programm noch selber kompilieren.
  \item[Die Software darf beliebig kopiert, verbreitet und genutzt werden:] Für Open-Source-Software gibt es keine Nutzungsbeschränkungen. 
  Weder bezüglich der Anzahl der Benutzer, noch bezüglich der Anzahl der Installationen. 
  Mit der Vervielfältigung und der Verbreitung von Open-Source-Software sind auch keine Zahlungsverpflichtungen gegen einen Lizenzgeber verbunden.
  \item[Die Software darf verändert und in der veränderten Form weitergegeben werden:] Durch den offengelegten Quelltext ist Verändern ohne weiteren Aufwand für jeden möglich.
  Weitergabe der Software soll ohne Lizenzgebühren möglich sein. 
  Open-Source-Software lebt förmlich von der aktiven Beteiligung der Anwender an der Entwicklung.
  So bietet sich Open-Source-Software zum Lernen, Mitmachen und Verbessern an.
\end{description}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Ideologie und Lizenzen}
Die OSI beschreibt die Idee von Open Source folgendermassen:

\codesnip{gobble=0}
The basic idea behind open source is very simple: When programmers can read, redistribute, and 
modify the source code for a piece of software, the software evolves. People improve it, people 
adapt it, people fix bugs. And this can happen at a speed that, if one is used to the slow pace 
of conventional software development, seems astonishing.

We in the open source community have learned that this rapid evolutionary process produces better
software than the traditional closed model, in which only a very few programmers can see the source 
and everybody else must blindly use an opaque block of bits.
\end{Verbatim}

So einfach und sch\"on diese Definitionen auch t\"onen, so verworren ist die Wirklichkeit: Viele Entwickler nennen ihre Software Open Source obwohl sie den drei Merkmalen nicht vollst\"andig entprechen.
Weiter muss man unterscheiden zwischen Open Source Sofware, Freier Software und Freeware Software. 
Die folgende Tabelle soll etwas Klarheit bringen:

\includegraphics[width=180mm]{license_chart.eps}

Somit wird klar: Freie Software sagt nichts \"uber ihre Lizenz aus, so kann die Software gratis sein, aber keinen Source mitbringen oder sogar nur f\"ur eine kurze Frist (Probezeit) kostenfrei sein. 
Software kann aber auch etwas kosten und trotzdem Open Source sein.
Falls du Open Source Software schreibst und auf anderen Software Bibliotheken aufbauen willst, musst du auf jeden Fall die Lizenzbedingungen genauer anschauen.



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Open Source Community}

Die Open Source Community ist gross und stellt eine Vielzahl von Produkten her. 
Das wohl bekannteste Beispiel von OS Software ist Linux mit all seinen verschiedenen Distribitionen und Applikationen.
Die Community beschr\"ankt sich aber nicht nur auf Linux, sie ist sehr bestrebt die offene Software auch f\"ur kommerzielle Plattformen wie Windows bereitzustellen. 
Viele Produkte wie z.B. OpenOffice sind Klone von kommerzieller Software, die ihren Vorbildern zum verwechseln \"Ahnlich werden.
Diese \"Ahnlichkeit kann so stark sein, dass die Lizenzinhaber der Originalsoftware Klage gegen die Software-Community einreichen wegen Copyrightverletzungen.
Sogar Blizzard hat den WarCraft 2 Klon FreeCraft verklagt, das Projekt wurde eingestellt.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Open Source Tools}
Wenn an einem Open Source Projekt gearbeitet wird, dann ist es oft von Vorteil auch Open Source Software dazu zu ben\"utzen. 
Hier eine Liste der bekanntesten Tools. 
Die Liste erhebt keinen Anspruch auf Vollst\"andigkeit.
\begin{itemize}
  \item Integrated Development Environments (IDE)
    \begin{description}
      \item[KDeveloper:] (Linux) Vielleicht die beste IDE von allen, Subversion, CTAGS, Doxygen unterst\"utzung. \verb"http://www.kdevelop.org"
      \item[XEmacs] (Linux, Windows, MacOSX) Die traditionelle und f\"ur Neulinge etwas umst\"andliche IDE.
      Viele Plugins erh\"altlich, die f\"ur die Entwicklung von umfangreicher Software auch empfehlenswert ist (z.B. ECB)
 \verb"http://www.xemacs.org/"
      \item[Dev-C++] Ist eine einfache und vollst\"andige IDE, die v.a. auf Windows benutzt wird: \\
 \verb"http://www.bloodshed.net/devcpp.html"
    \end{description}
  \item Code Management
    \begin{description}
      \item[Subversion:] (Linux, Windows, MacOSX) Ein Version Control System der neusten Generation: \\
 \verb"http://subversion.tigris.org", \\
      f\"ur Windows gibt es einen speziellen grafischen Client \\
 \verb"http://tortoisesvn.tigris.org/".
      \item[CVS:] (Linux, Windows, MacOSX) Vorg\"anger von Subversion, immer noch viel gebraucht: \\
 \verb"http://www.nongnu.org/cvs/", \\
      spezieller Windows GUI basierten CVS Client: \\
 \verb"http://www.wincvs.org/".
      \item[Many Others:] Hier ein guter Vergleich der Verschiedenen VCSs: \\
 \verb"http://better-scm.berlios.de/comparison/comparison.html".
    \end{description}
  \item Kommunikation
    \begin{description}
      \item[Mailman:] Ein Server Dienst, der mit dem lokal Mailprogram (z.B. Postfix) zusammen arbeitet und mailing listen managed. \\
      \verb"http://www.gnu.org/software/mailman/"
      \item[Internet Relay Chat:] Ein Chatprotokol, dass von vielen verschiedenen Clients implementiert wurde: \\
      \verb"http://www.mirc.com/", \verb"http://www.xchat.org/".
      \item[Wiki:] Eine im WWW verfügbare Seitensammlung, die von den Benutzern nicht nur gelesen, sondern auch online geändert werden kann.
      Es gibt viele verschiedene Umsetungen, Orxonox verwendet Trac: \verb"http://www.edgewall.com/trac/"
    \end{description}
  \item Open Source Software Projekte
    \begin{description}
      \item[Sourceforge:] Weltweit die gr\"osste Ansammlung von Open Source Software (Registered Projects 06.11.2005: 105,395). \\
      \verb"www.sourceforge.net".
      \item[Freshmeat:] Wohl das zweitgr\"osste Open Source Software Portal: \\
 \verb"http://freshmeat.net/".
    \end{description}
  \item Some Open Source Games
    \begin{description}
      \item[XBlast] Ein Bomberman Klon \\
      \verb"http://xblast.sourceforge.net/".
      \item[FreeCNC:] Ein Command\&Conquer Klon: \\
      \verb"http://holarse.wue.de/freecnc/index.php".
      \item[SuperTux:] Ein jump'n'run \"ahnliches Spiel: \\
      \verb"http://supertux.berlios.de/".
      \item[Duke3D:] Ein Klon des Duke Nukem 3D, sehr buggy: \\
      \verb"http://icculus.org/projects/duke3d/".
      \item[Doom Legacy:] Ein Klon von Doom: \\
      \verb"http://legacy.newdoom.com/".
      \item[Linux Game Tome:] Eine Ansammlung von vielen Linux Games. \\
      \verb"http://www.happypenguin.org/".
    \end{description}
  \item Game Programmierung Resourcen
    \begin{description}
      \item[Gamedev:] Eine gute Seite mit vielen Tutorials und einem sehr aktiven Forum. \\
      \verb"www.gamedev.net"
      \item[Gamasutra:] Eine sehr professionelle Entwicklerverbindung, ebenfalls sehr viele online Resourcen.\\
      \verb"www.gamasutra.com"
    \end{description}
\end{itemize}








