Skip to content
This repository has been archived by the owner on Nov 21, 2017. It is now read-only.

Memory mapped files (or file mapped virtual address space for one program/process/thread) #105

Open
Konard opened this issue Oct 29, 2015 · 9 comments

Comments

@Konard
Copy link

Konard commented Oct 29, 2015

Are any plans for this? It is actually the only critical dependency for my database/platform to be ported to BareMetal OS and I'm still stuck with Windows and Unix here.. May be it will be even more efficient not to use small pages (4KiB) but instead to use (2MiB) pages.

This technique allows to give an infinite memory to any program/process (that is limited only by hard drives).

It does not require to be BMFS, but it also good to have example like this. It will allow to split space of hard drive between multiple threads, so each will work with separare virtual address space, that is storable and extendable by hard drives or ssds.

https://github.com/Konard/LinksPlatform (this is project that I'm going to port to BareMetal OS sooner or later)

@Konard Konard changed the title Memory mapped files (or file mapped virtual address space one program/process/thread) Memory mapped files (or file mapped virtual address space for one program/process/thread) Oct 29, 2015
@IanSeyler
Copy link
Member

Using 2MiB pages would be ideal as that is what BareMetal already uses for memory mapping.

I'll investigate how this could be added. I'm just not sure of how caching should be configured.

@Konard
Copy link
Author

Konard commented Dec 30, 2015

May be it is a good idea to make memory mapping as a "plugin"? So the developer can deside how to optimize caching? And provide a simpliest example how to implement it?

@ohnx
Copy link
Contributor

ohnx commented Dec 30, 2015

@Konard Making BareMetal-OS a modular OS, where you could select extra features to suit your needs, is an interesting idea.

@Konard
Copy link
Author

Konard commented Dec 31, 2015

At least we can select features (modules or packages) that should be included OS (before compiling or writing to disk/flash). It can be done through modification of code, or through plugin system. By hand or automatically.

@effbiae
Copy link

effbiae commented Jan 1, 2016

Maybe, as with another famous kernel, a config file (optionally generated
by a menu system) can choose to include or exclude code.

The code might be best kept in one repo or optionally got from another
repo. (Hybrid system).

I'm almost at the point of switching to BM but being able to map disk
blocks into an address space is important for me.

Jack

On Thursday, December 31, 2015, Konstantin Dyachenko <
[email protected]> wrote:

May be it is a good idea to make memory mapping as a "plugin"? So the
developer can deside how to optimize caching?


Reply to this email directly or view it on GitHub
ReturnInfinity/BareMetal-OS#105 (comment)
.

@IanSeyler
Copy link
Member

Fixing the memory mapping that is currently being used is here: ReturnInfinity/BareMetal#14

All further development is going into BareMetal-kernel. I'm moving away from a sort of "general purpose" OS to a more "server node" type of OS.

Fixes/additions may be back ported into BareMetal-OS but I'm not sure of its roadmap at the moment.

@Konard
Copy link
Author

Konard commented Jan 5, 2016

So what repository is most ready to be used? https://github.com/ReturnInfinity/BareMetal-OS or https://github.com/ReturnInfinity/BareMetal-kernel ?

@ohnx
Copy link
Contributor

ohnx commented Jan 5, 2016

@Konard BareMetal-kernel is most up-to-date, but lacks many of the features present in BareMetal-OS. However, most of the big changes in the kernel are also committed to this repository.

@IanSeyler
Copy link
Member

@Konard BareMetal-OS at the moment as there is no way to control an instance of just BareMetal-kernel yet as I stripped out the CLI.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants
@effbiae @IanSeyler @Konard @ohnx and others