trying to be on here more often (again lol)

Back on my BS with my project to make a portable version of Unix V6 (from 1975) with a self-hosted pre-K&R C compiler, that could be released on anything that can at least simulate the memory model

Gonna start on a custom VM written in #Rust, but then port to the #C64 and probably also #ALtair8800!!

You can check out the progress on the kernel branch here: https://codeberg.org/popeyeotaku/popix/src/branch/kernel

Right now the compiler's almost done, with a bootstrapper compiler written in Rust. I'm about to start booting and bugfixing the kernel as soon as I extend the VM a tad

Still gotta gut the kernel by another several K, and write self-hosted assembler/linker package, and port userland. Also gonna write a custom YACC that uses less RAM

but it's coming along swimmingly!!!

#ancientUnix #C #Popix #C6T

popix

A highly-portable implementation of 1975's Research Unix Sixth Edition (aka Unix V6), with minimal system requirements.

Codeberg.org
(I also have a much more evil igea to port Unix V7 to the C64, I swear I'm not a madman I could do it!!! But the drivers would be a nightmare and I wanna try to get 64-bit time which would also be hell and etc etc)

UPDAKE: got the kernel running in the VM to the point where it will go through the whole boot process and enter userland

This is HUGE!!! Acourse't, I don't have a userland so it just ends gracefully at that point, but it's SO much!! Merged it with the main branch, includes docs on how to run the lil demo yerself if y'want (not that it does much lol)

EEHEEHEE lotta good work on this today, I'm trying to build it up to the point of execing an /etc/init that reads a file to a lil hello world!!

acourse't I'm still in the weeds on all the stack swapping multiprocessing low level muck, arghh hate this parta this kinda stuff -- but i've gotten SO FAR hehehe gonna head back to it tomorry

(I'm now on the init branch if y'all wanna check progress on the codeberg >:3)

#c #rust #unix #ancientUnix #compiler #popix #c6t

OK so i've gotten the kernel to actually boot a test program, involving all the tricky stuff -- setting up all the data structures, booting up the root disk, reading files, doing all the stack-swapping stuff,,,,, and the test program almost completes!!!

once that's done I guess I should start writing more tests to exercise the system calls, but uhh then I can get to actually porting userland?? w o w I'm so excited with how close I am

EEHEEHE IT WORKS

y'all can download it here and boot it up!!! run build.py and then run the included rust VM from the project root directory with the arguments -v kernel/c6tvm/popix_vm.bin

https://codeberg.org/popeyeotaku/popix

popix

A highly-portable implementation of 1975's Research Unix Sixth Edition (aka Unix V6), with minimal system requirements.

Codeberg.org
It boots to /etc/init (just like modern linux!), but insteda systemd it's a lil test program that read a "Hello world" text file and dumps it to the terminal and a file called lp.txt --- THIS REQUIRES SO MUCH OF THE SYSTEM TO BE OPERATIONAL -- like it has to correctly read the filesystem several times???? AAAAA
(just ignore me forgetting to actually merge the pull requests about this lol, pull and retry if u were having trouble just now)

OK so legit the kernel is almost done??? I've got it booting into the real, final shell, and it's,,,, crashing in very weird ways and sometimes doesn't read more than a few characters of input

But legit SO MUCH shit is JUST WORKING rn, I never thought I'd get it this far >:3

Lol I think I got some bad pointer write somewhere, and the only real solution I have (cuz me debugging tools for the VM ain't so hot) is to look through every line of code and find any places with bad pointer refrinsses manually, wit me eyes