PymbleSoftware wrote:
R-ten-K wrote:
That is a bit of a chicken an egg problem, no? C was fundamental to the development of Unix. You could not have one without the other.
From what I have read recently. UNIX was implemented first in B or BCPL or some language like that around 1968/1969 and then rewritten in C and assembler and released in 1971.
I can't find the cartoon with the egg and chicken in bed smoking ... and one them says "well that answers that question".

R.
Actually portability wasnt an original design goal, so it was written in assembly in the late 60s. I think in the early 70s, it was rewritten in C (and some asm) to make general changes and enhancements easier to do (including changes for new PDP configurations). Then in the late 70s, someone realised it might be possible to port the kernel to Interdata, and once that was done, the shell and utilities would be a fairly straightforward recompile.
Portability was really just an afterthought, but UNIX was a successful proof of concept for portable OSes (along with OS6 and SOLO). So from then on, people started trying to make kernels portable from the start. BCPL, B and Z were used in OS6, TRIPOS, Thoth and probably others, but C obviously became the language of choice due to the spread of UNIX.