pdp7-unix
unix-history-repo
pdp7-unix | unix-history-repo | |
---|---|---|
4 | 51 | |
411 | 6,434 | |
- | - | |
2.6 | 0.0 | |
8 months ago | almost 2 years ago | |
Assembly | Assembly | |
GNU General Public License v3.0 only | GNU General Public License v3.0 or later |
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.
unix-history-repo
-
F/OSS Comics: 8. The Origins of Unix and the C Language
There is also https://github.com/dspinellis/unix-history-repo (Continuous Unix commit history from 1970 until today)
-
Kernighan and Pike were right: Do one thing, and do it well
FWIW, ls in Research-V6 back in 1975 had 10 options. https://github.com/dspinellis/unix-history-repo/blob/Researc...
By BSD 3 in 1980 it had 11 options. https://github.com/dspinellis/unix-history-repo/blob/BSD-3-S...
The thing is, we can see even from the 1970s 'ls' how the Unix model doesn't meet the goal "to chain these simple programs together to create complex behaviors".
There is no option to escape or NUL terminate a filename, making it possible to construct a filename containing a newline which makes the output look like two file entries.
The option for that was added later.
There's also the issue that embedded terminal codes will be interpreted by the terminal.
-
The original source code of the vi text editor, taken from System V
This is what it looked like about 7-8 years earlier: https://github.com/dspinellis/unix-history-repo/blob/BSD-1/e...
- Continuous Unix commit history from 1970 until today
-
50 Years in Filesystems: 1974
RA92 (1989): 16 ms / 8.3 ms.
Note that the RL02 (and V7) and RA92 mentioned in the article are separated by about a decade.
[1] https://github.com/dspinellis/unix-history-repo/blob/Researc...
-
Unix: An Oral History
The earliest version I could find [1] is already written in C.
[1] https://github.com/dspinellis/unix-history-repo/blob/Researc...
-
Linux is not as smooth as windows
Here's a 1997 citation for "top cpu processes." It's not as close to the original 1984 release as I would like, but it's better than Wikipedia. https://github.com/dspinellis/unix-history-repo/commit/aee34003d7964653c44c31f5bf6bcf136b32c4f3
- GitHub was Founded in 2008 But...
-
GPT based tool that writes the commit message for you
> The “why” goes into the PR and more importantly, engineering documentation and inline comments
This just ensures that the “why” is lost when someone comes looking years later.
From experience, SCM metadata is far more durable than just about any other work product we produce. Five decades later and RCS commit info was still available for the Unix sources, and history could be reconstructed: https://github.com/dspinellis/unix-history-repo
I’ve used 35-year-old commit messages to help understand a long-standing issue, decades after all other related organization tooling and data had disappeared.
-
What should be included in a history of the Rust language?
P.S. I remember I looked into early versions of C (they survived in Unix historic releases) and that, finally, revealed to me why C does something really stupid and conflates arrays and slices (pointers). Initially C had no arrays! Or, rather, what it called arrays were, actually, pointers. “Normal” arrays were added at some point, but because these weird slices/pointers were already there that caused endless confusion. It wasn't resolved before C became popular and after that it was too late. Go repeated that mistake with slices, of course.
What are some alternatives?
m1n1 - A bootloader and experimentation playground for Apple Silicon
PySyft - Perform data science on data that remains in someone else's server
HelloSilicon - An introduction to ARM64 assembly on Apple Silicon Macs
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.
retrobsd - Main RetroBSD Operating System
intellij-rainbow-brackets - 🌈Rainbow Brackets for IntelliJ based IDEs/Android Studio/HUAWEI DevEco Studio/Fleet
unix-jun72 - The working source code to PDP-11 Unix from 1972.
LiteBSD - Variant of 4.4BSD Unix for microcontrollers
typos - Source code spell checker
unix-v6 - UNIX 6th Edition Kernel Source Code
insect - High precision scientific calculator with support for physical units