Grundlagen der Informatik – Routingtabelle
Grundlagen der Informatik - Routingtabelle - Routing Information Base
Da wir nun wissen, wie unser Netzwerk aufgebaut wird mit Subnetting, müssen wir nun unsere Router und Endgeräte konfigurieren, damit diese auch im Einsatz wissen, wie sie mit den kommenden Paketen umgehen müssen.
Einige werden sich vielleicht nun fragen, wieso denn die Endgeräte eine Routingtabelle führen müssen, aber der Grund ist eigentlich offensichtlich.
Unsere Netzwerkkarte muss wissen, wie Sie das Paket verschicken muss, damit es auch das Ziel erreicht. Denn die Netzwerkkarte muss wissen, ob es lokal, im eigenen Netzwerk oder in einem entfernten Netzwerk liegt.
Die Routingtabelle kann man auch jederzeit in der Konsole ausgeben lassen, unter Windows lautet der Befehl "route print".
Diese Routingtabelle wurde von Windows 7 automatisch erstellt und auffallend sind hierbei die doppelten Einträge.
Die Routingtabelle hat folgende Spalten: Netzwerk-Adresse, Subnetzmaske, Gateway/Router und Schnittelle.
Im Folgenden werden wir nun das Beispiel vom Subnetting-Artikel aufgreifen und daraus die Routingtabellen erstellen.
- Zu unserem Subnetting Beispiel ->
Für den Anfang werden wir die Routingtabelle des Router 1 erstellen:
| Zielnetzadresse | Subnetmask | Gateway/Router | Schnittstelle | Bemerkung |
| 127.0.0.0 | /8 = 255.0.0.0 | 127.0.0.1 | 127.0.0.1 | localhost |
| 192.168.1.0 | /28 = 255.255.255.240 | 192.168.1.14 | 192.168.1.14 | eigenes Netz (Entwicklung) |
| 192.168.1.40 | /28 = 255.255.255.240 | 192.168.1.46 | 192.168.1.46 | eigenes Netz (Fertigung) |
| 192.168.1.52 | /30 = 255.255.255.252 | 192.168.1.54 | 192.168.1.54 | eigenes Netz (RouterNetz2) |
| 0.0.0.0 | /0 = 0.0.0.0 | 192.168.1.53 | 192.168.1.54 | default Gateway (Router2) |
Der erste Eintrag: lokalhost. Dieser Standard hat jedes Endgerät automatisch integriert, jedoch ist dieser bei dem Router nicht unbedingt notwendig.
Danach kommen alle Netzwerke, die direkt am Router verbunden sind und nicht über einen weiteren Router bzw. Gateway laufen. Diese direkt anliegenden Teilnetze nennt man auch "eigene Netze", bei diesen ist die Schnittstelle und die Gateway/Router Angabe dieselbe, da der Router direkt das Paket ohne Hilfe eines weiteren Router ausliefern kann.
Auch das RouterNetz2 müssen wir als eigenes Netz eintragen, diese Einstellungen werden aber heutzutage von den meisten Routern automatisch konfiguriert.
Der letzte Eintrag 0.0.0.0 /0 ist für alle Pakete gültig und deshalb wird dieser Eintrag auch "Default Gateway" genannt. Somit werden alle Pakete, die der Router nicht direkt austeilen kann, an den dort eingetragenen Router weitergesendet. Dieser kann dann über den weiteren Verlauf des Datenpakets entscheiden.
Das Default Gateway ist auch für das Internet notwendig, denn somit kommen auch die Internetpakete mit netzfremden IP-Adressen an das Ziel.
Router 2
| Zielnetzadresse | Subnetmask | Gateway/Router | Schnittstelle | Bemerkung |
| 127.0.0.0 | /8 = 255.0.0.0 | 127.0.0.1 | 127.0.0.1 | localhost |
| 192.168.1.52 | /30 = 255.255.255.252 | 192.168.1.53 | 192.168.1.53 | eigenes Netz (RouterNetz2) |
| 192.168.1.48 | /30 = 255.255.255.252 | 192.168.1.49 | 192.168.1.49 | eigenes Netz (RouterNetz1) |
| 192.168.1.32 | /29 = 255.255.255.248 | 192.168.1.38 | 192.168.1.38 | eigenes Netz (Lager) |
| 192.168.1.0 | /28 = 255.255.255.240 | 192.168.1.54 | 192.168.1.53 | entferntes Netz (Router1 | Entwicklung) |
| 192.168.1.40 | /29 = 255.255.255.248 | 192.168.1.54 | 192.168.1.53 | entferntes Netz (Router1 | Fertigung) |
| 0.0.0.0 | /0 | 192.168.1.50 | 192.168.1.49 | default Gateway (Router3) |
Der Router 2 spielt eine bedeutende Rolle, da er entscheiden muss, ob das Datenpaket nach oben zum Router 1 oder nach rechts zum Router 3 muss.
Zuerst aber kommt wieder wie oben beschrieben der localhost und danach kommen alle "eigene Netz" Einträge. Diese Routernetze müssen am Anfang eindeutig festgelegt werden, mit der gleichen Schnittstelle und Gateway/Router wird das Datenpaket von dem Router aus zum Zielrouter gesendet.
Zum ersten Mal haben wir nun eine Aufteilung der Pakete zu unterschiedlichen Routern, diese "entfernte Netzte" müssen wir nun sorgfältig trennen. Wenn wir uns den Netzwerkplan anschauen, müssen Pakete der Entwicklung und Fertigung zum Router1 und alle anderen die nicht im eigenen Netzwerk sind müssen zum Router 3. Hierbei muss man nun achten, dass man bei der Schnittstelle die EIGENE ROUTER-IP-ADRESSE angibt und bei Gateway/Router muss man die ZIEL ROUTER IP-ADRESSE angeben.
Grundlagen der Informatik – Subnetting CIDR und VLSM
Grundlagen der Informatik - Subnetting mit CIDR und VLSM
Immer wichtiger wird das Verbinden von Computern, sei es Daheim oder in der Firma. Aus diesem Grund muss das Netzwerk so gut wie möglich geplant werden, damit es im Einsatz auch allem Stand hält.
Allgemein ist die Netzwerktechnik ein großes Themengebiet, in diesem Beitrag werden wir uns das Subnetting-Verfahren genauer anschauen.
Als Beispiel planen wir nun das Netzwerk innerhalb einer größeren Firma, die eine Entwicklung, Fertigung, Verwaltung und ein Lager hat. Diese Netzwerke sollen mittels des Subnetting-Verfahren sauber getrennt werden, um ein effizientes und sicheres Netzwerk aufzubauen. Man muss dazu noch beachten, dass in der Entwicklung für ein bevorstehendes Erweitern der Abteilung 5 Adressen reserviert werden sollen. Die Verwaltung soll auch 2 IP-Adressen reserviert halten.
Wenn man Subnetting verwendet, muss man sich aber auch vorab im Klaren sein, dass Router benötigt werden, die einzelne Teilnetzwerke miteinander verbinden. Ohne einen Router ist somit die Kommunikation mit einem anderen Teilnetzwerk nicht möglich.
Wir haben als Ausgangsnetz das Netzwerk: 192.168.1.0 /24 gegeben. Diese IP Adresse ist die Netzadresse und das im hinteren Teil, die "/24" weißt auf die Anzahl der 1 in der Subnetmask hin. In unserem Beispiel haben wir die ersten 24 Stellen der Maske auf 1 gesetzt und die restlichen 8 sind null:
1111 1111 . 1111 1111 . 1111 1111 . 0000 0000 (/24 Binär) 255 . 255 . 255 . 0 (dotted decimal, die übliche Angabe)
Mit dieser Information wissen wir nun, dass wir die Restlichen Adressen von 192.168.1.0 bis 192.168.1.255 verwenden dürfen. Es dürfen sich nur immer die Stellen ändern, die mit Nullen markiert sind!
Das Subnetting beinhaltet zwei verschiedene Verfahren:
- CIDR (Classles Inter-Domain Routing)
Hier wird eine feste Subnetzsmask für alle Teilnetzte festgelegt. Dadurch haben wir jedoch das Problem, dass bei unterschiedlichen Größen von Teilnehmern in einem Teilnetzwerk wir das größte Verwenden müssen. Bei unserem Beispiel müssten wir für 5 Adressen Reservieren und dann hätte das Lager auch 5, obwohl es nur 2 bräuchte. - VLSM (Variable-Length Subnet Masking)
Hier bekommt jedes Teilnetz eine eigene Subnetzmask, die sich anhand der Anzahl der teilnehmenden Geräte orientiert. Dieses Verfahren ist komplexer, da man auf mehrere Fälle achten muss, damit es reibungslos funktioniert.
Für die optimale Nutzung werden wir das VLSM-Verfahren verwenden.
Lösung des Problems: Einteilen der Teilnetze mit dem Erweitern von Netzwerkgeräten.
Um ein wirklich effektives Netzwerk zu erhalten, muss man darauf achten, dass die Kollisionsdomänen möglichst gering gehalten werden und natürlich müssen innerhalb eines Teilnetzes die einzelnen Endgeräte mittels einem Switch verbunden werden. Die Router sind somit über einen Switch zu den einzelnen Teilnetzen verbunden. Man kann auch deutlich erkennen, dass wir 3 Router verwenden, die auch eine direkte Verbindung zum anderen Router haben. Natürlich ist es auch möglich einen 5 Port Router zu verwenden, der zwischen 5 Teilnetzen Arbeiten kann, jedoch aufgrund baulicher Begebenheiten ist es oftmals nicht möglich das so zu organisieren und deshalb werden mehrere Router verwendet.
Wir haben nun Folgende Teilnetze:
- Entwicklung - Teilnetz 1 mit 5 Endgeräten + 5 reservierte Adressen + dem Router-Port = 11
- Verwaltung - Teilnetz 2 mit 4 Endgeräten + 2 reservierte Adressen + dem Router-Port = 7
- Lager - Teilnetz 3 mit 2 Endgeräten + 1 = 3
- Fertigung - Teilnetz 4 mit 2 Endgeräten + 1 = 3
Das war jetzt jedoch nicht alles, da die Netzwerke zwischen den Routern und dem Internet auch beachtet werden müssen, für eine Reibungslose Verwendung.
- Router-Netz 1 mit 2 IP-Adressen
- Router-Netz 2 mit 2 IP-Adressen
- Internet-Netz
Es ist Notwendig, damit man bei dem VLSM-Verfahren das größte Netzwerk zuerst verwendet, da kleinere Netzwerke nur an der Stelle eines Vielfachen der Subnetmask starten können.
Hier ist der Vergleich zwischen den VLSM und dem CIDR Verfahren:
Weiteres notwendiges Wissen:
Jedes Teilnetz brauch 2 Adressen mehr, die für die Netzadresse und dem Broadcast verwendet werden!
Im folgenden Schritt müssen wir jetzt schauen, wie groß die Subnetmask sein muss, damit alle Geräte untergebracht werden:
Subnetmask und Anzahl der Verfügbaren Adressen
/24 = 255.255.255.000 hat 256 Adressen - Netzadresse und Broadcast = 254 IP-Adressen /25 = 255.255.255.128 hat 128 Adressen - (NA + BC) = 126 IP-Adressen /26 = 255.255.255.192 hat 64 Adressen - (NA + BC) = 62 IP-Adressen /27 = 255.255.255.224 hat 32 Adressen - (NA + BC) = 30 IP-Adressen /28 = 255.255.255.240 hat 16 Adressen - (NA + BC) = 14 IP-Adressen /29 = 255.255.255.248 hat 8 Adressen - (NA + BC) = 6 IP-Adressen /30 = 255.255.255.252 hat 4 Adressen - (NA + BC) = 2 IP-Adressen
Daraus können wir nur ablesen, welche Subnetmask jedes Teilnetzwerk brauch:
Entwicklung = 11 IP-Adressen, also /28 = 255.255.255.240 -> 3 IP-Adressen ungenutzt Verwaltung = 7 IP-Adressen, also /28 = 255.255.255.240 -> 7 IP-Adressen ungenutzt Lager = 3 IP-Adressen, also /29 = 255.255.255.248 -> 3 IP-Adressen ungenutzt Fertigung = 3 IP-Adressen, also /29 = 255.255.255.248 -> 3 IP-Adressen ungenutzt RouterNetz1 = 2 IP-Adressen, also /30 = 255.255.255.252 -> 0 IP Adressen ungenutzt RouterNetz2 = 2 IP-Adressen, also /30 = 255.255.255.252 -> 0 IP Adressen ungenutzt
Als letzten Schritt müssen wir nun die Netzadressen, Subnetmask, Broadcast und den Hostadressbereich festlegen:
Nun muss man die Hostadressen bei den Endgeräten festlegen und innerhalb den Routern die Routingtabellen erstellen, diese werden im nächsten Beitrag ausführlich erklärt.
Update: Lösung wurde verbessert, da es einen kleinen Fehler bei der Adressvergabe gab.
Tutorial: Grub2 Bootreihenfolge Ändern – Ubuntu 10.10
Tutorial: Grub2 Bootreihenfolge Ändern - Ubuntu 10.10
Der neue Bootloader Grub2 hat viele neue Funktionen und es werden auch nun endlich nicht mehr alle Einträge geändert, sobald man es Updatet. Jedoch gibt es jetzt nicht mehr die bekannte "/boot/grub/menu.lst", die alle Systemeinträge beinhaltet.
Seit Ubuntu 9.04 wird der Grub2 Bootloader verwendet und um jetzt die Bootreihenfolge den eigenen Wünschen anzupassen, muss man folgendes machen:
Zuerst muss man mit dem Dateibrowser Nautilus eine kleine Änderung durchführen. Dies ist aber nur mittels den Administrationsrechten möglich. Einfach in der Konsole (Anwendungen -> Zubehör -> Terminal) folgende Zeile eintippen.
sudo nautilus /etc/grub.d
In dem geöffnetem Fenster sehen Sie nun alle Einträge, die Ubuntu bei der Installation automatisch erstellt hat.
Die Datei 00_header beinhaltet die Headerinformationen des Grub2 Bootloaders und die Datei 05_debian_theme sorgt für das Ubuntu Design. Die Einträge 10 bis 40 sind die einzelnen Betriebssysteme, die am Anfang zur Auswahl stehen.
- 10 Linux
- 20 Memory-Test
- 30 Windows
- 40 Benutzerdefiniert
Wenn man nun Windows als 1. Eintrag haben will, damit dieses immer automatisch gestartet wird, so muss man die Datei "30_os-prober" umbenennen in "09_os-prober".
Dadurch hat dieser Eintrag die kleinste Nummer und wird vor Linux mit 10 angezeigt.
Es sollte dann so aussehen:
Jetzt muss man dem System nur noch sagen, dass es die Reihenfolge aktualisieren soll. Damit dies nun durchgeführt wird, muss man nur noch eine kleine Zeile im Terminal ausführen:
sudo update-grub
Dieser Befehl aktualisiert die grub.cfg Datei schnell und sicher, sodass es beim nächsten Systemstart keine Probleme auftreten.
Wie man bei dem Bild auch gut erkennen kann, zeigt es auch nun im Terminal alle gefundenen Einträge an, in derselben Reihenfolge, wie sie auch beim Systemstart verwendet werden.
Natürlich gibt es auch die Möglichkeit direkt in der grub.cfg die Einstellungen von Hand zu ergänzen, jedoch ist es dann nicht mehr möglich ein Betriebssystem zu starten, wenn sich ein kleiner Fehler in diese sehr wichtige Konfigurationsdatei einschleicht, daher sollte man unbedingt diese Datei automatisch von dem System generieren lassen.
qTranslate vollständig entfernen [SQL Skript]
qTranslate vollständig entfernen
Wenn man das WordPress Plug-In qTranslate entfernt, hat man danach einige Probleme mit der Datenbank. Denn die Datenbank wird nach dem deinstallieren des Plug-Ins nicht gesäubert.
Das Problem ist nun, dass alle mehrsprachigen Inhalte auf einmal in dem Post angezeigt werden. Die mehrsprachige Trennung erfolgt durch den Kommentar-tag: "<!--:en-->" ... "<!--:-->" alles zwischen den Tag wurde nur in der englischen Ansicht angezeigt. Für en können sie folgende Inhalte einsetzten:
- de = deutsch
- it = italienisch
- fr = französisch
- es = spanisch
- usw.
Damit sie erfolgreich die Datenbank aktualisieren können, empfehle ich Ihnen ein Backup von den Tabellen "wp_posts" und "wp_terms" Ihrer Datenbank zu erstellen. Am besten mit dem phpMyAdmin in dem Reiter "Exportieren".
Sobald Sie ihr Backup erstellt haben, können Sie folgenden SQL-Befehl durchführen*:
1 2 3 4 5 6 7 8 9 10 11 | UPDATE wp_posts SET post_content = CASE WHEN LOCATE('<!--:en-->', post_content) > 0 THEN SUBSTRING(post_content, LOCATE('<!--:en-->', post_content)+10) ELSE post_content END; UPDATE wp_posts SET post_content = CASE WHEN LOCATE('<!--:-->', post_content) > 0 THEN SUBSTRING(post_content, 1, LOCATE('<!--:-->', post_content)-1) ELSE post_content END; UPDATE wp_posts SET post_title = CASE WHEN LOCATE('<!--:en-->', post_title) > 0 THEN SUBSTRING(post_title, LOCATE('<!--:en-->', post_title)+10) ELSE post_title END; UPDATE wp_posts SET post_title = CASE WHEN LOCATE('<!--:-->', post_title) > 0 THEN SUBSTRING(post_title, 1, LOCATE('<!--:-->', post_title)-1) ELSE post_title END; UPDATE wp_posts SET post_excerpt = CASE WHEN LOCATE('<!--:en-->', post_excerpt) > 0 THEN SUBSTRING(post_excerpt, LOCATE('<!--:en-->', post_excerpt)+10) ELSE post_excerpt END; UPDATE wp_posts SET post_excerpt = CASE WHEN LOCATE('<!--:-->', post_excerpt) > 0 THEN SUBSTRING(post_excerpt, 1, LOCATE('<!--:-->', post_excerpt)-1) ELSE post_excerpt END; UPDATE wp_terms SET name = CASE WHEN LOCATE('<!--:en-->', name) > 0 THEN SUBSTRING(name, LOCATE('<!--:en-->', name)+10) ELSE name END; UPDATE wp_terms SET name = CASE WHEN LOCATE('<!--:-->', name) > 0 THEN SUBSTRING(name, 1, LOCATE('<!--:-->', name)-1) ELSE name END; |
* Dieser SQL-Befehl wurde von "guido" im qTranslate Forum veröffentlicht - Zu dem Beitrag ->
Ich selbst habe diesen SQL-Befehl auf meiner großen Datenbank ausgeführt und alle Posts sind perfekt erhalten und es traten keine Fehler auf, jedoch bei falscher qTranslate Verwendung oder mangelhafter Datenbank können größere Fehler zustande kommen.
Problemlösung mit qTranslate und WordPress 3.0.2
Problemlösung mit qTranslate und WordPress 3.0.2
Jeder der wo auf das neue WordPress 3.0.2 aktualisiert hat und die neueste Version von qTranslate verwendet hat Probleme mit dem Publizieren von Artikeln. Obwohl in dem neuen WordPress 3.0.2 keine Änderungen sind, die das Plug-In stören könnten, wird es aus Sicherheitsgründen deaktiviert und nicht wirklich ausgeführt.
Damit man qTranslate dennoch verwenden kann, muss man nur eine kleine Änderung vornehmen. Diese kann man direkt im Dashboard machen oder mittels des FTP Upload aktualisiert werden.
Für die Nutzer im Dashboard
Deaktivieren Sie zuerst qTranslate.
Im Dashboard in der linken Rubrik "Plugins" auf den Unterpunkt "Editor" klicken. Danach bei "zu bearbeitendes Plugin wählen" das "qTranslate"-Plugin auswählen, mit einem Klick auf "-Wähle-" kann man dann das Plugin bearbeiten.
Vergewissern Sie sich, dass sie die Datei "qtranslate/qtranslate.php" bearbeiten, diese muss in der rechten Spalte blau hinterlegt sein.
Nun müssen Sie folgende Änderung durchführen:
In Zeile 79:
muss der Eintrag
79 | define('QT_SUPPORTED_WP_VERSION', '3.0.1'); |
in
79 | define('QT_SUPPORTED_WP_VERSION', '3.0.2'); |
geändert werden.
Mit einem Klick auf "Datei aktualisieren" wird die Änderung angenommen und Sie können das Plugin wie gewohnt mit der neuen Version verwenden.
Die FTP-Version (fortgeschritene)
Deaktivieren Sie qTranslate und laden Sie sich im qTranslate Pluginordner die Datei "qtranslate.php" herunter. Öffnen Sie diese und ändern Sie die Zeile 79:
79 | define('QT_SUPPORTED_WP_VERSION', '3.0.1'); |
in
79 | define('QT_SUPPORTED_WP_VERSION', '3.0.2'); |
Nachdem Sie die Datei gespeichert haben, laden Sie diese einfach wieder über FTP hoch.
Zuletzt müssen Sie nur noch das Plugin verwenden.
Was macht diese Änderung?
Diese Änderung ist eine Definitionsänderung, d. H. diese Zeile setzt die unterstützte WordPressversion fest. WordPress sucht nach dieser Definition und sollte dies nicht mit der laufenden WordPressversion übereinstimmen, so wird das Plugin automatisch beendet.
Lexikalischer, Syntax- und semantischer Fehler – Informatik Grundlagen
Lexikalischer, Syntax- und semantischer Fehler - Grundlagen der Informatik
Bei dem kompilieren des Quellcodes können verschiedene Arten von Fehler passieren, die jedoch in einer bestimmten Reihenfolge abgefangen werden.
1. Lexikalischer Fehler
Das erste was der Compiler macht, ist das ganze Dokument durchsuchen nach unerlaubten Zeichen. Früher konnte man nur im ASCI-Schriftsatz programmieren, deshalb konnte man Sonderzeichen wie "ä","ö","ü" und "ß" nicht verwenden. Aber heutzutage unterstützen die meisten Programmiersprachen den UNI-Code und somit sind weitgehend alle Zeichen verwendbar. In Java hat man mit Sonderzeichen auch keine Probleme mehr.
2. Syntaxfehler
Die häufigsten Fehler überhaupt sind die Syntaxfehler, den diese kommen zustande wenn man z. B. die Klammern vergisst "}",")" und "[" oder je nach Programmiersprache auch das beliebte Abschlusszeichen ";". Man bedenke: Jede geöffnete Klammer benötigt auch eine geschlossene Klammer.
3. Semantischer Fehler
Diese Fehler entstehen, wenn man in seinem Quelltext auf Klassen und/oder Methoden zugreifen will, die nicht zur Verfügung stehen bzw. nicht vorhanden sind.
Compiler und Interpreter – Informatik Grundlagen
Grundlagen der Informatik : Compiler und Interpreter
Jede Programmiersprache benötigt ein Compiler und manche sogar noch einen Interpreter. Einleuchten wird dieser Satz, wenn wir uns den Aufbau eines Computers genauer anschauen, denn wenn wir programmieren, schreiben wir Texte in leserlichen ASCII oder UNI-CODE Zeichen, mit denen unser CPU eigentlich nichts anfängt. Daher benötigen wir einen Übersetzer, der unseren geschriebenen Quellcode in den Maschinencode umändert.
Wozu brauchen wir einen Interpreter?
Da es viele Programmiersprachen gibt, müssen wir den Quellcode für jedes Betriebssystem und Architektur anders Übersetzten. Denn z. B. der Aufruf von einem Fenster läuft auf einem Windows PC ganz anders ab, als in einem Mac oder Linux Computer.
Interpreter sind somit notwendig, wenn das Programm für mehrere Plattformen funktionieren soll.
Genauer Ablauf in Java
Zuerst wird unser geschriebener Quelltext (*.java Dateien) mittels den Java Compiler umgewandelt in einen Bytecode.
Dieser Bytecode ist nicht komplett leserlich, aber sobald ein System/Plattform abhängiger Aufruf stattfindet, kann man einen leserlichen Schriftzug erkennen. Der Bytecode wird in der "*.class" Datei abgespeichert oder in ganzen Gruppen als "*.jar" Datei.
Der Interpreter liest nun diesen Bytecode und wandelt die fehlenden Stellen um, sodass ein vollständiger Maschinencode entsteht. Deshalb muss man bei der Installation des Interpreters auf das eigene Betriebssystem achten, damit die Übersetzung erfolgreich und ausführbar ist.
Der Maschinencode wird dann sofort ausgeführt, im Rahmen der Java Virtual Machine.
- Zu dem Compiler Interpreter Tutorial ->
- Zu dem Java Virtual Machine Tutorial ->
Programmieren in C++ – Teil 2
Programmieren in C++ – Teil 2
- zu Programmieren in C++ - Teil 1 ->
Deklaration
Bei einer Deklaration wird eine Variable festgelegt, dabei ist entscheidend welchen Datentyp sie hat und optional kann man einen Startwert angeben.
int meineZahl = 5
<Datentyp> <Variablenname> = <Startwert>
Bedingungen:
Die bekannteste Bedingung, auch Verzweigung genannt, ist die IF-Abfrage:
if ( password == "Hallo" ) { //wenn der Fall zutrifft }else{ //wenn der Fall NICHT zutrifft }
Die Switch’n’Case Mehrfachverzeigung
Die Variable „wert“ darf nur int, long, short oder char sein.
swich(wert) { case 1: // Anweisungen für 1 break; case 2: //Anweisungen für 2 break; case 3: //Anweisungen für 3 break; default: //Anweisung für andern Wert break; }
Schleifen:
Schleifen werden verwendet um oft verwendete Anweisungen bzw. Befehle einfach zu wiederholen, ohne es im Quellcode mehrfach kopieren zu müssen.
Man unterteilt die Schleifen in 3 Arten:
Kopfgesteuerte Schleife:
while( BEDIGNUNG ) { //Aktionen }
Fußgesteuerte Schleife:
do{ //Aktionen }while( BEDINGUNG )
Zählschleife:
for ( int i = 0; i < 70; i++) { //Ausführung die 70 Mal erfolgt }
Compiler
Das wichtigste Element, bei dem erstellen von Programmen. Denn der Compiler wandelt unseren Quellcode um, in einen Maschinencode. Dieser Maschinencode ist dann auf den jeweiligen Prozessor abgestimmt und kann nur auf der ausgewählten Architektur laufen. Eine Architekturist somit von dem verwendete µControler abhängig.

Der Compiler weist auch auf Fehler im Quelltext hin, die nach verschiedenen Kriterien sortiert werden:
Lexikalische Analyse: Überprüft ob Sonderzeichen im Quellcode verwendet werden, die nicht zugelassen sind, wie z. B. „ä“ , „ö“ , „ü“ und „ß“.
Syntaktische Analyse: Untersucht ob alle Syntaxrichtlinien eingehalten worden sind. Darunter fällt z. B., dass jede geöffnete Klammer „{“ eine geschlossene Klammer „}“ hat.
Semantische Analyse: Vergleicht ob die Inhalte der Bibliotheken, Module und Datentypen richtig verwendet wurden.
Benjamin Salchow
Alte Mobility Radeon Grafikkarten zum Laufen Bringen – Grafikkartentreiber Modder
Den Grafikkartentreiber selber basteln
Jeder der einen etwas älteren Notebook hat, weiß wie schwer es ist, einen aktuellen Grafikkartentreiber zu bekommen. Vor allem der Umstieg auf Windows 7 machen nur sehr wenige Hersteller mit, was die Treiberbereitstellung angeht.
Wir vom VHPD-Blog haben das unmögliche möglich gemacht.
Unser Notebook:
- Modell
HP: Compaq nc600 - Prozessor
Intel Pentium M; 1600 MHz - Festplatte
50 GB; 1 große Partition und 100 MB Windows System - Grafikkarte
ATI Mobility Radeon 9600 mit 32 MB Speicher - Arbeitsspeicher
512 MB (Verwendbar 511 MB) - Betriebssystem
Windows 7 32 Bit - Professional
Jeder der ein Hauch IT-Erfahrung hat, weiß genau, dass dieses Vorhaben nahezu unmöglich ist. Als Hauptproblem sollte sich die Grafikkarte mit ihren winzigen 32 MB herausstellen. Aber nach der Konfiguration ist das System mit Windows 7 sogar noch schneller und verspricht eine längere Laufzeit im Akkumodus.
Hier zwei Screens von meinem Notebook:
Was sagt HP zu dem alten Notebook und Windows 7
Windows 7 ist ein gelungenes Betriebssystem, jedoch sei mein altes HP Notebook nicht kompatibel mit Windows 7 und Windows Vista, ich sollte mir doch bitte die beiliegende XP-Version verwenden. Treiber für Ihre Hardware sind nicht unter Windows 7 kompatibel.
Was sagt ATI zu diesem Fall?
Ich soll mich doch bitte an meinen Hersteller des Notebooks wenden, da jeder Hersteller seine eigenen Treiberkonfigurationen hat und ATI nicht in der Lage sei, einen allgemeinen Treiber anzubieten.
Lösung
Da es keinen Treiber gibt, der für die Grafikkarte lauffähig ist, müssen wir uns selber einen Grafikkartentreiber basteln. Das ganze hört sich jetzt kompliziert an, ist es eigentlich auch, wenn es da nicht ein tolles Tool namens "ATI Mobility Modder.net" geben würde.
Dieses Tool kann einen Originalen ATI Grafikkartentreiber umschreiben, zu einem voll funktionierenden ATI Mobility Grafikkartentreiber. Eine Liste der Unterstützten Grafikkarten finden Sie am Ende des Eintrags, nach dem Klick auf "weiter lesen".
Schritt für Schritt Anleitung
- Sie müssen wie gewohnt Windows 7 oder Vista installieren.
- Nachdem die Installation abgeschlossen ist, müssen Sie den ATI Mobility Modder Downloaden.
- Download des ATI Mobility Modder -> - Herunterladen eines aktuellen Originaltreibers. Unterstützt werden alle auf der DriverHeavenDownload Seite.
- Downloadliste der ATI Treiber -> - Starten der Installation des Originaltreibers. Jedoch soll dieser Treiber nur entpackt werden, also bis zu diesem Punkt:
Danach klickt man auf Abbrechen. - Schauen Sie im Explorer nach, ob der ATI Treiber in das Verzeichnis "C:ATI/SUPPORT/" entpackt wurde.
- Installieren Sie nun den ATI Mobility Modder, den Sie im 2. Schritt heruntergeladen haben.
- Starten Sie den ATI Mobility Modder.
- Setzen Sie einen Hacken bei "Disable User Accunt Control (UAC)", danach werden Sie aufgefordert, das System neu zu starten.
Sie müssen für diesen Zeitraum den Benutzerschutz deaktivieren, damit der Treiber korrekt modifiziert werden kann. Sollten Sie dies nicht machen, könnte es zu Problemen mit dem Treiber kommen. Sie sind keiner Gefahr ausgesetzt, wenn Sie vor diesem Vorgang die Internetverbindung schließen. - Nach dem Neustart des Systems öffnen Sie den ATI Mobility Modder erneut.
- Klicken Sie auf "Browse" und wählen Sie den entpackten Treiber, den Sie im 5. Schritt gesucht haben.
z. B. "C:\ATI\SUPPORT\7-4_vista32_dd_ccc_enu_44985" - Klicken Sie auf "Modify" und warten Sie, bis der Treiber modifiziert wurde.
- Wenn alles reibungslos geklappt hat, öffnen Sie ihren Explorer und gehen Sie in das ausgewählte Verzeichnis.
- Starten Sie die "Setup.exe"
und installieren Sie den ATI Treiber wie gewohnt. - Bitte beachten Sie, dass dieser Treiber, durch die Modifizierung nicht durch ATI digitalisiert werden kann, daher müssen Sie bestätigen, dass Sie einen nicht digitalisierten Treiber installieren.
- Nach der Installation starten Sie Ihren PC neu.
- Starten Sie ein letztes Mal den "ATI Mobility Modder" und machen Sie den Hacken bei dem "Disable User Accunt Control (UAC)" heraus und Ihr System läuft wieder auf der gleichen Sicherheitsstufe als vor der Installation.
- Genießen Sie Ihren richtig installierten Grafikkarten Treiber mit allen Funktionen.
Die komplette englische Anleitung finden Sie hier ->
Ist das legal? Habe ich danach Sicherheitsprobleme?
Sie sind berechtigt für Ihren privaten PC den Treiber zu modifizieren, jedoch geht dabei der ATI Support verloren, aber dafür bietet dann der ATI Mobility Modder einen gelungenen Forumsupport, jedoch auf Englisch. Das Tool kann man KOSTENLOS beziehen, der Entwickler freut sich aber über eine Spende.
Sicherheitsprobleme gibt es keine, solange Sie keine Viren in der Zeitspanne starten, nach der Deaktivierung des UAC bis zur Reaktivierung.
VHPD Fazit
Ein super gelungenes Tool, das mir den Kauf eines neuen Notebooks erspart hat. Ich kann nun den Notebook ohne jeglicher Einschränkung nutzen und Windows 7 läuft sehr gut darauf. Jedoch habe ich ein 1 GB RAM bestellt, damit das Ganze noch ein wenig schneller wird.
Lassen Sie sich nicht immer von den Herstellern hintergehen, es gibt genug Möglichkeiten Treiber zum Laufen zu bringen. Sie können sogar XP-Treiber auf Windows 7 verwenden, wie das geht und welche Risiken dabei entstehen werde ich ein anderes Mal berichten.
Was ist MySQL und ein DBMS?
Einführung
MySQL ist ein DBMS (Datenbank Management System). Darunter kann man sich eine Anwendung vorstellen, die Informationen verwaltet und abgespeichert.
Normaler weiße können wir mit einem PC nur auf eine Datei zugreifen auf der Festplatte. Wenn wir aber nun ein Netzwerklaufwerk benutzen, dann kann nur ein Benutzer die Datei bearbeiten, der andere kann sie nur schreibgeschützt öffnen. Aus diesem Grund hat man sich ein System überlegt, welche die Daten verwaltet.
Ein Programm erhält vollen Zugriff auf die Datei, die auf der Festplatte gespeichert wurde und dieses Programm kann man mit Befehle ansprechen. Diese Befehle können dann den Inhalt ändern und ausgeben. Nun ist es mittels diesem "Serverprogramm" möglich, dass mehrere Benutzer auf die gleichen Daten bzw. Informationen zugreifen kann.
DBMS - Aufbau
Auf diesem Bild kann man nun klar erkennen, dass der Benutzer (CLIENT) nicht direkt auf die Datei (Datenbank - gelber Zylinder) zugreifen kann. Wie wir bereits wissen: Nur 1 Programm kann auf eine Datei zugreifen und sperrt somit den Zugriff von weiteren Benutzer oder Programmen.
Mittels den Anfragen (Query) erarbeitet das DBMS eine Antwort aufgrund der Datenbank, die wir innerhalb kurzer Zeit erhalten.
Das Netzwerk kann Internet, Intranet und ein lokaler Zugriffspunkt sein.
Beispiele
MySQL ist einer der am meist benutzten Datenbank Management Systeme im online Bereich. Die serverseitige interpretierte Skriptsprache PHP kann sehr gut mit MySQL zusammen arbeiten, daher verwenden Webseiten wie Google, e-Bay und yahoo ein DBMS. Selbst auf diesem Server läuft eine MySQL 4 Datenbank, die alle Einträge und Einstellungen darauf beinhaltet.






Abbonieren