summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--README.md12
-rw-r--r--footer.html7
-rw-r--r--header.html14
-rw-r--r--in/index.html9
-rw-r--r--in/smallunix.html49
-rw-r--r--in/talk.html2
-rw-r--r--in/tinkering.html9
-rwxr-xr-xqdsg.sh14
-rw-r--r--sketch/index.html25
-rw-r--r--sketch/talk.html25
-rw-r--r--sketch/tinkering.html28
12 files changed, 195 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..89f9ac0
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+out/
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..a25cb41
--- /dev/null
+++ b/README.md
@@ -0,0 +1,12 @@
+## zeldakatze.de
+Webseite kann mit ./qdsg.sh (Quick & Dirty Site Generator), eine
+Aneinandereihung von cat und Pipes erzeugt werden.
+
+# Was ist was?
+`sketch/` enthält das ursprüngliche manuell erstellte Muster
+
+`header.html` und `footer.html` werden an den Kopf und Fuß der Seiten gepackt
+
+`in/` enthält den Körper der einzelnen Seiten bereits in HTML
+
+`out/` enthält das von `qdsg.sh` generierte Endergebnis
diff --git a/footer.html b/footer.html
new file mode 100644
index 0000000..07333a9
--- /dev/null
+++ b/footer.html
@@ -0,0 +1,7 @@
+<hr>
+<center>
+ <a href='https://mastodon.social/@zeldakatze'>Mastodon</a> &middot;
+ <a href='mailto:webkontakt@zeldakatze.de'>Mail</a>
+</center>
+</body>
+</html>
diff --git a/header.html b/header.html
new file mode 100644
index 0000000..ea17f0b
--- /dev/null
+++ b/header.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html lang='de'>
+<head>
+<meta charset="utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+</head>
+<body>
+ <center>
+ <h1>zeldakatze.de</h1>
+ <a href='index.html'>Index</a> &middot;
+ <a href='tinkering.html'>Basteleien</a> &middot;
+ <a href='talk.html'>Vorträge / Videos</a>
+ </center>
+<hr>
diff --git a/in/index.html b/in/index.html
new file mode 100644
index 0000000..cc8de7a
--- /dev/null
+++ b/in/index.html
@@ -0,0 +1,9 @@
+<h2>Über mich</h2>
+<p>
+Hallo, ich bin Maite (sie/ihr). Ich bastel gerne mit Technik rum, mache
+Jugendarbeit und studiere nebenbei noch Informatik. Ich interressiere mich
+vor allem für freie und föderierte Software, vor allem unter den betracht
+der Datensicherheit. In meiner Freizeit bastel ich noch mit alten Systemen,
+seien es Macs, unix-Workstations, diverse Commodore-Computer und ähnliche.
+</p>
+
diff --git a/in/smallunix.html b/in/smallunix.html
new file mode 100644
index 0000000..5f9167a
--- /dev/null
+++ b/in/smallunix.html
@@ -0,0 +1,49 @@
+<h2>Ein kleines Unix-artiges Betriebssystem</h2>
+smallUnix ist ein kleines Betriebssystem, das komplett ohne Adressraumwechsel
+auskommt und zum Ziel hat, Unix-ähnlich zu sein. Es ist eher als übungsprojekt
+gedacht und nichts, was wirklich produktiv am ende eingesetzt werden sollte.
+
+<h3>Features:</h3>
+<ul>
+ <li>Präemtives Multitasking</li>
+ <li>fork() / exec()</li>
+ <li>ELF-Binaries</li>
+ <li>Page-Basiertes Memory management ohne MMU</li>
+</ul>
+
+<p>Das Software-Basierte Paging wird durch mehrere Systeme ermöglicht:
+Alle Programme sind als Position-Independant-Executables kompiliert.
+Daher können neue Programme an jeder beliebigen Stelle im Arbeitsspeicher
+gestartet werden. </p>
+<p>Schwieriger sind geforkte Programme. Ein Programm kann zur
+laufzeit nicht einfach so im Arbeitsspeicher herumgeschoben werden. (Das könnte
+mit einer Virtualisierung und JIT-Kompilern vielleicht realisiert werden,
+jedoch nutzt smallUnix recht normale x86-Programme. Zudem können Pages nicht
+geschützt werden, sodass Fehlerfälle abgefangen werden.</p>
+<p>Mein Lösungsansatz kann als recht simpel, sowie als recht bescheuert
+beschrieben werden: Wenn ein Programm geforkt wird, werden von diesem genutze
+Pages und der Stack an freie Stellen kopiert. Diese werden in einer zusätzlichen
+Tabelle Notiert. Wird das geforkte Programm jetzt ausgeführt, kopiert und
+tauscht der Kernel die kopierten Seiten mit den Seiten auf der Ursprünglichen
+Adresse. Vom Programm neu angeforderte Seiten werden davon nicht betroffen.
+Natürlich ist dieser Ansatz ineffizient, jedoch leben die geforkten Programme
+eh nicht besonders lang, sondern meistens bis zum nächsten exec().</p>
+<p>Eine Nebenwirkung von diesen Ansatz ist, dass Kindprogramme nur so lange wie
+ihr Elternprogramm leben. Das verletzt zwar Grundsätze von POSIX, jedoch macht
+das Adresshandling einfacher. So kann der Kernel nicht Adressen nutzen,die nur
+noch von einen Kindprogramm genutzt werden. Es erspart viel Tracking.</p>
+<p>Sobald exec() aufgerufen wird, können alle durch fork() kopierten
+Seiten gelöscht werden. Das Programm kann wie ein neues behandelt werden.</p>
+
+<p>Ironischer weise muss der 32-Bit Protected Mode eingeschaltet werden, um
+den 32-Bit-Adressraum zu nutzen. Das macht das Memory-Management noch sinnloser
+als es eigentlich ist. Jedoch könnte wer probieren, das System auf m68k-Systeme
+ohne MMU zu portieren, die einen vollen 32-Bit Adressraum, jedoch kein Paging
+haben.</p>
+
+<h2>Quellcode</h2>
+<p>Der Quellcode kann auf meiner cgit-Instanz
+(<a href='https://cgit.zeldakatze.de/smallUnix/'>Hier</a>) gefunden werden.
+Zum Kompilieren gibt es ein eigenes Toolchain, das zunächst kompiliert werden
+muss. Anschließend kann das System recht leicht mit ./build.sh kompiliert werden
+</p>
diff --git a/in/talk.html b/in/talk.html
new file mode 100644
index 0000000..3a704c0
--- /dev/null
+++ b/in/talk.html
@@ -0,0 +1,2 @@
+hier ist derzeit noch nichts. Bald werde ich aber ein paar Erklärvideos
+erstellen, die dann hier auftauchen werden.
diff --git a/in/tinkering.html b/in/tinkering.html
new file mode 100644
index 0000000..567e514
--- /dev/null
+++ b/in/tinkering.html
@@ -0,0 +1,9 @@
+Ich habe derzeit einige Projekte an denen ich Arbeite, einige davon sind hier
+aufgezählt.
+
+
+<a href='smallunix.html'><h2>smallUnix</h2></a>
+Ein sich Unix-Ähnlich anfühlendes System, das nicht-kontinuierliche Adressräume
+verwendet.
+
+
diff --git a/qdsg.sh b/qdsg.sh
new file mode 100755
index 0000000..28bbb07
--- /dev/null
+++ b/qdsg.sh
@@ -0,0 +1,14 @@
+#!/bin/bash
+
+mkdir -p out/
+
+for inFile in in/*.html; do
+ [ -e "$inFile" ] || continue
+
+ echo "Processing file $inFile"
+ filename=$(basename "$inFile")
+ outFile="out/$filename"
+ cat header.html > "$outFile"
+ cat "$inFile" >> "$outFile"
+ cat footer.html >> "$outFile"
+done
diff --git a/sketch/index.html b/sketch/index.html
new file mode 100644
index 0000000..650f954
--- /dev/null
+++ b/sketch/index.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html lang='de'>
+<head>
+<meta charset="utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+</head>
+<body>
+ <center>
+ <h1>zeldakatze.de</h1>
+ <a href='index.html'>Index</a> &middot;
+ <a href='tinkering.html'>Basteleien</a> &middot;
+ <a href='talk.html'>Vorträge / Videos</a>
+ </center>
+<hr>
+<h2>Über mich</h2>
+Hallo, ich bin Maite (sie/ihr). Ich bastel gerne mit Technik rum, mache
+Jugendarbeit und studiere nebenbei noch Informatik.
+
+<hr>
+<center>
+ <a href='https://mastodon.social/@zeldakatze'>Mastodon</a> &middot;
+ <a href='mailto:webkontakt@zeldakatze.de'>Mail</a>
+
+</body>
+</html>
diff --git a/sketch/talk.html b/sketch/talk.html
new file mode 100644
index 0000000..e7f2a18
--- /dev/null
+++ b/sketch/talk.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html lang='de'>
+<head>
+<meta charset="utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+</head>
+<body>
+ <center>
+ <h1>zeldakatze.de</h1>
+ <a href='index.html'>Index</a> &middot;
+ <a href='tinkering.html'>Basteleien</a> &middot;
+ <a href='talk.html'>Vorträge / Videos</a>
+ </center>
+<hr>
+<h2>Einrichten von Matrix (für Anfänger)</h2>
+
+<h2>Einrichten von XMPP / Jabber (für Anfänger)</h2>
+
+<hr>
+<center>
+ <a href='https://mastodon.social/@zeldakatze'>Mastodon</a> &middot;
+ <a href='mailto:webkontakt@zeldakatze.de'>Mail</a>
+</center>
+</body>
+</html>
diff --git a/sketch/tinkering.html b/sketch/tinkering.html
new file mode 100644
index 0000000..8480cc7
--- /dev/null
+++ b/sketch/tinkering.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html lang='de'>
+<head>
+<meta charset="utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+</head>
+<body>
+ <center>
+ <h1>zeldakatze.de</h1>
+ <a href='index.html'>Index</a> &middot;
+ <a href='tinkering.html'>Basteleien</a> &middot;
+ <a href='talk.html'>Vorträge / Videos</a>
+ </center>
+<hr>
+Ich habe derzeit einige Projekte an denen ich Arbeite, einige davon sind hier
+aufgezählt.
+
+
+<h2>Linux auf einen Wallstreet-Powerbook</h2>
+
+
+<hr>
+<center>
+ <a href='https://mastodon.social/@zeldakatze'>Mastodon</a> &middot;
+ <a href='mailto:webkontakt@zeldakatze.de'>Mail</a>
+
+</body>
+</html>