The Linux LDTs

  • Default LDT: This is the one specified in the GDT.  Most processes do not use a LDT therefore kernel keeps one with 5 entries by default
    • Stored in default_ldt_array
      • 2 are used call gates for iBCS and Solaris/x86 executable
        • Call Gates: Allow change of privilege level of PU while invoking predefined function
  • Some applications such as Wine will need them as Windows uses segment-oriented applications
    • modify_ldt()

      allows a process to set up a new LDT

    • When a processor starts executing a process having a custom LDT, the LDT entry in the CPU-specific copy of the GDT is changed accordingly

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s