Read Advanced Linux Programming. Don't seek an exact equivalent in Linux for each functionality of Win32 that you know or want. Learn to natively think in Linux terms. Study free software similar to yours (see freecode or sourceforge to find some).
And yes, Posix or Linux vs Windows is very different, notably for their notion of processes, etc...
You probably want mmap(2) and mprotect(2); I don't know at all Windows (so I have no idea of what HeapCreate
does).
Maybe using the lower layer of cross-platform toolkits like Qt (i.e. QtCore
...) or Glib (from Gtk ...) might help you.
Linux C standard library is often GNU libc (but you could use some other, e.g. MUSL libc, which is very readable IMHO). It use syscalls listed in syscalls(2) and implemented by the Linux kernel (in particular, malloc(3) is generally built above mmap(2)...).
Take the habit of studying the source code of free software if that helps you.
BTW, for an interpreter, you could consider using Boehm's conservative garbage collector...