Lowlevel
Lowlevel => OS-Design => Thema gestartet von: DaniilKharlamov am 23. August 2004, 13:40
-
Hallo,
ich hätte da mal ne Frage. Gibt es ein Tutorial zum Thema API und wie man ein Kernel programmiert, der API's bereitstellt?
Daniel
-
ja, also wenn man unter einer API ein interrupt mit systemfunktionen versteht, dann siehe lowlevel-ausgaben!!!!!
-
Ich glaub der meint eher so was wie die Windows API (Application Interface) (~ 8500 Funktionen) und die läuft glaub ich nicht über Interrupts. Läuft glaub ich über Ports.
-
Und, gibts dafür Tutorials? Ich brache das sehr dringend.
-
ja, das ist ja auch im PM... aber für den RM währe doch ein int recht praktisch...
-
AAAlso eine API in den Kernel einbaun? Wie das denn? Also entweder man stellt Systemfunktionen über Interrupte bereit, oder man baut eine Bibliothek auf. Ich denke du meinst API so das du bei programmieren Funktionen verwenden kannst wie malloc usw. Das kommt aber nicht in den Kernel, sondern sind genaugenommen externe Funktionen
-
ich verstehe unter einer API funktionen, um text auszugeben und/oder dateien zu lesen oder so...
-
Ja eben ich ja auch, deswegen finde ich "Kernel proggen der API bereitstellt" irgndwie komisch formuliert.
-
Ich nicht. Windows stellt ja auch Api's bereit, oder. Sonst könnte ja auch nicht die WIN-API funktionieren. Halt Funktionen, die an den Kern Parameter übergeben und der Kern dafür ein Fenster aufbaut.
DanielKharlamov
-
Sag ich ja, dassind Funktionen. Die werden nicht unbedingt in den Kernel eingebaut, sondern einfach nur ein paar Funktionen.
btw Ich konnte mich nie mit Windows Programmierung anfreunden.
-
uh...kleine geschichtsstunde:
KERNEL
^
|
v
EXECUTION
^
|
|
|
v
Win32-Subsystem <------ das ding stellt diese ominoese winapi zur verfuegung, als normaler thread/prozess kannst du mit dem kernel _direkt_ beinahe gar nix machen .. ausserdem haben alle NT-systeme (ich nehme mal an, dass du ein NT/2k/XP zu hause hast) sowas aehnliches wie mikro-kernel..insofern waere es daemlich, wenn man in einen mikro-kernel die gui reinmacht *kopfkratz*
die bereitgestellte API sind entweder funktions-source oder compilierte _LIBRARIES_, die du mit deinem eigenen source zusammenlinkst..
lg, hannibal
-
Die API's unter Windows werden, soweit ich weiß, über DLL's bereitgestellt.
Die DLL's leiten dann die Befehle weiter, entweder an der Kernel oder an andere "Dienste" wie z.B. die GUI oder DirectX weiter.
So arbeiten, soweit ich weiß, auch Programme wie Wine. Also sie stellen dann pseudo-DLL's bereit.
Also im Prinzip wie hannibal das auch schon gesagt hat.
-
hannibal postetesowas aehnliches wie mikro-kernel..insofern waere es daemlich, wenn man in einen mikro-kernel die gui reinmacht *kopfkratz*
Naja, in der Hinsicht sollten wir lieber nicht den NT-Kernel imitieren... hier laufen nämlich noch die Videotreiber im Ring0...
-
[sarkasmus] Yeah, das nenne ich OS-Design. [/sarkasmus]
-
Naja, bis etwa 3.51 konnte man NT ja wirklich noch Microkernel nennen... ab NT4 ist es dann ein furchtbarer Mischmasch geworden, die neuen 5er Kernels sind jedoch wieder recht stabil (Gott sei Dank).
-
Also ein Microkernel hat wie ich finde nich nur vorteile^^, hat alles gute und schlechte seiten,sollte man immer abwägen, Mischmasch find ich persönlich sogar am besten, schlagt mich ruhig dafür:D
-
Wieso denn ich bin ganz deiner Meinung, schließlich kann man damit herrlich ein Monopol bilden bzw. Ausbauen. :D
-
Und die Welt beherrschen nicht vergessen:D
-
Pst....sonst erfährt noch jemand von den Plänen die wohl 90% von uns haben ;)
-
Ich dachte LowLevel is ne Vereinigung die Gemeinsam dieHerrschaftan sich reißen will:O:O:O
Lieg ich da falsch? Verdammt was will ich dann hier^^
-
LOL ich bin auch für meine weltherschaft, aber mal abgesehen davon. würde mich das thema worums hier eigentlich ging auch interessieren.
also wie bitte stellt man ne api als middleware zwischen kernel routinen und restlichen os her. und um mal abzuschweifen in richtung kernel design sieht me keinen einleuchtenden vorteil in einem expo kernel system da meines erachtens zuviel vertrauen in die fähigkeiten der application developer gesetzt wird ohne wirkliche sicherheitsmassnahmen zu erstellen. oder hat me das falsch verstanden?
gruss Draco
-
erstmal: die gui unter beim NT-kernel wurde aus performance-gruenden in den ring0 gehoben!
api: man braucht sichs ja nur bei 'den grossen' abgucken -> dynamisch ladbare libraries mit funktionen, die man eben in seine api einbinden will (ganz nett waeren da die standard-c funktionen, wie z.b. i/o, string-funktionen, etc)
wers weniger kompliziert haben will baut seine api einfach in den kernel ein :)
lg, hannibal
-
Die WinAPI ist eigentlich nur ein Vorsatz.
Windows NT/XP/2k bauen intern genauso auf Interrupts auf wie die meisten OS der Leute hier auf.
Da aber nur 256 (minus Hardwareints) Interrupts bereitstehen und sich hinter jedem Interrupt noch etliche Funktionen verbergen, hat man die API gebaut. Damit können "einfach" Funktionen aufgerufen werden, die dann die nötigen Interrupts mit entsprechenden Variablen aufrufen um die Arbeit zu erledigen.
-
Auch wenn der Thread schon etwas älter ist, will ich dennoch nachtragen dass der NT Kernel sehrwohl sogar ein ganzes batzen an Funktionen exportiert!
(Er hat ja auch eine eigene Export Table)