Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Module in C

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - C
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
gast
Gast





BeitragVerfasst am: 20. März 2006 11:55   Titel: Module in C

Hallo

Ich würde gerne ein Program in C schreiben, welches Module laden kann. Kennt irgendjemand ein gutes Tutorial, wie man ein Modul-Interface und entsprechende Module schreibt?

(Bis jetzt habe ich noch nichts gefunden, so dass ich mich erstmal durch den Linux-Kernel und möglicherweise Maxima-Quellcode krame (welches, soweit ich weiß, auch Module besitzt.))
 

Marco Gerber
Gast





BeitragVerfasst am: 21. März 2006 13:49   Titel:

tach

Der beste Weg, zu verstehen wie Module in den Kernel geladen werden, ist der ueber die Sourcen von modutils.

greetz by
Marco
 

Janka



Anmeldungsdatum: 11.02.2006
Beiträge: 3569

BeitragVerfasst am: 21. März 2006 15:03   Titel: Re: Module in C

gast hat folgendes geschrieben::

Ich würde gerne ein Program in C schreiben, welches Module laden kann. Kennt irgendjemand ein gutes Tutorial, wie man ein Modul-Interface und entsprechende Module schreibt?

(Bis jetzt habe ich noch nichts gefunden, so dass ich mich erstmal durch den Linux-Kernel und möglicherweise Maxima-Quellcode krame (welches, soweit ich weiß, auch Module besitzt.))


Den Begriff "Modul" ist nur im Zusammenhang mit dem Linux-Kernel fest definiert. Er bezeichnet ein Objektcodeschnipsel, dass zur Laufzeit in den Kernel intergriert werden kann. Dieser Mechanismus funktioniert anders als das Nachladen von Objektcode im Userspace (sog. shared Libraries), und hat deshalb einen eigenen Namen bekommen.

In allen anderen Zusammenhängen ist "Modul" ein frei von dir zu belegender Begriff. Deshalb hast du da auch nix zielführendes gefunden.
Meinst du vielleicht Plugins? Wenn ja, "man dlopen".

Janka
 
Benutzer-Profile anzeigen Private Nachricht senden

gast
Gast





BeitragVerfasst am: 22. März 2006 8:15   Titel:

@Janka

Besten Dank; das ist im Wesentlichen das, was ich suche. Gibt es auch ein POSIX-kompatibles Interface - ich würde den Code gerne auf mehreren Platformen (Linux, FreeBSD, Windows (ab W2K ist es doch POSIX-kompatible, oder?) ) laufen lassen.
 

Janka



Anmeldungsdatum: 11.02.2006
Beiträge: 3569

BeitragVerfasst am: 22. März 2006 9:59   Titel:

gast hat folgendes geschrieben::
Gibt es auch ein POSIX-kompatibles Interface - ich würde den Code gerne auf mehreren Platformen (Linux, FreeBSD, Windows (ab W2K ist es doch POSIX-kompatible, oder?) ) laufen lassen.

Hättest du die Manpage bis unten durchgescrollt, wüsstest du, dass dlopen das POSIX-kompabtible Interface ist.
Code:

CONFORMING TO
       POSIX 1003.1-2003 describes dlclose, dlerror, dlopen, dlsym.




MS-Windows ist *bis* NT4.0 auf dem Papier POSIX-kompatibel gewesen, danach war das nicht mehr werbewirksam (genug Unix verdrängt) und man hat das fallenlassen. Funktioniert hat es eh nie so richtig, da nur ein kleines Subset von POSIX unterstützt wurde.

Unter MS-Windows funktioniert das nachladen von Libraries auch anders. Es ist wegen der Rücksicht auf Windows95 vollkommen hirnrissig. z.B. haben DLLs ein gemeinsames Datensegment für alle Prozesse, von denen sie eingebunden werden. D.h. ein Prozess kann einen anderen über eine gemeinsame DLL fernsteuern (Ein hübsches Einfallstor für alle Arten von priviledge escalation). Für MS-Windows schreibst du am besten ein komplett neues Rahmenprogramm, und behältst nur die eigentliche Programmlogik bei -- kann man ja mittels geschickter Aufteilung des Quellcodes (z.B. in Module) leicht machen.

Janka
 
Benutzer-Profile anzeigen Private Nachricht senden

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - C Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy