Betriebssystem
 
 
 
 
 

embedded Webserver SC1x -IPC@CHIP  
 
 
 
 
 

Die APIs des Betriebssystems

 

 

Was ist ein API

 

 

Die Abkürzung API steht für Applikation Programmers Interface, was mit Schnittstelle für den Anwendungsprogrammierer übersetzt werden kann. Derartige Softwareschnittstellen besitzen Programme, auf denen weitere Programme aufbauen können.

Betriebssysteme sind ein gutes Beispiel. Die Unterprogramme und Daten die das Betriebssystem umfasst, machen es möglich, dass ein Programmierer Anwendungsprogramme schreiben kann, ohne über die genaue Funktion der Hardware informiert zu sein. Er muss nur die entsprechenden Unterprogramme des API aufrufen.


Dieser Weg vereinfacht die Anwendungsprogrammierung, bedingt aber, dass die Daten und Unterprogramme der Softwareschnittstelle gut dokumentiert und beschrieben sind. In den nebenstehenden Kapiteln werden die Softwareschnittstellen der Betriebssysteme für die SC1x IPC@CHIP Webserver beschrieben.

 

 

 

 

 

Begriffe und Überblick

 

 

Betriebssysteme sind üblicherweise in mehreren Schichten aufgebaut. Den Kernbereich (Kernel) umgeben mehreren Programmierebenen (Layer), die auch Schalen (Shells) genannt werden. Die Schichten bauen aufeinander auf und erzeugen in Abhängigkeit zu der vorhergehenden Schicht zusätzliche Fähigkeiten. Neben diesen aufeinander aufbauenden Schichten gibt es aber auch solche, die gleichbedeutend nebeneinander stehen und die optionalen Fähigkeiten des Systems erweitern. Jede dieser Ebenen beinhaltet eine Vielzahl von Unterprogrammen, die auch ein Anwendungsprogrammierer benutzen kann. Im Betriebssystem der IPC@CHIP Webserver wurde folgende Unterteilung der APIs vorgenommen ..

 

 

 Das Hardware-API
Über die Unterprogramme dieser Schnittstelle wird die Funktion der PINs an den IPC@CHIP Webservern gesteuert und deren Signale gesetzt oder gelöscht. Das Hardware-API stellt die unterste Ebene dieses Betriebssystems dar.

 

 

 Das BIOS-API
BIOS bedeutet Basic-Input-Output-Systemprogramm. In ihm befinden sich Unterprogramme die bereits integrierte Baugruppen und die Standard Ein- und Ausgabegeräte ansteuern. Beispiele sind Unterprogramme zur Steuerung des Datenflusses zur Tastatur und dem Monitor, sowie Timer (Zähler), das Powermanagement usw. Unterprogramme die Statusmeldungen zur Version des Betriebssystems oder seinen Einstellungen bereithalten, sind ebenfalls im BIOS enthalten. Viele Funktionen der statischen C-Bibliothek greifen auf diese Unterprogramme zu. Um die Funktionsfähigkeit dieser C-Bibliotheksprogramme zu gewährleisten wurden im BIOS-API auch Funktionen eingebunden, die zum Betrieb des IPC@CHIP nicht notwendig sind. Diese Funktionen wurden als 'dummys' bezeichnet.

 

 

 Das Fossil-API
Die Unterprogramme dieses API befassen sich ausschliesslich mit der Steuerung der beiden seriellen Schnittstellen. Diese können hier ein- oder ausgeschaltet werden, was ihre PINs für andere Funktionen freigibt, die Baudraten- und Buffereinstellungen sowie die Kontrolle des Datenflusses finden hier statt. Eigentlich ein Teil des BIOS.

 

 

 Das I2C-Bus-API
Dieses Bussystem, das auf zwei Leitungen (Daten und Takt) bis zu 127 Geräte ansteuern kann, tritt an den PINs des Rechners aus und kann wie die seriellen Schnittstellen optional benutzt werden. Unterbleibt seine Benutzung werden die PINs des Rechners für andere Aufgaben frei. So kann hier auch ein SPI-Bus betrieben werden

 

 

 Das externe Disk-API
Diese optionale Schnittstelle ist nur von Interesse, wenn an den IPC@CHIP Webservern ein externes Diskettenlaufwerk angeschlossen werden soll. Die notwendige Hardware zur Steuerung des Massenspeichers muss aber erst erstellt werden, denn der Chip besitzt hierfür keine eigene Hardware.

 

 

 Das DOS-API
Das Disketten-Organisations-Systemprogramm ist der dem BIOS folgende Layer. Bei den IPC@CHIP Webservern verliert es etwas von dieser Abhängigkeit, da der Massenspeicher in einem Flash-ROM (Laufwerk A:\) oder im RAM (Laufwerk C:\) emuliert wird. Dennoch stellt das DOS die Funktionalität der Disketten-Speicherverwaltung für die Anwenderprogramme zur Verfügung

 

 

 Das RTOS-API
RTOS bedeutet Real-Time Operating-System und erweitert das DOS um die Fähigkeit, mehrere System- und Anwenderprogramme gleichzeitig laufen zu lassen. Dementsprechend findet man in dieser API Unterprogramme, welche die Zuteilung der Zeitsegmente auf die laufenden Programme (Tasks) regeln.

 

 

 Das TCP/IP-API
Auf dem TCP/IP Protokoll basieren die Netzwerkfähigkeiten der IPC@CHIP Webserver. Auf ihm fussen die diversen Serverprogramme und die Point to Point Übertragung. Im Bereich dieses API befinden sich auch die Unterprogramme die mit einem DHCP oder einem GATEWAY-Server zusammenarbeiten.

 

 

 Das Ethernet-API
Diese API enthält Unterprogramme, mit deren Hilfe Datenpakete über das Ethernet transportiert werden können. Die Übertragungsgeschwindigkeiten lauten 10MBit/s (SC12) und 100MBit/s (SC13) beim SC11 ist keine Ethernetschnittstelle vorhanden.

 

 

 Das CGI Server-API
Mit den Unterprogrammen dieser API können Treiberprogramme zur Herstellung von dynamischen Hypertextseiten installiert werden und das Rootverzeichnis sowie die Startdatei des CGI-fähigen http:// und ftp:// - Netzwerkservers eingestellt werden.

 

 

 Das COMMAND- und das CONFIG-API
Von diesen beiden Benutzerschnittstellen war bereits im vorherigen Kapitel die Rede. Sie unterscheiden sich insofern von den vorgenannten APIs, als sie keine Unterprogramme nennen, die durch Anwendersoftware aufgerufen werden können. Beide APIs dienen der unmittelbaren Steuerung des Betriebssystems, einmal durch den, im Betriebssystem enthaltenen Kommandozeilen-Interpreter (Commamd) und in beiden Fällen (Command und Config) durch die beiden Startdateien autoexec.bat und chip.ini.

 

 

 

 

 

Aufruf der API-Unterprogramme

 

 

Der Aufruf eines Unterprogramms aus einer der oben genannten APIs durch ein Anwenderprogramm, ist an die sogenannten Software-Interrupts, die SoftINTs der 80x86 CPU gebunden. Von diesen gibt es 256 Stück und sie ermöglichen indirekte Unterprogrammaufrufe. So muss der Anwendungsprogrammierer nicht die genaue Einsprungsadresse des gewünschten Unterprogramms kennen. Er muss nur die Nummer des SoftINT kennen und zudem die Ordnungsnummer des gewünschten Unterprogramms.
Die Ordnungsnummern ergeben sich aus dem Umstand, dass es in der Regel mehr Unterprogramme in einem Betriebssystem gibt, als SoftINTs. So griff man zu der Strategie, einem SoftINT mehrere Unterprogramm zuzuordnen, und diese durch Ordnungsnummern zu unterscheiden.
Seit den Anfangstagen des PC-DOS hat sich dabei folgendes Vorgehen eingebürgert. Wurden einem Software-Interrupt mehrere Unterprogramme zugeordnet, dann wird die Ordnungs- oder Funktionsnummer des gewünschten Unterprogramms, in das AH - Prozessorregister eingetragen und hernach der SoftINT aufgerufen.

 

 

 

 

 

  • INT Nummer des SoftINT,    AH = Funktionsnummer

 

 

 

 

 

Beide Angaben sind in den Unterprogrammbeschreibungen der APIs zu finden.
Um die API Unterprogramme aus einem eigenen Programm heraus zu erreichen gibt es in der Hochsprache C die Funktion int86x();
In der Assemblersprache lauten die Befehle ..
                              mov AH, FktNr
                              int SoftIntNr

 

 


 

 

 

 

 

nächste Seite ..

 

www..de