Kernel module in c++ erstellen ???
Kernel module in c++ erstellen ???
Hallo
kann man in Kernelmodule in C++ erstellen???
ich Arbeite momentan mit Debian und den Kernelpatch RTAI!!!
Vielleicht meis einer was!!!
Grüße
juschold
kann man in Kernelmodule in C++ erstellen???
ich Arbeite momentan mit Debian und den Kernelpatch RTAI!!!
Vielleicht meis einer was!!!
Grüße
juschold
also wenn ich das richtig verstehe kann ich das Projekt vergessen. Ich muss mein source auf C sprache bringen damit ich in RTAI oder RTLinux eine chance habe!!!
Ist das Grundsätzlich so das ich kernelmodule in C schreiben muss?
Mich wundert es ein wenig das man in Linux hier nur mit C weiter kommt, das ist für mich ein rückschritt!!!!
Ist das Grundsätzlich so das ich kernelmodule in C schreiben muss?
Mich wundert es ein wenig das man in Linux hier nur mit C weiter kommt, das ist für mich ein rückschritt!!!!
OO ist ein Paradigma, dass von C++ unterstützt wird. Man kann genauso gut auch einen Kernel in C++ schreiben.nepos hat geschrieben:Dir ist klar, dass OO einiges an Overhead mit sich bringt, was zu Realtime nicht so recht dazu passt?
Vor kurzem gab es ja mal wieder eine Diskussion in der LKML zu dem Thema. AFAIK wäre es viel zu umständlich Module in C++ zu erlauben.
Ich weiß ja nicht genau, was du vor hast, aber kannst du das nicht eventuell auch im Userspace erledigen? Dann könntest du nämlich C++ problemlos nutzen...juschold hat geschrieben:Ist das Grundsätzlich so das ich kernelmodule in C schreiben muss?
Mich wundert es ein wenig das man in Linux hier nur mit C weiter kommt, das ist für mich ein rückschritt!!!!
Formerly known as Trigger.
HP 8510p - Debian Sid
Mitglied des Debian-KDE-Teams
HP 8510p - Debian Sid
Mitglied des Debian-KDE-Teams
ich muss ein Programm von Windows in Linux portieren. Bei diesen Programm muss man Threads anhalten und aufweken können. Dies ist im POSIX Standart mit den Funktionen "pthread_wakeup_np" und "pthread_suspend_np" hinterlegt. Leider sind diese funktionen nur im RTLinux möglich (siehe http://inf3-www.informatik.unibw-muench ... ode75.html).
Darauf hin hab ich RTLinux und RTAI installiert und festgestellt das es nicht geht!!!
Ich benötige nicht unbedingt Echtzeitverhalten, ich würde mich auch im Userspace zufieden geben. Irgendwie bin ich von Linux sehr enttäuscht
Ich weis einfach nicht mehr weiter!!!
Darauf hin hab ich RTLinux und RTAI installiert und festgestellt das es nicht geht!!!
Ich benötige nicht unbedingt Echtzeitverhalten, ich würde mich auch im Userspace zufieden geben. Irgendwie bin ich von Linux sehr enttäuscht
Ich weis einfach nicht mehr weiter!!!
Na, das hört sich aber trotzdem schon besser an.
Bei einem aktuellen Debian-Etch mit aktuellem Kernel kannst du
die NPTL (Native POSIX Threads Library) benutzen -- ganz
ohne Realtime-Stress. Laut deinem Link sind die beiden _np
Funktionen sowieso nicht Posix, da lohnt sich die Portierung
doch doppelt![Wink ;)](./images/smilies/icon_wink.gif)
Bei einem aktuellen Debian-Etch mit aktuellem Kernel kannst du
die NPTL (Native POSIX Threads Library) benutzen -- ganz
ohne Realtime-Stress. Laut deinem Link sind die beiden _np
Funktionen sowieso nicht Posix, da lohnt sich die Portierung
doch doppelt
![Wink ;)](./images/smilies/icon_wink.gif)
Beware of programmers who carry screwdrivers.
Solltest du dann nicht den Quellcode deines Programms an das Betriebsystem "Linux" anpassen ? Stattdessen versuchst du, mittels C++ Kernelmodul, dem Linux Kernel, ein Win32 API zu entlockenjuschold hat geschrieben:ich muss ein Programm von Windows in Linux portieren.!
![Shocked 8O](./images/smilies/icon_eek.gif)
Warum liest du dich nicht einfach in die Posix Signal/Thread-behandlung ein ?
Es ist nicht allzuschwer ein SIGSTOP bzw SIGCONT Signal an einen Thread zu senden.
Du könntest aber auch eine der vielen Libraries verwenden. Z.B gibt es da eine "Common C++" Library, welche dir soche "Portierungsproblematiken" abnehmen kann.
Gruß
gms
Hallo
SIGSTOP und SIGCOND ist für das anhalten und fortsetzen eines "Prozesses" ich muss aber "Threads" anhalten und fortsetzen.
Das Programm ist soweit schon an Linux angepasst, auf userspace ebene. Mir fehlen halt nur diese genannten Funktionen. Natürlich kann ich das Programm so umschreiben das ich diese funktionen umgehen kann, ist aber in meiner anwendung nicht so einfach. Ich bin nur verwundert das ich noch nicht gefunden habe ein Threads zu stoppen und fortzusetzen.
Gruß
juschold
SIGSTOP und SIGCOND ist für das anhalten und fortsetzen eines "Prozesses" ich muss aber "Threads" anhalten und fortsetzen.
Das Programm ist soweit schon an Linux angepasst, auf userspace ebene. Mir fehlen halt nur diese genannten Funktionen. Natürlich kann ich das Programm so umschreiben das ich diese funktionen umgehen kann, ist aber in meiner anwendung nicht so einfach. Ich bin nur verwundert das ich noch nicht gefunden habe ein Threads zu stoppen und fortzusetzen.
Gruß
juschold
na wenn du lieber bei RTLinux suchst oder solche "Lösungsansätze" wie ein C++ Kernelmodul verfolgst, ist das auch kein Wunderjuschold hat geschrieben: Ich bin nur verwundert das ich noch nicht gefunden habe ein Threads zu stoppen und fortzusetzen.
Blödsinn! Natürlich kannst du diese Signale auch an einen Thread schicken ! (siehe "man pthread_kill" bzw google nach phtread_kill und SIGSTOP und du wirst ca 1500 Ergebnisse bekommen )juschold hat geschrieben:SIGSTOP und SIGCOND ist für das anhalten und fortsetzen eines "Prozesses" ich muss aber "Threads" anhalten und fortsetzen.
Hier nur eines davon:
http://cvs.cinelerra.org/devcorner/doxy/a118/guicast/html/thread_8C-source.html hat geschrieben: 00121 int Thread::suspend_thread()
00122 {
00123 if((int)tid > 0) pthread_kill(tid, SIGSTOP);
00124 return 0;
00125 }
00126
00127 int Thread::continue_thread()
00128 {
00129 if((int)tid > 0) pthread_kill(tid, SIGCONT);
00130 return 0;
00131 }