pdp7-unix
b
pdp7-unix | b | |
---|---|---|
4 | 5 | |
411 | 50 | |
- | - | |
2.6 | 3.3 | |
8 months ago | 10 months ago | |
Assembly | Assembly | |
GNU General Public License v3.0 only | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
pdp7-unix
-
Making NetBSD Multiboot-Compatible (2007)
TIL there is a version of UNIX for PDP-7, and PDP-7 did not have MMU, therefore UNIX by definition do not require MMU, and that version of UNIX had been archeologied in a runnable form on GitHub[1]
1: https://github.com/DoctorWkt/pdp7-unix
- Unix Edition Zero
-
Where to find the original Unix image file?
I've never heard of a copy being used outside of the original authors' site. However, it can be built from source code and run on a PDP-7 emulator. https://github.com/DoctorWkt/pdp7-unix.
-
Apple M1 Assembly Language Hello World
Well first of all I was wrong -- the PDP7 did have syscalls, I'm just bad at reading PDP7 assembly and missed the dispatcher. Curiously, it looks like the sequence is entirely different, although there could be some magic that makes the order different than it appears at first glance.
https://github.com/DoctorWkt/pdp7-unix/blob/master/src/sys/s...
It's all just guessing, but I figure the explanation is much simpler -- for PDP11 UNIX, they just kept using the same syscalls up till V7 / 2BSD, and there should have been a sort of "rolling release" binary compatibility. For the VAX, the first port (32v) probably just retained the original numbering since there was no reason to deviate from it, which colored 3BSD and 4BSD, hence {Net,Free,Open}BSD and Darwin and friends.
Worth pointing out that several versions of Linux have rather different syscall tables. 32 bit ARM and x86 are more-or-less matches, with ARM differing on a few early syscalls, while 64 bit ARM and amd64 differing quite dramatically. The old ABI for 32bit MIPS also matches, but both the n32 and n64 ABIs use slightly variant syscall tables. PowerPC 32/64 bit is also a close match, although it has some impedance (I think it matches closer to AIX by design)
At the end of the day, I think the similarity is mostly a mixture of coincidence, system developers being influenced by their bootstrap system's syscall tables, and no real reason to change them up. No reason to not change them, either, since it's pretty trivial to use different dispatch tables for different types of processes, like how the BSD's handle other-OS compat.
b
- B Compilers in C and B
-
Unix Edition Zero
The interpreter is part of the binary yes. I have reversed what was available here: http://squoze.net/B/ and write my own B compiler that generates the same threaded code as well: https://github.com/aap/b
-
Early version of the very first c compiler
Absolutely! In fact I have done precisely that: https://github.com/aap/b and it's about 1500 lines of B code.
-
First printf implementation
the B version is older: https://github.com/aap/b/blob/master/printf.b
- The Programming Language B (1973)
What are some alternatives?
m1n1 - A bootloader and experimentation playground for Apple Silicon
AmiBlitz3 - Complete package of AmiBlitz3 including all sources.
HelloSilicon - An introduction to ARM64 assembly on Apple Silicon Macs
8bc - B compiler for the PDP-8
retrobsd - Main RetroBSD Operating System
unix-history-repo - Continuous Unix commit history from 1970 until today
unix-jun72 - The working source code to PDP-11 Unix from 1972.
LiteBSD - Variant of 4.4BSD Unix for microcontrollers
unix-v6 - UNIX 6th Edition Kernel Source Code
rss-proxy - RSS-proxy allows you to do create an RSS or ATOM feed of almost any website, just by analyzing just the static HTML structure.