Ein Patch bezeichnet die Auslieferung einer korrigierten Version von Anwendungen oder Betriebssystemen, um Sicherheitslücken zu schließen oder Fehler zu entfernen.

Das englische Wort bezeichnet ein Stück Stoff (den „Flicken“), das man über ein Loch in Textilien zur Ausbesserung nähen kann. Im Softwarebereich versteht man darunter eine Korrektur eines Programms zur Behebung von Problemen verschiedener Art. Diese Probleme können die Funktionalität des Programms beeinträchtigen oder eine Sicherheitslücke darstellen. Man unterscheidet drei Typen von Patches.

Software muss regelmäßig angepasst werden, sei es zur Behebung von Fehlern in der Funktionalität oder nach dem Auffinden von Sicherheitslücken. Der Hersteller der Software und die Benutzer müssen beide ihren Teil dazu beitragen, dass die Korrekturen so schnell wie möglich vorgenommen werden.

Der Prozess der Softwareentwicklung

Die Erstellung größerer Programme ganz ohne Fehler oder sogar Sicherheitslücken ist auf dem heutigen Stand der Technik noch nicht möglich. Daher sind ständige Korrekturen erforderlich, um die Software in höchstmöglicher Qualität einsetzen zu können. Oft ist es sogar so, dass die ersten Kunden die letzten Betatester sind, die Fehler im Programm finden sollen. Das kommt auch bei neuen Versionen von Betriebssystemen vor. Ob die Software proprietär oder frei ist, spielt für das Auftreten von Fehlern keine direkte Rolle.

Ein Bugfix ist die Korrektur eines Fehlers im Programm. Dieser kann beispielsweise ein falsches Ergebnis bewirken oder auch das Abstürzen des Computers.

Ein Hotfix ist ein Patch, der zum Schließen einer Sicherheitslücke vorgesehen ist. In diesem Fall besteht die höchste Dringlichkeit für die Installation des Patches.

Ein Update ist eine Aktualisierung eines Programms, die oft mehrere Bugfixes enthält. Der Übergang zu einer neuen Version der Software ist fließend.

 

Wie werden Patches erstellt und eingesetzt?

Dieser Prozess läuft in vier Stufen ab.

  1. Der Fehler wird entdeckt. Der Entdecker kann der Hersteller der Software, oft aber auch ein Benutzer sein. Im letzteren Fall ist es wichtig, dass der Benutzer den Fehler an den Hersteller meldet, denn nur so kann ein Patch erstellt werden.
  2. Der Softwarehersteller schreibt und testet den Patch.
  3. Vom Softwarehersteller wird der Patch an alle Anwender des Programms geliefert.
  4. Die Anwender installieren den Patch auf ihren Systemen.

Das Management der Patches

Die Hersteller rechnen mit der ständigen Entdeckung von Fehlern in ihrer Software. Besonders die großen Entwickler besitzen deshalb ein professionelles Management des Prozesses. Die Firma Microsoft beispielsweise veröffentlicht jeden zweiten Dienstag im Monat alle in einem Monat erstellten Patches. Der Tag ist allgemein als Patch Tuesday bekannt. Allerdings kommt es auch vor, dass Microsoft zwischen zwei solchen Dienstagen dringende Patches ausliefert, die Sicherheitslücken schließen sollen.

Auf der Benutzerseite verwenden die meisten auch kleineren Firmen zahlreiche Softwarepakete verschiedener Hersteller. Mindestens Betriebssysteme, Webserver, Buchhaltungssoftware und verschiedene Anwenderprogramme gehören dazu. Das Sammeln von Informationen über Patches, die Installation und Dokumentation sollte systematisch durchgeführt werden, um den Überblick zu behalten.

Besonders das Missachten eines Hotfixes kann katastrophale Folgen für ein Unternehmen haben, da die eigenen Systeme dann bestimmten Typen von Angriffen schutzlos ausgeliefert sind. Neben Erpressungstrojanern können auch rechtliche Probleme und Strafzahlungen die Folge sein, wenn etwa die Daten von Kunden verloren gehen.

Die Aufgaben für den Benutzer von Software

Diese betreffen manchmal die Stufe 1 und sehr oft die Stufe 4. Hat ein Benutzer einen Fehler entdeckt, sollte er ihn der Herstellerfirma melden. Manchmal winkt dafür eine vom Hersteller ausgelobte Belohnung.

Ein Patch ist nur dann wirksam, wenn er auch installiert wird. Je mehr Kontrolle Sie über Ihre Computer behalten möchten, umso größer ist auch Ihre Verantwortung. Keinen Aufwand müssen Sie mit Software in der Cloud treiben. Einer der Vorteile ist es gerade, dass Sie immer die aktuelle Version benutzen, weil der Hersteller die Betreuung übernimmt.

Auf dem System eines Benutzers können Programme laufen, die automatisch eine Verbindung zu den Servern des Entwicklers herstellen und Patches herunterladen und installieren. Auch dieser Service ist aber nicht für alle Programme verfügbar, und vielleicht bevorzugen Sie es auch, alle Änderungen an Ihren Programmen selbst zu installieren. Dann laden Sie den Patch selbst herunter und installieren ihn.

Bei der Kernel-based Virtual Machine (KVM) handelt es sich um eine Virtualisierungs-Infrastruktur des Linux-Kernels. Diese ist mit den Hardwarevirtualisierungs-Techniken von AMD (AMD-V) oder Intel (VT) und den entsprechenden X86-Prozessoren sowie mit der System-Z-Architektur kompatibel. Die Kernel-based Virtual Machine wurde im Oktober 2006 erstmals in einer Betaversion veröffentlicht und ist seit der Version 2.6.2 des Linux-Kernels in diesem enthalten. Das System wurde unter der Führung des israelischen Software-Entwicklers Avi Kivity in seinem Unternehmen Qumranet entwickelt. Die Software-Schmiede Qumranet wurde im September 2008 von Red Hat übernommen.

Allgemeine Informationen

Die Kernel-based Virtual Machine wurde in erster Linie für den Einsatz in Kombination mit x86-Plattformen entwickelt und setzt sich für diese aus den folgenden beiden Komponenten zusammen:

–       aus dem Kernel-Modul „kvm.ko“, und

–       aus den hardwarespezifischen Modulen kvm-amd.ko (für AMD-Plattformen) oder kvm-intel.ko (für Intel-Plattformen)

Inzwischen ist KVM auch für weitere Plattformen, wie beispielsweise System Z, ARM und PowerPC erhältlich. Die Kernel-based Virtual Machine realisiert selbst keine Emulation, sondern stellt lediglich die dafür nötige Infrastruktur bereit. Die freie Virtualisierungs-Software QEMU stellt eine der Möglichkeiten dar, um KVM zu nutzen. QEMU stellt für virtualisierte Gastsysteme die erforderlichen Geräte wie Grafik-, Sound-, Netzwerkkarten und Festplatten bereit. Nachdem das Modul geladen ist, fungiert der Linux-Kernel selbst als Hypervisor für VMs (virtuelle Maschinen). Als Gastsystem bietet KVM Unterstützung für eine Vielzahl moderner Betriebssysteme, wie zum Beispiel:

–       Windows (32 und 64 Bit)

–       Linux (32 und 64 Bit)

–       FreeDOS

–       Solaris

–       Hauku

–       AROS

–       ReactOS

–       diverse BSD-Derivate

Mittlerweile lässt sich auch Paravirtualisierung in KVM realisieren und wird unter Linux mittels der Paravirtualisierungsschnittstelle Virtio für Hardware-Komponenten bereitgestellt. Auch für Windows-Systeme sind mittlerweile paravirtualisierte Gerätetreiber erhältlich.

Das Paravirtualisierungs-Verfahren bietet einige Vorteile im Vergleich zu traditionellen Virtualisierungs-Methoden, wie zum Beispiel ein geringerer Overhead sowie eine bessere Performance, da sich das Gastsystem der Tatsache „bewusst“ ist, dass es auf virtualisierter Hardware betrieben wird und mit dem Hypervisor zusammenarbeitet.

KVM Funktionen und Features

KVM stellt einen festen Bestandteil von Linux dar. Alles was Linux bietet, ist auch in KVM zu finden. Es gibt jedoch einige Besonderheiten, welche die Kernel-based Virtual Machine zum bevorzugten Hypervisor für Unternehmen machen. Im Folgenden stellen wir Ihnen einige der Besonderheiten von KVM vor:

Sicherheit: Die Kernel-based Virtual Machine nutzt eine Kombination von Linux mit sicherer Virtualisierung (sVirt) und erweiterter Sicherheit (SELinux), um eine optimale VM-Sicherheit und Isolierung zu gewährleisten. SELinux legt dabei die Sicherheitsgrenzen der virtuellen Maschine fest, während sVirt die Funktionalitäten von SELinux erweitert. So ermöglicht sVirt beispielsweise den Einsatz von Mandatory Access Control für Gast-VMs und verhindert, dass manuelle Kennzeichnungsfehler zu den höheren System-Ebenen propagiert werden.

Storage: KVM ist in der Lage, jedes Speichermedium zu verwenden, das von Linux unterstützt wird, einschließlich komplexer NAS-Systeme (Network Attached Storage). Sogenannte „Mehrpfad-I/O“ können eingesetzt werden, um das Storage-System zu optimieren und Redundanz zu bieten. Die Kernel-based Virtual Machine bietet außerdem Unterstützung für gemeinsam genutzte Dateisysteme, sodass sich VM-Abbilder von unterschiedlichen Hosts gemeinsam nutzen lassen. Darüber hinaus unterstützen Festplattenabbilder sogenanntes „Thin-Provisioning“ und sind in der Lage, Storage nach Bedarf zuzuweisen, anstatt im Voraus wie es bei vielen ähnlichen Systemen der Fall ist.

Hardware-Unterstützung: KVM kann auf diversen Plattformen eingesetzt werden, die von Linux unterstützt werden. Viele Hardware-Produzenten tragen regelmäßig zur Kernel-Entwicklung bei, sodass die neuen Hardware-Funktionen und -Features in vielen Fällen sehr schnell in den Kernel integriert werden.

Speicherverwaltung: Die Kernel-based Virtual Machine nutzt die Speicherverwaltung-Infrastruktur von Linux inklusive des Non-Uniform Memory Access und des Kernel Same Page Merging. Der Speicher einer virtuellen Maschine lässt sich nach persönlichen Anforderungen gestalten und durch größere Kapazitäten oder bessere Leistung verstärken.

Echtzeit-Migration: KVM bietet native Unterstützung für die Live-Migration. Dabei handelt es sich um die Möglichkeit, eine laufende virtuelle Maschine zwischen physischen Hosts zu verschieben, ohne dass dabei der Betrieb der VM unterbrochen wird. Die virtuelle Maschine kann in Betrieb bleiben, Anwendungen laufen weiter und Netzwerkverbindungen bleiben aktiv, während die VM schnell und einfach auf einen anderen Host verschoben wird. KVM sichert außerdem den aktuellen Stand (State) einer virtuellen Maschine, sodass diese lokal oder in der Cloud gespeichert und später wieder fortgesetzt werden kann.

Skalierbarkeit und Performance: KVM baut auf der Leistung von Linux auf und lässt sich automatisch an den Lastbedarf skalieren, sobald die Anzahl der Anfragen an die VMs steigt. Mit der Kernel-based Virtual Machine lassen sich große Anwendungen-Workloads schnell und einfach virtualisieren. Darüber stellt KVM die Basis für viele Setups der Unternehmens-Virtualisierung dar, wie beispielsweise für private Clouds und Rechenzentren.

Verwaltungs-Tools

Für die Kernel-based Virtual Machine sind mehrere Werkzeuge zur Steuerung erhältlich. So ist es beispielsweise möglich VMs mittels Kommandozeilenprogrammen wie QEMU oder VIRSH zu erstellen und zu verwalten. Eine angenehmere und übersichtlichere Option stellen Tools mit grafischen Benutzeroberflächen dar, wie mit dem Virtual Machine Manager (VMM) oder dem UCS VM Manager. Es sind auch Lösungen erhältlich, welche die Verwaltung von VMs über Weboberflächen gestattet. In diesem Zusammenhand ist das oVirt-Projekt oder die FOSS-Cloud zu nennen, die als kostenlose Open Source-Lösungen bereitgestellt werden.

 

 

cPanel ist ein Webhosting-Kontrollfeld (Software, die die Verwaltung eines Webhosting-Servers erleichtert), das von cPanel, L.L.C., einem amerikanischen Unternehmen, entwickelt wurde und Teil einer Software-Suite namens cPanel & WHM (Web Host Manager) ist.

cPanel und Plesk sind zwei der am häufigsten verwendeten Web-Control-Panels auf demMarkt. cPanel ist das weltweit am weitesten verbreitete Web-Control-Panel. Die Server erstellen alle 6 Sekunden eine Domain, und alle 14,5 Sekunden wird ein Hosting-Konto mit diesem Control Panel erstellt.

Das Tor zu Ihrem Online-Geschäft

Egal, ob Sie ein großes Unternehmen sind, das dedizierte Server mietet, ein mittelständisches Unternehmen, das einen Webhosting-Service startet, oder ein kleines Geschäft, das einen gemeinsam genutzten Hosting-Standort auswählt, das Control Panel des Webservers ist das Tor zu Ihrem Online-Geschäft. Bei einer schwindelerregenden Anzahl verfügbarer Bedienfeldoptionen kann die Kenntnis der Stärken und Schwächen der Bedienfelder zu fundierten Entscheidungen, weniger Kopfschmerzen und einer besseren Leistung führen.

Die Basics von cPanel

cPanel & WHM ist eine der zuverlässigsten und intuitivsten Webhosting-Automatisierungssoftware-Plattformen der Internetinfrastrukturbranche. Die vollautomatisierte Hosting-Plattform unterstützt Infrastrukturanbieter und bietet Kunden die Möglichkeit, jede Facette ihrer Website mit einfacher Point-and-Click-Software zu verwalten.

cPanel & WHM

cPanel & WHM fungiert entweder als dedizierter Server oder als virtueller privater Server. Während cPanel auf die Verwaltung eines einzelnen Hosting-Kontos beschränkt ist, ermöglicht cPanel & WHM die Verwaltung des gesamten Servers. Die Software bietet eine grafische Oberfläche (GUI) und Automatisierungstools, die das Hosting einer Website für den Websitebesitzer oder den Endnutzer vereinfachen sollen.

Die neueste cPanel & WHM-Version unterstützt die Installation unter CentOS, Red Hat Enterprise Linux (RHEL) und CloudLinux OS.

Einige grundlegende Komponenten

Web Server

Ein Webserver ist ein Computer, auf dem Websites ausgeführt werden. Es ist ein Computerprogramm, das Webseiten verteilt, sobald sie angefordert werden. Das Hauptziel des Webservers besteht darin, Webseiten zu speichern, zu verarbeiten und 24/7 an die Benutzer zu liefern. Diese Interkommunikation erfolgt über das HTTP (Hypertext Transfer Protocol).

Linux

Linux ist ein Unix-ähnliches Open Source– und Community-entwickeltes Betriebssystem für Computer, Server, Mainframes, mobile Geräte und eingebettete Geräte. Es wird auf allen gängigen Computerplattformen unterstützt, einschließlich x86, ARM und SPARC. Damit gehört es eines der am häufigsten unterstützten Betriebssysteme.

Linux ist das bekannteste und am häufigsten verwendete Open Source-Betriebssystem. Als Betriebssystem ist Linux eine Software, die sich unter der gesamten anderen Software auf einem Computer befindet, Anforderungen von diesen Programmen empfängt und diese Anforderungen an die Hardware des Computers weiterleitet.

cPanel ist eines der beliebtesten Linux-basierten Webhosting-Kontrollfelder, das wichtige Messdaten zur Leistung Ihres Servers anzeigt und Ihnen den Zugriff auf eine Reihe von Modulen ermöglicht, darunter Dateien, Einstellungen, Datenbanken, Webanwendungen, Domänen, Metriken, Sicherheit, Software, Erweitert und E-Mail-Module.

CloudLinux

CloudLinux mit Hauptsitz in Palo Alto, Kalifornien, hat sich zum Ziel gesetzt, Linux-Webserver sicherer, stärker und rentabler zu machen. Mit über 4.000 Kunden und Partnern (darunter Dell, 1 & 1 und LiquidWeb), mehr als 250.000 Produktinstallationen weltweit und ihren engagierten Analysten und Entwicklern verfügen sie über mehr als 450 Jahre Linux-Erfahrung und die Leidenschaft, die besten Kundenbetreuer zu sein.

Red Hat Enterprise Linux (RHEL)

Red Hat Enterprise Linux (oft als RHEL abgekürzt) ist eine Linux-Distribution, die von Red Hat für den kommerziellen Markt entwickelt wurde. Red Hat Enterprise Linux ist in Serverversionen für x86 – 64, Power ISA, ARM64 und IBM Z sowie in einer Desktopversion für x86 – 64 verfügbar.

CentOS

CentOS (von Community Enterprise Operating System) ist eine Linux-Distribution, die eine kostenlose, von der Community unterstützte Computerplattform bietet, die funktional mit ihrer Upstream-Quelle Red Hat Enterprise Linux (RHEL) kompatibel ist. Sie können cPanel auch auf einem CentOS installieren.

cPanel und FreeBSD

FreeBSD ist ein kostenloses und Open-Source-Unix-ähnliches Betriebssystem, das von der Berkeley Software Distribution (BSD) entwickelt wurde, die auf Research Unix basiert. Heute wird cPanel unter FreeBSD (Berkeley Software Distribution) nicht mehr unterstützt. cPanel 11.30 ist die letzte Hauptversion, die FreeBSD unterstützt.

cPanel deinstallieren

cPanel & WHM wird am besten durch Neuformatierung des Servers deinstalliert. Deinstallationshandbücher sind online für erfahrene Serveradministratoren verfügbar, die ihren Server nicht neu formatieren möchten. Ebenso sollte es nur auf einem frisch installierten Betriebssystem mit minimaler vorheriger Konfiguration installiert werden.

Apache Tomcat (manchmal einfach „Tomcat“ genannt) ist eine Open-Source-Implementierung der Technologien Java Servlet, JavaServer Pages, Java Expression Language und WebSocket. Tomcat bietet eine HTTP-Webserverumgebung mit „reinem Java“, in der Java-Code ausgeführt werden kann.

Was macht Tomcat?

Der genaue Titel für Tomcat wäre entweder „Webserver“ oder „Servlet-Container“. Auch wenn Tomcat einige Java EE-Funktionen nicht sofort unterstützt, können Sie die meisten dieser Funktionen dennoch verwenden. Tomcat ist ausgereift, gut dokumentiert und der am häufigsten verwendete Java-Anwendungsserver.

Tomcat empfängt eine Anfrage von einem Client über einen seiner Konnektoren. Tomcat ordnet diese Anforderung der entsprechenden Engine zur Verarbeitung zu. Wenn dies nicht der Fall ist, kompiliert Tomcat das Servlet in Java-Bytecode, der von der JVM (Java Virtual Machine) ausgeführt werden kann, und erstellt eine Instanz des Servlets.

Was ist Apache?

Apache ist eine Open-Source- und kostenlose Webserver-Software, die rund 40% aller Webseiten weltweit unterstützt. Es ermöglicht Website-Eigentümern, Inhalte im Web bereitzustellen – daher der Name „Webserver“. Es ist einer der ältesten und zuverlässigsten Webserver. Die erste Version wurde 1995 veröffentlicht.

Vorteile des Apache-Webservers

Der Quellcode von Apache steht jedem kostenlos zur Verfügung und es ist keine Lizenz erforderlich. Er kann geändert werden, um den Code anzupassen und Fehler zu beheben. Die Möglichkeit, weitere Funktionen und Module hinzuzufügen, macht Apache zu einem Favoriten unter den Technikern. Er ist sehr zuverlässig und bietet eine solide Leistung.

Apache und Tomcat

Einfach ausgedrückt: Apache ist ein Webserver, der statische Webseiten bedienen soll. Apache Tomcat hingegen ist ein Anwendungsserver für Java-Anwendungen (Servlets, JSPs usw.). Sie können Webseiten auch über Tomcat bereitstellen, dies ist jedoch im Vergleich zu Apache weniger effizient.

Der grundlegende Unterschied zwischen Tomcat und dem Apache HTTP Server besteht darin, dass Tomcat dynamischen Inhalt mithilfe von Java-basierter Logik bereitstellt, während der Hauptzweck des Apache Webservers darin besteht, statische Inhalte wie HTML, Bilder, Audio und Text bereitzustellen.

Tomcat kann als eigenständiger Server ausgeführt werden. Um Tomcat zusammen mit Apache auszuführen, muss Apache ein „Adapter“ -Modul laden, das ein bestimmtes Protokoll wie das Apache JServ Protocol (AJP) verwendet, um mit dem Tomcat über einen anderen TCP-Port (Port 8009 in der Standardkonfiguration) zu kommunizieren.

Was ist Java?

Java ist eine Programmiersprache, mit der Entwickler Anwendungen für Computer erstellen. Möglicherweise haben Sie ein Programm heruntergeladen, für das die Java-Laufzeit (Java Runtime) erforderlich ist. Java verfügt über ein Web-Plug-In, mit dem Sie diese Apps in Ihrem Browser ausführen können.

Als Anwendungsserver ist Tomcat entweder als Binär- oder als Quellcode-Version zugänglich und wird verwendet, um eine Vielzahl von Anwendungen und Websites über das Internet zu betreiben.

NGINX

NGINX (ausgesprochen: Engine X) ist Open Source-Software für Web-Serving, Reverse-Proxy, Caching, Lastausgleich, Medien-Streaming und mehr. Zusätzlich zu seinen HTTP-Serverfunktionen kann NGINX als Proxyserver für E-Mails (IMAP, POP3 und SMTP) und als Reverse-Proxy und Load Balancer für HTTP-, TCP- und UDP-Server fungieren.

NGINX ist ungefähr 2,5-mal schneller als Apache, basierend auf den Ergebnissen eines Benchmark-Tests, bei dem bis zu 1.000 gleichzeitige Verbindungen ausgeführt werden. NGINX liefert statische Inhalte eindeutig schneller als Apache. Wenn Sie viele statische Inhalte mit hoher Parallelität bereitstellen müssen, kann NGINX eine echte Hilfe sein.

Wie funktioniert Nginx?

Nginx funktioniert anders als Apache, hauptsächlich im Hinblick auf den Umgang mit Threads. Nginx erstellt nicht für jede Webanforderung neue Prozesse, sondern der Administrator konfiguriert, wie viele Arbeitsprozesse für den Hauptprozess von Nginx erstellt werden sollen. Jeder dieser Prozesse ist single-threaded. Jeder Mitarbeiter kann Tausende von gleichzeitigen Verbindungen verarbeiten. Dies geschieht asynchron mit einem Thread, anstatt Multithread-Programmierung zu verwenden..

Vergleich zwischen Apache Tomcat und Nginx

NGINX ist ein kostenloser Open-Source-Hochleistungs-HTTP-Server und Reverse-Proxy sowie ein IMAP/POP3-Proxy-Server. Apache Tomcat ist eine Open-Source-Implementierung von Java Servlet, JavaServer Pages, Java Expression Language und Java WebSocket-Technologien.

Unterschied zwischen Server und Virtueller Server (Virtual Machine VM)

Ein Webserver ist ein Computersystem, das Webseiten hostet. Es wird Webserver-Software wie Apache oder Microsoft IIS ausgeführt, die den Zugriff auf gehostete Webseiten über das Internet ermöglicht. Die meisten Webserver sind über eine Hochgeschwindigkeitsverbindung mit dem Internet verbunden und bieten OC-3 (Optical Carrier 3) oder schnellere Datenübertragungsraten. Durch eine schnelle Internetverbindung können Webserver mehrere Verbindungen gleichzeitig unterstützen, ohne sich zu verlangsamen.

Jeder Computer kann in einen Webserver verwandelt werden, indem Serversoftware installiert und der Computer mit dem Internet verbunden wird. Es gibt viele Webserver-Softwareanwendungen, einschließlich freier Software und kommerzieller Pakete.

Eine virtuelle Maschine (VM) ist ein Software-Computer, der als Emulation eines physischen Computers verwendet wird.Ein virtueller Server arbeitet in einer Umgebung mit mehreren Mandanten. Dies bedeutet, dass mehrere VMs auf derselben physischen Hardware ausgeführt werden. Ein Hypervisor (auch: Virtual Machine Monitor, kurz VMM) wird zum Erstellen und Verwalten von VMs verwendet, die über eigene virtuelle Computerressourcen verfügen.

Was ist RAM im Computer?

Computerspeicher oder Direktzugriffsspeicher (engl. RAM = Random Access Memory ) ist der kurzfristige Datenspeicher Ihres Systems.

Er speichert die Informationen, die Ihr Computer aktiv verwendet, damit schnell darauf zugegriffen werden kann. Je mehr Programme auf Ihrem System gleichzeitig ausgeführt werden, desto mehr Speicher wird benötigt.

Tomcat Speicherbelegung

Standardmäßig legt Tomcat seine eigene Speichergröße auf etwa 64 MB fest, was für Webanwendungen bei weitem nicht ausreicht.Sie können die „Startgröße“ und die „maximale Größe“ festlegen und den Heap-Speicherplatz erhöhen. Um die richtigen Werte für Ihre Plattform herauszufinden, müssen Sie den Befehl „java -X“ im Terminal eingeben.

PERL und das Kamel – wo Programmierung und Wüste aufeinandertreffen

PERL ist eine plattformunabhängige Programmiersprache. Die Skriptsprache unterstützt eine Software-Entwickelung in verschiedenen, sehr unterschiedlichen Programmierstilen. Anwendungen für das Web, die Bioinformatik und die Finanzwelt werden mit PERL entwickelt. Die Programmiersprache, in der sich auch Einsteiger leicht zurechtfinden, wurde von einem Sprachwissenschaftler erschaffen. Die Skriptsprache erlaubt viele Freiheiten, die allerdings zu unleserlichem Code führen können.

Als Skriptsprache wird PERL während der Laufzeit von einem Interpreter geparst und interpetiert. Der Programmierer muss nur wenigen Vorgaben folgen, um ein lauffähiges PERL-Skript zu schreiben. Ein Beispiel ist die IF-Anweisung, genauer gesagt das „IF NOT“, das in PERL „UNLESS“ lauten. Die Skriptsprache ist so nah an der natürlichen Sprache angelehnt, dass unter Umständen selbst ein Gedicht ein lauffähiges Programm sein kann.

Das PERL-Prinzip

Das Motto der Skriptsprache „There’s more than one way to do it“ kann mit „Viele Wege führen nach Rom“ übersetzt werden. Ihre Stärken liegen in der Vielseitigkeit, Leistungsfähigkeit, der plattformunabhängig und der Effizienz bei der Verarbeitung von Textdateien. Letztere werden seit jeher in der System- und Netzwerkadministration zum Lesen von Logfiles genutzt. Die große Flexibilität der Sprache eröffnet neue Möglichkeiten bei der Auswertung von Big Data-Beständen.

Umso öfter, umso kürzer

Als PERL-Paradoxon ist das als Huffman-Kodierung bekannte Prinzip, die Längen von Bezeichnern mit ihrer Verwendung in Beziehung setzt. Umso öfter ein Schlüsselwort genutzt wird, umso kürzer ist es. Dem erfahrenen Programmierer erleichtert dies die Schreibarbeit, für den Einsteiger kann das Lesen solcher Programme problematisch sein. Die Skriptsprache wird daher auch als „Write-Only-Language“ bezeichnet. Damit ist gemeint, dass die Programme zwar leicht zu schreiben, dann aber nicht mehr zu lesen sind. Teile des formalen Regelwerks wurden von der Programmiersprache Phyton übernommen.

Dynamische Webseiten

Zunächst wurde PERL fast ausschließlich als Unix-Skriptsprache genutzt. Der Durchbruch kam mit den ersten dynamischen Webseiten. Die aufgerufenen CGI-Skripte liefen auf dem Webserver und nicht wie bei Javascript im Browser des Benutzers.

Gleichzeitig bildeten sich zwei Programmierbereiche heraus. Die CGI-Skripte waren eher im Bereich der Systemadministration angesiedelt, während die PHP-Programmierer den Bau der Webseiten übernahmen. Im Zusammenhang mit dem bei PHP-Programmierern äußerst unbeliebten PERL entstand die Interpretation des Kürzels PHP als „Perl Hater’s Platform“.

PERL in der Praxis

Mit dem Wechsel zu den browserseitig generierten dynamischen Webinhalten schwand die Bedeutung der Skriptsprache – zumindest in der Webentwicklung. In der Systemadministration können mit den Skripten leicht die internen Limits bei den Dateigrößen umgangen werden. Unter System- und Netzwerkadministratoren ist die Skriptsprache auch als „Swiss Army Chainsaw“ bekannt. Dies ist auf die weltberühmten Schweizer Multifunktions-Taschenmesser bezogen, wobei PERL mit einer „Kettensäge“ gleichgestellt wird.

Ein Comeback konnte die Programmiersprache bei der Auswertung von Big Data feiern, denn das Durchforsten großer Datenmengen ist eine der Stärken der Skriptsprache. Damit wird die Skriptsprache auch im Finanzwesen und verwandten Bereichen, aber auch in der Bioinformatik eingesetzt.

PERL – eine Skriptsprache schreibt Geschichte

Larry Wall, ein Linguist, entwarf die Skriptsprache in 1987. Wall kombinierte seine sprachwissenschaftlichen Erkenntnisse mit Elementen aus der Programmiersprache C, der Skriptsprache awk und Unix-Befehlen. 1993 hatte sich PERL bereits zum leistungsfähigen Werkzeug entwickelt. Mit der Version 5 wurde ein völlig überarbeiteter Interpreter veröffentlicht sowie Objekte, Module und Referenzen unterstützt. Seit Version 5 ist eine objektorientierte Programmierung möglich, bei der Parameter an Funktionen übergeben bzw. entgegengenommen werden. Seither kann die Skriptsprache von Anwendern mit Modulen flexibel erweitert werden. Online sind die Module über das CPAN-Archiv abrufbar. Inzwischen sind mehr als 150.000 Module zu den verschiedensten Funktionen erhältlich.

PERL 6 als heutiger Standard

Nach 15 Jahren Entwicklungszeit wurde im Jahr 2015 die Version 6 offiziell freigegeben. Die Version 6 ergänzt die Familie um eine völlig neu entwickelte Variante. Verbessert wurden einige der historisch bedingten und viel diskutierten Kontroversen, die aus Kompatibilitätsgründen in den Vorgängerversionen nicht zu korrigieren waren. Mit der neuen Version konnte die Skriptsprache ihre Popularität nochmals erweitern. Gleichzeitig nehmen die Community-Mitglieder zu, womit umfangreiche Modulbibliotheken zugänglich werden.

Wie PERL das Programmiererleben leichter macht

Charakteristisch für die Skriptsprache ist die sichtbare Unterscheidung zwischen einfachen, skalaren und zusammengesetzten Datentypen. Variablennamen beginnen mit Sigil ($, @ oder %). Darüber erkennt die Programmiersprache, wie die Variable zu interpretieren ist, nicht aber wie sie definiert ist. Damit wird eine besonders einfache Verwendung von häufig benutzten Konstrukten erreicht. Mit den Write-Formaten wird ein einfaches Generieren von Reports unterstützt.

Die Kontrollstrukturen (If, While, Do) unterscheiden sich kaum von Java, JavaScript und C. PERL erlaubt bedingt formatfreien Quellcode, in dem der Interpreter fehlende oder zusätzliche Einrückungen, Leerzeichen und Zeilenbrüche nicht moniert. Damit der Parser Befehlsblöcke erkennt, werden sie mit Semikolon getrennt.

Dromedar – das Maskottchen der Skriptsprache

Falsch interpretiert wird bei der Skriptsprache gelegentlich das Maskottchen. Es wird als Kamel bezeichnet, ist aber tatsächlich ein Dromedar. Eines der bekannten Referenzwerke „Programming Perl“ ist wegen des Maskottchens auf dem Buchdeckel als „Kamelbuch“ bekannt. Der Verleger Tim O’Reilly erklärte dazu, dass auch PERL über lange Strecken ohne Wasser auskäme. Hässlich sei es auch, meinte er. Die PERL Foundation hat sich hingegen für eine aufgeschnittene Zwiebel entschieden. Der gefährliche und tückische Komodowaran ist das Motto-Tier der PERL-Distribution „Active Perl“ des Unternehmens ActiveState.

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