There arent much segmentation tutorials and theres a few things I dont quite understand...
What happens when you access memory from a C compiled program? Does the program (compiled C code) manually manage the segment registers or does the CPU/MMU modify them on memory access if a segment is defined in a descriptor table?
Can anyone tell me why?In general if you want to use the segmentation mechanism, by having the different segment registers represent segments with different base addresses, you won't be able to use a modern C compiler, and may very well be restricted to just Assembly.
Has anyone actually made a multi-segmented memory based kernel in C?