Re: Demand paging

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

 



> I'd like to get confirmation...

Ok, but first: please, don't send your e-mails in html mode.

The page directory is 1024 entrys long. Each entry is 4 bytes long. So,
the page directory steal 4kbytes of memory.

        ----------------------------------------
        | Address   |         D|A|PCD|PWT|U|W|P|
        ----------------------------------------
        31          12        6 5 4   3   2 1 0

You have to take into account for the meaning of the flags here. For
example, if P=0 then the page entry is not valid (not present), so when
the process acess it, it generates a page fault. "Address" points to the
beginning of a page table. When you initialize the page directory, you
have to think to put a valid address in the "Address" field if you put
P=1 for that entry.

I must admit i'm reading through the FIRST release linus made: version
0.01 (I do for simplicity).

It happens that linus' machine had a limitation of 8MB, so he only
needed two valid entries in the directory (each entry in the directory
can address 4MB of physical memory). The initialization of the directory
and the page tables was done in linux/boot/head.s, in the "setup_paging"
routine.

Please, if I'm saying something wrong, constructive critics will be
appreciated.


-- 
$ fortune
A pessimist is a man who has been compelled to live with an optimist.
		-- Elbert Hubbard
$ 
--
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