←back to thread

320 points UnmappedStack | 1 comments | | HN request time: 0s | source

Hi there! I've been on-and-off working on TacOS for a few months, which follows some UNIX-derived concepts (exec/fork, unix-style VFS, etc) and is now able to run a port of Doom, with a fairly small amount of modifications, using my from-scratch libc. The performance is actually decent compared to what I expected. Very interested to hear your thoughts. Thank you!
Show context
gitroom ◴[] No.43778348[source]
Dude, getting Doom to run on your own kernel is epic - I gotta try building some wild stuff like this someday
replies(1): >>43778350 #
UnmappedStack ◴[] No.43778350[source]
Yeah definitely an achievement I'm happy with. I've got a bit of refactoring to do, ANSI parsing etc then I'd like to port more - perhaps even Vim (or another portable Vim-like editor called Dim)
replies(1): >>43778590 #
edoceo ◴[] No.43778590[source]
Could you explain more about why you'd need to port things? If you have a libc, shouldn't it "just work"? Do you have to scatter #define or #ifdef all over? What about if you wanted to support Golang? Would you have to implement a bunch of syscall?
replies(1): >>43778671 #
1. UnmappedStack ◴[] No.43778671{3}[source]
Well, the LibC is still quite small, and the syscalls aren't really compatible with Linux. A lot of things to port, for example Vim, require system libraries such as ncurses which need syscalls that aren't in the LibC. I don't really need many #ifdefs, at least not for most things, as it's a more or less posix-based libc.