{"id":454,"date":"2020-08-18T19:23:47","date_gmt":"2020-08-18T20:23:47","guid":{"rendered":"http:\/\/www.linux-tutorial.info\/?page_id=77"},"modified":"2020-08-22T19:26:02","modified_gmt":"2020-08-22T20:26:02","slug":"this-is-the-page-title-toplevel-287","status":"publish","type":"page","link":"http:\/\/www.linux-tutorial.info\/?page_id=454","title":{"rendered":"Linux Page Tables"},"content":{"rendered":"\n<title>Linux Page Tables<\/title>\n<p>\n<img decoding=\"async\" src=\"page-tables.gif\"><br \/>\n<p>\nFigure: Three Level Page Tables<\/center>\n<a name=\"linux-page-tables-figure\"><\/a>\n<p>\n<p>Linux assumes that there are three levels of page tables.\nEach Page Table contains the page frame number of the next level of Page Table. The\nFigure above shows how a virtual address can\nbe broken into a number of fields; each field providing an offset into a\nparticular Page Table.\nTo translate a virtual address into a physical one, the processor must take the\ncontents of each level field, convert it into an offset into the physical\npage containing the Page Table and read the page frame number of the next level of Page\nTable.\nThis is repeated three times until the page frame number of the physical page\ncontaining the virtual address is found.\nNow the final field in the virtual address, the byte offset, is used to\nfind the data inside the page.\n<p>\nEach platform that Linux runs on must provide translation macros that allow\nthe kernel to traverse the page tables for a particular process.\nThis way, the kernel does not need to know the format of the page table entries or\nhow they are arranged.\n<p>\nThis is so successful that Linux uses the same page table manipulation code for\nthe Alpha processor, which has three levels of page tables, and for Intel x86 processors,\nwhich have two levels of page tables.\n","protected":false},"excerpt":{"rendered":"<p>Linux Page Tables Figure: Three Level Page Tables Linux assumes that there are three levels of page tables. Each Page Table contains the page frame number of the next level of Page Table. The Figure above shows how a virtual &hellip; <a href=\"http:\/\/www.linux-tutorial.info\/?page_id=454\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-454","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"http:\/\/www.linux-tutorial.info\/index.php?rest_route=\/wp\/v2\/pages\/454","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.linux-tutorial.info\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/www.linux-tutorial.info\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/www.linux-tutorial.info\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.linux-tutorial.info\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=454"}],"version-history":[{"count":1,"href":"http:\/\/www.linux-tutorial.info\/index.php?rest_route=\/wp\/v2\/pages\/454\/revisions"}],"predecessor-version":[{"id":607,"href":"http:\/\/www.linux-tutorial.info\/index.php?rest_route=\/wp\/v2\/pages\/454\/revisions\/607"}],"wp:attachment":[{"href":"http:\/\/www.linux-tutorial.info\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=454"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}