Organisation

This commit is contained in:
DotNaos 2025-04-17 13:17:56 +02:00
parent db2a7b95c5
commit ef668b8956
7 changed files with 486 additions and 0 deletions

32
Notes/12.09.24.md Normal file
View File

@ -0,0 +1,32 @@
# Intro
- Linux
- Raspi
- Projekt: Server oder Datenlogger
- Ideas:
- Überwachungscamera übers Internet für 3d Drucker
- Vision language model -> Roboter
- Wichtig! Prjekt dokumentieren
- 10. Januar 2025
- Paper schreiben
- Arbeit auf Englisch (max. 5 Seiten)
- ChatGPT erlaubt, aber nachweisen.
- Hilfsmittelverzeichnis angeben
- Link zum Github in die Arbeit
- Script: https://ana-petrus.gitbook.io/cds-205/chapter-1-vorwort/1.-vorwort
# Bits und Bytes
## Standardisierte Form
- Ki - bit
## Effektive Form
- Ki - bi - bit
- %te Unterschied
# Zahlensysteme
## Octal
- In Linux als Rechte
## Umrechnung
1. In Dezimal Umrechnen
2. Durch Zielbasis teilen (ohne Rest)
- Rest zwischenspeichern
3. Wiederholen, bis Zahl 0 ist.

5
Notes/17.10.24.md Normal file
View File

@ -0,0 +1,5 @@
# Betriebssystem
## Aufgaben
- Ressourcenverwaltung
- Speicherverwaltung
-

80
code/clipboard_llm.py Normal file
View File

@ -0,0 +1,80 @@
import openai
import pyperclip
import sys
# ---------------------------
# OpenAI Client Configuration
# ---------------------------
# Initialize the OpenAI client with your custom settings
client = openai.OpenAI(
base_url='http://localhost:11434/v1/',
# Required but ignored
api_key='ollama',
)
def get_completion(prompt, model="llama3.2"):
"""
Sends a prompt to the OpenAI API and returns the complete response.
Args:
prompt (str): The prompt to send to the model.
model (str): The model to use for completion.
Returns:
str: The complete response from the model.
"""
try:
# Prepend instruction to the prompt
formatted_prompt = "Answer the following Question or explain the key points of the following topic, in a few sentences or less:\n" + prompt
response = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": formatted_prompt}],
temperature=0.5,
stream=False # Disable streaming
)
# Extract the response content
completion = response.choices[0].message.content.strip()
return completion
except Exception as e:
print(f"Error during OpenAI API call: {e}")
sys.exit(1)
def process_clipboard():
"""
Reads the clipboard content, sends it to the LLM, receives the response,
and copies it back to the clipboard.
"""
try:
# 1. Read current clipboard content
clipboard_text = pyperclip.paste()
print(f"Clipboard content read: {clipboard_text}")
if not clipboard_text.strip():
print("Clipboard is empty. Exiting.")
return
# 2. Send clipboard content to OpenAI API without streaming
print("Sending prompt to LLM and awaiting response...\n")
response = get_completion(clipboard_text)
print(f"Received response: {response}\n")
if response:
# 3. Copy the response back to clipboard
pyperclip.copy(response)
print("Response copied to clipboard.")
else:
print("No response received from the LLM.")
except Exception as e:
print(f"An error occurred: {e}")
def main():
"""
Main function to initiate clipboard processing.
"""
process_clipboard()
if __name__ == "__main__":
main()

38
code/clipboard_llm.spec Normal file
View File

@ -0,0 +1,38 @@
# -*- mode: python ; coding: utf-8 -*-
a = Analysis(
['clipboard_llm.py'],
pathex=[],
binaries=[],
datas=[],
hiddenimports=[],
hookspath=[],
hooksconfig={},
runtime_hooks=[],
excludes=[],
noarchive=False,
optimize=0,
)
pyz = PYZ(a.pure)
exe = EXE(
pyz,
a.scripts,
a.binaries,
a.datas,
[],
name='clipboard_llm',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=False,
disable_windowed_traceback=False,
argv_emulation=False,
target_arch=None,
codesign_identity=None,
entitlements_file=None,
)

BIN
code/dist/clipboard_llm.exe vendored Normal file

Binary file not shown.

163
formulas/Themen.md Normal file
View File

@ -0,0 +1,163 @@
# Bits & Bytes, Zahlensysteme, Hardware
>**Information**: \
>Die Abstraktion und Speicherung von Daten
>**Daten**: \
> Die Repräsentation von Information
### Zahlensysteme
#### Byte in bibyte umrechnen
e.x.
$$ x^{n} = 10^9 \ byte \Leftrightarrow 1 \ Gigabyte$$
$$n' = \frac{n}{3} \cdot 10 \ \& \ x' = 2$$
1. $n' = \frac{9}{3} \cdot 10 = 30 \ \& \ x' = 2$
2. $x^{n} = 2^{30} \ bytes \Leftrightarrow 1 \ Gibibyte$
#### Umrechnung von Basis X, zu Dezimal
$$ basis^n \cdot Dezimalwert \ an \ Stelle = Stellenwert \ an \ n$$
$$ Zahl_{Dezimal} = \sum_{n=0}^{n} Stellenwert_{n} \cdot basis^n $$
#### Umrechnung von Dezimal zu Basis X
$$ x_{i+1} = \frac{x_i}{Basis}$$
$$ stellenwert_{[-i]} = x_i \mod Basis$$
# Linux/Shell
- Pinguin
# Betriebssysteme
## Prozessmanagement
- Multi-Tasking: Mehrere Prozesse parallel
- Prozesse: Laufendes Programm
- Thread: Ein Thread ist eine unabhängige Anweisungskette innerhalb eines Programms. Mindestens ein Thread pro Prozess.
- Deadlock: Ein Deadlock ist eine wechselseitige Blockierung von Abläufen, bei der keine Einheit mehr weitermachen kann.
### Kernel
Ein Betriebssystemkernel ist der zentrale Bestandteil eines Betriebssystems, der die Kommunikation zwischen Hardware und Software steuert. Er verwaltet Ressourcen wie CPU, Speicher und Geräte und sorgt für die Ausführung von Prozessen sowie die Sicherheit und Stabilität des Systems.
Hier sind Beispiele für verschiedene Betriebssystemkernel:
| Betriebssystem | Kernel-Typ | Beschreibung |
|----------------|---------------|------------------------------------------------------------------------------|
| Windows | Hybrid-Kernel | Kombiniert Elemente von monolithischen und Mikrokerneln Architekturen. |
| Linux | Monolithisch | Ein einzelner großer Kernel, der alle grundlegenden Systemfunktionen enthält.|
| FreeBSD | Monolithisch | Ähnlich wie Linux, aber mit anderen Designentscheidungen und Systemaufrufen. |
| Minix | Mikrokernel | Minimalistischer Kernel, der nur grundlegende Dienste bereitstellt. |
![alt text](image-1.png)
### Aufgaben des Betriebssystemkerns
1. **Prozessmanagement**
- Verwaltung von Prozessen und Threads
- Zeitplanung und Kontextwechsel
2. **Speicherverwaltung**
- Zuweisung und Freigabe von Speicher
- Verwaltung des virtuellen Speichers
3. **Geräteverwaltung**
- Steuerung und Kommunikation mit Hardwaregeräten
- Treiberverwaltung
4. **Dateisystemmanagement**
- Verwaltung von Dateisystemen und Speicherstrukturen
5. **Systemaufrufe und Schnittstellen**
- Bereitstellung von Schnittstellen für Anwendungsprogramme (Userland)
- Handhabung von Systemaufrufen
6. **Sicherheits- und Zugriffskontrolle**
- Durchsetzung von Sicherheitsrichtlinien
- Verwaltung von Berechtigungen und Zugriffskontrollen
7. **Netzwerkverwaltung**
- Steuerung der Netzwerkkommunikation und -protokolle
8. **Interrupt-Handling**
- Verarbeitung von Hardware- und Software-Interrupts
9. **Synchronisation und Deadlock-Vermeidung**
- Verwaltung der Synchronisation zwischen Prozessen und Threads
- Vermeidung von Deadlocks
### System Calls
> - Ermöglicht Zugriffe auf höher priviligierte Ressourcen
> - Springt vom User- in den Kernelmode
> - System Calls sind Interfaces
> - Modiwechselin OS Libraries
### I/O Subsystem
Ermöglicht die Kommunikation von Prozessen und Driver.
### Gerätetreiber
Drivers, just Drivers.
### Prozess Management
Ermöglicht, 1 Kernprozessoren, mehrere Arbeiten quasi "parallel"zu betreiben.
Dazu kommen Threads und Sheduler zum Einsatz (z.B. Zeitscheiben)
### Prozesse und Threads (TODO)
### Neumann Architektur / Zyklus (TODO)
# Netzwerke
## Dienste und Übertragung
### ISO / OSI Modell
- Application Layer
- Presentation Layer
- Transport Layer
- Session Layer
- Network Layer
- Data Link Layer
- Physical Layer
### TCP/IP Modell
- Application Layer
- Transport Layer
- Network Layer
- Network Access Layer
![alt text](image-2.png)
## Arten Von Netzwerken
- Personal Area Network (PAN) - 1-10m
- WPAN (Wireless PAN) - 1-100m
- LAN (Local Area Network)
- WAN (Wide Area Network) - z.B. Organisationsnetz
## Netwerkkabel
- Twisted Pair: Kupferkabel
- Coaxial Cable: Antennenkabel und Kabelinternet / Fernsehen
- Glasfaserkabel: Internet / Glasfaseranschluss
## TODO: VPN, ACcess point, hotspot
## Schadsoftware
### Arten
- Malware
- Viren(brauchen Wirt)
- Spyware
- Würmer (Verbreiten sich via besthende Software)
- Trojaner(Odyseuss und so)
- Rootkits (Tief im System mit Full Access)
- Ransomware(Verschlüsselt um Lösegeld zu erpressen. Verschlüsselung ganz am Ende ggf. Jahren der Spionage => Kombi Attacke)
- Phishing (Datendiebstahl)
- Harmos
- Hoaxes
- Spam
- Adware
- Combi
- Adware
- Hoaxes
- Spam
## Cloud
**X as-a-Service**
![X as-a-Service Image](image.png)

168
formulas/Zusammenfassung.md Normal file
View File

@ -0,0 +1,168 @@
## 2 - Informationstechnik
#### Bits und Bytes
## 3 - Hardware
### CPU (Central Processing Unit)
## Hauptprozessor (CPU)
- **Definition**
- Zentralprozesseinheit eines Computers
- Erbringt Verarbeitungs- und Rechenleistung
- Verantwortlich für Informationsverarbeitung und Steuerung der Abläufe
- Herzstück elektronischer Geräte mit computerähnlichen Aufgaben
## Befehle und Vielseitigkeit
- **Eingabequellen**
- Benutzer (Input)
- Automatisierte Regelsets (Programme)
- **Vergleich**
- Multi-funktionales Werkzeug
- Wenig spezialisiert als Prozessor
- **Spezialisierte Prozessoren**
- Entlastung des Hauptprozessors
- Beispiel: Grafikprozessor (GPU) für grafische Berechnungen
## Aufbau der CPU
- **Elemente**
- Eingabewerk
- Interner Pufferspeicher (Cache)
- Rechenwerk
- Steuerwerk
- Ausgabewerk
- **Prozessorkern**
- Kombination aus Rechen- und Steuerwerk
- Moderne CPUs besitzen mehrere Kerne auf einem Chip
## Mehrkernprozessoren und Effizienz
- **Parallelverarbeitung**
- Mehrere Aufgaben gleichzeitig lösen
- **Effizienzsteigerung**
- Erhöhung der Taktfrequenz (Rechengeschwindigkeit)
- Verkleinerung der Leiterbahnen
- Verbesserte Energieeffizienz und reduzierte Hitzeentwicklung
- **Transistoren**
- Billionen Transistoren auf einem CPU-Chip
- Größe um ein n-faches kleiner als menschliches Haar
- Hohe Herstellungsherausforderungen
## Datenfluss und Speicherhierarchie
- **Speicherarten**
- Datenträger → Arbeitsspeicher → Eingabewerk → Cache
- **Speichercharakteristik**
- Nähe zur CPU: kleinerer Speicher, höherer Datendurchsatz
- **Cache-Levels**
- Mehrere Ebenen mit unterschiedlichen Kapazitäten und Geschwindigkeiten
- **Taktfrequenzen**
- Moderne CPUs im Gigahertz-Bereich (1 GHz = 1 Milliarde Zyklen/Sekunde)
Wichtig ist der Cache.
| **Spezifikation** | **L1 Cache** | **L2 Cache** | **L3 Cache** |
|--------------------|-----------------------------|----------------------------|-----------------------------|
| **Größe** | 16 KB 64 KB pro Kern | 256 KB 1 MB pro Kern | 2 MB 64 MB (gemeinsam) |
| **Typ** | Getrennt für Daten und Instruktionen (Data & Instruction) | Oft einheitlich (Unified) | Einheitlich (Unified) |
| **Assoziativität** | 4- bis 8-fach assoziativ | 8- bis 16-fach assoziativ | 12- bis 24-fach assoziativ |
| **Cache-Liniengröße** | 64 Bytes | 64 Bytes | 64 Bytes |
| **Zugriffszeit (Latency)** | 1-4 CPU-Zyklen | 10-20 CPU-Zyklen | 30-50 CPU-Zyklen |
| **Bandbreite** | Sehr hoch | Hoch | Mittel bis hoch |
| **Zweck** | **L1**: Schneller Zugriff auf häufig genutzte Daten und Instruktionen<br>**L2**: Zwischenpuffer für L1 und L3<br>**L3**: Gemeinsamer Cache für mehrere Kerne zur Reduzierung der Speicherzugriffe |
| **Teilung** | Getrennt für Daten und Instruktionen (in den meisten Architekturen) | Einheitlich oder getrennt | Einheitlich |
| **Skalierung** | Pro Kern | Pro Kern oder geteilt | Geteilt zwischen allen Kernen|
| **Beispiele moderner CPUs** | Intel Core i9-13900K: 64 KB L1 | Intel Core i9-13900K: 2 MB L2 | Intel Core i9-13900K: 36 MB L3 |
| **Energieverbrauch** | Sehr niedrig | Moderat | Höher im Vergleich zu L1 und L2 |
### GPU (Graphics Processing Unit)
- Spezialprozessor für parallele Berechnungen
Integrated GPU (iGPU)
- Uses RAM
Dedizierte Grafikkarte
- Uses VRAM
### Memory
RAM (Random Access Memory) ist das Hauptmemory eines Rechners.
Es gibt SRAM (Static Random Access Memory), der aber meist bei FPGA (Field Programmable Gate Array) eingesetzt wird, und DRAM (Dynamic Random Access Memory).
DRAM wird meist als SD-RAM (Synchronous Dynamic Random Access Memory) eingesetzt, wobei DDR-SD-RAM (Double Data Rate Synchronous Dynamic Random Access Memory) am gebräuchlichsten ist.
### Storage
| **Storage Type** | **Beschreibung**| **Vorteile**| **Nachteile**|
|------------------|-----------------|-------------|--------------|
|HDD|Hard Disk Drive|Persistenter Speicher|<ul><li>Erschütterungsempfinlich</li><li>Empfindlich gegen Magnetismus</li></ul>|
|SSD|Solid State Drive|<ul><li>Schneller Lesezugriff</li><li>iPersistenter Speicher</li></ul>|Hohe Abnutzung bei Schreibzyklen|
|NVMe|Nonvolatile Memory Express <br> SSD über PCI Express|physische Disaggregation = Pooling|<ul><li>Leicht höehre Latextnzeit</li><li>inhärente Komplexität</li></ul>|
|Tape-Library|Archiv- oder Backupspeicher|<ul><li>Grosse Kapazitäten</li><Stoss- und Vibrationsresistent><li>Langlebig</li></ul>|<ul><li>Verschleissgefahr</li><li>Langsame Zugriffszeiten</li><li>Sequenzieller Zugriff</li><li>Anfällig auf Staub, Hitze, Feuchtigkeit und Magnetismus</li></ul>|
|BD|Optische Abtastung via Laser|Langlebig beiguter Lagerung|Empfindlich ggü. Fremdeinwirkung (Feuchte, Hitze, UV-Licht, Lagerposition)|
## 4 - Betriebssysteme
#### Von-Neumann-Architektur
##### Komponenten eines Von-Neumann-Rechners
1. **Rechenwerk (ALU - Arithmetic Logic Unit)**
- Führt arithmetische (z. B. Addition, Subtraktion) und logische Operationen (z. B. Vergleiche) durch
- Arbeitet eng mit den Registern und dem Leitwerk zusammen
2. **Leitwerk (Control Unit)**
- Steuert den Ablauf der Befehlsverarbeitung
- Lädt Instruktionen aus dem Speicher, decodiert sie und gibt Steuersignale an das Rechenwerk sowie andere Komponenten
- Verändert bei Bedarf den Befehlszähler (Program Counter, PC)
3. **Speicher (Memory)**
- Enthält sowohl die ausführbaren Programme (Instruktionen) als auch die zu verarbeitenden Daten
- Ist in Adressen organisiert, jede Speicherzelle kann eindeutig angesprochen werden
4. **Eingabe- und Ausgabegeräte (I/O)**
- Sorgen für den Datenaustausch mit der Außenwelt (z. B. Tastatur, Maus, Bildschirm)
- Kommunizieren über Schnittstellen bzw. I/O-Controller mit dem Rest des Systems
5. **Systembus**
- Verbindet CPU, Speicher und I/O-Geräte
- Überträgt Daten, Adressen und Steuersignale (Datenbus, Adressbus, Steuerbus)
---
##### Beispielhafter Ablauf einer Instruktion
1. **Fetch (Instruktion holen)**
- Der Program Counter (PC) zeigt auf die nächste Instruktion im Speicher
- Das Leitwerk lädt die Instruktion über den Adressbus und erhält sie über den Datenbus
2. **Decode (Instruktion dekodieren)**
- Das Leitwerk interpretiert den Instruktionscode
- Identifiziert Operationstyp, beteiligte Register und Speicheradressen
3. **Fetch operands (Operanden holen)**
- Werden zusätzliche Daten benötigt, lädt das System sie über Adress- und Datenbus in die Register
4. **Execute (Ausführen)**
- Die ALU führt die gewünschte Operation (z. B. Addition) anhand der Registerwerte durch
5. **Write back (Ergebnis speichern)**
- Das Ergebnis wird in ein Register oder in den Hauptspeicher zurückgeschrieben
6. **Increment Program Counter**
- Der PC wird auf die nächste Instruktion gesetzt
- Der Zyklus beginnt erneut (Fetch-Decode-Execute)
#### Von-Neumann-Zyklus
#### Kernel
#### Memory Management
#### Systemcall-Interface
#### I/O-Subsystem
#### Prozessmanagement
### Interruptverarbeitung
### Prozesse und Threads
### Filesystem
ebssysteme
## 5 - Netzwerke
## 6 - Schadprogramme
## 7 - Harmlose (aber nervige) Software
## 8 - Angreifer
## 9 - Sicherheitsvorkehrungen
## 10 - Einführung in Cloud Computing