Adding new syscalls via modules?

Alex Buell (alex.buell@tahallah.demon.co.uk)
Sun, 4 Jul 1999 14:10:39 +0100 (BST)


Been working on implementing my recent patch as a sysctl. During the work
I had an idea and I wanted to bounce it off you guys before I started
looking into this deeper.

I'm tired of rebooting the machine everytime I make a new kernel, so I
thought why not implement some mechanism through the kernel module loader
such that one could load a module to install a new syscall or a sysctl.

I'd like to know if there's sufficient interest in this, I think it would
be brilliant for testing new sysctls/syscalls simply by loading a module
and unloading afterwards.

Outline how it could work

1) Add a syscall to the kernel that does two things a) 'inserts' a new
syscall into the table of syscalls and returns the number where the
syscall is inserted into the table b) 'removes' a syscall from the table
of syscalls. It will only remove only syscalls that it has added (to
prevent the case of people trying to be clever and removing syscalls such
as vfork...)

2) Within the given module containing the syscall, when the kernel calls
the module's initialisation function, this function would then make the
syscall to insert its own syscall into the kernel's syscall tables. The
reverse would happen on unloading, the deinitialisation function would
remove the syscall from the table.

How's that? That could be used with sysctls to add new stuff quite easily.

Cheers,
Alex
--

I hate people who gets offended too easily!

http://www.tahallah.demon.co.uk

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/