Privileged mode commands in FreeBSD processes
Alfred Perlstein
alfred at freebsd.org
Wed Aug 31 20:26:44 UTC 2011
You can see i386_get_ldt(2) and io(4) manpages.
More privileged opcodes can not be used afaik.
* Victor <vicmrml at gmail.com> [110831 13:05] wrote:
> Is it possible to write and start a program in FreeBSD, which could
> execute processor commands of previleged modes (protection rings),
> commonly prohibited to a process in the user mode?
>
> For example we could permit the process direct access to i/o ports (IN
> and OUT commands on PC architecture), execution of the software
> interrupt command with any operand (INT), access to descriptor tables
> registers (GDT, LDT, etc.) with capability of changing content of both
> these registers and descriptor tables themselves (situated in the RAM).
> We could also allow the process to change flag bits in the registers of
> CPU, responsible for processor modes (memory addressing modes,
> transition from protected to real mode and vice versa, etc.) In fact, if
> this feature exists in FreeBSD, it must switch the processor for the
> time of execution this process to the mode with higher privileges (to
> the protection ring from 2 to 0, not 3 in x86). I would like to ask the
> FreeBSD community, does this possibility exist in FreeBSD?
>
> I understand the problem can be easily solved by deviding the program
> into two parts: the process (COFF or ELF file) and the driver. All the
> code, containing privileged commands, could be placed in the driver, as
> the rest of the code (its unprivileged part) could be contained in the
> process. As far as I understand, the driver code is executed in the 0
> ring mode, so it has no restrictions. On the other hand it would be
> interesting to have such an opportunity for common processes in both
> educational (e. g. studying assembler privileged mode commands) and
> technical purposes. Of course this feature is a great threat for system
> safety, and besides programs, using it, can easily completely destroy
> the system, however it could be useful for some aims.
>
> Does anything of such kind exist in FreeBSD? If it does, please give me
> a reference in the FreeBSD documentation.
>
> Victor.
>
> _______________________________________________
> freebsd-arch at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-arch
> To unsubscribe, send any mail to "freebsd-arch-unsubscribe at freebsd.org"
--
- Alfred Perlstein
.- VMOA #5191, 03 vmax, 92 gs500, 85 ch250, 07 zx10
.- FreeBSD committer
More information about the freebsd-arch
mailing list