• 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
      • Eingebettete Systemsoftware
      • 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 2024/25
      • Betriebssysteme
      • Middleware – Cloud Computing
      • Systemprogrammierung 2
      • Verlässliche Echtzeitsysteme
      • Virtuelle Maschinen
      • Web-basierte Systeme
    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
                  • Aufgabe 6: Synchronisation
                    • Aufgabe 7: Anwendung
                      • Assembler Crashkurs
                        • C++ Crashkurs
                          • Entwicklungsumgebung
                            • FAQ
                              • Ruhmeshalle
                              • Evaluation

                              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 = 1
                              }
                               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 

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

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

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