Re: Keeping thread TSS and SS0 stack in LDT
Posted: Fri Jun 03, 2011 4:39 pm
The problems I see with most segmentation implementations
Implementing this efficiently would have similar complexity to implementing paging efficiently.
- Insufficient segment registers. x86 has 3 general purpose (ES, FS, GS) registers; though ES is implicit in some instructions so only GS and FS are truly general purpose
- Segmented addressing creates weirdly sized pointers
- Segment indexes are disjointed (i.e. the segment following Segment 0x10 is segment 0x18, not 0x11
- Direct physical memory mode (i.e. the base contained in the descriptor is used as a physical memory address)
- Various hierarchical paging modes
- 11: System global segments; kernel administered
- 10: Application segments; kernel administered
- 0x: Application segments; application administered
Implementing this efficiently would have similar complexity to implementing paging efficiently.