<!-- .slide: data-background="#006F80" --> # Woraus besteht ein Rechner und was passiert beim Systemstart? --- ## Bestandteile eines PCs | | | | |---|---|---| | :computer: Bildschirm | :cd: Laufwerke | CPU | | Tastatus | Festplatten/SSDs | WLAN/Bluetooth | | Maus/Touchpad/Joystick | USB / Thunderbold / LAN | BIOS / andere Käfer | | :speaker: Lautsprecher | RAM | Mainboard, :bus: Busse | | :radio_button: Knöpfe | Grafik Karte | ... | <!-- .element: class="fragment" data-fragment-index="1" --> --- ### Von-Neumann Architektur (1945) ![Von Neumann Architektur auf Wikipedia](https://upload.wikimedia.org/wikipedia/commons/d/db/Von-Neumann_Architektur.svg =75%x75%) --- #### Einordnung | Rechenwerk | Steuerwerk | I/O Werk | Speicherwerk | |:----------:|:----------:|:--------:|:------------:| | CPU | CPU | :computer: | HDD/SSD | | </span> GraKa | </span> GraKa | Keyboard | RAM | | | | Maus | Cache | | | | :speaker: | Register | | | | USB/LAN | | | | | WLAN | | <!-- .element: class="fragment" data-fragment-index="1" --> --- #### Aufgaben Speicherwerk - Daten speichern <!-- .element: class="fragment" data-fragment-index="1" --> - Code speichern <!-- .element: class="fragment" data-fragment-index="2" --> - Anhand von Adressen Daten heraus geben <!-- .element: class="fragment" data-fragment-index="3" --> > CPU: Gib mir die Daten von `0x0DEADBEE8` bis `0x0DEADBEEF`! <!-- .element: class="fragment" data-fragment-index="4" --> > RAM: Ok die Daten sind: `0x000000COFFEEBABE` <!-- .element: class="fragment" data-fragment-index="5" --> ---- #### Aufgaben I/O Werk - Liefert Daten von der Außenwelt <!-- .element: class="fragment" data-fragment-index="1" --> - Gibt Daten an die Außenwelt <!-- .element: class="fragment" data-fragment-index="2" --> > I/O: Hallo CPU, jemand hat auf die Taste <kbd>a</kbd> gedrückt <!-- .element: class="fragment" data-fragment-index="3" --> > CPU: Hallo Monitor, schreibe mal ein "a" <!-- .element: class="fragment" data-fragment-index="4" --> ---- #### Aufgaben Leitwerk - Sagt dem Rechenwerk, was zu tun ist <!-- .element: class="fragment" data-fragment-index="1" --> - Merkt sich aktuelle Stelle im Code <!-- .element: class="fragment" data-fragment-index="2" --> - Heute: kleiner Teil in CPU <!-- .element: class="fragment" data-fragment-index="3" --> ---- #### Aufgaben Rechenwerk - Arbeitet Code ab <!-- .element: class="fragment" data-fragment-index="1" --> ```asm ADDI $1,$2,$3; MULI $1,$1,5; DIVI ...; ``` <!-- .element: class="fragment" data-fragment-index="2" --> ![Wikipedia ALU](https://upload.wikimedia.org/wikipedia/commons/0/0f/ALU_block.gif =60%x) <!-- .element: class="fragment" data-fragment-index="3" --> ---- ##### Was ist dieser Code? - maschinenlesbarer Bytecode <!-- .element: class="fragment" data-fragment-index="1" --> - verschiedene Architekturen - verschiedener Code <!-- .element: class="fragment" data-fragment-index="2" --> - e.g. **x86_64**, x86, **ARM**, MIPS, ... <!-- .element: class="fragment" data-fragment-index="2" --> - Entsteht, wenn man Assemblercode assembliert <!-- .element: class="fragment" data-fragment-index="3" --> ---- #### Aufgabe Bus :bus: - Kommunikation zwischen Bauteilen <!-- .element: class="fragment" data-fragment-index="1" --> --- ### "Aktueller" Mainboard Aufbau | | | |---|---| | ![Wikipedia Chipset Schematic](https://upload.wikimedia.org/wikipedia/commons/5/51/Chipset_schematic.svg =550x500) | ![Wikipedia Motherboard](https://upload.wikimedia.org/wikipedia/commons/d/dd/MicroATX_Motherboard_with_AMD_Athlon_Processor_2_Digon3.jpg =1000x) | --- <!-- .slide: data-background="#006F80" --> ## Was passiert beim Systemstart? --- ### Festplattenpartitionen - Häufig unterteilt man die Festplatte in einzelne Bereiche (Partitionen) <!-- .element: class="fragment" data-fragment-index="1" --> - In den Partitionen sind Dateisysteme angelegt <!-- .element: class="fragment" data-fragment-index="2" --> #### Beispiel: <!-- .element: class="fragment" data-fragment-index="3" --> | EFI | Boot | Root | Home | Swap | |:---:|:---:|:---:|:---:|:---:| | vfat | ext4 | btrfs | btrfs | swap | | `/boot/efi/` | `/boot/` | `/` | `/home/` | `swap` | | | | :lock: | :lock: | :lock: | <!-- .element: class="fragment" data-fragment-index="3" --> --- #### Stromversorgung beginnt - BIOS Chip startet - startet EFI Programm im Speicher des Chips <!-- .element: class="fragment" data-fragment-index="1" --> - Initialisiert CPU,Festplatten, Monitor, Tastatur, ... <!-- .element: class="fragment" data-fragment-index="2" --> - Sucht nach EFI Partitionen auf Festplatten <!-- .element: class="fragment" data-fragment-index="3" --> - Listet/Startet EFI Programme von Partitionen <!-- .element: class="fragment" data-fragment-index="4" --> ---- #### Wenn Grub2 das gestartete EFI Programm ist: - Ließt Grub Konfiguration <!-- .element: class="fragment" data-fragment-index="1" --> - Lädt Grub Module <!-- .element: class="fragment" data-fragment-index="2" --> - Ließt weitere, kompliziertere Partitionen <!-- .element: class="fragment" data-fragment-index="3" --> - Sucht Initramfs, Linux Kernel <!-- .element: class="fragment" data-fragment-index="4" --> - Startet Kernel im Initramfs <!-- .element: class="fragment" data-fragment-index="5" --> ---- #### Kernel im Initramfs: - Initialisiert weitere Geräte <!-- .element: class="fragment" data-fragment-index="1" --> - Lädt Treiber <!-- .element: class="fragment" data-fragment-index="2" --> - Startet ersten Prozess: Init prozess: Systemd <!-- .element: class="fragment" data-fragment-index="3" --> ---- #### Systemd - Ließt Konfigurationen <!-- .element: class="fragment" data-fragment-index="1" --> - Bereitet alles Mögliche vor <!-- .element: class="fragment" data-fragment-index="2" --> - Ließt komplette Festplatte <!-- .element: class="fragment" data-fragment-index="3" --> - Mountet Partitionen <!-- .element: class="fragment" data-fragment-index="4" --> - Startet erste Dienste <!-- .element: class="fragment" data-fragment-index="5" --> ---- #### Switchroot - "Das eigentliche System" <!-- .element: class="fragment" data-fragment-index="1" --> - Starten aller Hintergrundprozesse (Dienste/Services/Daemons) <!-- .element: class="fragment" data-fragment-index="2" --> - Starten des Netzwerkstacks <!-- .element: class="fragment" data-fragment-index="3" --> ---- #### Grafische Sitzung - Starten des Loginmanagers (sddm) <!-- .element: class="fragment" data-fragment-index="1" --> - Nach Login <!-- .element: class="fragment" data-fragment-index="2" --> - Starten des Displayservers (Xorg/wayland) <!-- .element: class="fragment" data-fragment-index="3" --> - Starten der Desktopoberfläche (KDE/Gnome) <!-- .element: class="fragment" data-fragment-index="4" --> - Starten der Hilfsprogramme, ... <!-- .element: class="fragment" data-fragment-index="5" --> ---- #### **Fertig :sweat_smile:** --- <!-- .slide: data-background="#006F80" --> ## Live Demo :eyes: --- <!-- .slide: data-background="#006F80" --> ## Licenses #### Images from Wikipedia: - Neumann: (c) Lukas Grossar [CC0](https://creativecommons.org/publicdomain/zero/1.0/) - ALU: (c) [Lambtron](https://commons.wikimedia.org/wiki/User:Lambtron) [CC BY SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/) - Chipset: (c) [Fred the Oyster](https://commons.wikimedia.org/wiki/User:Fred_the_Oyster) [CC BY SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/) - Motherboard: (c) [Jonathan Zander](https://commons.wikimedia.org/wiki/User:Digon3) [CC BY SA 3.0](https://creativecommons.org/licenses/by-sa/3.0/) #### This Presentation: (c) 2017 [Rommel NOC](https://rommelwood.de/) - [![CC0](https://licensebuttons.net/p/zero/1.0/88x31.png =50x)](https://creativecommons.org/publicdomain/zero/1.0/) [![sedrubal](https://avatars1.githubusercontent.com/u/5571650 =50x50)](https://sedrubal.de/) sedrubal <p style="height:25em;"></p>
{"metaMigratedAt":"2023-06-14T12:20:27.694Z","metaMigratedFrom":"YAML","title":"Woraus besteht ein Rechner und was passiert beim Systemstart?","breaks":true,"description":"Woraus besteht ein Rechner und was passiert beim Systemstart?","lang":"de","robots":"index, follow","slideOptions":"{\"transition\":\"fade\",\"center\":false}","contributors":"[]"}
    1347 views