9 May 2007 17:53
Do we want a server on `/servers/machine' (or similar)?
Thomas Schwinge <tschwinge <at> gnu.org>
2007-05-09 15:53:58 GMT
2007-05-09 15:53:58 GMT
Hello! The Hurd console needs to access i/o ports and video memory. Likewise does X.org. The pciutils need to access i/o ports. For i/o ports we're fine, through the just-installed `i386_io_perm_create' and `i386_io_perm_create' rpcs (or through glibc's `ioperm', which in turn just uses those). The Hurd console's video memory access is also fine: for OSKit-Mach a `mmap' is done on `/dev/mem', for GNU Mach a `vm_map' is done after a `device_map' on the `kb' device; see `[Hurd]/console-client/vga-support.c'. However, for X.org video memory access is currently not possible, because I removed the `iopl' device from GNU Mach, which it previously used akin to the Hurd console using the `kb' device. Now, how about the following: we have a server sitting on `/servers/machine' (or somewhere else) that accepts rpcs like `io_perm_create' or `memory_map_create' and ``forwards'' (it need not really be forwarding) them to the kernel after having done some permission checking. That server would hold access to the device-master port (and host-priv as well?), so it could also -- being a proxy -- allow access to (e.g.) `i386_io_perm_create' to users that can't get such access by themselves, but can prove that they should be allowed such access. Proving this might be something like: ``When you're a member of the `console' group, you're allowed to get access to the i/o ports that deal with video output and to the video memory.'' An example: in order to get access to video i/o ports, user U invokes a(Continue reading)
RSS Feed