OSDev.org https://forum.osdev.org/ |
|
In what order should I work on memory? https://forum.osdev.org/viewtopic.php?f=15&t=36834 |
Page 1 of 1 |
Author: | mrjbom [ Tue Jun 02, 2020 2:39 pm ] |
Post subject: | In what order should I work on memory? |
Hi. I fully understand the order in which to implement some parts in my 32-bit core. My goal now is to add multitasking. I found the article "kernel multitasking" The requirements have page paging. But I don't know if I have everything I need before implementing paging. I don't have any virtual memory right now. At the moment I manage my physical memory like this: I divide all physical memory into 4096-byte pages. And I make them out if I have to. Now I need to make a virtual memory? Only then do you start multitasking? In what order do I need to implement something? Thanks. |
Author: | Octocontrabass [ Wed Jun 03, 2020 12:44 am ] |
Post subject: | Re: In what order should I work on memory? |
It's a good idea to have virtual memory management working before you try to implement multitasking. |
Author: | Octacone [ Wed Jun 03, 2020 11:29 am ] |
Post subject: | Re: In what order should I work on memory? |
mrjbom wrote: I found the article "kernel multitasking" That article is crap! Don't use it, also never do assembly task switching in C code like shown in that tutorial! Here is a proper one: https://wiki.osdev.org/Brendan%27s_Multi-tasking_Tutorial |
Author: | thewrongchristian [ Wed Jun 03, 2020 11:54 am ] |
Post subject: | Re: In what order should I work on memory? |
mrjbom wrote: Hi. I fully understand the order in which to implement some parts in my 32-bit core. My goal now is to add multitasking. I found the article "kernel multitasking" The requirements have page paging. But I don't know if I have everything I need before implementing paging. I don't have any virtual memory right now. At the moment I manage my physical memory like this: I divide all physical memory into 4096-byte pages. And I make them out if I have to. Now I need to make a virtual memory? Only then do you start multitasking? In what order do I need to implement something? Thanks. You don't need virtual memory to implement multi-tasking. Lots of kernels have only a single address space with multiple threads of execution. But, paging does enable a whole host of other features, not least the ability to have multiple address spaces, to provide a protection domain to allow independent, isolated processes, as well as releasing you from the shackles of physical memory layout and size. Paging is just the mapping from a linear virtual address space to a potentially non-linear physical address space. Virtual memory can be facilitated by paging, but you can also implement paging without having virtual memory, and indeed, UNIX/32V (the port of V7 UNIX to the DEC VAX) is an example of an OS using the paging hardware, but not using paging to implement virtual memory. |
Author: | 8infy [ Wed Jun 03, 2020 1:29 pm ] |
Post subject: | Re: In what order should I work on memory? |
Octacone wrote: mrjbom wrote: I found the article "kernel multitasking" That article is crap! Don't use it, also never do assembly task switching in C code like shown in that tutorial! Here is a proper one: https://wiki.osdev.org/Brendan%27s_Multi-tasking_Tutorial How do I find more hidden gems like this one? Searching the wiki yields nothing useful at all... |
Author: | mrjbom [ Thu Jun 04, 2020 2:29 am ] |
Post subject: | Re: In what order should I work on memory? |
Octacone wrote: mrjbom wrote: I found the article "kernel multitasking" That article is crap! Don't use it, also never do assembly task switching in C code like shown in that tutorial! Here is a proper one: https://wiki.osdev.org/Brendan%27s_Multi-tasking_Tutorial Wow, it looks much better. It's too bad I haven't seen him before! Thanks! |
Page 1 of 1 | All times are UTC - 6 hours |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |