Lxrun emulates or maps most commonly-used system calls for which native equivalents exist. Unimplemented calls return an error indication and set ENOSYS.
The files doc/SysCallTable* list tables of supported, partially supported, and unsupported system calls. The SyscallScript utility run (against the source) will regenerate the text and HTML versions of this file. An on-line copy of the currently supported system calls is available at http://skunkware.dev/skunkware/emulators/SyscallTable.html.
The following system calls are mapped directly:
exit() fork() creat() link() unlink() chdir() time() mknod() chmod() chown() lseek() getpid() setuid() getuid() stime() alarm() pause() utime() access() nice() sync() rename() mkdir() rmdir() dup() times() setgid() getgid() geteuid() getegid() setpgid() umask() chroot() dup2() getppid() getpgrp() setsid() setreuid() setregid() sethostname() gettimeofday() settimeofday() symlink() readlink() truncate() ftruncate() fchmod() fchown() setitimer() getitimer() fsync() setdomainname() getpgid() fchdir() sysfs() getdents() readv() writev() getsid()
For the following system calls, lxrun either provides some remapping of arguments, return values, and error codes, or in cases where an analogous native call does not exist, emulates the call using native library functions.
nosys() read() write() open() close() waitpid() execve() oldstat() ptrace() oldfstat() kill() pipe() brk() signal() fcntl() olduname() sigaction() sgetmask() ssetmask() sigsuspend() sigpending() setrlimit() getrlimit() getgroups() setgroups() old_select() oldlstat() uselib() readdir() mmap() munmap() getpriority() setpriority() socketcall() syslog() stat() lstat() fstat() uname() iopl() wait4() sysinfo() ipc() sigreturn() newuname() mprotect() sigprocmask() personality() _llseek() select()
The following system calls are partially emulated:
ioctl() ioperm() fdatasync()
The list of unimplemented system calls is as follows:
mount() umount() getrusage() swapon() reboot() statfs() fstatfs() vhangup() idle() vm86() swapoff() clone() modify_ldt() adjtimex() create_module() init_module() delete_module() get_kernel_syms() quotactl() bdflush() setfsuid() setfsgid() flock() msync() sysctl() mlock() munlock() mlockall() munlockall() sched_setparam() sched_getparam() sched_setscheduler() sched_getscheduler() sched_yield() sched_get_priority_max() sched_get_priority_min() sched_rr_get_interval()