Compare commits

6 Commits

Author SHA1 Message Date
6636af70ed Add "Just for Fun" section 2026-05-03 18:32:13 +02:00
1a3b4a22f2 Finish introduction 2026-05-03 14:29:27 +02:00
da2fd42a05 Define Structure 2026-05-03 13:28:42 +02:00
141b79c115 Add some structure info 2026-05-01 15:22:08 +02:00
ca38d8b80e Add start frame 2026-04-20 23:12:31 +02:00
c32af8cbfe Add README file 2026-04-20 19:35:40 +02:00
12 changed files with 556 additions and 0 deletions

86
LinuxInformationstag.tex Normal file
View File

@@ -0,0 +1,86 @@
% Title: Linux - Mehr als nur ein Betriebssystem
% Author: Alexander Noack <jali@orca-central.de>
% Created On: Mon 20 Apr 2026
% Summary: Presentation for the talk
% Language: de-DE
%% preamble
\documentclass{beamer}
% use special colour tables for pdf output
\ifpdf
\usepackage{pdfcolmk}
\fi
% change the theme into something more fancy
\usetheme{Warsaw}
% all our source code is utf-8
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
% allow the import of images
\usepackage{graphicx}
\usepackage{caption}
\captionsetup{justification=Centering}
% set the language to German
\usepackage[ngerman]{babel}
% we may need some code examples
\usepackage{verbatim}
\usepackage{listings}
% alllow quotes in the text
\usepackage[autostyle=true]{csquotes}
% enable strike through text
\usepackage[normalem]{ulem}
% we need to use advanced tables
\usepackage{multirow}
\usepackage{booktabs}
% place a logo
\logo{\includegraphics[scale=0.2]{images/ccchb.png}}
% we want urls to be clickable
\usepackage{hyperref}
% redefine the caption source for figures to "Quelle"
\addto\captionsngerman{\renewcommand{\figurename}{Quelle}}
% create header info
\title{Linux - Mehr als ein Betriebssystem}
\subtitle{Wie eine Software aus Versehen die Welt verändert hat}
\author{Alexander Noack \\ \texttt{jali@orca-central.de}}
\institute{Chaos Computer Club Bremen \- CCCHB e.V.}
% document starts here
\begin{document}
\begin{frame}
\titlepage
\end{frame}
% import the slides here
\input{slides/01.Introduction}
\input{slides/02.JustForFun}
% epilogue
\begin{frame}
\frametitle{Fragen?}
\begin{center}
Fragen? \par
Alexander Noack \texttt{<jali@orca-central.de>}
\end{center}
\end{frame}
\begin{frame}
\frametitle{Fragen?}
\begin{center}
\includegraphics[scale=1.0]{images/ccchb.png}
\end{center}
\end{frame}
\end{document}

View File

@@ -0,0 +1,42 @@
# Linux - Mehr als ein Betriebssystem
## Einleitung
Im Rahmen der Kooperation mit der Stadtbibliothek Bremen, soll es einen
Informationsabend zum Thema Linux geben. Geplant ist eine kurze Einführung in
das Betriebssystem. Dabei geht es vor allem um zwei Dinge: Die Philosophie von
freier und Open-Source Software zu erklären, und den Interessierten die Angst zu
nehmen, ein Linux-Betriebssystem mal auszuprobieren.
## Struktur
### 1. Begrüßung
Enthält eine kurze Einführung, wer wir sind, wer der CCC ist, und was DuT/Di.Day
ist
### 2. Just for fun
Ein kurzer Abriss über die Geschichte der Free and Open Source Bewegung (FOSS)
von ITS bis zu Linux.
### 3. Die Philosophie von FOSS: Vom Konsumenten zum Agenten
Eine Einführung in die grundlegenden Freiheiten von FOSS, und warum freie
Software zu benutzen ein Akt der Selbstermächtigung ist. Auch wenn man nicht
programmieren kann.
### 4. Was ist eigentlich ein Betriebssystem?
Eine kurze Einführung, was ein Betriebssystem in einem Computer tut, und warum
es so wichtig ist.
### 5. Linux basierte Betriebssysteme: Was ist anders als bei Windows/MacOS, was ist ähnlich?
Eine Übersicht über die wichtigsten Unterschiede zwischen Windows und Linux aus
Anwendersicht. Eine Einführung über die verschiedenen großen Distributionen.
### 6. Kurze Demo
Eine kurze Demo (vielleicht schon anfangen, wenn Teil 5 läuft?), um zu zeigen,
wie leicht es ist Ubuntu zu installieren.

11
codebook.toml Normal file
View File

@@ -0,0 +1,11 @@
words = [
"ari",
"ccchb",
"lemmke",
"minix",
"ngerman",
"noack",
"stallman",
"tanenbaum",
"unlizensierte",
]

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 724 KiB

BIN
images/Torvalds.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

BIN
images/Tux.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
images/ccchb.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

136
notes.md Normal file
View File

@@ -0,0 +1,136 @@
# Notizen
## 01. Introduction
- Kurze Vorstellung, wer ich bin.
- Erklärung Chaos Computer Club
- Was ist der DuT?
- Überleitung: Worum geht es heute?
- Inhaltsverzeichnis einmal durchgehen.
## 02. Just for fun
### PDP-10 slide
Die Geschichte von Linux ist eng verwoben mit der Geschichte der Freien Software
Bewegung, die in den 1980er Jahren ihren Anfang in den USA nahm. Die Geschichte
beginnt, bereits Ende der 1960er Jahre, wie sehr viel in der Entwicklung der
modernen Computergeschichte, im legendären Artificial Intelligence Laboratory am
Massachusets Institute of Technology (MIT). Neben grundlegender Forschung zu
künstlicher Intelligenz und neuronalen Netzen, wurde dort auch Forschung an
Betriebssystemen durchgeführt. In den frühen 1970er Jahren hat dort die
Hacker-Kultur ihren Anfang genommen, als Studenten das *Incompatible Time
Sharing System* entwickelt haben. Einer der Entwickler dort war *Richard
Stallman*. Stallman war schon aus seiner Zeit in Havard, in der Hacker-Kultur
verwurzelt, und schuf in dieser Zeit wichtige Werkzeuge, wie den EMACS
Text-Editor und das LISP-Machine Operating System. Stallman war schon früh ein
ausgesprochener Kritiker der restriktiven Zugangspolitik in den - teilweise von
der DARPA, der Forschungsabteilung des US-Militärs bezahlten Laboratorien. Beim
ITS hatte noch jedermann freien Zugang zu den Ressourcen des Computersystems.
Das änderte sich jedoch in den folgenden Jahren. Stallman reagierte darauf,
indem er einen Weg fand, die verschlüsselten Passworte auf dem System zu
entschlüsseln. Er verschickte die entschlüsselten Passworte an die jeweiligen
Benutzer, verbunden mit der Bitte, die Passwörter in eine leere Zeichenkette zu
ändern. Etwa 20% der Nutzer folgten seinem Aufruf. Ein Sieg mit dem Stallman
noch Jahre später gern angab.
### GNU
In späten 1970er und frühen 1980er Jahren begann die Hacker-Kultur in den USA zu
fragmentieren, und viele Firmen wollten nicht, dass ihr Code in die Hände
möglicher Konkurrenten geriet. Zu den heftigsten Verfechtern zählte Bill Gates,
der CEO der damals noch jungen Firma *Microsoft*, die sich mit der Entwicklung
eines leistungsfähigen BASIC-Interpreters einen Namen gemacht hatte. Gates war
schon in den 1970er Jahren damit aufgefallen, dass er die damals verbreitete
Praxis, Quellcode frei zu teilen, scharf verurteilte.
Als 1979 Brian Reid sog. "Time Bombs" im Code seines Textverarbeitungsprogramms
*Scribe* einbaute, um eine unlizensierte Weitergabe des Quellcodes zu
unterbinden, bezeichnete Stallman dies als ein *Verbrechen gegen die
Menschheit*. In einem Interview im Jahr 2008 stellte er klar, dass er das
Verbrechen nicht darin sehe, Geld für eine Software zu verlangen, sondern darin,
das Wissen, dass mit dem Code verbunden ist, als eine Art *Herrschaftswissen*
unter Verschluss zu halten. Er entwickelte darauf hin die Software *texinfo*,
die lose auf Scribe basiert.
Im Jahr 1980 wurden Stallman und einigen anderer der Hacker am MIT der Zugriff
auf den Quellcode des neu installierten Laser-Druckers verweigert. Bei früheren
Druckern hatte Stallman die Systemsoftware so erweitert, dass Benutzer eine
Nachricht erhielten, wenn ihr Druckauftrag beendet war, und so wussten, wann sie
zum Drucker gehen mussten, um ihren Ausdruck abzuholen. Die Änderungen
benachrichtigten darüber hinaus, alle Nutzer die einen laufenden Druckauftrag
hatten, wenn im Drucker ein Papierstau auftrat. Diese Erweiterungen wurden von
den Nutzern sehr geschätzt, weil der Drucker sich in einem anderen Gebäudeteil
befand, als die Büros, und diese Funktion viele Laufwege ersparte. Die
Änderungen an dem neuen Drucker nicht mehr durchführen zu können, überzeugte
Stallman, dass es einen Bedarf an Software gab, die jeder frei nutzen und
Verändern kann.
Richard Greenblatt, ein befreudeter Hacker am MIT, gründete derweil die Firma
*Lisp Machines Inc.*, um due LISP-basierten Computer bauen zu können, die er
zusammen mit Tom Knight im MIT-Lab designed hatte. Greenblatt wollte kein Geld
von aussen annehmen, um möglichst unabhängig zu bleiben. Das führte zu
Spannungen mit einigen Kommilitonen, die lieber Investoren-Geld annehmen
wollten, um die Firma schnell wachsen zu lassen. Daher kam es zum Zerwürfnis,
und die Mitglieder des *Invertorenlagers* gründeten die Firma *Symbolics*.
Allerdings machten die Investoren die Geheimhaltung des Quellcodes zu einer
Bedingung.
Stallman verbrachte die Jahre 1982 und 1983 damit eine zu Symbolics kompatible
Software zu erstellen, um zu verhindern das diese ein Monopol über die Software
auf den Computern im MIT bekam. Im Februar 1984 kündigte Stallman schließlich
seine Stelle am MIT und startete das GNU Projekt.
GNU steht ist ein rekursives Akronym und steht für *GNU is not UNIX*. Die Idee
war es, ein eigenes Betriebssystem zu bauen, dass vollständig auf freier
Software basiert, und dass allen zur Verfügung steht. Inklusive des Quellcodes,
sodass jedermann die Software nicht nur nutzen, sondern auch eigenen
Bedürfnissen anpassen kann. Dafür gründete er die gemeinnützige *Free Software
Foundation*, die sich den Zielen der Open-Source-Bewegung verschrieben hat.
Stallman war bei der Entwicklung verantwortlich für die Toolchain, vor allem den
GNU EMACS Texteditor, den Compiler (GCC), den GNU Debugger und ein
automatisiertes Build-System zum kompilieren der Software namens GNU Make. Ende
der 1980 Jahre hatte die FSF alle Werkzeuge zusammen, die man braucht, um ein
UNIX-artiges Betriebssystem zu erschaffen. Mit einer wichtigen Ausnahme: dem
Kernel.
### Torvalds
Ein Kernel ist sozusagen das Herzstück eines Betriebssystems. Es ist der Teil,
der die Kommunikation der Programme die auf einem Computer laufen mit der
physischen Hardware koordiniert, den Speicher verwaltet und Zugriff auf die
Massenspeicher wie Festplatten ermöglicht.
Hier erschien nun ein junger finnischer Informatik-Student auf der Bühne: Linus
Torvalds. Torvalds hatte sich gerade seinen ersten 80386 basierten PC gekauft,
und war enttäuscht, dass die damals noch üblichen PC-Betriebssysteme, vor allem
MS-DOS, die Fähigkeiten dieser Hardware nicht ansatzweise ausnutzten.
Torvalds schrieb also seinen eigenen Kernel, der seinen neuen PC besser nutzen
konnte. Er orientierte sich dabei an *Minix* einem UNIX-ähnlichen
Betriebssystem, das von dem legendären Computer-Forscher Andrew S. Tanenbaum für
Lehrzwecke geschrieben worden war.
### GNU/Linux
Am 25. August 1991 veröffentlichte Torvalds seine Arbeit im der Usenet-Gruppe
*comp.os.minix*.
Ursprünglich wollte er sein Projekt *FreaX* nennen, als Kofferwort aus *Freak*
und *Unix*. Ari Lemmke, der damals Administrator der FTP Server and er
Universität in Helsinki war, fand den Namen nicht gut, und schlug stattdessen
*Linux* vor, als Kurzform von *Linus' Unix*. Torvalds gefiel das zunächst nicht,
weil es ihm zu egoistisch vorkam, beugte sich aber den Stimmen der Community,
die Lemmke's Vorschlag allesamt besser fanden.
Obwohl er, anders als Stallman, nicht politisch motiviert war, wollte Torvalds
seine Arbeit gerne mit so vielen Menschen wie möglich teilen. Darum wählte er
die GNU General Public Licence als Lizenzmodell aus. Dies gab dem GNU Projekt
das letzte fehlende Puzzle-Teil in die Hand: GNU/Linux war geboren.
Über den Namen dieses Betriebssystems gibt es bis heute übrigens Kontroversen.
Die Free Software Foundation besteht darauf, dass vollständige System GNU/Linux
zu nennen, was technisch richtiger ist (zumal es inzwischen auch Systeme wir
GNU/Mach und GNU/Hurd gibt). In der Öffentlichkeit hat sich die Kurzform *Linux*
weitestgehend durchgesetzt.

View File

@@ -0,0 +1,19 @@
% Title: Linux - Mehr als nur ein Betriebssystem
% Author: Alexander Noack <jali@orca-central.de>
% Created On: Mon 20 Apr 2026
% Summary: Presentation for the talk
% Language: de-DE
\section{Überblick}
\begin{frame}
\frametitle{Überblick}
\begin{figure}
\centering
\includegraphics[scale=0.2]{images/Tux.png}
\caption{\tiny{lewing@isc.tamu.edu Larry Ewing and The GIMP, Attribution,\\ https://commons.wikimedia.org/w/index.php?curid=80930}}
\end{figure}
\end{frame}
\begin{frame}
\tableofcontents
\end{frame}

60
slides/02.JustForFun.tex Normal file
View File

@@ -0,0 +1,60 @@
% Title: Linux - Mehr als nur ein Betriebssystem
% Author: Alexander Noack <jali@orca-central.de>
% Created On: Mon 20 Apr 2026
% Summary: Presentation for the talk
% Language: de-DE
\section{Just For Fun}
\begin{frame}
\frametitle{Die Open-Source-Bewegung}
\begin{figure}
\centering
\includegraphics[scale=0.1]{images/PDP-10-wikipedia.jpeg}\\
PDP-10 Mainframe Computer
\caption{\tiny{gah4, CC-BY-SA 4.0}}
\end{figure}
\end{frame}
\begin{frame}
\frametitle{GNU}
\begin{figure}
\centering
\includegraphics[scale=0.1]{images/Heckert_GNU_white.svg.png}
\caption{\tiny{By Aurelio A. Heckert <aurium@gmail.com> - gnu.org, CC BY-SA 2.0, \\ https://en.wikipedia.org/w/index.php?curid=33285325}}
\end{figure}
\end{frame}
\begin{frame}
\frametitle{GNU/Linux}
\begin{figure}
\centering
\includegraphics[scale=0.2]{images/Torvalds.jpeg}
\caption{\tiny{Torvalds at LC, Beijing. China, 2018; CC-BY 3.0}}
\end{figure}
\end{frame}
\begin{frame}
\frametitle{GNU/Linux}
\tiny{
Hello everybody out there using minix -
I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for
386(486) AT clones. This has been brewing since april, and is starting to get ready. I'd like any
feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical
layout of the file-system (due to practical reasons) among other things).
I've currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I'll get
something practical within a few months, and I'd like to know what features most people would want.
Any suggestions are welcome, but I won't promise I'll implement them :-)
\medskip
Linus (torvalds@kruuna.helsinki.fi)
\medskip
PS. Yes - it's free of any minix code, and it has a multi-threaded fs. It is NOT portable (uses 386
task switching etc), and it probably never will support anything other than AT-harddisks, as that's
all I have :-(.}
\end{frame}

202
wscript Normal file
View File

@@ -0,0 +1,202 @@
#!/usr/bin/env python
# encoding: utf-8
# Created On: Tue 28 Aug 2012 11:44:05 CEST
# Last Modified: Tue 21 Mar 2017 08:40:17 pm CET
# MAKEFILE for compiling LaTeX Files
VERSION='1.0.0'
APPNAME='MAKEFILE FOR LaTeX'
top='.'
out='build'
chapterpath='./chapters'
# query the options that are possible outputs
def options(ctx):
ctx.add_option('--form',action='store',default='pdflatex',help='Specify the output format. Allowed values are: pdflatex, latex, htlatex, oolatex, epub, handlatex')
ctx.add_option('--cover',action='store',help='Specify an image as cover for ePubs.\nOnly works with --form=epub')
ctx.add_option('--infile',action='store',help='Specify the tex file to use as input file.\nIf not given, all files in the top level directory will be compiled.')
ctx.add_option('--spellckpath',action='store',help='Specify the path in which to look for the content files for spellcheck.\nDefault is ./chapters',default=chapterpath);
# configure script
def configure(ctx):
# local functions to configure the selected element
def find_tex_files(path):
import os
ret = []
for name in os.listdir(path):
if os.path.isfile(os.path.join(path,name)):
if (name.endswith('.tex')) or (name.endswith('.ltx')):
ret.append(name)
return ret
def conf_tex(ctx):
ctx.load('tex')
def conf_htlatex(ctx):
ctx.find_program('mk4ht',var='TEX')
ctx.env.TEXINPUT = ctx.path.abspath() + '//'
def conf_epub(ctx):
ctx.find_program('mk4ht',var='TEX')
ctx.find_program('ebook-convert',var='EPUB')
ctx.env.TEXINPUT = ctx.path.abspath() + '//'
def conf_handlatex(ctx):
ctx.find_program('handlatex',var='TEX')
ctx.env.TEXINPUT = ctx.path.abspath() + '//'
# define a structure to assign the functions to the parameters
conf_output = {'pdflatex' : conf_tex,
'latex' : conf_tex,
'htlatex' : conf_htlatex,
'oolatex' : conf_htlatex,
'epub' : conf_epub,
'handlatex' : conf_handlatex
}
# set the selected mode
if ctx.options.form:
ctx.env.FORM = ctx.options.form
conf_output[ctx.env.FORM](ctx)
else:
ctx.fatal('Output format is not set!')
# set a cover image
if ctx.options.cover:
ctx.env.COVER = ctx.options.cover
else:
ctx.env.COVER = ''
# find the aspell program
ctx.find_program('aspell',var='ASPELL')
# set a default path to look for spellck sources
if ctx.options.spellckpath:
ctx.env.SPELLCK = ctx.options.spellckpath
# Set a list of all files to use
if ctx.options.infile:
sf = []
sf.append(ctx.options.infile)
ctx.env.SOURCEFILES = sf
else:
ctx.env.SOURCEFILES = find_tex_files(top)
def build(ctx):
# metadata parameters
def build_metadata(fileName,cover):
ret = '--level1-toc \'//*[@class="title"]\' '
with open(fileName,'r') as in_file:
count = 0
for line in in_file:
if '% Author' in line:
ret += ' --authors "' + line.split(':')[1].rstrip().lstrip() +'"'
count += 1
elif '% Title' in line:
ret += ' --title "' + line.split(':')[1].rstrip().lstrip() + '"'
count += 1
elif count > 1:
break
in_file.close()
if cover:
ret += ' --cover "' + cover + '"'
return ret
# local functions to control the build process
def build_tex(ctx):
import os
for f in ctx.env.SOURCEFILES:
ctx(features = 'tex',
type = ctx.env.FORM,
source = f,
prompt = 0
)
if ctx.cmd == 'install':
outExt = '.dvi'
if ctx.env.FORM == 'pdflatex':
outExt = '.pdf'
fileName, fileExt = os.path.splitext(f)
ctx.install_files('${PREFIX}',fileName + outExt)
def build_htlatex(ctx):
import os
for f in ctx.env.SOURCEFILES:
fileName, fileExt = os.path.splitext(f)
ctx(rule='TEXINPUTS=${TEXINPUT}: ${TEX} ${FORM} ${SRC} >/dev/null',source=f, target=fileName + '.html')
if ctx.cmd == 'install':
fileName, fileExt = os.path.splitext(f)
ctx.install_files('${PREFIX}',fileName + '.html')
def build_epub(ctx):
import os
for f in ctx.env.SOURCEFILES:
print(ctx.path.find_resource(ctx.env.COVER))
if ctx.env.COVER :
ctx.env.META = build_metadata(f,ctx.path.find_resource(ctx.env.COVER).abspath())
else:
ctx.env.META = build_metadata(f,'')
fileName, fileExt = os.path.splitext(f)
ctx(rule='TEXINPUTS=${TEXINPUT}: ${TEX} htlatex ${SRC} >/dev/null',source=f, target=fileName + '.html')
ctx(rule='${EPUB} ${SRC} ${TGT} ${META}',source=fileName + '.html', target=fileName + '.epub')
if ctx.cmd == 'install':
ctx.install_files('${PREFIX}',fileName + '.epub')
def build_handlatex(ctx):
import os
for f in ctx.env.SOURCEFILES:
ctx(rule='TEXINPUTS=${TEXINPUT}: ${TEX} ${SRC} >/dev/null && rm -f ../*.h*',source=f)
if ctx.cmd == 'install':
fileName, fileExt = os.path.splitext(f)
ctx.install_files('${PREFIX}',fileName + outExt)
# define a structure to assign the functions to the parameters
build_output = {'pdflatex' : build_tex,
'latex' : build_tex,
'htlatex' : build_htlatex,
'oolatex' : build_htlatex,
'epub' : build_epub,
'handlatex' : build_handlatex
}
# call the configured build method
build_output[ctx.env.FORM](ctx)
# Custom command to spellcheck all
def spellck(ctx):
# Search for all possible TEX files
def find_tex_files(path):
import os
ret = []
for root, dirs, files in os.walk(path):
for name in files:
if (name.endswith('.tex')) or (name.endswith('.ltx')):
ret.append(os.path.join(root,name))
return ret
# Set a list of input files to use
if ctx.options.infile:
sf = []
sf.append(ctx.options.infile)
ctx.env.SOURCEFILES = sf
else :
ctx.env.SOURCEFILES = find_tex_files(ctx.env.SPELLCK)
# run aspell
from os import system
for f in ctx.env.SOURCEFILES :
system(ctx.env.ASPELL + ' -c ' + f)
system('rm ' + f + '.' +'bak')
# Class declarartion to bind the build context to the spellck command
from waflib.Build import BuildContext
class spck(BuildContext):
cmd='spellck'
fun='spellck'