30 ms·
The thing is that Unix(of the day)'s source wasn't full of 100s of pages of vax assembly code ... VMS wasn't all vax assembly either. VMS and a lot of VAX sy
by jonjacky 4y ago
The thing is that Unix(of the day)'s source wasn't full of 100s of pages of vax assembly code ...
VMS wasn't all vax assembly either. VMS and a lot of VAX
system software was mostly written in BLISS [1], a high level language intended for systems programming that was created about the same time as C. It was all there for customers to read in a big stack of microfiche cards delivered with each machine. I remember being shown the code for the VMS scheduler or maybe the dispatcher which was 'a page or two of (VAX) assembly' - I recall it was pointed out that it was one of the (few) places in VMS that did use assembly.
I don't know how portable the BLISS code for VMS was, but there were BLISS compilers for several other machines besides the VAX.
1. https://en.wikipedia.org/wiki/BLISS https://en.wikipedia.org/wiki/BLISS
- Taniwha 4y agoOh I completely agree - but I also remember putting a graphical header on the first page of the output from the print symbiont (aka daemon, essentially CUPS), I had to type in pages of assembler from microfiche
- pjmlp 4y agoAnd it had bounds checking like most sane system programming languages since late 1950's.
- ch_123 4y agoMost of the kernel was in VAX assembly (I've seen source code listings of VAX/VMS circa V4.x). They were able to port the kernel over to other architectures by creating a compiler that treated VAX assembly as a high level language. This approach came with its costs - even to this day, large parts of VMS remain 32-bit only because it was not possible to automatically make 32-bit assembly code into 64-bit object code for other platforms. Even in programs which use 64-bit addressing, VMS essentially requires you to use a mix of 32-bit and 64-bit pointers in the same program.[1] A similar problem (AFAIK) befell BLISS - BLISS code for the VAX treats all values as 32-bit. There is a separate BLISS-64 compiler for the 64-bit platforms VMS was ported to, but I don't think all the BLISS-32 code was converted over to BLISS-64.[2] [1] http://www0.mi.infn.it/~calcolo/OpenVMS/ssb71/6467/6467p005.htm#chapter_10 http://www0.mi.infn.it/~calcolo/OpenVMS/ssb71/6467/6467p005.... [2] https://www.cs.tufts.edu/~nr/cs257/archive/ronald-brender/bliss.pdf https://www.cs.tufts.edu/~nr/cs257/archive/ronald-brender/bl...