After Syllable Desktop 0.6.6 already brought a number of improvements to standards support, Kristian Van Der Vliet 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 mmap.
The mmap(), munmap(), mprotect() and 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 SYSENTER/SYSCALL. 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, Syllable hopes 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.