3 Stimmen

Methoden der Kommunikation zwischen Kernel- und Benutzeranwendungen

Neu in der Linux-Programmierung im Allgemeinen.

Ich versuche, mit einem Kernelmodul über Shared Memory zu kommunizieren, kann aber die in Benutzeranwendungen verwendeten Funktionen wie shmget() nicht aufrufen; Ich habe kernel-headers und kernel-devel installiert, und habe , in den Kernelmodul-Quellcode aufgenommen, aber die Header enthalten keine Funktionen.

Gibt es eine Standardmethode für die Verwendung von gemeinsamem Speicher im Kernel?

Auch Tipps zur Verwendung von Steckdosen in der gleichen Situation sind sehr hilfreich.

Verwendung von Distro: CentOS 5.2 Kernel: 2.6.18-92.1.22.e15

Vielen Dank im Voraus.

//Addiert// Um das klarzustellen, ich versuche, eine Demo zu erstellen, die die üblichen Merkmale eines typischen Embedded Linux-Projekts hat. Das endgültige Ziel ist es, es auf LynxOS zu portieren, um zu sehen, welche Art von Problemen auftreten können Probleme auftreten können, wenn man dies bei größeren Projekten tut.

Die wichtigsten Merkmale der Demo sind derzeit Multiprozess, Pipes, Message-Ques, Shared-Memory, Sockets, Multithreads.

Es besteht aus einer Benutzeranwendung und einem ladbaren Kernelmodul, die miteinander kommunizieren. Pipes und Nachrichten zwischen zwei Prozessen innerhalb der Benutzeranwendung sowie Shared-Memory und Sockets zwischen der Benutzeranwendung und dem Kernelmodul.

Wenn ich etwas nicht richtig mache, sagen Sie es mir bitte.

0voto

Sie können auf folgende Weise mit dem Kernel sprechen mmap Gerätedateien (schreiben Sie einen einfachen Gerätetreiber, oder verwenden Sie auch Fifo-Dateien, Netlink-Sockets (Netzwerk-Stack), Sockets (Netzwerk), oder schreiben Sie einen Systemaufruf ... wenn Sie mir im Detail sagen, was genau Sie erreichen wollen, kann ich Ihnen mehr helfen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X