On Mon, 12 Apr 2004, prasanna wakhare wrote: > hi, > segmantation cannot disable,as specified in intel > manuals,although we can make it off by giving base > address 0x00000000, > and this is what linux kernel does ,but not write from I am afraid not. There are four segments on which linux kernel operate. kernel data (__KERNEL_DS), kernel code (__KERNEL_CS), user data (__USER_DS) and user code (__USER_CS). these #defined constants are loaded into respective registers and constitutes of the segmentation used in linux kernel. > boot ,and thus as specified in mail about kernel > physical memory allocation at boot, > it has to specified some base address in descriptors > so to generate LA greater than 0xc0000000 for that > base address in descriptors are 0xc0000000 No. At boot up, kernel sets a temporary address space of 8MB in the real mode. By setting up the temporary page tables properly (swapper_pg_dir array entries 0,1 =>referring to first 8 MB physical memory , 0x300 and 0x301 => referring to 0xc000_0000 linear address pointing to same physical address as 0 and 1 entries) kernel can access the same physical memory locations in real mode as well as protected mode (0xc000_0000 address). > then after paging is on segmenatation is off Segmentation is never off in ia32. HTH. For more info, have a look into ULK, chapter 2 -- Omanakuttan.N. Perl, C, C++. Linux Everything might be different in the present if only one thing had been different in the past. -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/