Content

Lina Barbara Böcker, Anhang: Glossar der wichtigsten technischen Begriffe in:

Lina Barbara Böcker

Computerprogramme zwischen Werk und Erfindung, page 357 - 366

Eine wettbewerbsorientierte Analyse des immaterialgüterrechtlichen Schutzes von Computerprogrammen unter besonderer Berücksichtigung von Open Source-Software

1. Edition 2009, ISBN print: 978-3-8329-4188-8, ISBN online: 978-3-8452-1950-9 https://doi.org/10.5771/9783845219509

Series: Wirtschaftsrecht und Wirtschaftspolitik, vol. 229

Bibliographic information
357 Anhang: Glossar der wichtigsten technischen Begriffe Anwenderprogramme Auch: Applikationen. Dabei handelt es sich um diejenigen Programme in einem Computersystem, mit denen der Anwender in Berührung kommt und die die Nutzung des Rechners vereinfachen. Dazu gehören beispielsweise Text- und Bildverarbeitungsprogramme, Multimediaplayer und Internetbrowser. Assemblersprache Assemblersprachen gehören zu den Programmiersprachen, zeichnen sich jedoch im Vergleich zu diesen durch geringere Komplexität aus. Anstelle der binären Zahlenwerte der Maschinensprache verwendet die Assemblersprache besser merkbare Kürzel, sog. Mnemonics, die die prozessorspezifische Maschinensprache repräsentieren. Auch Assemblersprachen müssen in den Maschinencode übersetzt werden, sog. Assemblierung. Die Rückübersetzung heißt demgegenüber Disassemblierung. Backup Ein Backup ist eine Sicherungskopie, d. h. die Vervielfältigung eines digitalen Inhalts für den Fall eines Datenverlustes. Backups betreffen sowohl Computerprogramme als auch andere digitalisierte Inhalte. Benutzeroberfläche Die Benutzeroberfläche eines Programms ist das, was der Verwender sieht. Gemeint ist die Bildschirmdarstellung des Programms einschließlich der auf dem Bildschirm verankerten Funktionen, den sog. Icons. Diese kleinen Bilder können wie Knöpfe angeklickt werden und setzen dann Aktionen in Gang. 358 Betriebssystem Das Betriebssystem ist die grundlegende Software, die für den Betrieb eines Universalrechners erforderlich ist. Es verwaltet die Hardwarekomponenten und deren Interaktion und steuert die Ausführung der Programme. In der Regel besteht es aus einem Kern (sog. Kernel), der die Hardware verwaltet, und den essentiellen Systemprogrammen, die dem Start des Betriebssystems und dessen Konfiguration dienen. BIOS = Basic Input Output System. Das BIOS ist das zentrale, fest installierte Betriebsprogramm jedes Rechners, das unmittelbar nach dem Einschalten gestartet wird. Es „erweckt den Rechner zum Leben“ und startet das Betriebssystem. Black Box-Test Mit Black Box-Test bezeichnet man eine Art und Weise des Softwaretests ohne Kenntnisse über die innere Funktionsweise des untersuchten Systems. Es handelt sich um eine Form des funktionsorientierten Testens, bei dem nur die gewünschte Wirkung des getesteten Systems überprüft wird. Seine genaue Beschaffenheit wird als unsichtbar behandelt, d. h. nur das nach außen erkennbare Verhalten fließt in den Test mit ein. CAD = Computer Aided Design. Gemeint sind computergestützte Entwurfsmethoden. CAD ist eine Art „elektronisches Zeichenbrett“: Mit Hilfe von CAD können zwei- oder dreidimensionale Zeichnungen erstellt werden und Simulationen und Berechnungen ausgeführt werden. CAD ist Bestandteil von CAM. 359 CAM = Computer Aided Manufacturing. CAM bezeichnet jegliche Form der computergestützten Fertigung, d. h. die Steuerung von Produktionsanlagen, aber auch von Transport- und Lagersystemen. Clean Room-Implementierung Unter einer Clean-Room-Implementierung (Reinraumimplementierung) wird in der Softwaretechnik die Kopie eines existierenden Programms ohne die Verwendung des Originals des Entwicklers verstanden. Als Hilfsmittel werden lediglich Dokumentationen und Spezifikationen von Dritten eingesetzt. Mit Clean Room-Implementierung bezeichnet wird auch die Programmierung einer durch Reverse Engineerung gewonnenen Dokumentation. Um eine Reinraumimplementierung handelt es sich dabei allerdings nur dann, wenn Dokumentation und Programmierung von verschiedenen Personen durchgeführt werden. Compiler und Interpreter Compiler oder Interpreter heißen die Übersetzungsprogramme, die den Quelltext eines Programms in den Maschinentext übersetzen. Während der Compiler das Programm tatsächlich übersetzt, kann der Interpreter das Programm direkt aus dem Speicher abarbeiten. 360 Cross-Licensing = Kreuzlizenzierung. Gemeint sind Abkommen zwischen zwei oder mehr Unternehmen oder sonstigen Parteien, mit denen pauschal wechselseitig die Erlaubnis erteilt wird, sämtliche Patente der jeweils anderen Partei(en) zu nutzen. Auf diese Weise sollen kosten- und zeitintensive Patent- und Gegenklagen verhindert werden. Kritisch zu sehen sind solche Vereinbarungen aus wettbewerblicher Sicht, da kollusives Zusammenwirken ermöglicht und ggf. Marktmacht verstärkt werden kann. So kommt es zu einer tendenziellen Benachteiligung von KMU. In den USA sind derartige Vereinbarungen weit verbreitet. Dabei entstehen Patent Pools. Dekompilierung Mit Dekompilierung wird eine Form des Reverse Engineerung bezeichnet, bei der aus dem binären Maschinencode der Quellcode zurückgewonnen wird. Durch diese Rückentwicklung, die mit Hilfe von auf das spezielle Programm abgestimmten Decompilern erfolgen muss, kann allerdings nie der vollständige Ursprungscode zurückgewonnen werden. Download Mit dem Begriff Download gemeint ist das „Herunterladen“ von Dateien oder Programmen aus dem Internet. Dabei erfolgt eine Vervielfältigung des gewünschten Inhalts mit dem Ziel, diese Vervielfältigung auf dem eigenen Rechner abzuspeichern und künftig dort zur Verfügung zu haben. Embedded Programs Embedded Programs sind solche, die fest in die Hardware integriert, d. h. nicht von ihr trennbar sind. 361 Firmware Firmware oder hardwarenahe Software ist solche, die in elektronische Geräte in einem Chip eingebettet ist. Sie steuert meist elementare Funktionen wie Ein- und Ausgaberoutinen. Bei Computern dient sie unter anderem dazu, beim Start des Systems das Betriebssystem in den Hauptspeicher zu laden. Beispiel ist das BIOS eines PCs. GPL = General Public License. Die GPL ist die Ur- Lizenz für freie Software. Sie stammt von der Free Software Foundation und dem Gründervater der freien Software, Richard Stallman. Wesentliche Elemente der GPL sind die umfassenden unentgeltlichen Nutzungsrechte, die jedermann in Anspruch nehmen kann, und der oftmals als „viraler Effekt“ bezeichnete Effekt, nach dem alle vom ursprünglichen Programm abgeleiteten Programme unter denselben Lizenzbedingungen weitergegeben werden müssen wie das Ausgangsprogramm. Die GPL gibt es mittlerweile in ihrer dritten Version (GPLv3), welche als eine der ersten freien Lizenzen ausdrückliche Regeln zum Patentrecht enthält. HTML = Hypertext Markup Language, kurz auch Hypertext. Hierbei handelt es sich um eine textbasierte Auszeichnungssprache zur Strukturierung von Texten, Bildern und Hyperlinks in Dokumenten. HTML ist die Grundlage des world wide web. Bei der Verwendung von HTML wird dem Text durch sog. Tags eine Struktur verliehen, die dem entsprechenden Textteil vorangestellt werden. Bestimmte Symbole stehen für ein bestimmtes Textformat, zum Beispiel p für Absatz und h1 für eine Überschrift. HTML-Text kann dann beispielsweise so aussehen:

Absatztext

oder Überschrift. 362 Kompatibilität/Interoperabilität Unter Kompatibilität oder Interoperabilität versteht man die Fähigkeit eines Programms, mit anderen Programmen und Hardware zusammenzuarbeiten. Dazu ist ein Informations- und Datenaustausch erforderlich, der über so genannte Schnittstellen abläuft. Markup-Language Markup-Languages, oder Auszeichnungssprachen dienen der Beschreibung von Daten und des Verfahrens, das zur Bearbeitung dieser Daten notwendig ist. Die Eigenschaften, Zugehörigkeiten und Verfahren von bestimmten Wörtern, Sätzen und Überschriften eines Texts oder einer Datenmenge werden beschrieben bzw. zugeteilt, indem sie mit sog. Tags markiert werden. Beispiele sind etwa LaTex und HTML. Maschinencode Unter dem Maschinencode oder Binärcode versteht der Informatiker die maschinenlesbare Fassung des Programms, d. h. die berühmten Nullen und Einsen. Da der Prozessor den Quelltext nicht lesen kann, wird dieser mithilfe eines Compilers oder Interpreters in den Maschinencode übersetzt. Patch Patches sind kleine Programmteile, die dazu dienen, Fehler eines größeren Programms auszubessern, d. h. dieses zu „flicken“. Patent-Pool Unter einem Patent Pool ist wie beim Cross Licensing die wechselseitige Lizenzierung von Patenten zwischen zwei oder mehreren Unternehmen zu verstehen, allerdings meist bezogen auf eine spezifische Technologie. Die zum Cross Licensing angeführten Kritikpunkte gelten auch hier. 363 Programmiersprache Bei Programmiersprachen handelt es sich um Notationen für Computerprogramme, d. h. sie dienen der Darstellung und Übermittlung der Rechnerbefehle in menschenlesbarer Form. Das Erstellen eines Programms in einer Programmiersprache heißt programmieren. Der Entwickler verfasst dabei den sog. Quelltext aus den notwendigen Befehlen an den Computer, welcher, um vom Rechner verstanden werden zu können, mithilfe eines Compilers oder Interpreters in den  Maschinencode übersetzt wird. Beispiele für so genannte höhere Programmiersprachen sind C++, Java, Perl oder PHP. Daneben gibt es sog. Assemblersprachen und die sog. objektorientierten Programmiersprachen, die sich dadurch auszeichnen, dass keine Befehlsketten mehr programmiert werden, sondern Objekte, die anschließend verknüpft werden. In sprachlicher Hinsicht unterliegen Programmiersprachen strengen formellen Regeln, d. h. die meisten Formulierungen und Zeichensetzungen sind technisch vorgegeben. Quellcode Der Quellcode ist der Text, den der Programmierer in der Programmiersprache schreibt. Er enthält alle Befehle an den Computer und einige Zusatzinformationen und Kommentare des Programmierers zum besseren Verständnis und ist im Gegensatz zum Maschinencode menschenlesbar. Die Rückübersetzung des Maschinencodes in den Quellcode heißt Dekompilierung. RAM Random Access Memory (heute auch read-write- RAM). Hierbei handelt es sich um einen Arbeitsspeicher mit wahlfreiem Zugriff. Im Unterschied zum  ROM können die Daten in RAM-Speichern bei Unterbrechung der Stromzufuhr verloren gehen, d. h. es handelt sich um „flüchtige“ (volatile) Speicher. 364 Reverse Engineering Mit Reverse Engineerung bezeichnet man alle Formen der Rückwärtsentwicklung eines Programms, d. h. einen Vorgang, bei dem versucht wird, aus einem bestehenden System oder Produkt durch Untersuchung der Strukturen, Zustände und Verhaltensweisen die Konstruktionselemente zu extrahieren. Man versetzt also ein eigentlich fertiges Programm wieder in die Konzeptionsphase. Bei einem Computerprogramm bestrifft das Reverse Engineerung unter anderem die Erschließung von Regeln eines Kommunikationsprotokolls aus der Beobachtung der Kommunikation und die Rückgewinnung des Quelltextes aus dem Maschinencode (sog. Dekompilierung). ROM Sog. Read Only Memory, „Nur-Lese-Speicher“. Es handelt sich um einen fest integrierten Datenspeicher, dessen Daten nur gelesen, aber nicht gelöscht oder verändert werden können. Dieser Speicher ist nicht flüchtig, d. h. die Daten bleiben auch bei Unterbrechung der Stromzufuhr bestehen. Schnittstelle Schnittstellen (interfaces) sind die Teile eines Computerprogramms, die eine Verbindung und Interaktion zwischen Elementen von Software und Hardware oder aber mit dem Nutzer ermöglichen sollen. Die für diese Arbeit relevanten Schnittstellen zwischen Programmkomponenten sind formale Deklarationen innerhalb oder außerhalb des Quelltextes, welche Funktionen in einem Programm vorhanden sind und wie sie angesprochen werden können. Das führt dazu, dass Module, die die gleiche Schnittstelle besitzen, gegeneinander ausgetauscht werden können (Modularisierung der Softwarearchitektur). 365 Server Der Begriff des Servers (Hosts) ist mehrdeutig. Meist gemeint ist aber ein bestimmtes Programm (Software), welches mit anderen Programmen (Clients) kommuniziert und Zugang zu bestimmten Diensten, wie beispielsweise dem Internet schafft. Zuweilen bezeichnet der Begriff Server auch die Hardware, auf der derartige Programme ablaufen. Systemsoftware Zur Systemsoftware gehören alle Programme, die der Steuerung des gesamten Systems dienen, d. h. insbesondere das Betriebssystem und Treiberprogramme. Der Nutzer kommt mit der Systemsoftware nur in seltenen Fällen in Berührung, meistens handelt es sich um so genannte embedded programs. Update Mit Update werden die regelmäßigen Aktualisierungen von Computerprogrammen bezeichnet. Kein Programm ist bereits in seiner ersten lauffähigen Fassung perfekt, so dass es ständig weiterentwickelt werden muss. Immer dann, wenn eine Veränderung des Programms möglich ist und zu Verbesserungen führt, spricht man von einem Update. Upgrade Unter einem Upgrade oder Update versteht man den Wechsel von einer Softwareversion zur nächsten. Ursprünglich bezeichnete Update den Vorgang einer Qualitätsverbesserung von Software, Upgrade die Verbesserung von Hardware, mittlerweile sind beide Begriffe aber gleichbedeutend.

Chapter Preview

References

Zusammenfassung

Die vorliegende Arbeit will langjährige Missverständnisse und Schwierigkeiten des immaterialgüterrechtlichen Schutzes von Computerprogrammen endgültig ausräumen. Die Betrachtung aus wettbewerbsorientiertem Blickwinkel auf der Grundlage der technischen und ökonomischen Besonderheiten ist – soweit ersichtlich – die erste Untersuchung, die sowohl das Urheber- als auch das Patentrecht einbezieht und dabei eine umfassende Neuregelung vorschlägt.

Dr. Lina Barbara Böcker befasst sich im Rahmen ihrer Tätigkeit am Institut für Wirtschafts-, Wettbewerbs- und Regulierungsrecht an der Freien Universität Berlin in erster Linie mit wettbewerbsrechtlichen Problemen des Immaterialgüterrechtsschutzes und allgemeinem Zivilrecht.