who can join me and help me?

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
chenrvmldd
Posts: 10
Joined: Sat Mar 01, 2008 11:27 pm

who can join me and help me?

Post by chenrvmldd »


Now,I have an idea。I want to add virtual memory management to minix,but I encount a lot of problems,for example:we all know that minix does not have paging mechanism,the first step I should do is that adding paging mechanism to minix ,but I am not very familiar with the booting of minix,
about boothead.s and bootblock.s,because of lacking of concrete materials
about minix ,if who knows the booting of minix,or has some materials,or
is interested in this can contact me and help me,my email is:
[email protected]
thank you the people will help me and god bless you!
speal
Member
Member
Posts: 43
Joined: Wed Mar 07, 2007 10:09 am
Location: Minneapolis, Minnesota
Contact:

Post by speal »

You're actually mistaken. MINIX does have virtual memory support - this is an integral component to the isolation of drivers and processes from the kernel code (and each other).

Maybe I misunderstood what you plan to implement?
chenrvmldd
Posts: 10
Joined: Sat Mar 01, 2008 11:27 pm

Post by chenrvmldd »

minix does not have virtual memory management now
User avatar
JamesM
Member
Member
Posts: 2935
Joined: Tue Jul 10, 2007 5:27 am
Location: York, United Kingdom
Contact:

Post by JamesM »

Are you absolutely certain? How then, does MINIX3 support the isolation of processes?

MINIX was intended as a teaching tool, and seeing as Tanenbaum wrote about VMM in his book, I would assume it to be implemented in minix too. Plus, you can't really go very far without it... :S
chenrvmldd
Posts: 10
Joined: Sat Mar 01, 2008 11:27 pm

Post by chenrvmldd »

yes,I am very sure ,because I am in a project part of which is to add virtual
memory management to minix, I also have read the book writen by Tanenbaum,and in the book it refers that minix does not have virtual memory management
User avatar
JackScott
Member
Member
Posts: 1031
Joined: Thu Dec 21, 2006 3:03 am
Location: Hobart, Australia
Contact:

Post by JackScott »

I believe he says that no paging to disk is done, IIRC.
xyzzy
Member
Member
Posts: 391
Joined: Wed Jul 25, 2007 8:45 am
Libera.chat IRC: aejsmith
Location: London, UK
Contact:

Post by xyzzy »

As far as I'm aware, it doesn't actually use paging, but instead segmentation.
speal
Member
Member
Posts: 43
Joined: Wed Mar 07, 2007 10:09 am
Location: Minneapolis, Minnesota
Contact:

Post by speal »

I'm looking at the MINIX source code right now, and I see this block of code in src/kernel/arch/i386/memory.c

Code: Select all

PRIVATE void vm_enable_paging(void)
{
	u32_t cr0;

	cr0= read_cr0();
	write_cr0(cr0 | I386_CR0_PG);
}
So yes, minix uses virtual memory, and paging at that.
User avatar
JamesM
Member
Member
Posts: 2935
Joined: Tue Jul 10, 2007 5:27 am
Location: York, United Kingdom
Contact:

Post by JamesM »

From reading the wiki pages etc, I get the impression they use "virtual memory" to mean swapspace or a pagefile.
chenrvmldd
Posts: 10
Joined: Sat Mar 01, 2008 11:27 pm

Post by chenrvmldd »

Hi ,speal ,maybe I read the source code that is an old version,I don't know what version you have read,can you tell me what you read?thank you
User avatar
B.E
Member
Member
Posts: 275
Joined: Sat Oct 21, 2006 5:29 pm
Location: Brisbane Australia
Contact:

Post by B.E »

I think he's using Minix 3, just look at Minix 2 and it doen't seem to have it.
Image
Microsoft: "let everyone run after us. We'll just INNOV~1"
xyzzy
Member
Member
Posts: 391
Joined: Wed Jul 25, 2007 8:45 am
Libera.chat IRC: aejsmith
Location: London, UK
Contact:

Post by xyzzy »

speal wrote:I'm looking at the MINIX source code right now, and I see this block of code in src/kernel/arch/i386/memory.c

Code: Select all

PRIVATE void vm_enable_paging(void)
{
	u32_t cr0;

	cr0= read_cr0();
	write_cr0(cr0 | I386_CR0_PG);
}
So yes, minix uses virtual memory, and paging at that.
Was that code from SVN (from the fact that the arch dir is there I'd probably say yes) or from a released version? I know definitely that the original 3.0 release didn't have paging, as well as the version in OSDI 3rd edition and possibly 3.1.2 as well
speal
Member
Member
Posts: 43
Joined: Wed Mar 07, 2007 10:09 am
Location: Minneapolis, Minnesota
Contact:

Post by speal »

I found the code in the subversion source tree of MINIX 3.

Minix 1 and 2 use segmentation, but an announcement was made with the release of MINIX 3 that virtual memory would be used. Whether they mean paging or paging to disk, I'm not sure. I'm not extremely familiar with the structure of MINIX, but paging memory to disk certainly seems like a task for a user-mode server, and not the kernel itself. In his book "Modern Operating Systems," Tanenbaum advocates for paging-to-disk code running in user-space. I don't know if they already have this or not.

I'd look at the original release of MINIX 3 to see if there is paging code there, but they only seem to provide easy access to code for the development version, and older releases (1 and 2).
iammisc
Member
Member
Posts: 269
Joined: Thu Nov 09, 2006 6:23 pm

Post by iammisc »

IIRC, MINIX 3 uses paging but doesn't support on-demand paging like copy-on-write and lazy page allocation. Maybe this is what you are trying to implement?
xyzzy
Member
Member
Posts: 391
Joined: Wed Jul 25, 2007 8:45 am
Libera.chat IRC: aejsmith
Location: London, UK
Contact:

Post by xyzzy »

speal wrote:I'd look at the original release of MINIX 3 to see if there is paging code there, but they only seem to provide easy access to code for the development version, and older releases (1 and 2).
Look in the branches/tags directories in SVN. Although, the Minix SVN seems to be not working for me...
Post Reply