🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.os.linux.programowanie
2 messages
2 total messages Started by porparek Sun, 28 Dec 2014 16:23
zero user space Data Segment (DS)
#72725
Author: porparek
Date: Sun, 28 Dec 2014 16:23
10 lines
1576 bytes
Witajcie

Zawsze myslalem ze rejestr procesora DS w linuxie jest zawsze niezerowy.
Ostatnio wyswietlilem zawartosc tego rejestru w GDB i okazalo sie ze rowna sie on 0. Sprawdzalem to w kilku prostych programach (w przestrzeni uzytkownika) i zawsze rowna sie on 0.

Czy oznacza to ze w jakis sposob segmantacja nie jest wykorzystywana podczas dostepu do danych.

Dla odmiany rejestry CS oraz SS zawieraja sensowne wartosci.

dziekuje za informacje
Re: zero user space Data Segment (DS)
#72726
Author: Bogdan (bogdro)
Date: Mon, 29 Dec 2014 17:24
34 lines
2660 bytes
W dniu 28.12.2014 o 17:23, porparek@gmail.com pisze:
> Witajcie
> 
> Zawsze myslalem ze rejestr procesora DS w linuxie jest zawsze niezerowy.
> Ostatnio wyswietlilem zawartosc tego rejestru w GDB i okazalo sie ze rowna sie on 0. Sprawdzalem to w kilku prostych programach (w przestrzeni uzytkownika) i zawsze rowna sie on 0.
> 
> Czy oznacza to ze w jakis sposob segmantacja nie jest wykorzystywana podczas dostepu do danych.
> 
> Dla odmiany rejestry CS oraz SS zawieraja sensowne wartosci.
> 
> dziekuje za informacje
> 

 Witam.

 Jaki jest tryb pracy procesora? "Ilu-bitowy" system?
 W trybie chronionym rejestry już nie mają tej samej roli, co np. w
DOS-ie. Są selektorami (indeksami) do tablic deskryptorów LDT lub GDT
i zero jako indeks (czyli pierwszy wpis w GDT/LDT) jest jak
najbardziej sensowne, jeśli dobrze pamiętam (pomijając poziom uprawnień).
 Natomiast w trybie 64-bitowym procesor traktuje rejestry segmentowe
tak, jakby zawierały zero.
 Jakie to "sensowne wartości" są w CS i SS? Spodziewałbym się, że np.
DS=3 (lub 7), ale sam debugger też może mieć tu coś do powiedzenia.
 U mnie, na 32-bitowym systemie, program w userspace raportuje, że
DS=123 (konkretnie to DS % 256 = 123). I pod debugerem, i sam.
 Spodziewałbym się zera w DS w trybie 64-bitowym lub w kodzie jądra
(lub sterownika).

-- 
Pozdrawiam/Regards - Bogdan                     (GNU/Linux & FreeDOS)
Kurs asemblera x86 (DOS, GNU/Linux):            http://bogdro.ciki.me
Grupy dyskusyjne o asm:  pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32
www.Xiph.org www.TorProject.org  Soft(EN): http://bogdro.ciki.me/soft
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads