In Computing, das Netscape Portable Runtime oder NSPR, eine Plattform Abstraktions-Bibliothek, macht alle unterstützten erscheint das gleiche zu Mozilla-style web-Browser-Betriebssystemen. NSPR bietet Plattformunabhängigkeit für Nicht-GUI-Betriebssystem zur Verfügung. Diese Einrichtungen umfassen:
- Themen
- Thread-Synchronisation
- normale Datei und Netzwerk-I / O-
- Intervall Timing und Kalenderzeit
- Grundspeicherverwaltung
- Shared Library Verknüpfung.
Ein großer Teil der Bibliothek, und vielleicht die Grundaussage in der Gromit Umwelt, stellt die Grundlagen der Java Virtual Machine, mehr oder weniger die Abbildung der sys-Schicht, die Sun definiert für die Portierung der Java VM auf verschiedenen Plattformen. NSPR ist darüber hinaus Voraussetzung gehen in einigen Bereichen, wie es funktioniert auch als Plattform-unabhängige Layer für die meisten Server von Netscape erzeugt. Einige Hersteller erwarten, und es vorziehen, dass Programmierer umzustrukturieren und vielleicht sogar vorhandenen Code neu zu schreiben, um die NSPR API verwenden. NSPR nicht als Ziel die Bereitstellung einer Plattform für die Portierung in Netscape von extern entwickelten Code.
Geschichte
Die erste Generation von NSPR ursprünglich gerade gerichtet, um die Anforderungen an verschiedene Java Hostumgebungen Portierung befriedigen. NSPR20, begann ein Versuch im Jahr 1996, an diesem ursprünglichen Idee gebaut, wenn auch sehr kleine Reste der ursprünglichen Code. Viele der Konzepte zeigen Reform, Erweiterung und Reifung. Ab 2009 NSPR können noch geeigneter als die plattformabhängigen Schicht unter Java funktionieren, aber es bei der Unterstützung von Kunden vollständig in C oder C ++ geschrieben dient in erster Linie.
Wie funktioniert es
NSPR hat das Ziel, einheitliche Service über einen weiten Bereich von Betriebssystem-Umgebungen. Sie bemüht sich, nicht den kleinsten gemeinsamen Nenner zu exportieren, aber um die besten Eigenschaften jedes Betriebssystem, auf dem es läuft zu nutzen, während immer noch ein einheitliches Service in einem breiten Spektrum von Host-Angeboten.
Themen
Themen prominent in NSPR. Die Software-Industrie das Angebot von Threads fehlt Konsistenz. NSPR, während bei weitem nicht perfekt, hat einen einzigen API, um die Clients zu programmieren und erwarten maßen konsistentes Verhalten. Die Betriebssysteme bieten alles, was von keinem Konzept der Gewindehaupt bis einschließlich anspruchsvoll, skalierbare und effiziente Implementierungen. NSPR macht so viel Einsatz, was die Systeme bieten, wie sie können. NSPR zielt darauf ab, so wenig Aufwand wie möglich Zugriff auf diese entsprechenden Systemfunktionen zu verhängen.
Thread-Synchronisation
Thread-Synchronisation lose hängt von Monitoren, wie durch CAR Hoare in "Monitore: Ein Betriebssystem Strukturierungskonzept" beschrieben, Communications of the ACM, 17, Oktober 1974 und dann von Xerox "Mesa-Programmiersprache formalisiert). Dieser Mechanismus stellt die grundlegenden gegenseitigen Ausschlusses und Faden Benachrichtigungseinrichtungen durch NSPR implementiert. Darüber hinaus bietet NSPR Synchronisationsmethoden besser geeignet für den Einsatz von Java. Die Java-ähnliche Einrichtungen umfassen Monitor Reentranz, implizite und fest gebunden Benachrichtigungsfunktionen mit der Fähigkeit, die Synchronisierungsobjekte dynamisch zuzuordnen.
I / O
NSPR I / O leicht erweitert die Berkeley Sockets-Modell und ermöglicht willkürliche Schichtung. Die Designer ursprünglich synchrone I / O-Verfahren nur zu exportieren, die sich auf Themen, die Parallelität für komplexe Anwendungen benötigt werden. Das Verfahren zum Betrieb weiterhin bevorzugt, obwohl man die Netzwerk-I / O-Kanäle als nicht-blockierend im herkömmlichen Sinne zu konfigurieren.
Netzadressen
Teil NSPR behandelt Manipulation von Netzwerkadressen. NSPR definiert eine IP-zentrierte Netzwerkadresse Objekt. Obwohl es nicht das Objekt als undurchsichtig zu definieren, bietet die API Methoden, und lassen Sie ermutigen Kunden, die Adressen als polymorphe Objekte zu behandeln. In diesem Bereich NSPR zielt darauf ab, einen Migrationspfad zwischen IPv4 und IPv6 bereitzustellen. Zu diesem Zweck einen Übersetzungen ASCII-Zeichenfolgen in NSPR die Netzwerkadresse Strukturen durchführen kann, unabhängig davon, ob die Adressierung Technologie verwendet IPv4 oder IPv6.
Zeit
NSPR macht Zeiteinrichtungen gibt es in zwei Formen: Intervallsteuerung und Kalenderfunktionen.
Intervall-Timer werden auf einem Freilauf, 32-bit, plattformabhängige Resolution Timer basiert. Solche Zeitgeber werden normalerweise verwendet, um Zeitüberschreitungen auf I / O angeben, wartet unter der Bedingung, Variablen und andere rudimentäre Thread-Scheduling. Da diese Zeitgeber endliche Namespace und sind freilaufend, sie jederzeit zu wickeln können. NSPR bietet keine Epoche, aber erwartet, dass Kunden, die mit diesem Thema befassen. Die Granularität der Zeitgeber gewährleistet, zwischen 10 Mikrosekunden und 1 Millisekunde sein. Dies ermöglicht eine minimale Zeitgeberperiode in etwa 12 Stunden. Aber um mit dem Rundum-Frage befassen, kann nur die Hälfte dieser Namespace verwendet werden. Daher ist die minimale nutzbare Intervall von der Zeitgeber etwas weniger als sechs Stunden.
Kalender Zeiten sind 64-Bit-Zahlen mit Einheiten von Mikrosekunden. Die Epoche für Kalenderzeiten ist Mitternacht, 1. Januar 1970, Greenwich Mean Time. Negative Zeiten mals zu verlängern, bevor 1970 und positive Zahlen vorn. Verwendung von 64 Bits ermöglicht eine Darstellung der Zeiten in etwa im Bereich von -30000 bis zum Jahr 30000. Es tritt eine Strukturdarstellung, Routinen, um die aktuelle Zeit von dem Hostsystem zu erwerben, und wandeln sie in und aus dem 64-Bit und strukturelle Darstellung. Zusätzlich gibt es Routinen zu und von den meisten bekannten Formen von ASCII in die 64-Bit-NSPR Darstellung zu konvertieren.
Speicherverwaltung
NSPR bietet API, um die grundlegende malloc, calloc, realloc und freie Funktionen. In Abhängigkeit von der Plattform, die Funktionen kann fast vollständig in der NSPR Laufzeit oder Unterlegscheiben, die sofort in Angeboten des Gastbetriebssystems aufrufen implementiert einfach werden.
Linking
Unterstützung für die Verknüpfung ist Teil NSPR die Feature-Set. In den meisten Fällen ist dies einfach eine Glättung über der Einrichtungen, die von den verschiedenen Plattform-Providern angeboten.
Kommentare - 0