Paging and system calls

From: Kasim Sinan Yildirim (yildirim@bilmuh.ege.edu.tr)
Date: Mon Apr 28 2003 - 07:48:08 EST


Hi,

I am working on a small kernel and i am examining the source code of the
linux.

Since every task has its own page tables, when task switching occurs, the
cr3 field of the TSS is put to the cr3 register which is page directory base
register.

Ưn my operating system, when a system call occurs, the user level code jumps
to system level code by changing its selectors to KernelCS and KernelDS. But
at this point, the cr3 register still points to the page directory of the
user process. So, the actual code that is pointed by kernel level page
directory is not equal to the user level page directory entry. As a result ,
the system fails.

How this problem is solved in Linux? Have you got any solution to my problem?

Thanks...

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Wed Apr 30 2003 - 22:00:29 EST