• Navigation überspringen
  • Zur Navigation
  • Zum Seitenende
Organisationsmenü öffnen Organisationsmenü schließen
Friedrich-Alexander-Universität Lehrstuhl für Informatik 4 (Systemsoftware)
  • FAUZur zentralen FAU Website
  1. Friedrich-Alexander-Universität
  2. Technische Fakultät
  3. Department Informatik
Suche öffnen
  • English
  • Campo
  • StudOn
  • FAUdir
  • Stellenangebote
  • Lageplan
  • Hilfe im Notfall
  1. Friedrich-Alexander-Universität
  2. Technische Fakultät
  3. Department Informatik
Friedrich-Alexander-Universität Lehrstuhl für Informatik 4 (Systemsoftware)
Menu Menu schließen
  • Lehrstuhl
    • Team
    • Aktuelles
    • Kontakt und Anfahrt
    • Leitbild
    • 50-jähriges Jubiläum
    Portal Lehrstuhl
  • Forschung
    • Forschungsbereiche
      • Betriebssysteme
      • Confidential Computing
      • Embedded Systems Software
      • Verteilte Systeme
    • Projekte
      • AIMBOS
      • BALu
      • BFT2Chain
      • DOSS
      • Mirador
      • NEON
      • PAVE
      • ResPECT
      • Watwa
    • Projektkampagnen
      • maRE
    • Seminar
      • Systemsoftware
    Portal Forschung
  • Publikationen
  • Lehre
    • Sommersemester 2025
      • Applied Software Architecture
      • Ausgewählte Kapitel der Systemsoftware
      • Betriebssystemtechnik
      • Projekt angewandte Systemsoftwaretechnik
      • System-Level Programming
      • Systemnahe Programmierung in C
      • Systemprogrammierung 1
      • Verteilte Systeme
    • Wintersemester 2025/26
      • Systemprogrammierung 2
      • Betriebssysteme
      • Middleware – Cloud Computing
      • Echtzeitsysteme
      • Virtuelle Maschinen
      • Web-basierte Systeme
      • Projekt angewandte Systemsoftwaretechnik
      • Aktuelle Entwicklung in Verteilten und Objektorientierten Betriebssystemen (für Bachelor-/Masterarbeit)
    Portal Lehre
  • Examensarbeiten
  1. Startseite
  2. Extern

Extern

Bereichsnavigation: Lehre
  • Betriebssysteme
    • Vorlesung
      • Folien
    • Übung
      • Seminar
      • Aufgaben
      • Aufgabe 0: C++ Streams
        • Aufgabe 1: Ein-/Ausgabe
          • Aufgabe 2: Unterbrechungen
            • Assembler Crashkurs
              • C++ Crashkurs
                • Entwicklungsumgebung
                  • FAQ
                    • Ruhmeshalle

                  Aufgabe 2: Unterbrechungen

                  Classes | Enumerations | Functions
                  GDT Namespace Reference

                  Abstracts the GDT that, primarily, contains descriptors to memory segments. More...

                  Classes

                  struct  SegmentDescriptor.__unnamed32__
                   Fields specific for Data Segment (for debugging purposes) More...
                   

                  Enumerations

                  enum  Segments {
                    SEGMENT_NULL = 0 ,
                    SEGMENT_KERNEL_CODE ,
                    SEGMENT_KERNEL_DATA
                  }
                   
                  enum  Granularity {
                    GRANULARITY_BYTES = 0 ,
                    GRANULARITY_4KBLOCK = 1
                  }
                   Unit of the segment limit. More...
                   
                  enum  DescriptorType {
                    DESCRIPTOR_SYSTEM = 0 ,
                    DESCRIPTOR_CODEDATA = 1
                  }
                   Descriptor type. More...
                   
                  enum  Size {
                    SIZE_16BIT = 0 ,
                    SIZE_32BIT = 2 ,
                    SIZE_64BIT_CODE = 1 ,
                    SIZE_64BIT_DATA = 0
                  }
                   Address width. More...
                   

                  Functions

                  constexpr Pointer gdt_protected_mode_pointer (protected_mode)
                   
                  constexpr Pointer gdt_long_mode_pointer (long_mode)
                   

                  Detailed Description

                  Abstracts the GDT that, primarily, contains descriptors to memory segments.

                  The GDT is a table that primarily contains segment descriptors. Segment descriptors has a size of 8 Bytes and contains the size, position, access rights, and purpose of such a segment. Unlike the LDT, the GDT is shared between all processes and may contain TSS and LDT descriptors. For the kernel, the first entry is required to be a null descriptor and the code and data segments. To support user-mode processes, additional TSS, code, and data segments for ring 3 must be added.

                  The base address and size of the GDT are written to the GDTR register during boot (via. lgdt).

                  See also
                  ISDMv3, 2.4.1; Global Descriptor Table Register (GDTR)
                  ISDMv3, 3.5.1; Segment Descriptor Tables

                  Class Documentation

                  struct GDT::SegmentDescriptor.__unnamed32__

                  Fields specific for Data Segment (for debugging purposes)

                  See also
                  ISDMv3, 3.4.5.1; Code- and Data-Segment Descriptor Types
                  Class Members
                  uint64_t __pad0__: 40 Ignored (set via limit_low and base_low)
                  bool data_accessed: 1 If set, the data segment was used since the last reset of this value.
                  bool writeable: 1 If set, data is writable (otherwise read only)
                  bool expand_down: 1 Growing direction for dynamically growing segments.
                  bool notData: 1 Has to be cleared (false)
                  uint64_t __pad1__: 9 Ignored (set via privilege_level ... available)
                  uint64_t reserved: 1 Reserved, always set to 0!
                  bool big: 1 Size of the stack pointer (false = 16 bit, true = 32 bit)
                  Warning
                  Has a different meaning in case expand_down is set to 1.
                  uint64_t __pad2__: 0 Remainder ignored.

                  Enumeration Type Documentation

                  enum GDT::Granularity

                  Unit of the segment limit.

                  Enumerator
                  GRANULARITY_BYTES 

                  Segment limit in Bytes.

                  GRANULARITY_4KBLOCK 

                  Segment limit in blocks of 4 Kilobytes.

                  enum GDT::DescriptorType

                  Descriptor type.

                  Enumerator
                  DESCRIPTOR_SYSTEM 

                  entry is a system segment

                  DESCRIPTOR_CODEDATA 

                  entry is a code/data segment

                  enum GDT::Size

                  Address width.

                  Enumerator
                  SIZE_16BIT 

                  16-bit (D/B = 0, L = 0)

                  SIZE_32BIT 

                  32-bit (D/B = 1, L = 0)

                  SIZE_64BIT_CODE 

                  64-bit (D/B = 0, L = 1)

                  SIZE_64BIT_DATA 

                  64-bit (D/B = 0, L = 0)

                  Friedrich-Alexander-Universität
                  Erlangen-Nürnberg

                  Schlossplatz 4
                  91054 Erlangen
                  • Impressum
                  • Datenschutz
                  • Barrierefreiheit
                  • Facebook
                  • RSS Feed
                  • Xing
                  Nach oben