Bei Mozilla Firefox handelt es sich um einen freien Webbrowser des Mozilla-Projekts, der im September 2002 in einer Betaversion erstmals der breiten Öffentlichkeit zugänglich gemacht wurde. StatCounter zufolge gehört Firefox mit einem Anteil von 8,8 Prozent an der globalen Internetnutzung neben Google Chrome und Apple Safari zu den meistgenutzten Webbrowsern.

Entwicklungsgeschichte von Firefox

Das Mozilla-Projekt, damals noch unter dem Namen „Phoenix“, wurde von den beiden Informatikern Davy Hyatt und Blake Ross als ein experimentelles Derivat aus dem Programmpaket Mozilla Application Suite ins Leben gerufen. Die Application Suite basierte auf dem Quellcode des legendären Webbrowsers Netscape Communicator, der zu jener Zeit neben dem Microsoft Internet Explorer zu den meistgenutzten kommerziellen Webbrowsern gehörte. Die erste Testversion des Webbrowsers Phoenix 0.1 wurde am 23. September der breiten Öffentlichkeit vorgestellt.

Name von Firefox

Mozilla Firefox wurde ursprünglich unter dem Namen Phoenix entwickelt. Dieser Name musste jedoch infolge einer Klage des US-amerikanischen BIOS-Produzenten Phoenix Technologies geändert werden. Der Webbrowser wurde zunächst in Mozilla Firebird und schließlich, aufgrund einer Namensgleichheit mit dem Datenbankmanagementsystem (DBMS) Firebird, mit der Version 0.9 in Mozilla Firefox umbenannt.

Funktionen und Features

Mozilla Firefox nutzt ebenso wie die Mozilla Application Suite den Gecko-Renderer für die Darstellung von HTML-Dokumenten. Die Benutzeroberfläche des Webbrowsers lässt sich durch den Einsatz sogenannter „Themes“ schnell und einfach an die individuellen Anforderungen anpassen. Mit optional erhältlichen Erweiterungen können zudem zahlreiche Funktionen und Features hinzugefügt werden, wie beispielsweise:

–              Werbeblocker

–              Webentwickler-Tools

–              Mausgesten

Firefox bietet volle Unterstützung für Tabbed Browsing. Darunter wird die Darstellung von mehreren Webseiten verstanden, die mit Tabs innerhalb eines einzelnen Anwendungsfensters versehen werden. Ab der Version 4.0 war es zudem möglich, mithilfe der Funktion „Panorama Tabs“ einzelne Tabs nach persönlichen Anforderungen zu gruppieren und diese darzustellen. Aufgrund geringer Nutzung wurde dieses äußerst interessante Feature jedoch wieder mit der Version 45 entfernt. RSS-Web-Feeds wurden ursprünglich in Form von dynamischen Lesezeichen realisiert. Diese Funktionalität wurde mit der Version 64 aus unterschiedlichen Gründen entfernt. Mithilfe von Add-ons lässt sich diese Funktionalität jedoch weiterhin nutzen. Firefox ist aktuell in 86 Sprachen als kostenloser Download erhältlich, darunter auch Deutsch.

Datenschutz und Sicherheit bei Firefox

Firefox bietet seit der Version 3.5 einen sogenannten „privaten Modus“, in dem keine Daten, die während des Surfens entstehen, gespeichert werden. Browserdaten, die im normalen Funktionsmodus entstehen, können nachträglich entweder selektiv oder komplett gelöscht werden. Im privaten Modus blockiert der Webbrowser automatisch alle Inhalte, die eventuell die Nachverfolgungen über verschiedene Websites hinweg ermöglichen könnten. Dazu werden URLs mit einer Liste des Unternehmens Disconnect.Me abgedeckt. Um einen höchstmöglichen Schutz von Phishing– und Malware-Attacken zu bieten, werden alle besuchten Webpräsenzen und heruntergeladene Anwendungsprogramme automatisch mit einer Liste verdächtig gemeldeter Webseiten und Dateien abgeglichen. Diese Liste wird ungefähr halbstündig aktualisiert, sodass für den Abgleich stets die neuesten Informationen verwendet werden. Durch den Einsatz einer in der Skriptsprache JavaScript realisierten Geolocation API können Webpräsenzen über den Webbrowser den Standort des Nutzers bestimmen. Dazu ist jedoch eine explizite Erlaubnis des Nutzers nötig.

Firefox Erweiterungen (Add-ons)

Mit Erweiterungen können Nutzer den Funktionsumfang von Firefox mit zusätzlichen Funktionen und Features anreichern, die nicht vom eigentlichen Webbrowser angeboten werden. Einige dieser Features wurden absichtlich nicht in den Browser integriert, damit er einigermaßen schlank und agil bleibt und das Firefox-Projekt nicht dadurch unnötig kompliziert wird. Bei den Add-ons handelt es sich traditionell um kleine Programme, die in XUL und JavaScript geschrieben wurden. Durch den Einsatz von XUL und JS waren die Add-ons plattformunabhängig. Mit der Veröffentlichung von Firefox 4 wurde eine neue Add-on-Schnittstelle eingeführt, die ausschließlich auf Websprachen wie HTML, CSS und JavaScript setzt und die Installation sowie das Entfernen von Add-ons ohne Neustart des Webbrowsers ermöglichen soll. Ab der Version 48 wurde mit WebExtensions ein neues Erweiterungsformat eingeführt, das eine Kompatibilität zu anderen Webbrowsern ermöglicht.

Im Oktober 2012 wurde unter dem Namen „Firefox Marketplace“ eine Plattform ins Leben gerufen, auf der Firefox-User Anwendungen für ihren Webbrowser herunterladen können. Die Plattform war zunächst lediglich für Nutzer der mobilen Firefox-Version für Android nutzbar, wurde später aber auch für andere Betriebssysteme verfügbar. Der Firefox-Marketplace orientiert sich stark am Chrome Web Store. Alle dort erhältlichen Programme basieren auf offenen Webstandards und sind nicht von der jeweiligen Architektur abhängig.

Spezielle Versionen

Die offiziellen Ausgaben von Mozilla erfordern in der Regel eine vollständige Installation auf dem Zielsystem. Dadurch wird jedoch der rechnerübergreifende Einsatz mit Wechseldatenträgern erschwert, wie beispielsweise USB-Speichermedien, die es u. a. ermöglichen, den Webbrowser mit dem gleichen Profil auf unterschiedlichen Computern zu nutzen. Um dieses Problem zu beheben, wird eine portable Ausgabe von Firefox angeboten. Die Mozilla Firefox Portable Edition wurde so angepasst, dass sie direkt auf einen mobilen Datenträger entpackt werden kann und auf diesem sofort nutzbar ist. Sämtliche sensiblen Daten bleiben dabei auf dem Datenträger und müssen nicht auf der lokalen Festplatte des genutzten Computers gespeichert werden.

Der Firefox-Webbrowser wird von Mozilla auf keine speziellen Prozessoren optimiert. Es existieren jedoch einige inoffizielle Versionen, die auf verschiedene Betriebssysteme und Prozessorarchitekturen optimiert sind. Ein Grund für die Optimierung auf bestimmte Plattformen, sind eine bessere Ausnutzung des vorhandenen Speichers und bestimmter Prozessorbefehle.

Was ist Linux Mint?

Linux Mint ist der Name einer Linux-Distribution, die es in zwei unterschiedlichen Ausgaben gibt. Die Hauptausgabe basiert auf Ubuntu und ist in zwei verschiedenen Versionen erhältlich. Eine zweite Ausgabe, die den Titel Linux Mint Debian Edition (LMDE) trägt, beruht auf der gleichnamigen Linux-Variante. Beide Ausgaben entwickelte Clément Lefèbvre, der sich als Maintainer verantwortlich zeichnet. Wir stellen Ihnen die Entwicklung und das Konzept der Linux Distrubution vor. Dabei gehen wir für Sie auf die Stärken und Schwächen von Linux Mint ein.

Entstehungsgeschichte von Linux Mint

Die Distribution gibt es 2006, als sie aus der Ubuntu-Variante entstand, um beliebte und freie Software besser zu integrieren. Daher bestand Linux Mint von Anfang an nicht nur aus quelloffenen und freien Anwendungen, sondern auch aus nicht-freien Programmen wie beispielsweise Adobe Flash. Außerdem integrierten die Verantwortlichen eine große Anzahl von Multimedia-Codecs in ihre Distribution, so dass zum Beispiel eine Unterstützung für H.264-Videos gegeben ist. Weil sich dieser Ansatz von anderen Distributionen wie Ubuntu unterschied, war Linux Mint sehr erfolgreich.

Ab 2014 entschieden die Entwickler, sich noch stärker auf die Stabilität ihres Betriebssystems zu fokussieren. Daher bestehen die aktuellen Ausgaben der Linux Distribution auf den aktuellen Ubuntu Long Term Support (LTS) Codes. Für die Debian Variante nutzen die Verantwortlichen die Debian Stable Codebasis. Auf diese Weise möchten die Entwickler von Linux Mint eine hohe Stabilität ihres Betriebssystems garantieren.

Zugleich versprachen die Macher, die wesentlichen Desktop-Programme regelmäßig zu aktualisieren. Daher erschien Ende 2014 Linux Mint 17.1, die neue Versionen der wichtigsten Anwendungen brachte. Mittlerweile ist die Distribution bereits in der Version 19.1 erhältlich. Zukünftig dürfte sich der Umfang des Betriebssystems in Form von neuen Varianten der wichtigsten Programme und Codecs stetig erweitern. Doch bereits in der Gegenwart punktet Linux Mint durch größere Programmvielfalt, was sich im Büro und in der Freizeit bemerkbar macht.

Der Umfang

Für ihre Distribution setzen die Verantwortlichen auf eigeneDesktop-Konzepte wie Cinnamon. Durch eigenen Desktop-Umgebungen soll sich die Benutzungsfreundlichkeit deutlich erhöhen. Cinnamon basiert auf Gnome und MATE, an deren Entwicklung die Macher von Linux Mint beteiligt waren. Ihr Betriebssystem ist eine der wenigen Linux-Varianten, die über eine eigene Desktop-Umgebung verfügt. Dadurch unterscheidet sich die Distribution recht deutlich von anderen Ausführungen.

Linux Mint gibt es sowohl in der Hauptausgabe als auch in der LMDE in zwei Versionen. Nutzer können entweder die 32-Bit- oder die 64-Bit-Variante verwenden. Die Installation ist über DVD-Pakete möglich, die jeweils vorkonfigurierte Desktop-Umgebungen beinhalten. Andere Desktop-Varianten lassen sich mittels der Paketverwaltung auch im Nachhinein installieren. Dann entfällt allerdings die wichtige Vorkonfiguration, die eigentlich eine der Stärken von Linux Mint darstellt.

Im Gegensatz zu anderen Linux Distrubitionen wie Ubuntu oder Debian enthält die Mint-Variante von Anfang an die wichtigsten Codecs zur Wiedergabe von DVDs, MP3-Dateien oder DivX-Videos. Plugins für Adobe Flash oder Java sind in den Installationspaketen enthalten. Wichtige Bestandteile der Installationspakete, die in Form von ISO-Dateien erhältlich sind, sind die Desktop-Umgebung sowie die MintTools, die unter anderem das an Windows-Betriebssysteme erinnernde MintMenu enthalten.

Außerdem punktet Linux Minut durch eine große Software-Auswahl. So können Sie die LibreOffice Programme nutzen, um Texte zu schreiben oder Tabellen zu erstellen. Zum Surfen bietet sich der Webbrowser Firefox an, der ebenfalls ein Bestandteil von Linux Mint ist. Die Bearbeitung von Grafiken ist mit der leistungsstarken Software GIMP möglich. Mit der integrierten Rythmbox können Sie unterdessen Audio-Tracks und MP3-Dateien abspielen. Der Video Player übernimmt derweil die Wiedergabe von Videos. Ein PDF-Viewer ist ebenfalls an Bord. Hilfreich sind zudem kleine Tools wie das Notizprogramm oder ein Taschenrechner.

Die Software testen

Nutzer können sich vor einer echten Linux-Installation für einen Test des Betriebssystems entscheiden. Schließlich lässt sich Linux Mint nicht nur auf einer Festplatte installieren, sondern auch als Live-System von einen USB-Stick starten. Zu diesem Zweck besuchen Sie einfach die Website des Anbieters, wo Sie sich für eine Linux Mint Version entscheiden. Nach dem Download der jeweiligen ISO-Datei müssen Sie die Daten so auf einen USB-Stick kopieren, dass ein Bootvorgang möglich ist.

Die Verantwortlichen von Linux Mint empfehlen zu diesem Zweck das Tool balenaEtcher, das für alle gängigen Betriebssysteme erhältlich ist. Wenn die ISO-Datei mit dem Tool auf den Stick kopiert wurde, lässt sich das Betriebssystem von solch einem Datenträger booten. So können Sie die Linux-Distribution in aller Ruhe ausprobieren, bevor Sie sich für oder gegen eine richtige Installation auf einer integrierten Festplatte entscheiden. Dabei testen Sie unter anderem den Desktop, der eine der Stärken von Linux Mint ist.

Mint Desktop im Kurzüberblick

Auf den ersten Blick unterscheidet sich der Startbildschirm von Linux Mint kaum von gängigen Windows-Varianten. Mit einem Klick auf den Startbutton, der sich ganz links in der Leiste befindet, starten Nutzer das Menü. Sämtliche Funktionen erinnern an das Startmenü von Windows, allerdings ist die Anordnung anders. Links oben befinden sich die Favoriten, wozu die Software-Verwaltung und die Systemeinstellungen gehören.

Natürlich lassen sich weitere Programme als Favoriten hinzufügen. Über das Startmenü erreichen Sie ansonsten wichtige Schaltflächen zum Sperren, Abmelden und Herunterfahren. Die Software-Rubriken und die installierten Anwendungen finden sich ebenfalls im Startmenü von Linux Mint.

 

Bei Kali Linux handelt es sich um eine Linux-Distribution, die auf dem frei entwickelten Betriebssystem Debian GNU/Linux basiert. Die Distribution umfasst in erster Linie Anwendungen für die digitale Forensik sowie für Penetrationstests. Dabei richtet sie sich vor allem an professionelle und fortgeschrittene Nutzer.

Der Werdegang von Kali Linux

Entwickelt wurde das Betriebssystem von Devon Kearns und Mati Aharoni, Mitarbeiter des Unternehmens „Offensive Security“. Die Veröffentlichung wurde am 12. Dezember 2012 angekündigt und am 13. März 2013 durchgeführt. Die Entwicklungszeit von Kali Linux betrug etwa ein Jahr; die erste Version erhielt die Versionsnummer 1.0. Seit der Version 2.0 erhalten Sie Kali Linux als Rolling Release. Das bedeutet, dass das Betriebssystem kontinuierlich weiterentwickelt wird. Betriebssystem-Versionen gibt es nicht mehr. Stattdessen handelt es sich um Snapshots, die in der Regel als Installationsmedium dienen.

Offiziell handelt es sich bei Kali Linux um den Nachfolger von BackTrack. Die neue Bezeichnung soll laut Hersteller-Angaben darauf hinweisen, dass die Neuentwicklung deutlich fortgeschritten ist. Kali Linux setzt nicht wie BackTrack auf Ubuntu auf, sondern auf Debian. Das Betriebssystem wurde vollständig neu entwickelt. Die Infrastruktur arbeitet nunmehr mit Git als Verwaltung für die Versionen.

Die Architektur von Kali Linux

Das System wurde so entwickelt, dass es sich für Computer mit unterschiedlich aufgebauten Hauptprozessoren eignet. So ist es sowohl für AMD64 als auch für x86er-Systeme und für die ARM-Architektur verfügbar. Die ARM-Architektur wird vor allem in kleinen Endgeräten wie Tablet-Computern eingesetzt. So kann die ARM-Version von Kali Linux unter anderem auf dem ARM Chromebook der Marke Samsung als auch auf dem Raspberry Pi verwendet werden.

In der Forensik lässt sich Kali Linux – abhängig von der Anwendung – als Live-System ohne Installation booten, zum Beispiel via CD und DVD, USB-Stick oder PXE (Preboot Execution Environment) im Netzwerk. Dabei hinterlässt das Live-System keine Spuren am geprüften System, weder auf der Solid State Drive noch auf den eingebauten Festplatten. Es sind beispielsweise keine Auslagerungsdateien auffindbar. Um einen Rechner für Penetrationstests einzusetzen, kann Kali Linux alternativ fest installiert werden.

Die Programme und Tools von Kali Linux

In der Distribution sind zahlreiche Dokumentationen und mehrere hundert Hilfsmittel integriert, die die Sicherheit eines IT-Systems testen und bewerten. Die unter Kali Linux enthaltenen Programme sind zwar auch einzeln für den Großteil der anderen Linux-Distributionen erhältlich, doch automatische Optimierungen werden nur über Kali Linux zur Verfügung gestellt.

Kali Linux bezieht die Programme vier Mal pro Tag aus dem Debian-Repository. Damit ist sichergestellt, dass die Nutzer jederzeit über aktuelle Software-Pakete und Sicherheitsupdates verfügen. Eine eigene Paketquelle mit der Bezeichnung „Kali bleeding edge“ stellt neueste, noch nicht ausführlich unter Kali geprüfte Versionen zur Verfügung.

Die wichtigsten Werkzeuge

– Aircrack-ng

Bei Aircrack-ng handelt es sich um eine Tool-Sammlung. Die Werkzeuge sind darauf ausgelegt, Schwachstellen im WLAN nicht nur zu analysieren, sondern sie auch auszunutzen.

– Ettercap

Die Software führt Man-in-the-Middle-Angriffe durch. Es unterstützt Echtzeitkontrollen über Verbindungen auch in in geswitchten Netzwerken, das Sniffing auf IP- und ARP-Basis, aktive und passive Analysen einzelner Hosts und vollständiger Netzwerke sowie das inhaltsbezogene Filtering.

– John the Ripper

Diese Software ist in der Lage, verschlüsselte System-Passwörter zu entschlüsseln und auf ihre Sicherheit zu testen. Das Entschlüsseln geschieht per Brute-Force oder durch eine Dictionary-Attack.

– Kismet

Kismet agiert als freier WLAN-Sniffer und spürt Funknetzwerke auf, indem es die versandten Datenpakete mitliest. Dieses Programm eignet sich unter anderem auch dafür, die Sicherheit des eigenen WLANs zu überprüfen und die Signalstärke zu ermitteln.

– Maltego

Dieses Programm wurde entwickelt, um Daten im World Wide Web zu sammeln. Dabei handelt es sich um Daten sowohl einzelner Personen als auch von Unternehmen.

– Nmap

Die Bezeichnung „Nmap“ steht für Network Mapper. Bei diesem Tool handelt es sich um einen Portscanner, der Hosts in einem Rechnernetz scannt und auswertet. Bei Administratoren ist es ebenso beliebt wie bei Hackern, denn es arbeitet außergewöhnlich zuverlässig und effizient.

– RainbowCrack

Zum Knacken von Passwörtern nutzt dieses Programm so genannte Rainbow Tables. Im Vergleich zum Brute Force benötigt diese Methode deutlich weniger Zeit und Versuche, um ein Passwort zu ermitteln.

– SET (Social Engineer Toolkit)

Dieses Toolkit beinhaltet mehrere Anwendungen für unterschiedliche Penetrationstests. Der Schwerpunkt liegt dabei auf dem Social Engineering.

– The Sleuth Kit

Bei diesem Kit handelt es sich um eine forensische Software-Sammlung, die auf die Kommandozeile von IT-Systemen ausgerichtet ist. The Sleuth Kit unterstützt die Dateisysteme ISO 9660, NTFS, FAT, UFS 1 und 2, Ext2 bis Ext4, HFS und YAFFS2.

Die rechtliche Situation von Kali Linux in Deutschland

Die Distribution Kali Linux enthält Tools, die in Teilen gewisse Sicherheitsvorkehrungen umgehen. Sie werden in Deutschland als „Computer-Programme zum Ausspähen von Daten“ aufgefasst. Diese Auffassung basiert auf § 202c StGB, dem „Hacker-Paragrafen“, der Ende Mai 2007 in Kraft getreten ist.

Auf Basis dieser gesetzlichen Lage kann der Besitz oder der Vertrieb von Kali Linux hierzulande strafbar sein, wenn eine Absicht besteht,

– diese Programme rechtswidrig zu nutzen (§ 202a StGB) und/oder

Daten damit abzufangen (§ 202b StGB).

Der ROM Speicher – Entwicklung und Funktion

Die Bezeichnung ROM ist Ihnen sicher schon begegnet. Die CD-ROM trägt es in ihrem Namen. Die schon versierteren PC-Nutzer unter Ihnen kennen auch ROM in ihren PCs. Dort gibt es aber auch RAM. Wir bringen Klarheit in die Welt der IT-Kürzel.

Der „Nur-Lese-Speicher“

Die drei Buchstaben stehen für Read-Only-Memory. Er kennzeichnet einen Datenspeicher. Auf diesen wird im normalen Arbeitsbetrieb, etwa in einem PC, nur „lesend“ zugegriffen. Es werden die auf dem Medium gespeicherten Daten abgerufen. Diese Daten sind fest gespeichert und dafür nicht auf Stromzufuhr angewiesen. Das erklärt auch die eingangs erwähnte Bezeichnung für die Daten CD. Diese enthalten auf einer Kunststoffscheibe Daten in Form von winzigen und sich abwechselnden Erhöhungen und Vertiefungen, sogenannte pits und lands. Diese Codierungen werden mittels eines Lasers ertastet und übersetzt, etwa in Musik. Die klassische CD-ROM wird auch nur gelesen. Wenn Sie eine CD beschreiben, in dem Sie etwa Musik darauf „brennen“, ist diese jetzt eine CD-R. Hier steht R dann für rewriteable. Das bedeutet beschreibbar.

Speicher des BIOS

Diese weitere und sehr häufig auftauchende Abkürzung BIOS steht für Basic Input Output System. Dieses Kernstück eines Computers erkennt und verwaltet alle Komponenten eines PC. Es beinhaltet eine unveränderliche Software. Sie ist auch beim Starten des PC notwendig. Die Information bleibt auch ohne Stromzufuhr stets erhalten. Sie kann nur durch Austausch des Chips oder mittels von außen durchgeführter Umprogrammierung verändert werden.

Das macht auch den Unterschied zum erwähnten Begriff RAM aus. Dies ist der Arbeitsspeicher, der vollständig Random Access Memory heißt. Dieser Speicher mit freiem Zugriff, so die Bedeutung, wird als Ablageplatz für die Zeit der Verarbeitung abgelegt. Während ROM also nur ausgelesen werden kann, wird RAM auch beschrieben und als Zwischenspeicher benutzt.

Weitere Inhalte des ROM

Nicht nur das BIOS ist also im Nur-Lese-Speicher festgeschrieben und gesichert. Weitere Programme haben hier Ihren Platz:

Setup CMOS:

Dies bezeichnet die erkennbare Anzeige beim Startvorgang des PC. Die Systemparameter können damit verändert werden.

Bootlader:

Dies Programm, auch Urlader oder Startprogramm genannt, lädt das Betriebssystem in den Arbeitsspeicher RAM und startet dieses.

Power-On Self Test POST:

Dieses Programm wird automatisch beim Starten des Rechners ausgeführt und testet dabein das System.

Wie ein ROM im PC funktioniert

ROM ist als Basisbaustein eines PC zu verstehen, der fest vorprogrammiert ist. Diese Programmierung kann mehr oder weniger reversibel sein. Der lesende Zugriff ähnelt aber dem auf RAM oder Festplatte. Die Leistungsfähigkeit eines ROM Chip ergibt sich aus der Anzahl sogenannter Adresspins, von denen abgelesen werden kann. So hat ein 64-kb-ROM 216 = 65536 Adressen. An jede Adresse können 8 Bit gespeichert werden. ROM arbeiten bei einer Zugriffszeit von 150 Nanosekunden langsamer als RAM Speicher. Dieser weist Zugriffszeiten von 10 Nanosekunden auf.

Um einen PC Start schneller durchführen zu können, wird ein sogenanntes Shadowing durchgeführt. Wichtige ROM Befehle werden dann auf den schnelleren RAM Speicher „phantomgespeichert“.

Verschiedene Arten

Heute veraltete Speicher der ersten Generationen bekamen ihre Daten per Maske auf eine Siliziumplatte geschrieben

PROM Speicher

Mit den 1980er Jahren wurden ROM programmierbar durch ein Speichersystem, das aus Dioden bestand. Das P steht für programmable.

EPROM

PROMs, die auch gelöscht werden können, bekamen noch ein E für erasable dazu. Das Löschen funktionierte durch ultraviolette Strahlung, die gespeicherte Bits auf den Zustand 1 stellen.

EEPROM

EPROMs, die ganz einfach auch im PC elektronisch gelöscht werden können, bekamen noch ein E vorgestellt für electrically. Mit ihnen werden überwiegend Konfigurationsdaten gespeichert.

ROM Flash

Flash Speicher nutzen prob Bit statt zwei bis drei Transistoren nur einen. Sie können daher kompakter mehr Daten speichern und werden für komplexe Informatikprogramme genutzt.

 

 

Was ist Python?

Bei Python handelt es sich um eine performante, objektorientierte Programmiersprache, die sich durch eine leicht zu lernende Syntax auszeichnet. Die Alpha-Version der Programmiersprache hat der niederländischen Informatiker Guido Van Rossum Ende der 1980er Jahre entwickelt. Die öffentliche Vorstellung fand im Februar 1991 statt.

Woher stammt der Name?

Die Programmiersprache hat ihren Namen nicht, wie es oft vermutet wird, in Anlehnung an die Riesenschlange bekommen. Der Programmierer Guido Van Rossum war ein leidenschaftlicher Fan der britischen Comedy-Show „Monty Python’s Flying Circus“. Namensgeber für die Programmiersprache war diese Serie.

Wodurch zeichnet sich die Programmiersprache aus?

Im Vergleich zu ähnlichen Programmier- und Skriptsprachen, wie beispielsweise C, C++ oder Node.js ist Python wesentlich leichter zu verstehen und zu schreiben. Generell ist die Syntax äußerst elegant und sehr ausdrucksvoll, sodass Sie mit wenigen Zeilen Code viel erreichen können. Python wird unter der Open Source-Lizenz vertrieben und kann kostenlos auch für den kommerziellen Gebrauch genutzt werden.

Das objektorientierte Programmierparadigma gibt Ihnen die Möglichkeit, durch die Erstellung logischer Objekte komplexe Vorgänge in kleinere und übersichtliche Einzelteile aufzuteilen. Durch die Micro-Service-Architektur ist es möglich, Python-Code in Kombination mit anderen Programmiersprachen wie Rust oder C++ zu nutzen.

Auch auf andren Plattformen nutzbar

Einer der wesentlichen Vorteile der Programmiersprache ist ihre hohe Flexibilität sowie Portabilität. In Python geschriebene Anwendungen lassen sich prinzipiell, ohne größere Änderungen im Programmcode vornehmen zu müssen, auf unterschiedlichen Plattformen nutzen. Man kann die Anwendungen auf Windows-, Linux– und Max OS-Systemen nutzen.

Bei Python handelt es sich wie bei PHP oder JavaScript um eine sogenannte „Interpretersprache“. Das bedeutet, dass der Programmcode wie bei traditionellen Programmiersprachen nicht erst vor der Ausführung kompiliert werden muss, sondern Pythonanwendungen werden direkt aus dem Quellcode heraus interpretiert und ausgeführt. Das vereinfacht  den Prozess der Programmierung wesentlich, da Sie  nicht auf die manuelle Speicherverwaltung achten müssen. Darüber hinaus müssen Sie sich auch nicht darum kümmern, ob die korrekten Programmbibliotheken richtig verlinkt und geladen wurden.

Reine Anwendungen von Python sind langsamer

Python bringt jedoch auch einige Nachteile mit sich. Da es sich hierbei um eine interpretierte Skriptsprache handelt, sind reine Pythonanwendungen langsamer in ihrer Ausführung und benötigen mehr Arbeitsspeicher. Wenn Sie Anwendungen benötigen, die äußerst performant und effizient sind, dann setzen Sie bei einem Teil der Anwendung auf anderen Programmiersprache, wie zum Beispiel C++.

Was sind die Einsatzgebiete von Python?

Aufgrund der übersichtlichen und intuitiven Syntax und Programmstruktur wird Python sowohl in der Entwicklung komplexer Anwendungen als auch bei der Erstellung einzelner Module, die in andere Programmiersprachen integriert werden können, verwendet.  Man nutzt Python , um einzelne Module zu entwickeln, die sich immer wieder verwenden lassen. Einer der wesentlichen Vorteile der Sprache ist die gigantische Auswahl an Bibliotheken für numerische und wissenschaftliche Kalkulationen, die sich schnell und unkompliziert in bestehende Module einbinden lassen.

Große Unternehmen nutzen Software

Python wird von bekannten Unternehmen wie Google, Microsoft, Tesla oder Netflix in den Bereichen KI (künstliche Intelligenz), Spracherkennung und neuronale Netzwerke eingesetzt, um Anwendungen zu entwickeln, die sich durch ein hohes Maß an Autonomität auszeichnen. Darüber hinaus nutzt man Python auch bei der Entwicklung skalierbarer Webanwendungen. Hier kommen sogenannte „Frameworks“ wie Django und Flask zum Einsatz, die auf der Programmiersprache aufbauen und die Entwicklung moderner Webapps wesentlich beschleunigen. Viele bekannte Websites, wie zum Beispiel reddit oder Instagram basieren auf diesen Frameworks. Einsatzgebiete von Python sind ebenso Deep Learning, Data Mining und Maschine Learning.

Welche Softwareprodukte basieren auf dem Programm

Die Programmiersprache kommt aktuell in einer Vielzahl unterschiedlicher kommerzieller Softwareprodukte und Open-Source-Lösungen zum Einsatz. Einige bekannte Anwendungen, die auf Python aufbauen sind:

–              Blender

–              OpeShot

–              OpenOffice

–              Civilization 4

–              Battlefield 2

 

Ist es schwer Python zu lernen?

Falls Sie Kenntnisse in anderen Programmiersprachen wie Java oder Go haben, sollten Sie in der Regel nicht mehr als 10 Tage benötigen, um die Grundlagen dieser Skriptsprache zu erlernen, um einen einfachen Code schreiben zu können. Zahlreiche Online-Plattformen bieten Python-Video-Kurse an, die Sie zum Lernen benutzen können. Darüber hinaus stehen Ihnen zahlreiche Tutorials mit Übungen im Netz kostenlos zur Verfügung. Insgesamt sollten Sie etwa 2 Wochen einplanen, um Basiswissen in der Programmiersprache zu erlangen.

Standardisierter Zugriff auf Datenbanken

SQL ist eine Standard-Abfragesprache für Datenbanken. Auf nahezu alle Datenbanksysteme, so auch MySQL oder MS-SQL, kann mit Standard SQL zugegriffen werden. Mit der Abfragesprache werden Tabellen erstellt oder abgefragt („Wie viele Kunden heißen Meier?“). Häufig verwendete SQL-Befehle sind „Create“ zum Erstellen von Tabellen (Datenstrukturen) und „Select“ zum Lesen von Tabellen. SQL steht für Structured Query Language, übersetzt „strukturierte Abfrage-Sprache“.

SQL ist eine Datenbanksprache für relationale Datenbanken, mit der Strukturen (Tabellen) definiert und Daten bearbeitet oder abgefragt werden können. Tabellen können etwa Kundendaten, Materialdaten, Aufträge und Rechnungen enthalten. Mit der Datenbanksprache werden

– Tabellen angelegt

– Felder in den Tabellen definiert

– Tabellenzeilen befüllt

– Tabelleneinträge gelesen oder Informationen zu den Inhalten abgefragt (z. B. Länge eines Feldes, Anzahl der Einträge in der Tabelle).

Beispiel: Abfragen in einer Datenbanktabelle

Per SQL-Befehl hat man in einer Datenbank die Tabelle „Kunden“ angelegt („create“). Die Struktur enthält Felder für die Aufnahme von Daten wie Kundennummer, Vorname, Nachname u.ä. Ist die Tabelle mit Kundendaten befüllt, können werden alle Kundeneinträge mit dem Namen „Meier“ selektiert („select“-Befehl) oder etwa die Anzahl der Kundendatensätze ermittelt werden („Befehle select count“).

SELECT * FROM Kunden WHERE Name = ‚Meier‘;

Es werden alle Zeilen und alle Spalten (*) aus der Tabelle Kunden ausgegeben, deren Nachname Meier ist.

Zur Standardisierung von Datenbankzugriffen

Die Syntax der Datenbanksprache ist einfach und basiert auf der relationalen Algebra. Die Sprache wird von einem gemeinsamen Gremium standardisiert, um eine möglichst hohe Unabhängigkeit von Software-Programmen zum unterliegenden Datenbankmanagementsystem anzustreben. Heute verfügen die meisten Datenbanksysteme über Schnittstellen, um den standardisierten Zugriff auf Tabellen und Daten zu ermöglichen. Auch auf Datenbanken wie MySQL oder MS-SQL kann mit Standard-SQL zugegriffen werden.

Kategorien von Befehlen bei SQL

Mit den Befehlen können in der Datenbank verschiedene Operationen ausgeführt werden. Nach ihrer Funktion sind vier Kategorien von Befehlen zu unterscheiden:

– DQL-Befehle (Data Query Language): Befehle zur Abfrage und Aufbereitung von Daten

– DML-Befehle (Data Manipulation Language): Befehle zur Manipulation von Daten, wie Ändern, Einfügen, Löschen und Lesen

– DDL-Befehle (Data Definition Language: Befehle zur Definition des Datenbankschemas, z. B. von Anlegen von Tabellen

– DCL-Befehle (Data Control Language): Befehle zur Transaktionskontrolle und Rechteverwaltung.

Abfrage mit „SELECT“

Das Ergebnis einer Abfrage (Query, DQL-Befehl) liefert einen Ausschnitt der Tabelle. Damit sieht das Ergebnis einer Abfrage wiederum selbst aus wie eine Tabelle und kann angezeigt, bearbeitet und verwendet werden. DQL-Befehle werden auch als Untergruppe der DML-Befehle gesehen.

Aufgabe: Ein Unternehmen hat 101 Kunden. Diese sollen angezeigt werden.

SELECT * FROM kunden;

Die Query listet alle Spalten und 101 Zeilen der Kunden-Tabelle auf.

Aufgabe: Alle Kunden anzeigen, allerdings nur die Spalten Kundennummern und Kundennamen:

SELECT Kunnr, Name

FROM kunden;

Die Ausgabe liefert 101 Zeilen (Kunden), allerdings nur die Inhalte der Felder Kundennummer und Nachname.

Aufgabe: Alle Kunden im Postleitzahlbereich „60“ anzeigen lassen.

SELECT * FROM kunden

WHERE Plz LIKE ‚60%‘;

Die Tabelle Aufträge enthält die Kundenaufträge des Unternehmens. Im relationalen Datenmodell enthält sie mit der Kundennummer lediglich „einen Link“ zur Kundentabelle.

Aufgabe: Ausgabe aller Kundenaufträge aus dem Postleitzahlbereich „60“.

SELECT auftrag.Auftragsnr, auftrag.kunnr, kunden.name, kunden.plz kunden.ort

FROM kunden, auftrag

WHERE kunden.kunnr= auftrag.kunnr

AND kunden.plz LIKE ‚60%‘;

Der (inner) JOIN verknüpft zwei Tabellen. Um die Postleitzahl zu den Aufträgen zu finden, muss in die Tabelle „kunden“ geschaut werden. Beide Tabellen enthalten den eindeutigen Schlüssel „Kundennummer“ (kunnr).

Schlüssel in relationalen Datenbanken

SQL ist eine Abfragesprache für relationale Datenbanken, in denen Informationen auf mehrere Tabellen verteilt werden. Im  Beispiel hätte die Auftragsdaten-Tabelle auch die Felder für die Kundendaten (Name, Ort, PLZ) enthalten können. Diese Felder wären damit „doppelt“ in der Datenbank vorhanden. Dies ist im relationalen Datenmodell nicht der Fall.

Um Redundanzen zu vermeiden, werden Daten auf mehrere Tabellen verteilt und über Schlüssel verknüpft. In die Auftragstabelle wird  die Kundennummer aufgenommen. Alle weiteren Kundendaten müssen in der Kundentabelle nachgelesen werden.

Die primären Schlüssel im Beispiel sind die Kundennummer in der Kundentabelle und die Auftragsnummer in der Auftragstabelle.

Programmieren mit der Abfragesprache

Mann kann die Abfragesprache kann mit Programmiersprachen kombinieren. Dazu wird aus einem Anwendungsprogramm heraus mit Standard SQL-Befehlen auf eine Datenbank zugegriffen. Folgende Techniken sind möglich:

  1. a) Embedded SQL mit Anweisungen im Quelltext von C, C++, Pascal, Cobol und anderen Programmiersprachen. Beispiele für Implementierungen sind SQLJ für Java, Pro*C für C und C++.
  2. b) Herkömmliche Programmierschnittstellen, über die SQL-Befehle direkt an das Datenbanksystem weitergegeben werden. Beispiele dazu sind ODBC, JDBC aund ADO.
  3. c) Persistenz-Frameworks, wie Hibernate oder iBATIS für eine objektorientierte Verarbeitung in z. B. C# oder Java.
  4. d) Teil 4 des SQL/PSM Standards mit Konstrukten wie IF-Blöcken und Schleifen, die in Hersteller-spezifische Erweiterungen implementiert werden. Beispiele sind PL/SQL in Oracle und Transact SQL im SQL Server.

Unterschied zwischen statisches und dynamisch

Unabhängig von der Programmiertechnik ist eine SQL-Anweisung statisch und damit  zum Zeitpunkt der Programmübersetzung festgelegt. Beim dynamischen SQL wird die tatsächliche Anweisung erst zum Zeitpunkt der Programmausführung bekannt. Beispiele für dynamische Anweisungen sind etwa die Benutzereingabe der Query zur Laufzeit des Programms oder die Konstruktion des Statements im Programm.