I am quite new to intel low-level programming and I have a question regarding segmentation in 64bit.
Is it possible to use hardware segmentation in intel 64bit processors?
I have read in the intel developer manual(3A) that segmentation in 64bit is disabled but not completely. As I know the linux kernel uses segmentation for separating user and kernel space, therefore some functionalities are present. But is it possible to use hardware segmentation on a 64bit system inside a user process? As example in a linux user process?
Or is there a similar mechanism for 64bit that allows a user space program to use hardware memory protection without involving the kernel resp. ring 0? (paging would involve ring 0)
A very big subject, tangential to this forum, with some of the simpler questions easily looked up on the web browser you must have available to reach this forum. You may have to dig into binutils documentation and beyond, or kernel documentation, depending on your interests, for deeper questions on OS such as linux.
Just to clarify, my question is not OS specific. The linux part was just an example. I am looking for a way to use segmentation or another memory separation mechanism in ring 3 for 64bit intel cpus. This will work in all operating systems where user programs run in ring 3. The problem is, I am not sure how 64bit and 32bit segmentation differ. The manual just states that some segment selectors are zero and run-time limit checks are disabled, therefore segmentation should still work, right?
Or does someone know if there is another forum where this question could fit in? Or is there some example assembly code, maybe from intel, that demonstrates how segmentation is used?