After Syllable Desktop 0.6.6 already brought a number of improvements to standards support, Kristian has now implemented the POSIX interface to memory-mapped files. Ever more software requires this functionality. Both the interfaces for memory-backed files and anonymous memory maps are supported. Syllable has always used memory-mapped files for its in-kernel ELF loader, so the POSIX interface is implemented on top of this. A development build going towards Syllable 0.6.7 is already available, in which several components should make use of
msync() functions are implemented. In the process, Kristian fixed some bugs in the underlying memory management implementation in the kernel. One of the next planned implementations of standard interfaces is async I/O, among other things for completing the
mmap support. Further, it was determined that the time is nearing that the syscall interface needs to change from
int 0x80 to
mmap() is the kernel's first syscall with six arguments, requiring extensions to the syscall table and
strace(). The newer
SYSENTER interface is needed to fully support this and 64-bits arguments, also for a future 64-bits port of Syllable.
There is a tendency in much open source software in recent years to require advanced features of the host platform, that are only available on the major systems; sometimes only on Linux. This is problematic for alternative operating systems and undermines the portability of open source and the diversity and choice of platforms. Through the addition of the
mmap interface, we hope to gain access to such software as GCC beyond the 4.1 versions, Gnash, Cherokee and maybe PostgreSQL. Software that will perform better includes FreeType, SDL and DOSBox.