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.

YouTube

By loading the video, you agree to YouTube's privacy policy.
Learn more

Load video

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).

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.

Mit einer privaten Cloud können Sie unterschiedliche Services exklusiv für Ihre Organisation zur Verfügung stellen. Im Gegensatz zu einer Public Cloud kann eine Private Cloud in der Regel nicht für die Allgemeinheit über das Internet erreicht werden. Eine Private Cloud kann entweder auf der unternehmensinternen IT-Infrastruktur gehostet werden oder durch Drittanbieter betrieben werden und bietet dabei ein hohes Maß an Kontrolle, Leistung und Sicherheit.

Private Cloud im Detail

Eine eigene Cloud-Umgebung gibt Unternehmen ein hohes Maß an Sicherheit und Kontrolle über die in der Cloud gespeicherten Daten. Im Gegensatz zu der Public Cloud haben ausschließlich befugte Nutzer Zugang zu der privaten Cloud. Sie wird in der Regel von einzelnen Organisationen betrieben, wie beispielsweise Behörden oder Unternehmen. Je nach Größe und Ausprägung kann sie entweder auf eigenen Servern gehostet oder auf die IT-Infrastruktur externer Anbieter wie Amazon oder Microsoft ausgelagert werden. Der Zugriff auf die privaten Cloud Services wird entweder über das Intranet oder eine VPN-Verbindung realisiert.

Demnach handelt es sich bei einer privaten Cloud um eine interne, unternehmensbezogene Rechnerwolke, die ihre Dienste nur befugten Nutzern zur Verfügung stellt. Die Absicherung des Zugriffs auf die Services wird in der Regel durch Firewalls realisiert. Genauso wie die Public Cloud basiert die Private Cloud auf Virtualisierung und verteiltem Computing. Da diese Art der Rechnerwolke nicht mit Nutzern außerhalb der Organisation geteilt werden muss, bietet Sie eine vergleichsweise erstklassige Kontrolle und Sicherheit. Firmenkritische Anwendungen lassen sich schnell und einfach nach individuellen Anforderungen der Nutzer skalieren und sehr effizient nutzen.

Eine Private Cloud ermöglicht die flexible Anpassung von Speicher- und Rechenleistungen und die nutzerabhängige Abrechnung von den in Anspruch genommenen Leistungen. Die private Rechnerwolke stellt insbesondere für Organisationen, die strenge Vorgaben hinsichtlich der Datensicherheit und Datenverarbeitung befolgen müssen, die optimale Lösung dar. Hinzu kommt, dass durch die spezielle Architektur der Cloud Services gegenüber traditionellen IT-Infrastrukturen erhebliche Einsparpotenziale entstehen. Die Private Cloud wird in einigen Bereichen gemeinsam mit der Public Cloud eingesetzt. Dieses Modell wird als Hybrid Cloud bezeichnet und sie vereint die Vorteile beider Konzepte zu einem eigenständigen Cloud-Modell.

Unterschiedlichen Typen der Private Cloud

Die private Datenwolke lässt sich in vier unterschiedliche Typen unterteilen, und zwar:

–              die interne Datenwolke

–              die gemanagte Rechnerwolke

–              die gehostete Datenwolke

–              die sogenannte „Community Private Cloud

Bei einer internen Datenwolke wird die nötige IT-Infrastruktur für die unternehmensinternen Services durch das Unternehmen oder die Organisation betrieben. Auch bei einer gemanagten Rechnerwolke wird die nötige Infrastruktur intern gehostet, wird jedoch durch einen Drittanbieter gemanagt, gewartet und kontinuierlich kontrolliert, um einen einwandfreien Betrieb sicherzustellen. Die gehostete Datenwolke wird in einem externen Rechenzentrum eines Cloud-Anbieters aufbewahrt. Dieser betreibt die gesamte Cloud des Unternehmens und stellt Anwendungen und Services nur den Usern des Unternehmens zur Verfügung. Bei der „Community Private Cloud“ handelt es sich um eine Sonderform der privaten Cloud, bei der mehrere Organisationen, beispielsweise aus der gleichen Branche, auf gemeinsame Cloud-Services und Anwendungen zugreifen.

Die technischen Grundlagen einer privaten Cloud

Die Private Cloud basiert auf der technischen Grundlage der Virtualisierung. Moderne Virtualisierungstechnologien ermöglichen IT-Anwendungen und -Ressourcen von physischen Geräten zu entkoppeln. Das bedeutet, das Anwendungen nicht lokal auf Endgeräten oder Servern bereitgestellt, sondern virtuell in einer Cloud betrieben werden. Die Virtualisierung bietet den entscheidenden Vorteil, dass sich Ressourcen äußerst flexibel und dynamisch nutzen und verteilen lassen. Darüber hinaus wird die Verfügbarkeit erhöht, da sich der Ausfall einzelner Server in der virtuellen Umgebung schnell und unkompliziert kompensieren lässt.

 

Befugte Nutzer können die Services entweder über das unternehmensinterne Netzwerk (Intranet) oder besonders sichere Netzwerkinfrastrukturen (VPNs) erreichen. Zu diesem Zweck wird jeder Anwender mit den benötigten Rechten versehen, mit denen er sich gegenüber Cloud Services authentifizieren kann. Im Gegensatz zu traditionellen IT-Infrastrukturen entfällt im Rahmen der Cloud die Notwendigkeit des Betreibens von gesonderten Servern für einzelne Anwendungen bzw. Services. Stattdessen wird eine virtualisierte Serverumgebung für alle Services und Anwendungen zur Verfügung gestellt.

Welche Vorteile bietet die Private Cloud?

Nutzer einer privaten Cloud profitieren von einer Vielzahl unterschiedlicher Vorteile, ohne dabei die Kontrolle über ihre Daten und ihre IT-Infrastruktur an einen Drittanbieter abgeben zu müssen. Die gesamte IT-Infrastruktur lässt sich im Vergleich zu traditionellen IT-Strukturen verschlanken und effizienter und kostengünstiger nutzen. Sämtliche Ressourcen werden gebündelt und flexibel zur Verfügung gestellt, sodass sich Kapazitäten nach Bedarf in Echtzeit skalieren lassen. Gegenüber der Public Cloud bietet die private Rechnerwolke noch viele weitere Vorteile. Den Nutzern steht die ihnen zugeteilte Performance und Bandbreite exklusiv zur Verfügung. Performanceeinbrüche durch die Nutzung anderer Nutzer sind in der Regel nicht zu erwarten.

Da die Private Cloud eine abgetrennte Einheit bildet, minimieren sich die potenziellen Sicherheitsrisiken für die Organisation. Es gibt jedoch einige wichtige Unterschiede zwischen den einzelnen privaten Cloud-Strukturen, die Sie bei der Planung Ihrer Private Cloud unbedingt berücksichtigen sollten. So unterscheidet sich die interne Private Cloud stark von den Angeboten, wie sie beispielsweise von Microsoft oder Google zur Verfügung gestellt werden. Bei Organisationen, die private Cloud-Services anbieten, ist es zum Beispiel in vielen Fällen nicht möglich, explizit zu bestimmten, wo die gehosteten Daten aufbewahrt werden, was eventuell zu Problemen mit den Compliance- oder Regulierungsvorgaben führen kann.

Die Skriptsprache JavaScript hat man entwickelt, um dynamische HTML-Dokumente im Webbrowser anzeigen zu können. Die Verarbeitung von JS-Code erfolgt meist direkt im Webbrowser des Nutzers. Mit der Programmiersprache Java hat JavaScript jedoch nicht viel gemeinsam.

Entwicklungsgeschichte von JavaScript

Die Skriptsprache wurde von Netscape ursprünglich unter der Bezeichnung LiveScript entwickelt. Das Ziel der Netscape-Entwickler war es, dynamische HTML-Inhalte direkt im Webbrowser des Nutzers darstellbar zu machen. Der Einsatz von JavaScript sollte Entwicklern die Möglichkeit geben, statische HTML-Dokumente mit dynamischen Elementen anzureichern, Nutzer-Aktionen zu interpretieren und darauf entsprechend zu reagieren, Webseiteninhalte dynamisch zu ändern und Inhalte auf Abruf zu generieren und darzustellen.
Die Programmiersprache Java erlebte in der zweiten Hälfte der 1990er-Jahre einen beispiellosen Höhenflug und wurde von vielen Entwicklern genutzt, um interaktive Desktop- und Webanwendungen zu programmieren. Aufgrund einer Zusammenarbeit mit dem IT-Giganten Sun Microsystems, der die Programmiersprache Java im Jahr 1995 der breiten Öffentlichkeit vorgestellt hatte, entschied sich Netscape dazu, ihre neue Sprache in Anlehnung an die Programmiersprache von Sun Microsystems JavaScript zu nennen. Allerdings teilen sich diese beiden Sprachen fast keine Gemeinsamkeiten.

Netscape veröffentlichte JS im Jahr 1995. Es war fester Bestandteil des zu dieser Zeit sehr beliebten Webbrowsers Netscape Navigator. Begünstigt durch die schnelle Verbreitung des Internets Ende der 1990er-Jahre verbreitet sich JS sehr schnell. Im Laufe der Jahre wurde die Skriptsprache kontinuierlich weiterentwickelt und durch neue Funktionen und Features ergänzt, sodass JS heutzutage neben PHP (LINK) und Python (LINK) zu den grundlegenden Sprachen des World Wide Web gehört.

Skriptsprache ist sehr dynamisch und äußerst flexibel

Einen wesentlichen Anteil am Erfolg von JavaScript hat die Unabhängigkeit von spezifischen Webbrowsern beigetragen. Die Skriptsprache selbst ist sehr dynamisch und äußerst flexibel. Sie verfügt über objektorientierte Eigenschaften und bietet Unterstützung für verschiedene Programmierparadigmen, wie beispielsweise prozedurale, objektorientierte oder funktionale Paradigmen. Dank Node.js lässt sich JavaScript heutzutage nicht nur clientseitig im Rahmen eines Webbrowsers nutzen, sondern auch direkt auf einem Webserver (Apache oder nginx).

Welche Projekte kann man mit JavaScript realisieren?

Durch den Einsatz von JS lassen sich viele unterschiedliche Projekte und Funktionen realisieren.

Im Folgenden gehen wir auf gängige Einsatzgebiete von JavaScript ein:
– dynamische Veränderung von Webseiteninhalten
– Erstellung interaktiver Menüs
– Aktualisierung von HTML-Elementen und Daten, ohne einen Reload der gesamten Webseite
– Veränderung von Texten oder Grafiken durch Aktionen des Nutzers

Abgrenzung zu Skriptsprache Java

Obwohl JavaScript und Java einen ähnlichen Namen haben, teilen sich die beiden Programmiersprachen jedoch nur wenige Gemeinsamkeiten. Bei Java handelt es sich um eine objektorientierte, vollwertige Programmiersprache, die einen wesentlich größeren Funktionsumfang und Befehlssatz bietet als JavaScript. Experten sehen Java als Derivat von C++ an.
Bei JavaScript hingegen handelt es sich um eine Skriptsprache, die grundsätzlich nicht alleine lauffähig ist. JS-Skripte benötigen eine Laufzeitumgebung wie den Webbrowser oder Node.js, um ausgeführt zu werden. JavaScript war ursprünglich dazu vorgesehen,  um es lediglich im Browser einzusetzen. Inzwischen lassen sich JS-Skripte jedoch auch unabhängig vom Browser direkt auf dem Webserver ausführen.

Sicherheitsaspekte

Mit den Möglichkeiten, die JavaScript mit sich bringt, gibt es auch ebenso viele sicherheitskritische Aspekte bei der Ausführung von JS-Skripten. Viele dieser Problemstellungen werden durch das sogenannte „Sandbox-Prinzip“ effektiv gelöst. Alle Befehlszeilen werden von dem Browser in einem isolierten Bereich ausgeführt und haben ausschließlich Zugriff auf die Ressourcen des Webbrowsers und nicht des gesamten Computers.
So wird  der Zugriff auf das Dateisystem durch die Sandbox unterbunden. Darüber hinaus führen moderne Webbrowser wie Chrome oder Firefox jede aufgerufene Webseite, Webanwendung oder Domain  isoliert voneinander aus. Dies erschwert den Datenaustausch zwischen den einzelnen Instanzen, wodurch das Risiko vor sogenannten „Cross-Site-Scripting-Angriffen“ minimiert wird.

JavaScript im Kontext der Suchmaschinenoptimierung

Suchmaschinen analysieren den JS-Code in der Regel nicht. Suchmaschinen-Crawler können die dynamische Interaktion  nicht nutzen. Ein Crawler besucht die Webseite so, wie ein Besucher, bei dem JavaScript explizit im Webbrowser deaktiviert ist. Demzufolge kann ein Web-Crawler Websites nicht erreichen, die man in JavaScript geschrieben hat. Dies hat negative Folgen für das Suchmaschinenranking der betroffenen Webpräsenz.

Weitere Problemstellungen bei JS

Es kommt immer wieder vor, dass Webseitenbetreiber versuchen, JS-Code für die eigenen Interessen zu missbrauchen. So können zum Beispiel mehrere Pop-Up-Fenster ohne Zustimmung des Nutzers automatisch geöffnet werden. Weitere Funktionen, mit denen man den JS-Code missbrauchen kann, sind:
– ungewollte Änderungen am Browserfenster
– das Tarnen zwielichtiger Links und Internetadressen
– die absichtliche Deaktivierung von Kontextmenüs zum Speichern und Kopieren von Webinhalten

Das Betriebssystem vermittelt zwischen Hardware und Programm

Ein Betriebssystem, auch OS (von englisch operating system) ist eine Software zwischen Hardware und Anwendungsprogrammen. Das Betriebssystem vermittelt den Zugriff auf die Hardware-Ressourcen des Computers, wie Arbeitsspeicher, Festplatten, Drucker und USB-Ports. Nicht nur der PC braucht ein Betriebssystem, sondern auch Tablets, Smartphones und andere Computer. Bekannte Betriebssysteme sind Windows, Mac OS , Unix, Linux, iOS und Android.

Das Betriebssystem verwaltet und kontrolliert die Hardware, also die Komponenten des jeweiligen Computers. Dazu gehören auch Ausgabegeräte, wie Drucker, DVD-Laufwerk, Tastatur, die Maus und andere Schnittstellen der Hardware, wie etwa USB-Ports. Im Grunde könnte eine Anwendungssoftware, wie z. B. MS Word, diese Aufgaben auch selbst übernehmen. Dann müsste das Anwendungsprogramm jedoch für die verschiedenen Hardwareausführungen der Computer spezielle MS-Word-Versionen anbieten. Mit dem Betriebssystem wird hingegen der Verwaltungsaufwand für die Anwendungsprogramme reduziert und zusätzlich eine einheitliche Oberfläche geschaffen, auf die eine Software von Drittanbietern aufsetzen kann.

Betriebssystem als Softwareschicht zwischen Hardware und Programm

Betriebssysteme verbinden die Anwendersoftware mit den Hardware-Ressourcen. Auf fast allen Arten von intelligenten, computergestützten Geräten wird zunächst ein Betriebssystem installiert: Desktoprechner, Laptops, Server, Minicomputer, Großrechner in Rechenzentrum sowie kleinere Systeme wie Smartphones, PDAs (Blackberry u.a.) haben ein Betriebssystem, um anderen Programmen einen standardisierten Zugriff und Kontrolle auf die Hardware-Ressourcen zu ermöglichen. Neben Windows, Mac OS und Linux nutzen einige Universitäten und Forschungseinrichtungen selbst entwickelte Betriebssysteme. Dazu gehören beispielsweise das Betriebssystem Amoeba der Vrije Universiteit Amsterdam. Amoeba ist inzwischen eines der bekanntesten Betriebssysteme für verteilte Systeme. Weitere Uni-Betriebssysteme sind Barrelfish der ETH Zürich und Microsoft Research sowie Rainbow, ein verteiltes Betriebssystem der Universität Ulm.

Bestandteile von Betriebssystemen

Zum Betriebssystem gehören drei grundlegende Bestandteile:

Kernel: Der Systemkern verwaltet den Speicher, den Prozessor und die Prozesse des Systems. Er ist für die Hardware zuständig und triggert beim Start andere Programme für weitere Aufgaben, wie etwa die Gerätetreiber für Drucker und Peripherie.

– Über den Befehlsübersetzer man mit dem Betriebssystem kommunizieren.

– Dateisystem: Das Betriebssystem definiert auch das Dateisystem, das für die Struktur und Ablage von Dateien zuständig ist.

Abläufe im Betriebssystem:

– Benutzerkommunikation

– Ausführen und Beenden von Programmen

– Zuteilung der Prozessorzeit

– Verwaltung von Speicherplatz und angeschlossenen Geräten Zugriffsbeschränkungen.

Anforderungen an ein Betriebssystem

  1. a) Schaffung von Schnittstellen zu Anwendungsprogrammen

Jede Anwendung (z. B. eine Textverarbeitung) erhält mit dem Betriebssystem einen klar definierten und sauberen Zugriff auf die verfügbare Hardware. Der Programmierer wendet sich nicht an die jeweiligen RAM-Module des Arbeitsspeichers, sondern an die zuständige Softwarekomponente des Betriebssystems. Damit muss der Programmierer die spezifischen Hardwareeigenschaften der verbauten RAM-Module nicht kennen. Das Betriebssystem erzeugt demzufolge abstrakte Objekte, um die Komplexität der unterliegenden und oftmals recht herstellerabhängigen Hardware beherrschbar zu machen.

  1. b) Die Verwaltung der Hardware-Ressourcen

Das Betriebssystem teilt den Benutzern bzw. der Anwendungssoftware die Prozessorleistung zu. Auch Speichereinheiten und Peripheriegeräte werden vom Betriebssystem verwaltet und verteilt. Übernimmt ein Anwendungsprogramm eine Ressource, wie z. B. einen Drucker, so übernimmt das Betriebssystem gleichzeitig die Überwachung des Vorgangs. Bei mehreren Druckanfragen von unterschiedlichen Programmen, entscheidet das Betriebssystem nach definierten Algorithmen, wie eine Verteilung der Ressource erfolgt. Wird ein Computer oder ein Netzwerk von mehreren Benutzern verwendet, müssen vom Betriebssystem zusätzlich Maßnahmen für den Speicherschutz getroffen und konkurrierende Zugriffe auf andere Betriebsmittel geregelt werden.

Systemsoftware vs. Betriebssystem

Das Betriebssystem ist Teil der Systemsoftware, die sämtliche Abläufe auf dem Rechner steuert. Zur Systemsoftware gehören Editoren, Compiler und Interpreter. Browser und andere Anwendungssoftware, wie z. B. ein Buchhaltungsprogramm, nutzen die Systemsoftware für einen ordnungsgemäßen Ablauf. Geregelt ist der Begriff des Betriebssystems sowie sein Umfang in der DIN 44300. Der Umfang des Betriebssystems ist jedoch nicht unumstritten und führende Informatiker grenzen die Komponenten des Betriebssystems weiter ein oder weiten seinen Umfang aus. Im Informatik-Duden gehören auch Übersetzungsprogramme und Dienstprogramme zu den wesentlichen Betriebssystem-Komponenten. Ein Beispiel für die Kontroversen um die Abgrenzung des Betriebssystems ist der GNU/Linux-Namensstreit.

Treiber für Hardwarekomponenten

Die Computer-Hardware eines Desktop-Computers ist zwar selbst zwischen den Herstellern sehr ähnlich, jedoch können die jeweiligen Hardwarekomponenten oder Bauteile unterschiedliche Anforderungen stellen. Wird beispielsweise eine Komponente eines Computers ersetzt, sind meist zusätzlich spezielle Treiberprogramme des Herstellers erforderlich. Einige dieser Treiber werden mit dem Betriebssystem, wie z. B. MS Windows ausgeliefert, jedoch sind nicht alle Versionen und Geräte im Lieferumfang enthalten. In einem solchen Fall müssen die Treiber von der Herstellerseite heruntergeladen werden.

Geschichte der Betriebssysteme

Anfänglich wurden Software und Daten noch über Lochkarten in den Computer gebracht. Der Begriff der „Batchverarbeitung“ (deutsch: Stapelverarbeitung) stammt aus dieser Zeit. Die Lochkarten mussten als Stapel in das Lesegerät des Großrechners eingelegt werden. Meist war die Reihenfolge der Lochkarten wichtig und durfte nicht durcheinandergebracht werden. War eine Lochkarte beschädigt, musste der Stapel beendet, die Karte erneuert und die Einleseprozedur nochmals gestartet werden. In den Anfängen der Großrechner gab es zunächst keine Hardwarespeicher und externe elektronische Speichermedien. Festplatten wurden später entwickelt und waren lange Zeit sehr teuer. An die permanente Ablage von Daten auf einer Festplatte war nicht zu denken. Nach den Lochkarten übernahmen Magnetbänder die Rolle der erschwinglichen Datenträger. Der Begriff der Batch- oder Job-Verarbeitung beschreibt heute die sequentielle Planung von Programmläufen, die meist automatisch getriggert wird.

Aktuelle Hardware und ihre Betriebssysteme

Die Vorläufer der Desktopsysteme waren Heimcomputer mit Betriebssystemen wie AmigaOS, DOS, LUnix, MiNT oder GEOS für den Commodore C64. Auf Großrechnersystemen, die häufig IBM-Maschinen waren, wurde häufig das Betriebssystem AIX installiert. Die Betriebssysteme BS1000 bis BS3000 liefen auf Siemens Großrechnern. Java-basierte Betriebssystem sind typische Middleware-Produkte, wie etwa das JavaOS von Sun Microsystems, MIDP (Mobile Information Device Profile) und JNode (Java New Operating System Design Effort). Auf Desktoprechnern laufen heute Microsoft Windows, BSD inkl. Mac OS von Apple sowie GNU/Linux.

Server-Betriebssysteme

Die bekanntesten Systeme sind Microsoft Windows, Unix und Linux. Für Windows sprechen seine einfache Bedienbarkeit sowie die Vielzahl der windows-basierten Anwendungssoftware, die zudem oft nur eingeschränkt auf anderen Betriebssystemen lauffähig ist.

Linux-basierte Serversysteme haben ihre Vorteile, wie etwa die das offen gelegte Coding (Open-Source-Software). Damit kann jeder das Betriebssystem einsehen, ändern und erweitern. Ein weiterer Vorteil der Open-Source-Systeme ist eine sich bildende Community, die ständig Neuerungen und Sicherheits-Updates bereitstellt.

In großen Rechenzentren spielen Unix-Betriebssysteme noch immer eine Rolle. Sie sind besonders stabil und zuverlässig. Herausgebildet haben sich auf dem Markt die Unix-Derivate AIX (IBM) und HP-UX (Hewlett-Packard). Unix-Betriebssysteme gelten als weniger angreifbar.