Stas Sergeev
Stas Sergeev
Not that I am going to do this any soon. But thinking more about that, there are lots of problems. DPMI: it allows DOS to see the host pointers. Host...
But overall it was quite amazing to see that the freedos code that was never supposed to be threaded, was actually parallelized by fdpp VM automatically. Which is very cool...
It appears gcc already supports segmented address spaces. @tkchia Do you know if it is possible to build entire project with, say, __seg_gs address space? I.e. change default address space....
https://www.reddit.com/r/cpp/comments/eewqwc/serializable_coroutines_in_c_gameplay_code/ The similar problem is discussed here.
I suppose snapshotting capability can be implemented w/o fdpp first. After all, we can boot other DOSes too. That would at least split one impossible task into 2 huge/impossible tasks....
Hmm, and in fact, the syscall restartability for fdpp is quite doable to implement. On reboot I already use coopth_unsafe_detach() to detach the green thread from the blocking DOS call,...
I mainly am trying to document the existing ideas and materials for the future. In fact, the requirement for making code restartable may work only for fdpp (after some tweaks...
libcriu is also very interesting. It seems to disable ASLR to get around the need of relocating anything. Perhaps we could do the same.
Yes, ldt.h is from linux, but freebsd has similar API: https://www.freebsd.org/cgi/man.cgi?query=i386_set_ldt&apropos=0&sektion=0&manpath=FreeBSD+7.2-RELEASE&format=html So its just a matter of writing a small wrapper. Still I suspect there will be many "small" things...
dosemu-0.x was able to run on netbsd. The patch you mentioned, mostly deals with vm86 and floppy access - nothing of what we want today.