squeak vm without MMU

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

squeak vm without MMU

Annick Fron-3
Hi,

Is it possible to use pharo on a processor with MMU (Memory Unit Management ) ? 
Namely my target OS is a Linux with the following differences :
============

The kernel is a collection of patches to make the standard Linux kernel run on CPUs that do not have an MMU. As a consequence you will encounter some differences between the kernel and the standard Linux behavior:

no fork() – consider using vfork() instead but beware of the difference of their semantics

no daemon() – it is usually implemented on top of fork and cannot be easily replaced without changing the semantics.

fixed stack size -- the stack of an application is set at execution time and cannot grow during runtime. The default stack size is 4k! It can be increased with the "-s" option of m68k-uClinux-elf2flat.

limited libc compared to glibc -- either add more to libc, or remove some functionality.

no support for ELF binary file format

very limited support for shared libraries due to missing MMU -- all applications get linked statically

mmap() is very inefficient

no paging -- applications have to be loaded completely into RAM, the heap is very susceptible to fragmentation.

========
Annick Fron
Reply | Threaded
Open this post in threaded view
|

Re: squeak vm without MMU

melkyades
Well, I think it should be. In SqueakNOS we load squeak/pharo without libc and can work without memory management at all. The thing that should be tricky is were do you place things in memory, so you don't break other programs. 
     Actually, for libc we implement just a minimal set of needed functions like printf, memcpy, etc (if you are interested you can look at our sqLibc.c file and the makefile which picks functions from glibc). For the functions you mention, I believe pharo can live without them, but of course you'll probably have to create your own platform with makefiles and tweaks. 
     Also, libraries can be compiled as internal and that should solve most of the problems.

Hope that helps!

Javier.

On Wed, Jan 12, 2011 at 6:26 AM, Annick Fron <[hidden email]> wrote:
Hi,

Is it possible to use pharo on a processor with MMU (Memory Unit Management ) ? 
Namely my target OS is a Linux with the following differences :
============

The kernel is a collection of patches to make the standard Linux kernel run on CPUs that do not have an MMU. As a consequence you will encounter some differences between the kernel and the standard Linux behavior:

no fork() – consider using vfork() instead but beware of the difference of their semantics

no daemon() – it is usually implemented on top of fork and cannot be easily replaced without changing the semantics.

fixed stack size -- the stack of an application is set at execution time and cannot grow during runtime. The default stack size is 4k! It can be increased with the "-s" option of m68k-uClinux-elf2flat.

limited libc compared to glibc -- either add more to libc, or remove some functionality.

no support for ELF binary file format

very limited support for shared libraries due to missing MMU -- all applications get linked statically

mmap() is very inefficient

no paging -- applications have to be loaded completely into RAM, the heap is very susceptible to fragmentation.

========
Annick Fron



--
Javier Pimás
Ciudad de Buenos Aires
Reply | Threaded
Open this post in threaded view
|

Re: squeak vm without MMU

Annick Fron-3
Thank you ! I still don't have the hardware to test.
Best regards

Le 13 janv. 2011 à 14:54, Javier Pimás a écrit :

Well, I think it should be. In SqueakNOS we load squeak/pharo without libc and can work without memory management at all. The thing that should be tricky is were do you place things in memory, so you don't break other programs. 
     Actually, for libc we implement just a minimal set of needed functions like printf, memcpy, etc (if you are interested you can look at our sqLibc.c file and the makefile which picks functions from glibc). For the functions you mention, I believe pharo can live without them, but of course you'll probably have to create your own platform with makefiles and tweaks. 
     Also, libraries can be compiled as internal and that should solve most of the problems.

Hope that helps!

Javier.

On Wed, Jan 12, 2011 at 6:26 AM, Annick Fron <[hidden email]> wrote:
Hi,

Is it possible to use pharo on a processor with MMU (Memory Unit Management ) ? 
Namely my target OS is a Linux with the following differences :
============

The kernel is a collection of patches to make the standard Linux kernel run on CPUs that do not have an MMU. As a consequence you will encounter some differences between the kernel and the standard Linux behavior:

no fork() – consider using vfork() instead but beware of the difference of their semantics

no daemon() – it is usually implemented on top of fork and cannot be easily replaced without changing the semantics.

fixed stack size -- the stack of an application is set at execution time and cannot grow during runtime. The default stack size is 4k! It can be increased with the "-s" option of m68k-uClinux-elf2flat.

limited libc compared to glibc -- either add more to libc, or remove some functionality.

no support for ELF binary file format

very limited support for shared libraries due to missing MMU -- all applications get linked statically

mmap() is very inefficient

no paging -- applications have to be loaded completely into RAM, the heap is very susceptible to fragmentation.

========
Annick Fron



--
Javier Pimás
Ciudad de Buenos Aires