mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-10-25 10:40:57 +00:00
- Remove XD bit in page tables
- Fix cylinder+head+sector arithmetic
- Implement fstat() for serial file descriptors on metal
Here's how to boot an Actually Portable Executable in QEMU:
make -j12 o//tool/viz/deathstar.com
qemu-system-x86_64 -serial stdio -fda o//tool/viz/deathstar.com
Here's a screenshot of DEATHSTAR.COM booted in QEMU:
https://justine.lol/cosmopolitan/cosmo-metal-qemu.png
Thus metal support is in much better shape now, but still incomplete.
Only a few system calls have been polyfilled. To figure out which ones
your program needs, simply boot it in the blinkenlights emulator with a
breakpoint, and press CTRL-C to continue to the system call breakpoint.
If it doesn't break then you should be good. (Note: to emulate normally
you can press 'c' and use CTRL-T and ALT-T to tune the speed.)
m=tiny
make -j12 SILENT=0 MODE=$m \
o/$m/tool/build/blinkenlights.com \
o/$m/tool/viz/deathstar.com
o/$m/tool/build/blinkenlights.com \
-r -t -b systemfive.linux \
o/$m/tool/viz/deathstar.com
Thank @Theldus for the bug report that made this change possible.
Fixes #20 which explains this change further.
|
||
|---|---|---|
| .. | ||
| package | ||
| auto-launch-gdb-on-crash.c | ||
| bigmem.c | ||
| breakpoint.c | ||
| cp.c | ||
| cplusplus.cc | ||
| crashreport.c | ||
| ctrlc.c | ||
| date.c | ||
| dinlerp.c | ||
| examples.mk | ||
| findprime.c | ||
| forkrand.c | ||
| generalized-automatic-datastructure-printing.c | ||
| gui.c | ||
| hangman.c | ||
| hello.c | ||
| hello.js | ||
| hello2.c | ||
| hello3.c | ||
| hello4.c | ||
| hellojs.c | ||
| invtsc.c | ||
| ispell.c | ||
| kilo.c | ||
| life.c | ||
| ls.c | ||
| lstime.c | ||
| mappy.c | ||
| nesemu1.cc | ||
| peek.c | ||
| pipe.c | ||
| poll.c | ||
| printargs.c | ||
| printprimes.c | ||
| rawmode.c | ||
| rusage.c | ||
| stat.c | ||
| subprocess.c | ||
| tiny-raw-linux-tutorial.S | ||
| ttyinfo.c | ||
| uname.c | ||
| unbourne.c | ||
| x86split.c | ||