<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>Sounds like it could be made to work. Pretty much the only hard requirement is that you need to be able to allocate a big *continuous* chunk of memory (image size + headroom).&nbsp;</div><div><br></div><div><span class="Apple-style-span" style="border-collapse: separate; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); font-family: 'Lucida Grande'; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; -webkit-text-decorations-in-effect: none; text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><div style="font-family: Helvetica; "><span class="Apple-style-span" style="font-family: Helvetica; ">- Bert -</span></div><br class="Apple-interchange-newline"></span></div><div><div>On 13.01.2011, at 08:36, stephane ducasse wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><br><div>Begin forwarded message:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"><span style="font-family:'Helvetica'; font-size:medium; color:rgba(0, 0, 0, 1);"><b>From: </b></span><span style="font-family:'Helvetica'; font-size:medium;">Annick Fron &lt;<a href="mailto:info@afceurope.com">info@afceurope.com</a>&gt;<br></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"><span style="font-family:'Helvetica'; font-size:medium; color:rgba(0, 0, 0, 1);"><b>Date: </b></span><span style="font-family:'Helvetica'; font-size:medium;">January 12, 2011 10:26:41 AM GMT+01:00<br></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"><span style="font-family:'Helvetica'; font-size:medium; color:rgba(0, 0, 0, 1);"><b>To: </b></span><span style="font-family:'Helvetica'; font-size:medium;">A friendly place where any question about pharo is welcome &lt;<a href="mailto:pharo-users@lists.gforge.inria.fr">pharo-users@lists.gforge.inria.fr</a>&gt;<br></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"><span style="font-family:'Helvetica'; font-size:medium; color:rgba(0, 0, 0, 1);"><b>Subject: </b></span><span style="font-family:'Helvetica'; font-size:medium;"><b>[Pharo-users] squeak vm without MMU</b><br></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"><span style="font-family:'Helvetica'; font-size:medium; color:rgba(0, 0, 0, 1);"><b>Reply-To: </b></span><span style="font-family:'Helvetica'; font-size:medium;">A friendly place where any question about pharo is welcome &lt;<a href="mailto:pharo-users@lists.gforge.inria.fr">pharo-users@lists.gforge.inria.fr</a>&gt;<br></span></div><br><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hi,<div><br></div><div>Is it possible to use pharo on a processor with MMU (Memory Unit Management ) ?&nbsp;</div><div>Namely my target OS is a Linux with the following differences :</div><div>============</div><div><br></div><div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0.0001pt; margin-left: 0cm; font-size: 12pt; font-family: Arial; color: black; "><font size="2" color="black" face="Arial"><span lang="EN-GB" style="font-size: 10pt; ">The</span></font><font size="2"><span lang="EN-GB" style="font-size: 10pt; ">&nbsp;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&nbsp;kernel</span></font><font size="2"><span lang="EN-GB" style="font-size: 10pt; ">&nbsp;and the standard Linux behavior:</span></font></div><p class="Default" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 2.6pt; margin-left: 0cm; font-size: 12pt; font-family: Arial; color: black; "><font size="1" color="black" face="Wingdings"><span style="font-size: 8pt; font-family: Wingdings; ">u&nbsp;</span></font><font size="2"><span lang="EN-GB" style="font-size: 10pt; ">no fork() – consider using vfork() instead but beware of the difference of their semantics<o:p></o:p></span></font></p><p class="Default" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 2.6pt; margin-left: 0cm; font-size: 12pt; font-family: Arial; color: black; "><font size="1" color="black" face="Wingdings"><span style="font-size: 8pt; font-family: Wingdings; ">u&nbsp;</span></font><font size="2"><span lang="EN-GB" style="font-size: 10pt; ">no daemon() – it is usually implemented on top of fork and cannot be easily replaced without changing the semantics.<o:p></o:p></span></font></p><p class="Default" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 2.6pt; margin-left: 0cm; font-size: 12pt; font-family: Arial; color: black; "><font size="1" color="black" face="Wingdings"><span style="font-size: 8pt; font-family: Wingdings; ">u&nbsp;</span></font><font size="2"><span lang="EN-GB" style="font-size: 10pt; ">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.<o:p></o:p></span></font></p><p class="Default" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 2.6pt; margin-left: 0cm; font-size: 12pt; font-family: Arial; color: black; "><font size="1" color="black" face="Wingdings"><span style="font-size: 8pt; font-family: Wingdings; ">u&nbsp;</span></font><font size="2"><span lang="EN-GB" style="font-size: 10pt; ">limited libc compared to glibc -- either add more to libc, or remove some functionality.<o:p></o:p></span></font></p><p class="Default" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 2.6pt; margin-left: 0cm; font-size: 12pt; font-family: Arial; color: black; "><font size="1" color="black" face="Wingdings"><span style="font-size: 8pt; font-family: Wingdings; ">u&nbsp;</span></font><font size="2"><span lang="EN-GB" style="font-size: 10pt; ">no support for ELF binary file format<o:p></o:p></span></font></p><p class="Default" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 2.6pt; margin-left: 0cm; font-size: 12pt; font-family: Arial; color: black; "><font size="1" color="black" face="Wingdings"><span style="font-size: 8pt; font-family: Wingdings; ">u&nbsp;</span></font><font size="2"><span lang="EN-GB" style="font-size: 10pt; ">very limited support for shared libraries due to missing MMU -- all applications get linked statically<o:p></o:p></span></font></p><p class="Default" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 2.6pt; margin-left: 0cm; font-size: 12pt; font-family: Arial; color: black; "><font size="1" color="black" face="Wingdings"><span style="font-size: 8pt; font-family: Wingdings; ">u&nbsp;</span></font><font size="2"><span lang="EN-GB" style="font-size: 10pt; ">mmap() is very inefficient<o:p></o:p></span></font></p><p class="Default" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 2.6pt; margin-left: 0cm; font-size: 12pt; font-family: Arial; color: black; "><font size="1" color="black" face="Wingdings"><span style="font-size: 8pt; font-family: Wingdings; ">u&nbsp;</span></font><font size="2"><span lang="EN-GB" style="font-size: 10pt; ">no paging -- applications have to be loaded completely into RAM, the heap is very susceptible to fragmentation.</span></font></p><div>========</div></div><div>Annick Fron</div></div></blockquote></div><br></div></blockquote></div><br></body></html>