(评论)
(comments)

原始链接: https://news.ycombinator.com/item?id=38901012

根据给定的材料,本文与 VAX 和 HNP 相关的主题的简要概述可总结如下: 本文讨论了 rump 内核的构建以及将 netbsd 分发到其他平台(包括 vax)。 这引发了有关跨平台软件的可行性以及通用编程范例是否可以解决分布式处理中面临的问题的问题。 此外,文章还提到了作者在不同地区遇到的几个 vax 系统,强调了尽管其生产周期有限,但它们仍然具有相关性。 虽然没有直接提到 hnp 与所提到的 vax 的关系,但讨论表明 vax 在支持 netbsd 安装方面的潜在用途。 总的来说,本文强调需要创新的解决方案来克服分布式处理环境带来的挑战。

相关文章

原文
Hacker News new | past | comments | ask | show | jobs | submit login
First new VAX in 30 years? (2021) (netbsd.org)
223 points by dcminter 20 hours ago | hide | past | favorite | 90 comments












For those not noticing, all the posts were made in 2021.

I'm regretting I didn't get more done during the pandemic, but then I was a "critical" worker and I didn't get to stay home.



I had to chuckle when the OP said "and 151 instructions." The VAX was the poster-child of CISC. Thats like, what, 20% of the instructions ARM has for SIMD alone?

Recently, I had to learn C++17 through 20. At the same time I was learning x86 assembly, and x86 assembly was far, far easier. Downright simple and straightforward in comparison.

Aren't high-level languages supposed to make our lives easier? Isn't RISC supposed to make CPU's simpler? What happened to our world?



> Recently, I had to learn C++17 through 20. At the same time I was learning x86 assembly, and x86 assembly was far, far easier. Downright simple and straightforward in comparison.

Somewhere along the lines of the development of high-level languages, "tedious and semi-unmanageable" got replaced with "difficult". Assembler isn't difficult, nor is it meant to be; any emulator or embedded developer could tell you this. Assembler just has few tools to ease development/code structuring and gets very flat and overwhelming in large code-bases; these are the problems C/C++, Pascal, Algol, etc were designed to solve.



Individual assembly instructions are basically trivial to grasp (the actual syntax is probably the hardest part.) The challenge is synthesizing larger, useful programs from the little tidbits of data manipulation. It's a great exercise in bottom-up hierarchical integration. As deaddodo notes, this is why higher level languages were developed, to raise conscious focus away from having to use such tiny primitives.


We are probably agreeing but Pascal at least was explicitly designed to allow and to teach “structured” programming. In some ways, it is designed to limit your options. Their is no denying though that it makes code easier to read and also makes intent much clearer. This in turn makes not just creating but of course maintaining and extending large code based much easier.

In terms of complexity, it depends on how you measure. In assembler, it does not take long to learn how to compare and jump. That gives you the power of while, do/while, for, if/then, and of course “goto” ( which your “more advanced” language may lack ). I would argue though that it is easier to understand the syntax of if / else than the equivalent assembler. Again, if not easier to write, it is at least more obvious when reading ( for less experienced eyes ).



Well, we're not disagreeing. Your first paragraph is basically just a summation of my point while the second paragraph reiterates it. Assembler is not necessarily difficult, it's tedious; which includes parsing and keeping it in mind. Most modern assemblers offer some sort of Macro system to even help with some of the aforementioned niggles.


Modern computing is a line of middlemen, each one in turn saying "let me help you with that" in a patronizing tone.

At the end of the line you are handed an iPad and told what you are allowed to consume.



Not just “modern” computing. Your point has been true since the beginning. That said, the line of middlemen is indeed longer than ever.


But then, every so often, people do the whole trip in reverse starting from sandboxed Javascript on a locked down phone or console and putting together an exploit chain all the way down to kernel-mode assembly shellcode

We add layers upon layers of abstraction, but the layers below are never really obsolete, it's always very useful to understand them!



Or you're running code compiled by the trusted compiler that generates some intermediate bytecode to run on your Boroughs or IBM System 38 and you're locked out of writing to the "True" underlying hardware by "the man" on some locked down mainframe.


+1 Insightful


I don't understand this particular criticism of C++, and I generally think there are a lot of legitimate criticisms of C++. Yes, the language spec has become complicated. But you don't have to use every single feature in the language. As the slogan goes, if you don't use it, you don't pay for it.

I find that the style I like best is what John Carmack calls "C flavored C++". To me this means plain structs and functions, references instead of pointers when appropriate, and conservative use of: templates, constexpr, operator overloading, strings, vectors, threads, and synchronization primitives. This subset of the language is relatively easy to learn and pleasant to use. Still, I will have no problem jumping ship to one of the newer C++ replacement languages when one that I like becomes mature enough.



Years ago, when I considered C++ (and discarded it), it seemed that it was hard to write C++ without understanding most of the features. Let's not argue about THAT. But is there now an accepted small subset that can stand alone as a first layer of study and usage? Giving a real understanding of that subset and being able to write in that subset? Any text describes this?

This idea of layers in learning a language seems fundamental to me - (Perl 5 was - still is - amazing for that. Perl 6 / Raku is great but it lost that.)



More powerful tools are often more complex to learn. A car has more controls than a push bike, and an aeroplane has more still. I'm not saying all the complexity in C++ is justified (!!!) but it's not too much of a surprise that it's more complex to learn than assembler.


If you use C++ like an assembler, then it's not complicated. You only use functions, loops, arrays and structs. And GOTOs.

Congratulations you now have replicated what an assembler can do, but it has become much easier (you don't have to remember details of the architecture, memory layout, etc.)

But C++ puts a lot of syntactical sugar (abstractions) on top that, if you learn and understand them, can help you write even more concise and expressive code. This is where complexity comes in. Higher abstraction brings complexity. Whether that is good or bad depends on your knowledge of the language/concepts.



how many addressing modes are there? in my mind, CISC vs RISC is more about the vast array of addressing modes on CISC vs load/store on RISC, rather than the actual size of the ISA

probably worth comparing to early MIPS or SPARC instead of modern ARM with extensions?



agreed. in the end it turned out what mattered about risc was that they reduced the instructions, so each one did less, not the set

mashey's famous retrospective on the vax and cisc vs. risc is at https://yarchive.net/comp/vax.html



For whatever reason, the PDF that is linked in that email, is temporarily unavailable, so here's an archived link:

https://web.archive.org/web/20160312012246/http://www.cs.mip...



thank you


Exactly, it's not about the amount of instructions but of the modes those instructions can take. As I understand it, having primarily load-and-store / register to register instructions and avoiding complicated mode encodings that make various processor hw optimizations much easier, and make compiler writing a lot easier, too.

Classic CISC chips were "fun" to write assembly for by hand... and RISC chips are not. But if you're writing a compiler...



i would say the arm is fun to write assembly for by hand, in part because of its deviations from risc principles; i wrote a bit about the details last night in https://news.ycombinator.com/item?id=38899295


Yeah it's true ARM isn't terrible the few times I've played with it.

In contrast, I Verilog'd up my own homebuilt system with a RISC-V core, and didn't particularly reading/writing in the RISC-V instruction set.



yeah, risc-v is nicer than 8086 or i386 or even amd64, but it's not as nice as arm. 8086 was surely 'cisc' but it's a pain in the ass


yeah my standard for "fun CISC" is the 68000, the first machine I truly wrote assembler for (after handrolling 6502 by POKEing opcodes). It was a pleasure. Though I don't miss big-endian, I can't think like that anymore.


Makes me wonder what the m88k instruction set was like, sadly a quick search makes it look like the only programming manuals were (now expensive) physical books and there's no simple PDF online.

edit: found it..

http://www.bitsavers.org/components/motorola/88000/MC88100_R...

Looks moderately clean and easy



yeah, the 68000 is fantastic! but i think the arm has all the creature comforts of the 68000 and more (though not of the 68020)


Each VAX instruction, even before going into crazy space with POLY and other complex ones, has tons and tons of addressing modes, modifiers, etc.

To the point that the largest possible VAX instruction is longer than VAX memory page, at IIRC 522 bytes to 512 byte page size.



"Downright straightforward and simple."

Many HN comments, as well as other online sources, suggest software developers generally do not like "simple". The majority find comfort in complexity.



> Aren't high-level languages supposed to make our lives easier?

Assembly code is easy to learn and easy to code simple programs, but it’s a whole toolbox full of foot-guns and it’s easy to make a buggy unmaintainable mess.



It was not the number of instructions in the VAX ISA, it was their complexity and the multiple indirection level addressing modes.

Some of the instructions are truly mind-boggling even by today's complexity standards, e.g. queue operations (four! – INSQHI, INSQTI, REMQHI and REMQTI), polynominal evaluation (POLYx), index computation, CRC calculation via an optionally supplied polynominal table (CRC), a comprehensive set of character operations, operations on packed numbers and others. The VAX-11 instruction comes with examples in a high-level programming language (COBOL, FORTRAN or PL/1) and how that translates into the VAX-11 instructions, e.g.:

COBOL:

  01  A-ARRAY. 
      02  A PIC X(10) OCCURS 15 TIMES. 
 
  01  B PIC X(10). 
      MOVE A(I) TO B.
VAX-11 assembly:

  INDEX I, #1, #15, #10, #0, R0 
  MOVC3 #10, A-10[R0], B
Or, the bitwise use of INDEX:

PL/1:

  DCL A(-3:10) BIT (5); 
  A(I) = 1;
VAX-11 assembly:

  INDEX I, #-3, #10, #5, #3, R0
  INSV  #1, R0, #5, A ; Assumes A is byte aligned


RISC architecture has already changed everything. Or did you miss when Apple Silicon basically lapped everybody in performance per watt, while having raw performance numbers comparable to, if not exceeding, x86 hardware?

Sometimes, it really is the case that a great new technology doesn't exist until Apple invents it.



It's crazy, in another terminal I have an SSH session open to an RK3588 ARM SoC SBC sitting on the desk behind me. On it I am running benchmarks of my application -- which contains a custom virtual machine for a language interpreter and a custom database engine.

On throughput -- compared to my Ryzen 7 Thinkpad, it's getting 1/2 the performance on the DB engine side of things and 1/3rd for the VM. (This is on a single core, I don't have a good bench for multicore performance yet.)

The thing is... the laptop cost ~$3000, and is clocked way higher. The SBC cost ~$200. It's warm to the touch, but not hot. The little DC powerbrick it came with is totally fine, and there's no fan, just a heat sync.

I could stick a dozen of these in a 19" enclosure, and with the right programming have an absolutely awesome amount of computer for the price and power use.

I just wish I could get an ARM workstation-class machine that wasn't a Mac.



> with the right programming

:( That's the bit we still don't have right. Apart from a few special cases, we really struggle to use a small number of threads, or a GPU, without enormous amounts of effort - let alone distributed processors.

I'm sure part of the problem is we depend on high levels of backwards compatibility with systems assuming mono-processing ... but I'd like to think there is a way.

Now if someone came up with a really usable and general model for software across distributed processors...



For context:

VAX (an acronym for Virtual Address eXtension) is a series of computers featuring a 32-bit instruction set architecture (ISA) and virtual memory that was developed and sold by Digital Equipment Corporation (DEC) in the late 20th century.



And nothing sucks like a Vax(TM)


There is a UK company that makes vacuum cleaners under the brand of Vax. They suck well, indeed, although they do not last due to the atrocious build quality – I had one years ago (granted, I had to pay homage and buy a Vax vacuum cleaner), and it fell apart 2 years later.


NetBSD is one of those projects I wish got more resources (donations). They have some cool things going on (ex: rump, exotic hw) that no one else has, but lacks the resources to fully exploit them :(


Last time in July 2021, 89 comments: https://news.ycombinator.com/item?id=27758962


There's a guy up in the Seattle area who has a bunch of vaxen (*) in his basement. I asked him how many there were, and he wasn't sure.

They were all the size of washing machines.

* And two working Altos, which is why I was there.



>They were all the size of washing machines.

More like a cube - all dimensions equal. And it was because they should fit into an American submarine hatch. After all, they were used there...



It's also the only VAX in history with a built-in joystick!


I didn't see a reference to a joystick anywhere and there's none shown in the photo...?

Furthermore :) this spring I visited a PDP 11/73 running Spacewar with a joystick attached. Presumably that would have been attached as a QBus peripheral, and Vaxen could support QBus, so I'd actually be pretty surprised if there hadn't been a Vax with a built-in joystick. Depending how you define "built-in" that is.

Edit: Come to think of it I'd be very surprised if there weren't any flight simulators running off Vaxen and that would definitely involve a very much built-in joystick (along with the rest of the flight deck). I know a lot of those used PDP-11 so it would be the same lineage.



There is one joystick in the photo. It’s even labeled "JOYSTICK". :)


Ha! I stand corrected. That's definitely built in!


Oh, THAT joystick.


I’d be interested in seeing the Verilog code but he sadly seems to never have shared it.


Guess we'll have to do it ourselves. First VAX in 3 years!


Can I join in? “hey let’s build a microcoded processor” is like my own personal Bat signal.

We starting from something like the AM2900 (Mick and Brick’s book)? Need to get familiar with the VAX instruction set and get that stress test program too. We could hook it up to Verilator and expose the whole thing to SDL to get graphical output so the same code that runs the “simulator” runs the actual hardware?

…I’m down?



Just make sure that POLY makes good use of greater-than-register-precision FMAC; that'll show those smug RISC weenies!


VAX is certainly the CISCiest of them all --- looking at the opcode map makes x86 seem like a RISC in comparison, as there's very little structure in it beyond the (copious amounts of) addressing modes.


Only the NetBSD community could have come up with a project this cool!


I don't know much about the subject matter, but the minimalist website is so refreshing. The content is front and center, unvarnished and not occluded by various UI bells and whistles. I miss this version of the web. Navigating between pages actually seem to work as fast (if not faster) than many "modern" single page / progressive web apps.


Everybody using HN probably already loves a minimalist website.


While I do love minimalist websites, I love minimalist responsive websites and this isn't responsive at all.


was thinking "responsive to what?" but i assume you mean "to my viewport"


Is that an actual minimalist website or is this website just actually 20 years old?


It's HTML4.01 with an actual dtd in the doctype, so "the latter".


it works very well indeed


Unfortunately the text is too small for me to comfortably read, and the website is incompatible with Safari’s Reader Mode.


Command +.

Supporting / allowing Reader Mode would be good.



Install Stylebot. You can set e.g. body { font-size: 125% } for that website.


set default zoom for browser to 120%, I have mine set to 80% because websites keep increasing font sizes


Firefox reader doesn't work either which is surprising.


If you use a trackpad, you can use the scale gesture (pinch-to-zoom, but outwards) to increase the magnification of most web pages. Very useful for those of us past age 40.

On iOS, you can also use the same gesture directly on the screen.



On iOS you can also tap "aA" button in the URL bar to get to the scale settings.


Thank you!!!

Now I’m really annoyed with myself for not realising this. This insight is up there with the ‘spacebar long press to get a cursor’ thing



> If you use a trackpad, you can use the scale gesture (pinch-to-zoom, but outwards) to increase the magnification of most web pages.

And if that doesn't work (it doesn't for me), the older method should: Hold control and scroll, up to zoom in and down to zoom out.



Welcome to the default mailman archive template

It’s sorta like a “theme” without the styles, or just the HTML part of a “framework”



I like it because there is no nonsense, it is a pretty simple page that gets what it needs from browser standards without external libraries. The simplicity helps make it small and fast.

Even without external libraries there are lots of design choices that could change and perhaps improve the look of the page.



And yet unreadable on mobile. Terrible font choice. Very little basic formatting and hierarchy.


The website doesn't have a font choice, other than "sans-serif". It follows your preference; if you don't like it, choose another default Sans Serif font in your browser's settings.


iPhone XS. Appears in ugly courier style. Wide paragraphs. Tony text. Impossible to read without constant pinching and horizontal scrolling.


Either you have set it to that font and spacing, or Apple have. Not the site's fault.


I think you should be more specific than "mobile". It looks fine on mobile for me. I'm using Firefox.


I just read it on mobile and it looked nice and clean.


Reads fine to me with Firefox Mobile on my phone (Pixel 8).


Yet you feel compelled to comment. Strange.


Not about a vaccine, FYI.


This comment made me realize the historical term in the headline actually, for once, refers to the term’s historical namesake, unlike “VHS” and “Datasette” of late

“VAX” referring to VAX. Not to be taken for granted!



We'll capitalize it to make that clear.


That was my first reaction to the headline too.


Also not about DEC hardware. sigh


If it's about a new VAX, in 2021, one should not expecte that it was DEC hardware.


I believe HPE still owns the name and trademarks.


Do they still sell parts? Do they still produce parts? Do they still sell new systems?


No. Actual VAX died shortly after Alpha became a thing, and Alpha died when Itanium came along. OpenVMS was ported to Itanium around 2010/2011, but HP shifted to x86-64 around 2015 as Itanium sales began to quickly drop. At this point, there’s x86-64, ARM, RISC-V in the west, with Itanium’s cousin Elbrus in Russia and some MIPS stuff in China. IBM still makes and sells POWER, but it’s a niche of a niche market.

If someone managed to make Alpha or VAX come back, he/she might end up sued into oblivion by HPE… and then possibly hired by them.



Nobody's sold new VAX systems since the 90s. VMS was ported first to the DEC Alpha architecture, then to Itanium, so even for VMS, VAX is two architectures ago.

And Itanium itself is at the end of the road now, but I think still supported for the moment.



A couple of years ago HPE sold VMS to VMS Software Inc, who have ported it to x86-64. So it’s three architectures ago.

The VAX version apparently wasn’t included in the deal (to the chagrin of hobbyists, as they can’t get a legally licensed version of VAX VMS anymore), which perhaps shows how relevant it is to modern VMS customers.



At this point you gotta wonder if the DEC name would have better marketing/branding power than HP.

Have to say, I'd be more stoked to buy a "Digital Equipment Corporation" branded server or workstation than "HPE ProLiant" or "HP Z900".

Leadership of Carly Fiorina and successors, the murder they committed on the Palm brand and product line, not to mention their whole world of junky printers,... I think have ruined their reputation of that brand forever for me.

Anybody work in marketing at HP? C'mon, do it!







Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact



Search:
联系我们 contact @ memedata.com