Re: segmentation_off

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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/


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux