adding a system call
Quoted 5 lines
Quoted 2 lines
What is the procedure for adding a new system call to the Linux kernel?
hack away, the code's free. don't expect Linus to accept your changes into the "real" kernel without a VERY good argument.
I know. However the Kernel Hacker's Guide writes about sys.h. After a bit of exploring, I found that sys.h has been replaced by something else in later kernels, which leaves me wondering where in the kernel I should insert my code, and where the dispatcher is located for the other system calls, in case my system call would need them.
My system call idea is to allow a superuser process to request a mmap on behalf of an user process. To see how this would be useful, let us consider svgalib.
Until now, there were two ways to allow an application access to the video array. The first was by making it setuid root, but this compromises system security by allowing it too many permissions. The second was by having a helper module which allows user applications access to the video card. However this allows any remote user to set the screen in flames.
With my new system call, a superuser process can set the graphics mode in a safe manner and then ask for an mmap of the video array into the application data segment.
Mihai
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/
Quoted 3 lines · Mihai Moise
My system call idea is to allow a superuser process to request a mmap on behalf of an user process. To see how this would be useful, let us consider svgalib.
[...]
Quoted 3 lines
With my new system call, a superuser process can set the graphics mode in a safe manner and then ask for an mmap of the video array into the application data segment.
Ummm, couldn't the the root process open the video device, then pass the file descriptor (via AF_UNIX socket) to the user process? The user process would then call mmap() on the open file descriptor.
I'm not *completely* sure this would work, but it would avoid creating a new system call if so.
-Doug
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/
This can all be done with a device file and a corresponding module to handle the mmap and any ioctl()'s you may want to support. No need to add another system call.
BAPper
Quoted 21 lines · Doug McNaught
Quoted 3 lines · Mihai Moise
My system call idea is to allow a superuser process to request a mmap on behalf of an user process. To see how this would be useful, let us consider svgalib.
[...]
Quoted 3 lines
With my new system call, a superuser process can set the graphics mode in a safe manner and then ask for an mmap of the video array into the application data segment.
Ummm, couldn't the the root process open the video device, then pass the file descriptor (via
AF_UNIXsocket) to the user process? The user process would then callmmap()on the open file descriptor.I'm not *completely* sure this would work, but it would avoid creating a new system call if so.
(quoted diff) +0
-2-Doug -
Quoted 3 lines
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/