diff --git a/.prettierignore b/.prettierignore deleted file mode 100644 index 5a0bf03..0000000 --- a/.prettierignore +++ /dev/null @@ -1 +0,0 @@ -/book diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index 0079043..0000000 --- a/.prettierrc +++ /dev/null @@ -1,4 +0,0 @@ -{ - "printWidth": 88, - "proseWrap": "always" -} diff --git a/.woodpecker.yml b/.woodpecker.yml index d263bff..b819693 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -16,6 +16,5 @@ pipeline: - talon_key commands: - apk add curl jq - - curl -SsL -o upload.sh - "https://code.thetadev.de/ThetaDev/Talon/raw/branch/main/scripts/upload.sh" + - curl -SsL -o upload.sh "https://code.thetadev.de/ThetaDev/Talon/raw/branch/main/scripts/upload.sh" - sh upload.sh book diff --git a/README.md b/README.md index 89dba47..86fbe3c 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,5 @@ # WPF: Open Source Software -Dies ist die - **Kursseite:** http://hhoegl.informatik.hs-augsburg.de/hhwiki/OSS23 ## Build @@ -12,17 +10,3 @@ Die Dokumentation wird mit mdBook (https://rust-lang.github.io/mdBook/) gebaut. mdbook serve # Starte Server mit Live-Update mdbook build # Webseite bauen ``` - -## Markdown formatieren - -Das Projekt enthält eine Prettier-Konfiguration, um den Markdown-Text zu formatieren -(automatische Zeilenumbrüche). - -```bash -npx prettier -w . -``` - -## Lizenz - -Die Dokumentation ist unter der Creative Commons Attribution-ShareAlike 4.0-Lizenz -veröffentlicht. diff --git a/src/SUMMARY.md b/src/SUMMARY.md index aac5072..b003c15 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -4,4 +4,3 @@ - [Aufgabe 1](./aufgaben/aufgabe_1.md) - [Aufgabe 2](./aufgaben/aufgabe_2.md) -- [Aufgabe 3](./aufgaben/aufgabe_3.md) diff --git a/src/aufgaben/aufgabe_1.md b/src/aufgaben/aufgabe_1.md index e9ae84d..2872822 100644 --- a/src/aufgaben/aufgabe_1.md +++ b/src/aufgaben/aufgabe_1.md @@ -4,106 +4,101 @@ Hausaufgaben A1 bis 28.3.: ## Software -Welche Programme verwenden Sie typischerweise für Ihre tägliche Arbeit auf Ihrem -Rechner? +Welche Programme verwenden Sie typischerweise für Ihre tägliche Arbeit auf Ihrem Rechner? Stellen Sie die Programme mit ihrer Lizenz in einer Tabelle zusammen. -| Kategorie | Name | Lizenz | -| ------------------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Kategorie | Name | Lizenz | +| ------------------- | ------------------- | ------------------------------------------------------------ | | Betriebssystem | Debian | Kernel: GPLv2
Pakete: hauptsächlich freie Lizenzen
einige proprietäre Pakete im nonfree-Repository, bspw. `firmware-amd-graphics` (Lizenz: `binary-redist-AMD-restrictive`) | -| Desktop Environment | KDE Plasma | GPL, LGPL | -| Browser | Firefox | MPL (Mozilla Public License) | -| IDE | VSCodium | MIT | -| IDE | IntelliJ/PyCharm | Community-Version: Apache 2.0, Ultimate-Version: JetBrains User Agreement | -| Markdown-Editor | Typora | Typora End User License Agreement | -| Notizen | Joplin | AGPL 3.0 | -| Git-Hosting | Gitea | MIT | -| Git-Hosting | Gitlab | Community Edition: MIT, Enterprise Edition: GitLab Enterprise Edition (EE) license, source-available | -| Bildbearbeitung | GIMP | GPLv3 | -| 3D-Druck | PrusaSlicer | AGPL 3.0 | -| Platinendesign | KiCad | GPLv3 | -| 3D-Modellierung | Autodesk Fusion 360 | Autodesk License and Services Agreement | -| Mediaplayer | VLC | GPLv2 | -| Mediaserver | Jellyfin | GPLv2 | -| Mediacenter | Kodi | GPLv2 | -| Audiobook-Server | Audiobookshelf | GPLv3 | -| YouTube-Client | NewPipe | GPLv3 | -| Instant-Messaging | Signal | GPLv3 (Desktop-Version: AGPL 3.0) | -| Online-Ausweis | AusweisApp | EUPL (Open Source Lizenz für die Europäische Union) | +| Desktop Environment | KDE Plasma | GPL, LGPL | +| Browser | Firefox | MPL (Mozilla Public License) | +| IDE | VSCodium | MIT | +| IDE | IntelliJ/PyCharm | Community-Version: Apache 2.0, Ultimate-Version: JetBrains User Agreement | +| Markdown-Editor | Typora | Typora End User License Agreement | +| Notizen | Joplin | AGPL 3.0 | +| Git-Hosting | Gitea | MIT | +| Git-Hosting | Gitlab | Community Edition: MIT, Enterprise Edition: GitLab Enterprise Edition (EE) license, source-available | +| Bildbearbeitung | GIMP | GPLv3 | +| 3D-Druck | PrusaSlicer | AGPL 3.0 | +| Platinendesign | KiCad | GPLv3 | +| 3D-Modellierung | Autodesk Fusion 360 | Autodesk License and Services Agreement | +| Mediaplayer | VLC | GPLv2 | +| Mediaserver | Jellyfin | GPLv2 | +| Mediacenter | Kodi | GPLv2 | +| Audiobook-Server | Audiobookshelf | GPLv3 | +| YouTube-Client | NewPipe | GPLv3 | +| Instant-Messaging | Signal | GPLv3 (Desktop-Version: AGPL 3.0) | +| Online-Ausweis | AusweisApp | EUPL (Open Source Lizenz für die Europäische Union) | + + ## Geschichte freier Software -Ergänzen Sie die Geschichte freier Software -( siehe oben) ab 2000. -Recherchieren Sie selber, welche wichtigen Ereignisse in den letzten 20 Jahren -Open-Source Geschichte stattgefunden haben. +Ergänzen Sie die Geschichte freier Software ( siehe oben) ab 2000. Recherchieren Sie selber, welche wichtigen Ereignisse in den letzten 20 Jahren Open-Source Geschichte stattgefunden haben. -| Jahr | Ereignisse | -| ---- | ---------------------------------------------------------------------- | -| 2001 | Linux 2.4, VLC, BitTorrent | -| 2002 | Kodi (damals Xbox Media Player, später XBMC), Arch Linux | -| 2003 | Linux 2.6 | -| 2004 | NGINX 0.1.0, Ubuntu 4.10 | -| 2005 | Git | -| 2006 | Linux Mint, qBittorrent | -| 2007 | GPLv3 | -| 2008 | GitHub | -| 2009 | Golang | -| 2010 | F-Droid | -| 2011 | Linux 3.0, GitLab | -| 2012 | OctoPrint | -| 2013 | Docker | -| 2014 | Signal, Kubernetes, Heartbleed | -| 2015 | Linux 4.0, Rust 1.0, NewPipe, VS Code | -| 2016 | Gitea (Gogs-Fork), Mastodon | -| 2017 | WebAssembly | +| Jahr | Ereignisse | +| ---- | ------------------------------------------------------------ | +| 2001 | Linux 2.4, VLC, BitTorrent | +| 2002 | Kodi (damals Xbox Media Player, später XBMC), Arch Linux | +| 2003 | Linux 2.6 | +| 2004 | NGINX 0.1.0, Ubuntu 4.10 | +| 2005 | Git | +| 2006 | Linux Mint, qBittorrent | +| 2007 | GPLv3 | +| 2008 | GitHub | +| 2009 | Golang | +| 2010 | F-Droid | +| 2011 | Linux 3.0, GitLab | +| 2012 | OctoPrint | +| 2013 | Docker | +| 2014 | Signal, Kubernetes, Heartbleed | +| 2015 | Linux 4.0, Rust 1.0, NewPipe, VS Code | +| 2016 | Gitea (Gogs-Fork), Mastodon | +| 2017 | WebAssembly | | 2018 | GitHub von Microsoft übernommen, Jellyfin (Fork von Emby), ActivityPub | -| 2019 | Linux 5.0 | -| 2020 | Linux-Marktanteil > 3% | -| 2021 | Log4j vulnerability, Audiobookshelf 1.0 | -| 2022 | Linux 6.0, Forgejo (Gitea-Fork), Internet Explorer EOL | +| 2019 | Linux 5.0 | +| 2020 | Linux-Marktanteil > 3% | +| 2021 | Log4j vulnerability, Audiobookshelf 1.0 | +| 2022 | Linux 6.0, Forgejo (Gitea-Fork), Internet Explorer EOL | ## Videos ### 4 Freedoms -http://www.youtube.com/watch?v=uJi2rkHiNqg + http://www.youtube.com/watch?v=uJi2rkHiNqg Richard Stallman erklärt die 4 Freiheiten von Freier Software 0. Freiheit, das Programm beliebig auszuführen 1. Freiheit, den Code des Programms ansehen und zu verändern -2. Freiheit, Kopien des Programms weiterzuverbreiten +2. Freiheit, Kopien des Programms weiterzuverbreiten 3. Freiheit, Kopien des veränderten Programms weiterzuverbreiten ### What is Free Software https://www.youtube.com/c/FreeSoftwareFoundationEurope -Werbevideo der Free Software Foundation Europe, erklärt die oben genannten 4 Freiheiten -und geht darauf ein, dass freie Software immer wichtiger wird, je mehr Lebensbereiche -von Computern bestimmt werden. +Werbevideo der Free Software Foundation Europe, erklärt die oben genannten 4 Freiheiten und geht darauf ein, dass freie Software immer wichtiger wird, je mehr Lebensbereiche von Computern bestimmt werden. ### Das Microsoft-Dilemma https://hhoegl.informatik.hs-augsburg.de/oss/ss20/Das-Microsoft-Dilemma-2018.mp4 -Die Dokumentation beschreibt die Problematik der Verwendung proprietärer Software im -öffentlichen Dienst. +Die Dokumentation beschreibt die Problematik der Verwendung proprietärer Software im öffentlichen +Dienst. -Die großflächige Verwendung nicht auditierbarer Software schafft Sicherheitslücken und -ermöglicht die Verbeitung von Viren wie der WannaCry-Ransomware. Zudem macht sich unser -Staat so von ausländischen Konzernen abhängig. +Die großflächige Verwendung nicht auditierbarer Software schafft Sicherheitslücken und ermöglicht +die Verbeitung von Viren wie der WannaCry-Ransomware. Zudem macht sich unser Staat so von +ausländischen Konzernen abhängig. -Es wird kritisiert, dass es keine fairen Ausschreibungen zur Wahl des Softwarepakets für -Behörden gibt, sondern die Verwendung von Microsoft-Produkten von Anfang an fest steht. +Es wird kritisiert, dass es keine fairen Ausschreibungen zur Wahl des Softwarepakets für Behörden +gibt, sondern die Verwendung von Microsoft-Produkten von Anfang an fest steht. Es wird festgestellt, das die Verbeitung von Microsoft-Software viel mit Lobbyismus und Parteipolitik und wenig mit technischen Vorteilen dieser Software zu tun hat. -Als Beispiel wird die Münchener Stadtverwaltung genannt, die ihre IT auf Linux -umgestellt hat. 2017 wurde diese Umstellung nach einem Wechsel des Oberbürgermeisters -wieder rückgängig gemacht. Es gibt Spekulationen, dass dies mit dem Umzug der Zentrale -von Microsoft Deutschland nach München und dem stärkeren Einfluss des Konzerns zu tun -hat. +Als Beispiel wird die Münchener Stadtverwaltung genannt, die ihre IT auf Linux umgestellt hat. 2017 +wurde diese Umstellung nach einem Wechsel des Oberbürgermeisters wieder rückgängig gemacht. Es gibt +Spekulationen, dass dies mit dem Umzug der Zentrale von Microsoft Deutschland nach München und dem +stärkeren Einfluss des Konzerns zu tun hat. diff --git a/src/aufgaben/aufgabe_2.md b/src/aufgaben/aufgabe_2.md index fb08113..55718d5 100644 --- a/src/aufgaben/aufgabe_2.md +++ b/src/aufgaben/aufgabe_2.md @@ -2,40 +2,4 @@ Hausaufgaben A2 bis 03.4.: -## Unix-Geschichte -Bell Labs entwickelt zusammen mit dem MIT und General Electric ein -Mainframe-Betriebssystem namens Multics. - -**1969** Ken Thompson, der an Multics gearbeitet hatte, entschließt sich dazu, sein -eigenes Betriebsssytem zu entwickeln. Das neue Betriebssystem wurde Unix genannt, da es -deutlich kleiner und einfacher als Multics war. Entwickelt wurde es auf dem Minicomputer -[PDP-7]([PDP-7 - Wikipedia](https://en.wikipedia.org/wiki/PDP-7)). - -**1974** Thompson und Ritchie veröfffentlichten einen Artikel über Unix und stellten den -Quellcode der nun fünften Version frei zur Verfügung. Unix stieß bei Universitäten auf -großes Interesse, sodass einige von ihnen an eigenen Versionen des Projekts arbeiteten. -Beispielsweise veröffentlichte die University of California in Berkley 1979 die -BSD-Version von Unix. - -**1978** Unix wird das erste Betriebssystem, das für 32bit-Rechnerarchitekturen -verfügbar ist. - -**1983** AT&T veröffentlicht die kommerzielle Unix-Version SystemV, nach dem sie als -Nachfolger der Bell Labs das Projekt übernommen hatten. - -**1984** Siemens veröffentlicht die Unix-Variante SINIX. - -**1986** Der POSIX (Portable Operating System based on UNIX) Standard wird etabliert. -POSIX spezifiziert die Programmierschnittstelle zwichen Betriebssystem und Anwendungen -und sorgt dafür, dass die verschiedenen Unix-Derivate miteinander kompatibel sind. - -**1992** GNU/Linux wird veröffentlicht. - -**2000** Apple veröffentlicht das Open Source-Betriebssystem Darwin, basierend auf -NeXTSTEP, BSD und dem Mach Kernel. Das Betriebssystem wird zur Grundlage von Apple's -proprietären Betriebssystemen macOS und iOS. - -### Quellen - -- Geschichte des Unix-Systems diff --git a/src/aufgaben/aufgabe_3.md b/src/aufgaben/aufgabe_3.md deleted file mode 100644 index 3bb8dee..0000000 --- a/src/aufgaben/aufgabe_3.md +++ /dev/null @@ -1,168 +0,0 @@ -# Aufgabe 3 - -## Code-Reading: Jellyfin - -Was steht in der README.md? - -> - Kurze Bescheibung des Projekts -> - Links zur Dokumentationsseite -> - Übersetzungsstatus -> - Anleitung zum Aufsetzen der Entwicklungsumgebung - -Projekt aktiv oder verwaist? Wie aktiv war es in letzter Zeit? - -> Jellyfin wird aktiv entwickelt, der letzte Commit ist unter 24 Stunden alt. - -Wer hat es sich ursprünglich ausgedacht? - -> Jellyfin ist ein Fork des Emby Media Servers unter der Leitung von Joshua Boniface. - -Wer ist der aktuelle Maintainer? - -> Joshua Boniface - -Wo wird das Projekt gehostet? (z.B. Github, Gitlab, Savannah https://savannah.gnu.org) - - -Gibt es eine Homepage? - -Für welche Betriebssysteme ist es geeignet? - -> Server: Linux, Windows, MacOS Client: Web, Linux, Windows, MacOS, Android, iOS, Roku - -Unter welcher Lizenz steht das Programm? - -> GPL 2.0 - -Ist es ein Kommandozeilen- oder Grafikprogramm? - -> Jellyfin Server ist eine Webanwendung. - -Wie lange existiert es? - -> Emby existiert seit 2015, der Fork Jellyfin wurde 2018 als Reaktion auf die -> Veröffentlichung von Emby 4 unter einer proprietären Lizenz erstellt. - -Wie viele haben in etwa daran gearbeitet? - -> 880 Beitragende für das Backend, 1300 Beitragende für die Web-UI - -Welche Programmiersprache(n) wird/werden verwendet? (Tipp: -https://github.com/XAMPPRocky/tokei) - -> Backend: C#, Frontend: Javascript/Typescript - -Welches Konfigurations- bzw. Build-System wird verwendet? - -> Backend: dotnet SDK, Frontend: webpack - -Wird eine IDE zum Entwickeln verwendet? - -> Visual Studio Code, JetBrains ReSharper - -Gibt es eine Dokumentation, wenn ja, in welchem Textverarbeitungssystem wurde sie -geschrieben? - -> Ja, die Dokumentationsseite () ist in Markdown geschrieben und -> wird mit Docusaurus gebaut. - -Wie viele Anwender verwenden das Programm ungefähr? (schwer herauszubekommen) - -> Jellyfin beinhaltet keine Telemetrie, deswegen gibt es keine Nutzerzahlen. Stattdessen -> habe ich andere andere Metriken zur Beliebtheit des Projekts aufgelistet: -> -> - 22k Stars auf Github -> - 200M Pulls auf Docker -> - das Jellyfin-Subreddit hat 45k Mitglieder - -Gibt es Abspaltungen ("forks")? - -> Jellyfin stellt einen Fork des Emby Media Servers dar. Von Jellyfin selbst gibt es -> keine nennenswerten Forks. Es gibt jedoch ein Pluginsystem, um fehlende Features -> hinzuzufügen (bspw. weitere Datenquellen, LDAP-Authentifizierung, Vorspann von Serien -> automatisch überspringen etc.) - -Wie kann man mitmachen bzw. Änderungen einreichen? - -> - Übersetzungen können auf einer projekteigenen Weblate-Instanz eingegeben werden -> - Codeänderungen werden über Pull Requests auf GitHub entgegengenommen - -Wie werden Branches in Git verwendet? (git Workflow bei der Entwicklung) - -> - Änderungen von Teammitgliedern werden in eigenen Feature-Branches geführt und -> anschließend in den Master-Branch gemerged. -> - Für jedes Feature-Release wird ein eigener Branch angelegt (z.B. `release-10.8.z`). - -Wie kann man das Programm installieren? (selber kompilieren, binary, snap, appimage, -container, ...) - -> - Selbst mit dotnet SDK und webpack kompilieren -> - Binary (Download von der Webseite) -> - deb/rpm-Package von Jellyfin's eigenem Repository -> - Container: offizielle Version von Jellyfin (`jellyfin/jellyfin`), -> linuxserver.io-Version (`linuxserver/jellyfin`) - -In welcher Sprache sind die Meldungen des Programms verfasst, z.B. Englisch, Deutsch, -Chinesisch? Gibt es eine Internationalisierung in verschiedenen Sprachen (z.B. GNU -gettext)? - -> Jellyfin ist in 84 Sprachen übersetzt. Die Internationalisierung wurde mit -> JSON-Dateien realisiert, auf eine spezielle Library wie gettext wurde verzichtet. -> Übersetzungen können auf einer eigenen Weblate-Instanz vorgenommen werden und werden -> automatisch in die Repositories eingepflegt. - -## Projekte und Organisationen mit Open- im Namen - -- OpenStreetMap (Durch Crowdsourcing erstellte Weltkarte unter der Open Database - License) -- Open Office (freie Office-Suite, aktuell als Fork _LibreOffice_ weitergeführt) -- OpenGL (Plattformunabhängige Grafikbibliothek) -- OpenSearch (von AWS entwickelter Fork von ElaticSearch nach deren Wechsel zur SSPL - Lizenz) -- OpenAI (bis auf wenige Ausnahmen wie Whisper ist deren Software proprietär, der Name - deswegen irreführend) - -## Freemium - -Freemium ist ein Kofferwort aus den Begriffen "Free" und "Premium" und bezeichnet ein -kostenfreies nutzbares Produkt, das mit kostenpflichtigen Angeboten aufgewertet werden -kann. - -Dieses Geschäftsmodell ist bei Software sehr beliebt, da viele Nutzer nicht dazu bereit -sind, initial für Software zu bezahlen. Hat der Nutzer die Software jedoch in seinen -Workflow oder sein Leben integriert, ist er viel eher dazu bereit, für mehr Features zu -bezahlen. - -Das Freemium-Konzept existiert auch bei einigen kommerziellen Open-Source-Projekten. -Hierbei wird die kostenfreie Basisanwendung unter einer Open Source Lizenz -veröffentlicht, während der Quellcode für die kostenpflichtige Premiumversion entweder -geschlossen bleibt oder unter einer proprietären Lizent veröffentlicht wird -(source-available). - -Zu den kostenpflichtigen Features gehörten oft solche Features, die vorwiegend von -Unternehmen eingesetzt werden (bspw. Single Sign On oder eine erweiterte -Benutzerrechteverwaltung). - -Beispiele für Freemium-Open-Source-Projekte sind JetBrains IntelliJ/PyCharm sowie -Gitlab. - -## Artikel: Steuermillionen für Hobbyprojekte - -- Das Projekt "Sovereign Tech Fund" fördert ausgewählte Open-Source-Projekte -- STF erhielt bis Ende 2023 13 Millionen Euro vom Wirtschaftsministerium -- Webseite des Projekts: -- Geförderte Projekte: - - RubyGems (Paketmanager für Ruby) - - OpenBGPd (offene Implementation des Border Gateway Protocol für Internetrouter) - - OpenSSH (Tool zur Fernsteuerung und zum Datenaustausch mit anderen Rechnern im - Netzwerk) - - curl (HTTP-Client) - - OpenMLS (Library für End2End-verschlüsselte Nachrichtenübertragung) - - Sequoia PGP (Rust-Implementierung der PGP-Verschlüsselungssoftware) - - OpenPGP.js (Javascript-Implementierung der PGP-Verschlüsselungssoftware) - - Fortran Package Manager - - WireGuard (VPN-Software) -- Es wurden keine innovativen Prestigeprojekte gefördert, sondern Projekte, die wichtige - Bestandteile von IT-Infrastruktur darstellen. -- Mangelnde Pflege dieser Komponenten kann zu flächendeckender Verwundbarkeit von - IT-Systemen führen, was durch die Log4Shell-Vulnerability deutlich wurde.