Informatik - erledigt Flashcards
Aufbau eines Befehls
Hilfe
command [options] arguments
Command ist Kurzname des Befehls
Options für die Parameter der Ausführung (vorgegeben) (und können selbst auch arguments besitzen)
Arguments stellen “Ziel-dateien/ordner etc” dar
Hilfe für Befehle
befehl –help
man befehl
Unterschied zwischen root und normalem User
root
user
sudo befehl
Root bzw Superuser in jedem Linux OS vorhanden
besitzt uneingeschränkte Rechte kann jede Aktion durchführen und alle Ressourcen nutzen
legt Rechte für “normale” User fest
anlegen/entfernen von Usern/groups
User
ist in Manipulation von Dateien auf seine “home-directory” eingeschränkt
Kann seine Rechte auf andere User übertragen.
Sudo befehl um etwas mit den Rechten des roots auszuführen.
Permissions und ihre Bedeutung
Groups
Permissionarten
Groups: werden verwendet um mehreren Usern den Zugriff auf gemeinsame Ressourcen zu ermöglichen
Beim Zugriff eines Users auf ein Objekt werden dessen Rechte vom Kernel gegen Permission geprüft
3Arten: read write execute
können einzeln gesetzt/entfernt werden
jedes Objekt verfügt über
Owner Group User : durch chown veränderbar sind und jeweils die 3 Permission Flags rwx besitzen : veränderbar mit chmod
2Möglichkeiten:
symbolic mode : chmod ugo +- rwx
numeric mode: read 4 write 2 execute 1
1 stelle immer 0
dann für owner dann group dann user
chmod 0764
Packen/Entpacken und Komprimieren/entkomprimieren
Ent/Packen
De/komprimieren
Redundanz
Dateien werden gepackt um eine Menge an zusammengehörenden Dateien nicht einzeln übertragen zu müssen.
-tar Archivformat bei Linux
Größe des Archivs immer größer als alle einzelnen Dateien gemeinsam da Verwaltungsdateien (fürs entpacken) erstellt werden.
Komprimieren um Größenzuwachs zu verhindern
- archivgepackte Dateien werden komprimieret um Netzwerkbandbreite zu sparen.
Formate: gzip bzip LZMA
2Arten
Verlustfrei : vor und nach komprimieren identisch
Verlustbehaftet : nicht mehr identisch (Teile verworfen)
Redundanz: weglassen ohne Informationen zu verlieren
Begriff des Problems
Zu lösende Aufgabe : Probleme
Berechnungs-, Such, Sortier, Entscheidungs, Optimierungsprobleme
3 Aspekte: Menge an Eingabewerten, Operationen, Lösungen
Entscheidbare/unentscheidbare Probleme
Lösbar wenn: Folge von Anweisugnen vorhanden die für jede Instanz in endlicher Zeit zu einem Ergebnis kommt
Unlösbar wenn: min 1 Instanz vorhanden für die keine eindeutige Aussage getroffen werden kann. (bsp Halteproblem)
Begriff des Algorithmus
Entscheidbare Probleme werden durch Algorithmus gelöst
- genau definiert Input
- genau def Abfolge von Operationen führt zur Lösung des Problems,
- läuft nicht endlos
zb touring machine, koch rezept, programmiersprachen
In Form von Programmen definiert.
Compiler
Aufbau
Wandelt Quellcode in Binary um.
Teste syntaktische aber nicht inhaltliche Korrektheit.
Plattformspezifisch
Aufbau:Moduler um mehr als 1 Prog.sprache zu unterstüzten
- Frontend: liest quellcode und übersetzt in interne Repräsentation
- Optimierer: Optimiert Code (schneller)
- Backend: erzeugt Maschinencode für Zielplattform
Umfang von C
Einsatz
C ist eine Imperative prozedurale Programmiersprache
Umfang: Struktur/Syntax, Semantik von Obj/Funktionen, Preprocessor, Stanart Library
Einsatz: Systemprogrammierung, Sprachimplementierung, Anwendungsprogrammierung, EchtzeitAnwendungen,
Schritte vom Quellcode zum Binary
Schreiben : Quellcode im Texteditor
Kompilieren:
1. Preprocessor: verarbeitet - referenzen im Quellcode ersetzt
2. Compieler: Preprocessed code compilieren
3. Assemblierung: Übersetzung des Assemblercodes in ein Objektcodes in ein Objektfile
4.Linker: linkt Objekt mit Libraries zu einem Binary
Ausführen: Binary direkt in Shell aufrufen
Syntaktische Elemente
Wichtig um Aufbau des Programmes zu verstehen
Keywords/Identifier: Benennen von Obj./jedes Obj muss über einzigartigen Namen verfügen
Variablen: Obj. zum Speichern von Werten besitzten Type
Konstanten/Literale: Unveränderliche Werte
Operatoren/Operanden: Bestimmen Art der Operation(sum)/ (+-/*) dürfen nicht Wahlfrei gewählt werden
Expressions: Kombi aus Operatioren/Operanden
Statements: Anweisung an Rechner werden von ; geschlossen
Kommentare: hinzufügen von Text
Blockstrukturen: {}, verschachtelt möglich
Syntactic Sugar: Leerzeichen, Tabs ,,,
Main Funktion: Startpunkt zum Ausführen eines Programms
Datentypen - Def.Bereich/Wertebereich von Ganzzahlen
Jede Variable/Expression verfügt über einen Datentyp. Dieser legt fest welche Werte ein Objekt annehmen darf.
Arithmetische Typen
Pointer Typen
Funktionstypen
Void Typen
Arithmetische Typen: Ganzzahlen/Gleitkommazahlen
Gleitkommazahlen zum Speichern von Zahlenwerten mit Nachkommastelle (Float, double longdouble)
Ganzzahlen: Wertebereich hängt von signedness und bitbreite ab.
Es ergeben sich viele versch. Integer Datentypen
bei Int=Bitbreite entspricht Plattform
char= ausschließlich 8bit für Text
VoidTyp
repräsentiert leeren Wertebereich als Platzhalter
shortint<=longdouble
Def./ Zweck von Pointern
Zum Hantieren mit Objektadressen
Es kann auf Daten von Objekten zugegriffen werden ohne den Identifier angeben zu müssen.
Zugriff über Pointer = Dereferenzieren
Jeder Pointer verfügt über Type.
zb Int Pointer ausschließlich für int Werte
Nicht initialisierter Pointer zeigt auf zufällige Adresse.
Arrays
Sammlung von Objekten des Gleichen Typs
Werden der Reihe nach im Speicher abgelegt
Auf jedes Element kann einzeln zugegriffen werden (Über Angabe des Indexes)
Größe kann zur Laufzeit nicht geändert werden.
Strings zb durch Char-Arrays
Structures
Sammlung von Objekten gleichen oder unterschiedlichen Typs
Objekte –> Members - werden in Deklarationsabfolge im Speicher abgelegt. Zugriff über den Namen
Zur Organisation von Dateien.