Open-Source-Software

Fragen zum Fach Open-Source-Software

Fragen zum Fach Open-Source-Software

Siegfried Kienzle

Siegfried Kienzle

Set of flashcards Details

Flashcards 71
Language Deutsch
Category Computer Science
Level University
Created / Updated 28.06.2023 / 04.07.2023
Weblink
https://card2brain.ch/box/20230628_opensourcesoftware
Embed
<iframe src="https://card2brain.ch/box/20230628_opensourcesoftware/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>

Warum sollte man Freie Software nicht Open-Source nennen?

Freie Software bedeutet dass wenn jemand diese verwendet, bestimmte Freiheiten eingeräumt werden.

Free Software bezieht sich auf die Ethik.

So hat der Benutzer der freien Software das Recht, die Software auszuführen, sie zu studieren, sie zu ändern und sie zu verteilen.

 

Bei Open-Source wird lediglich der Quellcode offen gelegt, aber es kann sein, dass man den Quellcode weder ändern, noch verteilen darf. 

Welches Problem gibt es mit dem englischen Wort "free"? Durch welches andere Wort, das eindeutig ist, könnte man es ersetzen?

Free kann zu Missverständnissen führen, da es zwei Bedeutungen hat: Frei im Sinne von Freiheit von Nutzerrechten. Zum Anderen bedeutet es kostenlos.

In Bezug auf Free Software kann das zum Problem führen, da free software nicht unbedingt kostenlos sein muss. Freie Software bezieht sich auf die Freiheit von Nutzerrechten.

Mann könnte das Wort "Free" durch "Libre" ersetzen. Libre bedeutet auch Frei und meint die Freiheit. 

Was bedeutet die Abkürzung "FOSS"?

FOSS bedeutet Free and Open Source Software

Warum ist das Urheberrecht so wichtig für freie/offene Software?

Das Urheberrecht ist deshalb so wichtig damit die Urheber, die Kontrolle über Ihre Werke haben. So verwenden Urheber bei freier und offener Software das Urheberrecht dazu, um Bedingungen festzulegen, unter denen andere Benutzer die Software kopieren, modifizieren, verwenden und verbreiten dürfen. 

Wie wird man zum Urheber eines Werkes in Deutschland

In Deutschland ist man automatisch Urheber, sobald man ein Werk erschafft. 

Was ist eine Lizenz? Was macht der Urheber damit?

Eine Lizenz ist ein rechtliches Instrument, das vom Urheber eines Werkes verwendet wird, um anderen Personen bestimmte Rechte und Bedingungen auf ein Werk einräumen. Eine Lizenz legt fest, wie Anwender, das Werk nutzen, kopieren, modifizieren, verbreiten oder anderweitig verwenden dürfen. 

Der Urheber kann mit einer Lizenz bestimmte Rechte an einem Werk gewähren aber auch einschränken. 

Was bedeutet "All Rights Reserved"?

Auf Deutsch heißt es "Alle Rechte vorbehalten". D.h. alle Rechte liegen beim Urheber. Somit darf ohne Zustimmung des Urhebers, keine Vervielfältigung, Verbreitung oder andere Verwendung erfolgen. 

Wann wird es beim Urheberrecht schwierig? Bei einem oder bei mehreren Beteiligten?

Beim Urheberrecht wird es dann schwierig wenn mehrere an einem Werk gearbeitet haben, da jeder Einzelne auf seinen Teil des Werkes, ein Urheberrecht hat. Somit ist jeder der daran gearbeitet hat Copyright-Inhaber. 

Gibt es einen Unterschied zwischen der Beteiligung bei einen FOSS Projekt als Privatperson und als Angestellter einer Firma?

Gibt es Ausnahmen?

Wenn man als Privatperson an einem FOSS-Projekt arbeitet, so hat man auch das Urheberrecht an dem Werk. Arbeitet man bei einer Firma, so kann es sein, dass alles was man erarbeitet, dieser Firma gehört und somit man in urheberechtliche Schwierigkeiten geraten kann. Das Stichwort lautet hier "Work of Hire". So muss man dann beim Arbeitgeber eine Zustimmung einholen ob man den Code oder die Beiträge veröffentlichen darf.

Arbeitgeber können spezifische Richtlinen zur Beteiligung an Foss-Projekten aufstellen. Zudem können sie eine explizite Genehmigung für den jeweiligen Mitarbeiter ausstellen. 

Wozu kann eine Sammlung an Beiträgen bei FOSS Projekten dienen?

- Gemeinschaftlicher Fortschritt

- Fehlerbehebung und Verbesserung

- Wissenstransfer

- Dokumentation und Anleitungen

- Vielfalt und Innovation

Was sind CLAs?

Bei CLAs handelt es sich um "Contribute License Agreement". Ein CLA ist ein Vertrag zwischen dem Urheber eines Beitrags und dem Projekt oder der Organisation, die das Projekt verwaltet. Es legt die Bedingungen fest, unter denen der Urheber seine Beiträge zum Projekt beiträgt und wie diese lizenziert werden. 

Welches sind die beiden grundsätzlichen Typen von FOSS Lizenzen?

Die permissive- und copyleft-Lizenzen. 

Was dürfen Anwender auf jeden Fall bei beiden Lizenztypen mit der Software tun?

+

Stellen Sie die wesentlichen Unterschiede zwischen permissiven und copyleft Lizenzen zusammen

  • permissive: freierer Lizenztyp; erlaubt es den Quellcode zu verwenden, zu modifizieren, zu verteilen und in eigene Projekte zu integrieren, auch in proprietäre; Somit darf diese Software dann auch verkauft werden; Es legt zudem nur minimale Anforderungen an die Weitergabe des Quellcodes fest
  • copyleft: Quellcode und abgeleitete Werke davon müssen unter der gleichen Lizenz, sowie unter den gleichen Bedingungen veröffentlicht werden. Steht Software unter Copyleft und wird in einem Projekt verwendet, so muss das ganze Projekt dann unter dieser Lizenz stehen. Man spricht hier auch von "Infizierung". Damit erreicht man das die Freiheiten und Rechte des ursprünglichen FOSS-Projekts bzw. Software erhalten bleiben

Welches ist die liberalste Lizenz und welches ist die strengste Copyleft-Lizenz?

  • liberalste Lizenz: MIT und freeBSD (nehmen sich eigentlich nichts)
  • strengste Copyleft-Lizenz: GPL

Fassen Sie die wesentlichen Punkt zusammen, die eine Mitwirkung bei FOSS für die eigenen Karriere beitragen kann.

 

  • Erfrahrung und Kompetenzen: Durch Mitwirkung in einem FOSS-Projekt kann man wertvolle Erfahrungen sammeln und technische Fähigkeiten verbessern
  • Sichtbarkeit und Reputation: man kann durch das Mitwirken in einem FOSS-Projekt, seine Sichtbarkeit erhöhen
  • Netzwerkaufbau: man kommt mit Fachleuten aus der ganzen Welt in Kontakt
  • Zeigen von Engagement und Leidenschaft: zeigt Arbeitgebern ein hohes Engangement, Leidenschaft und Initiative
  • Lernen von Best Practises: vewährte Verfahren und Entwicklungsmodelle kennenlernen

Wie wurden Änderungen an Software in der Zeit vor Versions Kontroll Systemen wie Git geteilt?

  •  patch
  •  email

Nennen Sie typische Dateien in einem OSS Projekt

  • README
  • COPYING/LICENCE
  • CONTRIBUTING
  • INSTALL/INSTALLATION
  • Code of Conduct
  • Styleguide
  • CHANGES/CHANGELOG
  • AUTHORS

Welche Versionierungarten gibt es? Und erklären sie diese kurz.

  • Semantic Versioning (2.0.0) (Major, minor, patch)
  • Calendar Versoning (2023.04) (Year, Month)
  • Zero Versioning (0.11.5) (0.Major, Minor)

Nach was sind die Debian Versionen benannt?

Toystory Charakteren
 

Nenne 3 BSD Unixe und nenne jeweils Vorteile

  • FreeBSD: Bekannt für seine Zuverlässigkeit und Leistung. Es bietet auch ein umfangreiches und aktives Software-Repository namens "Ports".
  • NetBSD: Bekannt für seine Portabilität, es läuft auf einer Vielzahl von Hardwareplattformen.
  • OpenBSD: Bekannt für seinen Fokus auf Sicherheit und korrekten Code.

Stallman: Anfänge der Kollaboration (früher/heute)

Richard Stallman startete die Kollaboration mit der Gründung der Free Software Foundation und dem GNU-Projekt in den 1980er Jahren. Diese Kollaboration setzte auf das Teilen und Modifizieren von Code über Mailinglisten. Heute hat sich die Zusammenarbeit mit Plattformen wie GitHub, GitLab, Bitbucket usw., die das verteilte Arbeiten und die Zusammenarbeit an Open-Source-Projekten erleichtern.

Wie kann man OSS monetarisieren, Nenne Geschäftsmodelle

  • Support und Dienstleistungen: Unternehmen können Geld verdienen, indem sie Schulungen, technischen Support und Beratung für die Verwendung der Software anbieten. Ein Beispiel ist das Geschäftsmodell von Red Hat, das Support für seine Linux-Distribution anbietet.
  • Hosting/Delivery: Unternehmen wie GitHub und GitLab bieten Hosting-Services für Open-Source-Projekte und monetarisieren diese durch Premium-Funktionen und -Services.
  • Dual Licensing: Die Software ist unter einer Open-Source-Lizenz verfügbar, aber Unternehmen können auch eine kommerzielle Lizenz erwerben, die zusätzliche Funktionen oder Nutzungsberechtigungen bietet. MySQL ist ein Beispiel für dieses Modell.
  • Open Core: Die grundlegende Software ist Open Source, aber erweiterte Funktionen oder Dienstleistungen sind kostenpflichtig. Ein Beispiel ist Elastic, das Unternehmen hinter Elasticsearch.
  • Spenden und Crowdfunding: Einige Open-Source-Projekte werden durch Spenden und Crowdfunding finanziert. Beispiele hierfür sind das OpenSSL-Projekt und das Blender-Projekt.
  • Partnerschaften und Integrationen: Ein Unternehmen kann Partnerschaften mit anderen Unternehmen eingehen, um ihre Software zu integrieren, was zu Umsätzen führen kann.
  • Beratung und maßgeschneiderte Entwicklung: Unternehmen können Geld verdienen, indem sie Beratungsdienstleistungen und maßgeschneiderte Entwicklungsarbeiten für Kunden anbieten, die spezielle Anforderungen haben.

was ist Mainlining? Was bedeutet "upstream" "downstream" ?

  • Mainlining bezieht sich auf den Prozess, bei dem Änderungen oder Verbesserungen an einem Open-Source-Projekt zurück in den Hauptentwicklungszweig (den "upstream") des Projekts eingereicht werden.
  • "Upstream" bezieht sich auf die Originalquelle oder den Hauptentwicklungszweig eines Projekts, während "downstream" die Projekte bezeichnet, die von diesem Hauptprojekt abgeleitet oder geforkt sind.

Was ist "inner Source" ? Wird innerhalb von Firmen eingesetzt

Inner Source ist die Verwendung von Open-Source-Praktiken innerhalb einer Organisation. Code ist innerhalb der Organisation sichtbar und zugänglich, und Entwickler können Beiträge zu Projekten leisten, die außerhalb ihrer üblichen Arbeit liegen. Dies fördert die Zusammenarbeit und Code-Wiederverwendung und hilft, Silos zu brechen.

Wie nennt man das Geschäftsmodell indem Firmen für die entwicklung von Software bezahlt werden, diese dann aber als OS veröffentlichen.

wird oft als "Sponsorship" oder "Funding" Modell bezeichnet. In diesem Modell finanzieren Unternehmen, Stiftungen oder Einzelpersonen die Entwicklung, oft durch eine direkte Anstellung von Entwicklern oder durch Verträge.

Motive für Open-Source?

  • Zusammenarbeit: Open Source ermöglicht es Entwicklern aus aller Welt, zusammenzuarbeiten und Innovationen zu fördern.
  • Transparenz: Der offene Code ermöglicht es Benutzern und Entwicklern, genau zu verstehen, was die Software tut.
  • Anpassbarkeit: Mit dem Zugriff auf den Quellcode können Benutzer und Entwickler die Software an ihre spezifischen Bedürfnisse anpassen.
  • Kosten: Open Source Software ist in der Regel kostenlos zu verwenden, was sie für viele Benutzer attraktiv macht.

Offene Standards: Nennen Sie einige Beispiele

  • Jtag
  • HTML und CSS für Webdesign.
  • HTTP und HTTPS für Webkommunikation.
  • SMTP, IMAP und POP für E-Mail-Kommunikation.
  • TCP/IP für Netzwerkkommunikation.
  • PDF für Dokumente.

Wie trägt man zu einem OS Projekt bei, Was bringt dabei die Readme bzw. die badges darin?

Um zu einem Open Source Projekt beizutragen, kann man:

  • Fehler melden oder Verbesserungsvorschläge einreichen (oft über ein Issue-Tracking-System).
  • Direkt am Code arbeiten (Fehler beheben, neue Funktionen hinzufügen) und Pull-Anfragen einreichen.
  • Dokumentation schreiben oder verbessern.
  • An Diskussionen teilnehmen und Feedback geben.

 

Die Readme-Datei in einem Projekt enthält oft wichtige Informationen wie:

  • eine Beschreibung des Projekts,
  • Installationsanweisungen,
  • wie man Beiträge leisten kann
  • wer die Hauptverantwortlichen sind.
  • Badges in der Readme-Datei bieten oft schnelle Informationen über den Zustand des Projekts, wie den Build-Status, die Testabdeckung, die Lizenz und vieles mehr.

Nennen sie einige Werte der OSS

  • Ethik
  • Kreativität
  • Keine Diskiriminierung
  • privatsphäre
  • Kooperation
  • transparenz
  • Sicherheit
  • Solidarität
  • Souveränität
  • Nachhaltigkeit
  • Freiheit
  • Gemeinnützigkeit
  • Digitale Mündigkeit

Nennen Sie die aktuelle Debian Version

Die aktuelle Debian Version ist Version 12 "bookworm"

Was ist bei debian mit unstable und testing gemeint?

"unstable" (auch bekannt als "sid") ist eine Distribution, in die neue Pakete zuerst eingefügt werden. Diese Pakete können Bugs enthalten, da sie weniger getestet sind, daher der Name "unstable". "testing" ist eine Distribution, in die Pakete aus "unstable" übergehen, sobald sie eine bestimmte Reife erreicht haben (d.h. keine kritischen Bugs für eine bestimmte Zeit). Wenn die nächste stabile Debian-Version vorbereitet wird, wird die "testing"-Distribution eingefroren und schließlich als neue stabile Version veröffentlicht.

Was sind die Besonderheiten der GNU Doc Lizenz (GFDL)?

Die Besonderheiten der GNU Free Documentation License (GNU FDL oder GFDL) sind:

  1. Sie erlaubt das Kopieren, die Verteilung und das Modifizieren des Dokuments, unter der Bedingung, dass diese Rechte für Modifikationen beibehalten werden (Copyleft).
  2. Sie erlaubt sowohl nicht-kommerzielle als auch kommerzielle Vervielfältigung.
  3. Sie verlangt, dass abgeleitete Werke unter derselben Lizenz veröffentlicht werden. Sie erlaubt "unveränderliche Abschnitte" im Text, die in abgeleiteten Werken nicht geändert werden dürfen.
  4. Sie verlangt, dass eine Kopie der Lizenz und eine Liste der Autoren des Dokuments beiliegt

Punkt 3. ist hier einer der Hauptkonflikte mit dem Debian Projekt und warum dieses die Lizenz nicht erlaubt.
Debian verlangt dass jegliche Dokumentation auch verändert werden darf und angepasst werden können muss.
Es gibt daneben noch zwei Konflikte:
https://www.debian.org/vote/2006/vote_001

Wie ändere ich in Git die Commit Historie?

  • Um die Commit-Historie in Git zu ändern, kann man git rebase in Kombination mit der Option -i (für "interaktiv") verwenden. Mit diesem Befehl kann man frühere Commits bearbeiten, löschen, aufteilen und mehr.
  • Git Squash ist teil der reabse funtion: In Git können Sie mehrere Commits zu einem einzigen Commit zusammenfassen, was als "Squashing" bezeichnet wird. Dies ist besonders nützlich, wenn Sie viele kleine, inkrementelle Änderungen vorgenommen haben und Sie möchten, dass Ihr Protokoll sauberer und leichter zu lesen ist.

Wofür wird git sign verwendet? (signoff)

Contibuter erklärt sich mit der Rechteabgabe einverstanden. "git sign" oder genauer "git commit --signoff" wird verwendet, um zu bestätigen, dass der Commiter die Rechte hat, die Änderungen zu machen und zu teilen. Es fügt eine Zeile am Ende der Commit-Nachricht hinzu, die besagt "Signed-off-by: [Name] <[email]>". Dies wird oft in Projekten mit strengen Beitragsguidelines verlangt.

Was ist ein merge request? Pull request?

Ein Merge Request (bekannt in GitLab) oder Pull Request (PR, bekannt in GitHub) ist ein Vorschlag für Änderungen in einem Code-Repository. Es erlaubt Entwicklern, ihre Änderungen zu teilen und Feedback zu bekommen, bevor die Änderungen in den Hauptzweig des Projekts eingefügt werden.

Nennen Sie die 4 Freiheiten aus dem GNU-Projekt

Die vier Freiheiten des GNU-Projekts sind:

  • Use: Die Freiheit, das Programm für jeden Zweck zu verwenden (Freiheit 0).
  • Study: Die Freiheit, zu untersuchen, wie das Programm funktioniert, und es an Ihre Bedürfnisse anzupassen (Freiheit 1).
  • Share: Der Zugang zum Quellcode ist Voraussetzung dafür. Die Freiheit, Kopien weiterzugeben, so dass Sie Ihrem Nächsten helfen können (Freiheit 2).
  • Improve: Die Freiheit, das Programm zu verbessern und Ihre Verbesserungen an die Öffentlichkeit weiterzugeben, so dass die gesamte Gemeinschaft profitiert

Nennen sie wichtige Programme im GNU-Projekt (Compiler, editoren, buildsysteme)

Wichtige Programme im GNU-Projekt:

  • GCC (GNU Compiler Collection): eine Reihe von Compilern für verschiedene Programmiersprachen.
  • GNU Emacs: Ein erweiterbarer, anpassbarer Texteditor.
  • GNU Make: Ein Build-Management-Tool, das es ermöglicht, den Build-Prozess zu automatisieren.
  • Bash (Bourne Again Shell): Eine Shell und Kommandozeileninterpreter.
  • GDB (GNU Debugger): Ein Debugger, der es Entwicklern ermöglicht, das Verhalten von Programmen während ihrer Ausführung zu beobachten.

EMACS: Nennen sie alle Shotcuts für die Navigation im Editor

  • Ctrl + P oder Pfeil nach oben: Bewegt den Cursor eine Zeile nach oben.
  • Ctrl + N oder Pfeil nach unten: Bewegt den Cursor eine Zeile nach unten.
  • Ctrl + F oder Pfeil nach rechts: Bewegt den Cursor ein Zeichen nach rechts.
  • Ctrl + B oder Pfeil nach links: Bewegt den Cursor ein Zeichen nach links. C
  • Ctrl + A: Bewegt den Cursor an den Anfang der Zeile.
  • Ctrl + E: Bewegt den Cursor an das Ende der Zeile..
  • M-< oder C-Home: Zum Anfang des Dokuments
  • M-> oder C-End: Zum Ende des Dokuments
  • und viiiiiiele mehr :/ mach dir ein cheat Sheet^^

Was ist Public Money?

"Public Money" ist einfach Geld, das von der Regierung für öffentliche Dienstleistungen und Infrastruktur ausgegeben wird. Es kommt in der Regel aus Steuern und anderen Einnahmenquellen der Regierung.

Was ist Public Code?

"Public Code" ist eine Bewegung oder ein Prinzip, dass öffentlich finanzierte Software - also Software, die mit öffentlichen Geldern entwickelt wurde - auch als Open Source veröffentlicht werden sollte. Die Idee ist, dass da die Öffentlichkeit für die Entwicklung bezahlt hat, sie auch Zugang zu den Ergebnissen haben sollte.