Tomasz Wegrzanowski <[EMAIL PROTECTED]> writes: > Therefore there are these possibile reasons, why it is possible to r/w > hardware ports : > - I/O Permision Level is way too low > but asm(pushfl) says IOPL=0 (kernel only) > - user programs run in kernel space > I hope not, no test was done
This could be seen from the lowest bits of CS (as you probably know). > - Mach gives default permision to every program to use all hardware ports > No test was done yet Or: - the processors traps the instructions, but Mach's exception handler lets them run anyway Mach actually has code to detect the first access to a port and set the flag in the bitmap if permitted. Could you add some printfs in gnumach/i386/i386/io_emulate.c and gnumach/i386/i386at/iopl.c? > showtrans says /servers/socket/2 is /hurd/pfinet -i=rfsd The = sign doesn't work with short options. Here the argument to -i is actually "=rfsd" which probably isn't a valid device. "Translator died" means the translator didn't even attach to the file first. Whenever this happens, you should try activating the translator manually with settrans -a so that you can see its error messages. settrans -a /servers/socket/2 /hurd/pfinet -i=rfsd IMHO there should be a way to see the error messages from translators even if the file system starts them. For root-owned files, perhaps the messages should go to syslog?

