Question #1

Training

  • Linux
  • Hands-on
  • Embedded
  • Self-reliance
  • Start from scratch
  • Build from source
  • When, where and how to get help

Courses

Registration

Consulting

  • We do Linux
  • We do real-time
  • We document and debug
  • We build embedded systems
  • We do really small PICmicro, too
  • And, we deliver

More Information

What is the maximum number of address spaces accessible at any moment in Linux in the priviledged (supervisory) mode of execution? In the non-priviledged (user) mode?

Answer

In the priviledged (supervisory) mode of execution, three address spaces are accessible: kernel space, user space and I/O space. Note that user space and I/O space accesses are supposed to be performed through various macros, not by direct (e.g., *cp) reference. Only the kernel space should be referenced directly.

In the non-priviledged (user) mode of execution, only one address space is accessible, user space, and it may always be referenced directly (e.g., by a *cp reference). This includes temporary mappings to I/O device control registers that may be set up through the /dev/kmem device and the mmap() system call.

Note that the C language does not differentiate between these. Inappropriate coding can lead to bugs that show up in the customer's hands weeks or months after testing was thought to be complete. RyteTyme can show you how to structure your code and avoid these problems.


Does your RTOS have a hodge-podge of add-ons?
With Linux, everything is designed to fit.

© Copyright 2003 by RyteTyme
All Rights Reserved
Revised 10-March-2006