|
|
Neue Freigaben von Fedora und andere GNU/Linux Verteilungen umfassen eine Hardware-Abstraktions-Schicht (HAL) die verwendet wird, um bedienungsfertige Fähigkeiten der Vorrichtung zu stützen. In diesem Pfosten zeige ich Ihnen, wie Ihre Shell-Skripts HAL verwenden können, um Vorrichtungs- und Systemsinformationen zurückzuholen.
Der Ausdruck HAL wird als er verwendete, um beide auf eine Spezifikation und die tatsächliche Software zu verweisen überbelastet, die die Spezifikation einführt. Von einer Anwendungsentwicklerveranschaulichung ist HAL Weise, die Fähigkeiten und die Eigenschaften der Hardware aufzuzählen angebracht zu einem System und Mitteilung zu empfangen, wenn etwas über die Hardware ändert.
Zuerst ein sehr schneller Überblick über HAL. Jedes Einzelteil der körperlichen Hardware in einem Computer wird als seiend ein Vorrichtungsgegenstand angesehen, der durch ein einzigartiges Gerätekennzeichen (UDI) identifizierente. Mit jedem Vorrichtungsgegenstand ist ein variabler Satz gut definierte geschriebene benannte Vorrichtungseigenschaften der Schlüsselwert Paare (oder Metadaten), die beschreiben, was jeder Vorrichtungsgegenstand zusammen mit seinen Eigenschaften darstellt. Einige Vorrichtungseigenschaften werden von der tatsächlichen körperlichen Hardware abgeleitet, werden einige von den XML-formatierten Akten vermischt, bekannt als Vorrichtungs-Informations-Akten, und einige werden von der Konfiguration des aktuellen Gerätes abgeleitet. Vorgeschriebene Vorrichtungseigenschaften werden in der HAL Spezifikation definiert.
A
Die Musterabgleichung ist ein wichtiger Bestandteil jedes modernen Oberteils. Das Oberteil ksh93 stützt beide regulären Ausdrücke sowie, was ausgedehnte Muster genannt wird. Ausgedehnte Muster können für Kategorie oder Art der ausgedehnten regulären Ausdrücke gehalten werden. Der Zweck diesem Pfosten ist, mit einigen Beispielen zu erklären, wie man die Energie der ausgedehnten Muster in Ihren Indexen ksh93 verwendet.
In den vorhergehenden Pfosten besprach ich die SpiderMonkey Befehlszeile Oberteil js und wie man Unterstützung ihr hinzufügt, um dem vollen Zugriff (gelesen, schreiben Sie, verursachen Sie, kopieren Sie, löschen Sie, etc.), zum lokalen Dateisystem über den Aktengegenstand und die NSPR Bibliothek zu ermöglichen.
Beim im Quellencode und den Unterlagen für js herum rumaging, fand ich, dass js teilweise die EX4 XML Verlängerung über eine konfigurierbare Wahl des Benutzers stützten.
Dieser Pfosten betrachtet, was er nimmt, um ein XML Dokument in js von Ihrem lokalen Dateisystem zu laden, es zu verarbeiten und das resultierende Dokument zu Ihrem lokalen Dateisystem unter Verwendung der Aktengegenstände und der E4X Verlängerung auszuschreiben.
Das ECMAScript für XML (E4X) (ECMA-357) Spezifikation fügt gebürtige Unterstützung für XML Gegenstände und XMLList Gegenstände der Programmiersprache des Javascript hinzu. Dieser Standard wurde zuerst 2004 veröffentlicht und basierte auf den XML Verlängerungen, die im BEA bereitgestellt wurden (jetzt Oracle) Weblogic Werkstattprodukt. Diese Verlängerungen wurden von Terry Lucas und von John Schneider entworfen, die das ECMAScript für XML (E4X) Initiative führten.
Die Basisidee hinter E4X war, dass Aussagesprachen wie XSL und XPATH zu kompliziert sind, damit der durchschnittliche Programmierer schnell erlernt und folglich eine einfachere Weise des Zurückgreifens und der Manipulierung auf XML Dokumente erforderlich war. Persönlich ich bin nicht mit dieser Behauptung einverstanden.
Als Nebenwirkung z.Z. ist Schneider Gründer und CEO bei AgileDelta, das die leistungsfähige XML Spezifikation des binären Formats entwickelte, die ich plane, ungefähr in einen zukünftigen Pfosten zu schreiben. Eine W3C Arbeitsgruppe entwickelt z.Z. die EXI Spezifikation, die auf der AgileDelta Spezifikation basiert.
Da Sie vermutlich bewusst sind, erlauben Javascriptmaschinen wie SpiderMonkey gewöhnlich Zugang zum lokalen Dateisystem nicht aus Gründen der Sicherheit. Um Entwicklern zu ermöglichen die Indexe von einer Befehlszeile zu prüfen, umfaßt js die Funktion der Last () die Ihnen ermöglicht eine oder mehrere Javascriptindexe in die SpiderMonkey Maschine zu laden. Jedoch ist dieses nicht zu unseren Zwecken genügend, da keine Mittel, zum Dateisystem zu schreiben zur Verfügung gestellt wird. Genauer betrachtend dem Quellencode, beachtete ich Unterstützung für Aktengegenstände. Diese Unterstützung wird nicht durch Rückstellung jedoch ermöglicht. Es ist nicht genügend recompile einfach SpiderMonkey mit dieser ermöglichten Wahl; Sie müssen die Netscape-bewegliche Laufzeit (NSPR) Bibliothek auch herunterladen und errichten. Diese Bibliothek stellt eine Plattform-Null-API für Systemebene und libc-wie Funktionen zur Verfügung und wird durch einige Mozilla Projekte und andere Drittpartei-Softwareentwickler verwendet. Die aktuelle Version ist 4.7.3 und Sie können sie hier herunterladen.
Es gibt einige gotchas zum Errichten von Spidermonkey mit NSPR. Zuerst müssen Sie NSPR erfolgreich errichten. Das Quellencode tarball für NSPR kommt mit dem Standard-GNU autoconfigure Werkzeuge. Wenn Sie auf einem 64-bitsystem sind, müssen Sie durchführen zusammenbauen mit der - enable-64bit Wahl; andernfalls fällt der Bau schnell aus. Sie sollten den Bau dann prüfen, indem Sie zum Testunterverzeichnis gehen, das testsuite errichten und es durchführen. Sie müssen auch SpiderMonkeys Makefile.ref (mich nehme, Sie an dass SpiderMonkey 1.7 und nicht eine frühere Freilassung errichten), ändern um libnspr und die NSPR Überschriften mit einzuschließen. Zwei Kompilierzeit definiert sind erforderlich. Sie können entweder JS_HAS_FILE_OBJECT und JS_THREADSAFE in Makefile.ref oder als Befehlszeile Argumente definieren, um zu bilden. Nach als Sie, sollte in der Lage sein, SpiderMonkey mit gebürtiger Aktengegenstandunterstützung erfolgreich zu errichten.
Nun da wir js Bau mit Unterstützung für Aktengegenstände haben, was wir mit ihm tun kann. Gut schätze ich, dass wir mit dem erwarteten hallo Weltindex beginnen sollten. js> File.output.writeln („hallo Welt "); Hallo Weltzutreffendes js> File.output.writeln („hallo, Welt "); „OKAY“ hallo, Welt-OKAYjs> File.output.writeln („hallo, Welt "); „“ Hallo, Weltjs>
Beachten Sie, das zutreffend outputted, es sei denn Sie noch etwas wie gezeigt oben anfügen. Ist hier ein anderes kurzes Beispiel, das zeigt, wie man die Eigenschaften des Fall Aktengegenstandes für das aktuelle Verzeichnis verzeichnet. js> dir = neue Akte (`. '); /home/fpm/js/. js> für (i im dir) Druck (i); Längenelternteil-Pfadname isDirectory isFile existiert canRead canWrite canAppend canReplace isOpen
Dieser Pfosten zeigt, wie man ein ladbares Notfall builtin für Korn Oberteil 93 schreibt.
|
|