• 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
            • Aufgabe 3: Pro-/Epilog
              • Aufgabe 4: Kontextwechsel
                • Aufgabe 5: Zeitscheiben
                  • Assembler Crashkurs
                    • C++ Crashkurs
                      • Entwicklungsumgebung
                        • FAQ
                          • Ruhmeshalle

                        C++ Crashkurs

                        Classes | Enumerations | Functions
                        GDT Namespace Reference

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

                        Classes

                        struct  SegmentDescriptor.__unnamed23__
                         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.__unnamed23__

                        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