diff --git a/12.html b/12.html index 2c56d39..8db2d78 100644 --- a/12.html +++ b/12.html @@ -397,28 +397,7 @@ PasswordAuthentication no -
- -
-
- Übungen -C 11.11 [3] Besorgen Sie sich eine geeignete Datei (etwa ein größeres tar -Ar- -chiv mit Quellcode, vielleicht für den Linux-Kernel) und komprimieren Sie -sie jeweils mit gzip , bzip2 und xz . Messen Sie dabei die Ausführungszeit -durch ein vorgesetztes time . Wie verhalten die Laufzeiten und die Kompri- -mierungsraten sich zueinander? -C 11.12 [2] Experimentieren Sie mit der Datei aus der vorigen Aufgabe und -vergleichen Sie die Laufzeit und die Größe des Resultats für xz mit verschie- -denen Effizienz-Optionen. Was ist der Unterschied zwischen -1 und -6 und -zwischen -6 und -9 ? -
diff --git a/14.html b/14.html index d1012bb..45e1805 100644 --- a/14.html +++ b/14.html @@ -49,23 +49,179 @@ +

C und C-Compiler

-
-

der Linux Kernel

-

Kernel Module

+
+ Ein einfaches C-Programm + +

+#include<stdio.h>
+int main() {
+	printf("Hello World\n");
+	return 0;
+}
+						
- https://github.com/usrbinnc/netcat-cpi-kernel-module +
- +
+

Wir benötigen: +

+
+ +
+ Code compilieren: +
~$  gcc hello.c -o hello
+
+# Programm ausführen
+~$ ./hello
+					
+
+ +
+

Begriffe

+ + + + + + + + + + + + + + + + + + + + + +
CProgrammiersprache - Der Linux-Kernel ist in „C“ geschrieben
CompilerÜbersetzt den Quellcode in Maschinencode
gccGnu C-Compiler Collection
BibliothekenFertige Funktionen, die in andere Programme eingebunden werden ( unter Windoes oft *.dll-Dateien )
makearbeitet Regeln und Abhängigkeitsdefinitionen in „Makefile“ ab -> startet den gcc
+
+ +

der Linux Kernel

+ +
+ +
+

Befehle +

+
+ +
+

Was zum?? ist ein Kernel Modul??

+ +
+ +
+ +
+ +
+

Wir bauen ein Kernel-Modul

+
+ +
+

Der Quellcode mit Beschreibung + https://github.com/usrbinnc/netcat-cpi-kernel-module +

+ +
+

wir bauen uns einen Kernel

+
    +
  1. Download der Kernel Quellen
  2. +
  3. Installieren der build tools
  4. +
  5. Kernel bauen ;-)
  6. +
+
+ +
+

Aktuelle Kernel Quellen herunterladen + https://www.kernel.org +

+ +
+

+$ sudo apt-get install build-essential \ 
+	libncurses5-dev gcc libssl-dev bc
+
+# für XXXXXXX entspr. Kernel Version einsetzen!
+$ cd ~/Downloads
+$ tar xvf linux-XXXXXXX.tar.xz
+
+$ cd linux-XXXXXXX
+$ cp /boot/config-4.13-XXXXXXX .config
+
+$ make menuconfig
+
+					
+
+ +
+ +
Folgendes bitte zu Hause probieren::
# Das dauert jetzt....
+# ca 90min auf einem core i3 mit 2.4 MhZ
+# -j 4 -> Nutze 4 Kerne
+
+~$ make -j4 deb-pkg  
+
+#Kernel installieren:
+~$ sudo dpkg -i ../linux-*.deb
+
+# reboot -> neuen Kernel wählen 
+				
+ +
+

grub - Grand Unified Boot Loader

+ +
+ + +
diff --git a/beispiele/14/a.out b/beispiele/14/a.out new file mode 100755 index 0000000..739e1e4 Binary files /dev/null and b/beispiele/14/a.out differ diff --git a/beispiele/14/hello.c b/beispiele/14/hello.c new file mode 100644 index 0000000..0f3cc1a --- /dev/null +++ b/beispiele/14/hello.c @@ -0,0 +1,5 @@ +#include +int main() { + printf("Hello World\n"); + return 0; +} \ No newline at end of file diff --git a/deploy.sh b/deploy.sh old mode 100644 new mode 100755 diff --git a/img/Compiler.gif b/img/Compiler.gif new file mode 100644 index 0000000..199f31b Binary files /dev/null and b/img/Compiler.gif differ diff --git a/img/Kernel_Layout.svg.png b/img/Kernel_Layout.svg.png new file mode 100644 index 0000000..d370df8 Binary files /dev/null and b/img/Kernel_Layout.svg.png differ diff --git a/img/menu-1.png b/img/menu-1.png new file mode 100644 index 0000000..ffd72fc Binary files /dev/null and b/img/menu-1.png differ diff --git a/index.html b/index.html index 2e3f507..7de233c 100644 --- a/index.html +++ b/index.html @@ -9,29 +9,35 @@
-
-

Linux Basics

- -
+

Linux Basics

@@ -62,44 +68,116 @@

Links

- + +