It may be due to a security enforcement related with the kernel. There is an option in Linux kernels called "noexec". This feature prevents the execution of dynamically allocated memory. Huemul uses libc's malloc to allocate memory for normal objects and compiled methods. But as Huemul has to execute the compiled methods, the kernel protects itself and kills Huemul. In future versions of Huemul, memory allocation will be done with mmap. This system call allows execution of code inside dynamically allocated memory. But until that moment arrives, we have to apply a little hack to the kernel to run Huemul.

If you get the following while trying to run Huemul:

$ huemul huemul.image
Huemul Smalltalk - Version 0.6
Initializing...
done
To use the graphical tools write:
AppLauncher open
or
Segmentation fault (core dumped)
$

or:

$ huemul huemul.image
Huemul Smalltalk - Version 0.6
Initializing...
done
To use the graphical tools write:
AppLauncher open
or
killed
$

We have to boot using the "noexec=off" option. This can be done temporarily or permanently. To do it temporarily, you have to interrupt the normal boot process of your system at the grub stage. Most of the distributions gives a chance to interrupt grub (or any other boot manager) by pressing a key (normally the escape key). Then you have to edit the boot configuration, by changing the line that says "kernel /vmlinuz...", at the end of that line add "noexec=off" (add a space before). Accept the edition and boot with that kernel.

Once inside the system test if the change was really made by doing:

# cat /proc/cmdline
....ro root=LABEL=/ apic noexec=off

if noexec=off appears at the end of the line, you can now play with Huemul!

if you want to make it permanent you would have to edit the grub configuration in /boot/grub/menu.lst and put the "noexec=off" on the same line as "kernel /vmlinuz...", at the end (add a space before)
for example:

default=0
timeout=10
splashimage=(hd0,2)/grub/splash.xpm.gz
title Red Hat Enterprise Linux ES (2.4.21-32.0.1.ELsmp)
root (hd0,2)
kernel /vmlinuz-2.4.21-32.0.1.ELsmp ro root=LABEL=/ apic noexec=off
initrd /initrd-2.4.21-32.0.1.ELsmp.img
title Red Hat Enterprise Linux ES (2.4.21-32.0.1.EL)
root (hd0,2)
kernel /vmlinuz-2.4.21-32.0.1.EL ro root=LABEL=/ apic noexec=off
initrd /initrd-2.4.21-32.0.1.EL.img
title Red Hat Enterprise Linux ES (2.4.21-4.ELsmp)
root (hd0,2)
kernel /vmlinuz-2.4.21-4.ELsmp ro root=LABEL=/ apic noexec=off
initrd /initrd-2.4.21-4.ELsmp.img
title Red Hat Enterprise Linux ES-up (2.4.21-4.EL)
root (hd0,2)
kernel /vmlinuz-2.4.21-4.EL ro root=LABEL=/ apic noexec=off
initrd /initrd-2.4.21-4.EL.img

After reboot, verify if booted with noexec=off option

#cat /proc/cmdline
ro root=LABEL=/ apic noexec=off

Please let us know if this works for you.

Last Updated ( Tuesday, 22 April 2008 18:00 )
   

External Sites  

   
© Copyright © 2020 Web de Guillermo Adrián Molina. All Rights Reserved.