I've never understood the general sense of incredulity that these sorts of news stories generate amongst the supposedly technically literate. It's almost as if people who should know better actually expect the nuclear industry to be running on shiny new Mac Pros, or the latest-and-greatest *nix cluster.
Just because the architecture at this point is over 43 years old doesn't mean the individual hardware components are. There are still companies that fab pdp-11 cores, because there are a lot of places where testing and certifying new designs is more expensive than training and getting one-offs made.
Coincidentally, a couple of months ago I was chatting to an engineer that had restored an old PDP11 and he was telling me about how one of the many benefits of the PDP11 is that it's surprisingly easy to source replacement parts. Many of the PDP11 part are compatible with other systems of that era and much of circuit components can be replaced with modern components.
So you'd prefer a BOM for your nuclear power station controller with mostly proprietary vendor-specific parts which are obsolete after 2 years, impossible to replace or find maintenance stock for and under layers of NDAs and crappy documentation?
That's the last 20 years.
Or would you prefer a PDP11 made out of COTS parts (most are discrete in a basic PDP11), fully documented both hardware and software wise?
"Crap my register file is suddenly losing data".
Oh ok, dig out docs, look up fault diagnostics, ok bit 3 has failed, says replace TR23, TR24 in that flip flop, test it, wham it back in, sorted.
Versus, throw the part away, dig around all used semiconductor resellers, pay a premium, find out it's some shitty chinese clone that doesn't work or has just been relabelled, bash your head on the wall and hire a consultant to design the entire system module from scratch again.
...And new capacitors that blow away. From one of the comments: "Shit that works, works. For some reason, kiddies fail to understand that simple concept." That resonated with me.
Agreed. I took particular objection to the following passage: "Now that you've cleaned up the coffee spills and finished laughing"
That aside, it does still make an interesting read if just to learn what systems some nuclear power plants are running. I'd love to have seen pictures of the PDP's in action though.
Makes you wonder if there is some nuke plant engineer somewhere secretly playing Empire.
On the other hand, NSA probably found out he downloaded the code from Github and the engineer is now in Guantanamo playing Ultimate Tic-Tac-Toe with geckos occasionally mumbling Fizz and Buzz.
Good. It is comforting to know that a conservative approach is taken with keeping those things running. If it does the job and you don't forsee it not doing the job anytime soon, then leave it alone.
I remember working, ~20 years ago, on a research project that involved creating a simulation of the device that was used at UK AGR nuclear plants to automatically shutdown plants in an emergency (I think it was called the RSSSE - Reactor Safety Shutdown Sequencing Equipment).
The plants were designed in the 1960s and, for such a critical task, they wanted to be very conservative about the designs. So they didn't even use electronics - it was all relays and mechanical gearing!
Wouldn't it be harder to maintain relays and moving gears than some electronics equipment for which maintenance checks only involve running software through the circuits and check if green lights are blinking on the other side ?
My point is: isn't it far easier and more reliable to trust electronics than moving parts ?
Moreover you can check out electronics as much as you want while mechanical parts would tend to degrade for each test.
Disclaimer: I known next to nothing about nuclear plants and plant maintenance.
It may do the job, but if recruiting people to maintain a legacy system is damn near impossible, it is no longer appropriate for the job and should be replaced.
The tradeoff here being that introducing immature equipment may result in a higher risk.
Plus if it's an older PDP11, it's fully documented both hardware and software wise and is built out of flip chip modules which are essentially still replaceable and repairable to this day with a soldering iron and any half-decent EE.
You can't even get half the parts in your PC from 5 years ago and there is no documentation bar some NDA smothered PDF which is mostly incorrect for most of the bits.
It's the same reason I still have a 1972 oscilloscope...
Also, if you think of PDP-11 programmers as embedded/hardware developers rather than "modern" "soft" developers, the challenge of finding developers becomes more approachable.
I too, am a fan of "if it ain't broke, don't fix it", but saying that you're going to use PDP-11 until 2050 is a little overboard. Modern languages were made not just for rapid development, but also modularity and to reduce potential human problems. Manually entering data in a PDP-11 is a goddamn error prone task.
I don't think anyone here is suggesting they go run a nuclear reactor on Javascript, or throw away manual overrides and backups, but for goodness sake, you're going to have a hell of a time finding someone willing to dedicate their life to doing PDP-11 forever.
I guess the real question here is, is there really so little investment in energy that a more modern piece of software can't be written for these reactors in something like C?
> you're going to have a hell of a time finding someone willing to dedicate their life to doing PDP-11 forever.
Between my enthusiasm for vintage computing and my job developing embedded systems, I'd do it in a split second, were it not pretty much in the other half of the world than the one I'm living.
Most NASA missions are not likely to cause a risk of large radiation leaks if something goes wrong. The likely failure modes and consequences of a failure are vastly different.
And you seem to assume that there'll be a lot of new development for these systems, as opposed to very careful maintenance and small upgrades to complex existing systems.
[Y]ou're going to have a hell of a time finding someone willing to dedicate their life to doing PDP-11 forever.
I'm not so sure about that. They've announced they plan to continue using the same system until the year 2050. To most people reading this, that's a job for life, presumably with good security and a decent salary. For many people, that's a really attractive proposition.
> "if it ain't broke, don't fix it", but [...] Manually entering data in a PDP-11 is a goddamn error prone task.
If there is a process involving entering data into a system that's error prone, then it's broken and should be fixed. Thing is, it would also have been broken 30 years ago (the human as the weakest link is not a recent radical discovery made by software engineers - it's one that it took nuclear and aerospace engineers, among others, quite a while to teach to software engineers), so chances are it was fixed 30 years ago.
Also, since this is for a robotics system, I think the "UI" consists of servo motors and various sensors etc - not a clunky green on black terminal.
I wonder if an Arduino could fill the role of the PDP-11. I know it doesn't come with any kind of interface, but I wonder if it's open source enough for them. That, plus the $30 price tag to swap in/out to replace a dead unit would be a benefit.
Nope. The architectures are just way too different for it to even be feasible. The Atmega line is missing too many features this would need, like memory-mapped IO to be even vaguely feasible as a replacement. You might be able to wedge a low-end ARM microcontroller in there, but it would very much be wedging, and you'd run into way more problems than it's worth.
There's an active and deep spares market for PDP-11s, and most of the key components (processor, mmu, bus controller) have open-source cores available for substitution - I don't think these plants are at the mercy of whoever now owns the relevant DEC IP.
The job-advert that has since been taken down, but has been linked to as a google-cache lists:
Date: May 15, 2013
Location: Peterborough, Ontario, Canada
Job Number: 1742031
Business: GE Power & Water
I'm pretty sure that you'll be able to get contact to someone in that department by looking for similar jobs at the same location on GE's career/jobs site.
I'd be surprised if the actual hardware units in use resemble what most people think when they hear "PDP-11". Later models were basically microcomputers and could fit comfortably on a desk.
Yes my PDP experience runs from 11/40's double cabinet systems down to the PDT150's (basically a desktop 11/03)
PDP's where built like a brick outhouse I can recall helping to install a twin floppy drive on or 11/40 took two guys to lift the thing it was so heavy.
I remember interviewing for a job at a utility that gave a written test to determine aptitude for learning assembler. All I could think is, "Oh boy this will lead to a miserable existence." Then again, if I were born 30 years earlier, I'd have loved to learn it.
I've never understood the general sense of incredulity that these sorts of news stories generate amongst the supposedly technically literate. It's almost as if people who should know better actually expect the nuclear industry to be running on shiny new Mac Pros, or the latest-and-greatest *nix cluster.
When it comes to hardware, I would prefer machines that are younger than 20 years. Electronic parts can have a limited lifetime.
Regarding software I propose the well tested and well understood systems.
Just because the architecture at this point is over 43 years old doesn't mean the individual hardware components are. There are still companies that fab pdp-11 cores, because there are a lot of places where testing and certifying new designs is more expensive than training and getting one-offs made.
Coincidentally, a couple of months ago I was chatting to an engineer that had restored an old PDP11 and he was telling me about how one of the many benefits of the PDP11 is that it's surprisingly easy to source replacement parts. Many of the PDP11 part are compatible with other systems of that era and much of circuit components can be replaced with modern components.
If the hardware did fail and they somehow couldn't find a replacement (doubtful), they could always emulate it on a newer machine.
So you'd prefer a BOM for your nuclear power station controller with mostly proprietary vendor-specific parts which are obsolete after 2 years, impossible to replace or find maintenance stock for and under layers of NDAs and crappy documentation?
That's the last 20 years.
Or would you prefer a PDP11 made out of COTS parts (most are discrete in a basic PDP11), fully documented both hardware and software wise?
"Crap my register file is suddenly losing data".
Oh ok, dig out docs, look up fault diagnostics, ok bit 3 has failed, says replace TR23, TR24 in that flip flop, test it, wham it back in, sorted.
Versus, throw the part away, dig around all used semiconductor resellers, pay a premium, find out it's some shitty chinese clone that doesn't work or has just been relabelled, bash your head on the wall and hire a consultant to design the entire system module from scratch again.
Hmm.
...And new capacitors that blow away. From one of the comments: "Shit that works, works. For some reason, kiddies fail to understand that simple concept." That resonated with me.
Does it really have to run on a real PDP? Certainly modern computers can emulate a PDP easily?
Depends which parts. I still have old Amiga, C64 and Intel386. CPU's still work properly on all of them.
Agreed. I took particular objection to the following passage: "Now that you've cleaned up the coffee spills and finished laughing"
That aside, it does still make an interesting read if just to learn what systems some nuclear power plants are running. I'd love to have seen pictures of the PDP's in action though.
My last PDP-11 program was written 30 years ago!
https://github.com/DigitalMars/Empire-for-PDP-11
Does dmd have a PDP11 backend? :P
EDIT: Seriously, though, seeing big assembly listings makes me appreciate compiler writers every time.
Isn't it ironic that the x86 instruction set gets more 11-like over time?
The 11 instruction set is quite a marvel of simplicity, orthogonality, and effectiveness.
Well, I wish it were more so, and there are still too many non-pdp11 acres left.
Makes you wonder if there is some nuke plant engineer somewhere secretly playing Empire.
On the other hand, NSA probably found out he downloaded the code from Github and the engineer is now in Guantanamo playing Ultimate Tic-Tac-Toe with geckos occasionally mumbling Fizz and Buzz.
Honestly, its sad there's no video.
Browsing a hand-written, structured assembly is a quite enjoyable experience.
What no unit tests? :-)
Good. It is comforting to know that a conservative approach is taken with keeping those things running. If it does the job and you don't forsee it not doing the job anytime soon, then leave it alone.
I remember working, ~20 years ago, on a research project that involved creating a simulation of the device that was used at UK AGR nuclear plants to automatically shutdown plants in an emergency (I think it was called the RSSSE - Reactor Safety Shutdown Sequencing Equipment).
The plants were designed in the 1960s and, for such a critical task, they wanted to be very conservative about the designs. So they didn't even use electronics - it was all relays and mechanical gearing!
Wouldn't it be harder to maintain relays and moving gears than some electronics equipment for which maintenance checks only involve running software through the circuits and check if green lights are blinking on the other side ?
My point is: isn't it far easier and more reliable to trust electronics than moving parts ? Moreover you can check out electronics as much as you want while mechanical parts would tend to degrade for each test.
Disclaimer: I known next to nothing about nuclear plants and plant maintenance.
"isn't it far easier and more reliable to trust electronics than moving parts"
Possibly now - but I can see that back in the 1960s they probably had a point.
True.
It may do the job, but if recruiting people to maintain a legacy system is damn near impossible, it is no longer appropriate for the job and should be replaced.
Unless there is a tradeoff.
The tradeoff here being that introducing immature equipment may result in a higher risk.
Plus if it's an older PDP11, it's fully documented both hardware and software wise and is built out of flip chip modules which are essentially still replaceable and repairable to this day with a soldering iron and any half-decent EE.
You can't even get half the parts in your PC from 5 years ago and there is no documentation bar some NDA smothered PDF which is mostly incorrect for most of the bits.
It's the same reason I still have a 1972 oscilloscope...
It just means the cost is a bit higher: You need to train people yourself. That didn't use to be such a novel idea.
Surely its several orders of magnitude cheaper to hire someone, and them learn the system, than it is to pay for a rewrite?
Oh yes.
http://www.joelonsoftware.com/articles/fog0000000069.html
Also, if you think of PDP-11 programmers as embedded/hardware developers rather than "modern" "soft" developers, the challenge of finding developers becomes more approachable.
I too, am a fan of "if it ain't broke, don't fix it", but saying that you're going to use PDP-11 until 2050 is a little overboard. Modern languages were made not just for rapid development, but also modularity and to reduce potential human problems. Manually entering data in a PDP-11 is a goddamn error prone task.
I don't think anyone here is suggesting they go run a nuclear reactor on Javascript, or throw away manual overrides and backups, but for goodness sake, you're going to have a hell of a time finding someone willing to dedicate their life to doing PDP-11 forever.
In fact, NASA wrote much of the code for the rovers in Python and C... http://compass.informatik.rwth-aachen.de/ws-slides/havelund.... and the rovers run on RAD750 processors. http://www.baesystems.com/product/BAES_028145/rad750-family-... I am not a nuclear engineer or a NASA engineer, but I would think that the environments of space and a nuclear power plant might have quite a bit in common.
I guess the real question here is, is there really so little investment in energy that a more modern piece of software can't be written for these reactors in something like C?
> you're going to have a hell of a time finding someone willing to dedicate their life to doing PDP-11 forever.
Between my enthusiasm for vintage computing and my job developing embedded systems, I'd do it in a split second, were it not pretty much in the other half of the world than the one I'm living.
Most NASA missions are not likely to cause a risk of large radiation leaks if something goes wrong. The likely failure modes and consequences of a failure are vastly different.
And you seem to assume that there'll be a lot of new development for these systems, as opposed to very careful maintenance and small upgrades to complex existing systems.
No code running on the Rover is written in Python.
Code deployed in space is not changed "if it ain't broken".
[Y]ou're going to have a hell of a time finding someone willing to dedicate their life to doing PDP-11 forever.
I'm not so sure about that. They've announced they plan to continue using the same system until the year 2050. To most people reading this, that's a job for life, presumably with good security and a decent salary. For many people, that's a really attractive proposition.
> "if it ain't broke, don't fix it", but [...] Manually entering data in a PDP-11 is a goddamn error prone task.
If there is a process involving entering data into a system that's error prone, then it's broken and should be fixed. Thing is, it would also have been broken 30 years ago (the human as the weakest link is not a recent radical discovery made by software engineers - it's one that it took nuclear and aerospace engineers, among others, quite a while to teach to software engineers), so chances are it was fixed 30 years ago.
Also, since this is for a robotics system, I think the "UI" consists of servo motors and various sensors etc - not a clunky green on black terminal.
They're also simpler and better understood than most modern computers, minus some embedded systems. Complex and new are enemies of reliable.
I wonder if an Arduino could fill the role of the PDP-11. I know it doesn't come with any kind of interface, but I wonder if it's open source enough for them. That, plus the $30 price tag to swap in/out to replace a dead unit would be a benefit.
Nope. The architectures are just way too different for it to even be feasible. The Atmega line is missing too many features this would need, like memory-mapped IO to be even vaguely feasible as a replacement. You might be able to wedge a low-end ARM microcontroller in there, but it would very much be wedging, and you'd run into way more problems than it's worth.
There's an active and deep spares market for PDP-11s, and most of the key components (processor, mmu, bus controller) have open-source cores available for substitution - I don't think these plants are at the mercy of whoever now owns the relevant DEC IP.
See http://opencores.org/project,w11,news
Shouldn't the patents have all expired by now?
Even if a patent has expired, you still have to get hold of the designs, schmatics and specifications.
Don't really see why this is a problem, as long as they are confident replacement part stocks will hold out.
I'd love to work on PDP-11 as a programmer, and I'm currently looking for a job. Where should I apply?
The job-advert that has since been taken down, but has been linked to as a google-cache lists:
Date: May 15, 2013 Location: Peterborough, Ontario, Canada Job Number: 1742031 Business: GE Power & Water
I'm pretty sure that you'll be able to get contact to someone in that department by looking for similar jobs at the same location on GE's career/jobs site.
http://jobs.gecareers.com/key/ge-careers-peterborough-ontari...
But I suppose, similarly to USA, most cool jobs are left for their citizens.
They as well specify that there is no relocation support.
Programming the PDP-11: https://www.youtube.com/watch?v=XV-7J5y1TQc
Manually entering octal. Kinda fun.
IF IT AIN'T BROKE, DON'T FIX IT!
I feel this is especially true for nuclear power plants.
PDP-11 implemented with more recent hardware:
http://www.migrationspecialties.com/pdf/OspreyHardwareOvervi...
I'd be surprised if the actual hardware units in use resemble what most people think when they hear "PDP-11". Later models were basically microcomputers and could fit comfortably on a desk.
Yes my PDP experience runs from 11/40's double cabinet systems down to the PDT150's (basically a desktop 11/03)
PDP's where built like a brick outhouse I can recall helping to install a twin floppy drive on or 11/40 took two guys to lift the thing it was so heavy.
My LSI-11 was no bigger than my current generic PC box.
Misread title as 'PHP', broke out in cold sweat.
Of all the places where you do not want to encounter an unexpected T_PAAMAYIM_NEKUDOTAYIM ...
I remember interviewing for a job at a utility that gave a written test to determine aptitude for learning assembler. All I could think is, "Oh boy this will lead to a miserable existence." Then again, if I were born 30 years earlier, I'd have loved to learn it.
I find it disappointing that the article doesn't state when the PDP-11 was first produced.
A frame of reference would be nice.
wow, I never expected the assembly code I read and tried to understand in the Lions book would actually still be useful today!
www.hse.gov.uk/nuclear/software.pdf
This might be a report of interest, considering the topic.