diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | README.md | 12 | ||||
-rw-r--r-- | footer.html | 7 | ||||
-rw-r--r-- | header.html | 14 | ||||
-rw-r--r-- | in/index.html | 9 | ||||
-rw-r--r-- | in/smallunix.html | 49 | ||||
-rw-r--r-- | in/talk.html | 2 | ||||
-rw-r--r-- | in/tinkering.html | 9 | ||||
-rwxr-xr-x | qdsg.sh | 14 | ||||
-rw-r--r-- | sketch/index.html | 25 | ||||
-rw-r--r-- | sketch/talk.html | 25 | ||||
-rw-r--r-- | sketch/tinkering.html | 28 |
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> · + <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> · + <a href='tinkering.html'>Basteleien</a> · + <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. + + @@ -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> · + <a href='tinkering.html'>Basteleien</a> · + <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> · + <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> · + <a href='tinkering.html'>Basteleien</a> · + <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> · + <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> · + <a href='tinkering.html'>Basteleien</a> · + <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> · + <a href='mailto:webkontakt@zeldakatze.de'>Mail</a> + +</body> +</html> |