German train company are looking for a Windows 3.11 Administrator
gulp.de
gulp.de
It's a bit sad that our initial expectation, that software would be like mathematics, where you can keep building on previous results no matter if they were from last year or last millennia, didn't work out.
>Remote: Windows 3.11 Administrator (m/f/d).
It's the law in Germany to advertise jobs as open for every sex and there is a third sex in Germany, called 'divers' (means: other)
English has "gendered" words in rare, exceptional cases (master/mistress?) but for Latin-based languages it is the opposite.
German can be weird in that the grammatical gender of a word doesn't always match the sex or gender of the person it describes. The most famous example is probably that das Mädchen (the girl) is grammatically neuter but unambiguously describes a female person. Nouns describing professions, however usually (always?) have a masculine and a feminine form and do describe the sex or gender of the person. An ad hiring a Fahrer would have the same meaning as "male driver" in English. That would be illegal sex discrimination in the USA or Germany.
The linked ad also included the following text, which has no connection to reality for the English translation:
> Note: In order to improve the readability of the text, the masculine form is used to refer to persons, functions, etc. However, it stands for all genders without exception.
Why do you assume that? The Siemens SIBAS 32 system can be used at home, and an old PC system with Windows 3.11 should be the smallest problem to use at home. The question is, if that's enough to simulate an environment similar to the train.
If you think that, you haven't seen some of my dependencies.
PS: I got carried away, thinking about my own, sorry.
The real pain is populating the userspace if you need more than just busybox.
Never used it; don't know how well it works in practice. But it's the type of thing that can be made to work. Looks like some minimum requirements are a tad higher than the minimum of Windows 3.1 though, so it depends a bit on what you mean exactly with "Windows 3.1 era hardware".
The orginal Win311 ran fine for 30 years probably until the HDD failed and they need someone to do a reinstall. Why would they change the operating system?
It would certainly be silly to change OS just for the sake of it on a 30 year old project.
But once you add the expectation that it should work with future hardware as well maintain backward compatibility, then bloat is inevitable.
> When a BART car runs into trouble, Shawn Stange steps back in time. He pops open a circa-2000 IBM Thinkpad running Windows 98 and opens a portal into the train’s brain — the Automated Train Control system — through the DOS computer language.
> Stacks of vintage laptop carcasses are common at BART warehouses. The train software is so old it won’t work on modern computers.
Reminds me of the software archeology in Vernor Vinge's A Deepness in the Sky.
Second, it runs 32 bit and even 64 bit too.
Wine 9.0 can likewise rethunk 32-bit applications to run in 64-bit mode, but this is only the default on Mac OS X (where Apple removed 32-bit support), because it still introduces more compatibility problems on Linux than just running 32-bit code natively. (And thunking Win16 to 64-bit mode is not yet done.)
And 16-bit would be completely impossible, first there's the default operand size and then the completely different encoding for memory addressing.
Meanwhile USER32 used to do system calls to Win32k, but then they changed it to call Win32U, and have Win32U be all system calls to Win32k.
These kinds of computers usually have customized ISA boards that aren't even PnP compatible. Software for that kind of hardware doesn't use drivers. Hardware is directly accessed from software, like you would do on a bare-metal microcontroller. Modern OSs like Linux and anything WinNT/2000/+ won't allow this, but Win311 in real mode does.
At this point I believe all the original 50-yr old rolling stock has been retired and only the new cars are operating. It would surprise me if the news ones have the win98 dependency.
Oh yes, that DOS computer language. Bill Gates was fluent in that language.
Totally makes me trust everything else in that article even more.
I doubt there is any logic running in windows 98, but there will be PLCs that interface to old laptops for updating the logic of control systems, probably with proprietary dongles and licenses tied to specific laptops. Can you technically get that stuff working in wine? Probably. Can you do it legally, responsibly and without assuming a lot of liability? Probably not.
Even if the trains have been upgraded, there will be a ton of tendrils reaching into old PLCs from other equipment like train washes, maintenance equipment, etc that interface to the overall system somehow and it would be forbidden and unwise for any individual to start inventing new ways to update the software without an actual project in place to replace the PLC of whatever you’re working on.
The thing was around 20,000 lines of code (Lotus-script if memory serves). Written by a business analyst. No indentations, no following good coding practices, no comments, tons of variables called a, b, aa, bb, etc...
All attempts to make it run on Windows 95 and later on Windows NT/2000 failed. It was unclear why. Something would always be wrong. At some point, IT managed to make it run in a VM on an early VMWare version under Windows 2000.
Sometimes you gotta do what you gotta do.
Comprehend your own business processes and rewrite legacy code?
I think the parent’s point is that sometimes this is prohobitively expensive or there is simply noone knowlegeable enough to do it. In those cases, rewriting is NOT what you gotta do.
By the time I left, the spreadsheet was still relied on heavily.
There is something to be said about archaic versions of Windows and comparing/contrasting with Windows 11/Server 2022. Significant limitations especially with automation, but all of the work is hands-on, no major abstractions between you and the OS or software.
I'm not much older than this OS and i'm seeing a few greys lol.
One time I got a phone call when I worked in the NOC at about 11pm from the director of HR in a panic because the machine wasn't working and payroll was going to be sent out in 55 minutes. Luckily he just forgot his password and had gotten locked out.
Two years ago, the same developer was working on an even older system with BASIC… Which I guess they already retired.
aversion to real costs is not a fallacy.
I'm guessing that in this example, it was more expensive to switch to Linux and recertify. I doubt anyone in management was really arguing against a cheaper option because of money spent 10 years ago.
And than you bet on the wrong ditro. I do support work for a commercial Linux Desktop program. We went from SuSE, to CentOS, to Scientific Linux, to Ubuntu. Lets hop Ubuntu stays. :-) Our "luck" is every five years or so we exchange the machines.
They used 30 years the same Windows version. So maybe they can use 30 years the same Linux version. I don't know. All I know is, choosing Linux is the opposite of choosing stability.
I would argue that a close-source (at least before the leak), non-supported kernel is way more unstable and risky than an open-source, still maintained one (some kernels are actively maintained through 2033).
Bear in mind that the position was not about developing/maintaining the OS, but the applications that run on it.
Is it a fallacy if the cost is specific and enumerable?
That with the scandal sounds interesting, so you have any pointers where I can get a good sum-up? :)
But if you've got an OS that's certified for the work you're doing, and it's not costing you extra to work on that OS, then there's no fallacy - you're getting more value out of the cost of certification you've incurred, and shifting to some other OS would presumably require you to incur the expense of certification again.
That said, the skills needed to work with a legacy OS will tend to become rarer, so you ought to factor that into your calculations.
I’ve done some wild shit in my day. Gotta think outside the box and go to first principles. If it looks like a duck, quacks like a duck and walks like a duck it’s a duck. You can replace things pretty easily when you identify the perimeter of a piece of software.
These days we have pretty powerful decompilers too. I’d posit I could replace this tech for the same cost of one year of whoever they are hiring for this to perpetuate the antiquated crap.
“Hey, our software works and is certified but it’s ancient and no one knows how to maintain it. If was written 30 years ago on a version of windows that doesn’t even support the internet. We need to upgrade and recertify”. This is an easy argument.
"Oh yes, we missed that one output that only happens under these specific conditions and now the train crashed – oops!"
Rewriting the software is probably not much of a problem but the paperwork around it is.
Reminds me of people who know little of the field of computing and the efforts involved and think that solutions spring out of just saying "it's easy, why don't you do it?!".
No, it's not.
Or - you can use the existing Win3.11 systems, which are apparently still working just fine, and just update and test a single application.
I can lend you my Petzold, if you like.
A system that old that has been working for as long will surely have so many quirks, exceptions, bugs and workarounds deeply engrained in its users' processes. A naive port and rewrite will probably need many man-months of lost productivity spent recreating all the quirks of the original piece of software, resulting in an even less maintainable second iteration.
I assume in the newer trains they already recreated new systems. For the old trains it's just not worth it to modernize, as it's incompatible with the newer trains and thrown away eventually.
And who knows, maybe they gave it a try in the past, and it did not work out.
What you wrote reminds me a bit of a friend who asked me 15 years ago when he installed Java: "Who uses Java anyway?". You just have to change your perspective from an end-user. Same for Windows 3.11.
Another company, behemoth, I would say, with 30000 stuff, using Sciter to make frontend for their old mainframe based system (COBOL I think). Mainframe sends 80x24 terminal screens where the frontend gets fields by x/y coordinates to show it in modern HTML/CSS UI.
You may notice a lot of crazy things in dusty corners of IT.
Assuming the KVM switch, and related infrastructure, are well-secured, I don't see how Windows 3.1 vulnerabilities would matter.
(Not sure if the job requires feeding floppies and/or CD's into the machine, which AFAIK isn't something solved by any off-the-shelf KVM switch.)
>SIEMENS Sibas 32, 6FH6035-1A + 4x 6FH 9543-3BY60 + 6FH 9533-3BY60 + 6FH 9550-3AY60 + 3x 6FH9485-3A + 6FH9484-3A + 6FH9498-3A + 6FH9481-3B Antriebssteuergerät
7500 EUR, 28 kg (found after a quick search).
This is my point, actually.
You wouldn't be directly connecting the PC to the Internet. You'd connect the PC to the KVM switch's PS/2 and VGA connectors. The KVM switch present the corresponding virtual desktop to an appropriate user over the Internet using RDP or similar.
Again, I'm not sure such a product currently exists, but I assume it is, given the needs of data-center admins.
The salespeople probably make jokes about high-speed computers.
I have actually used "Windows 3.11 for Workgroups" with some coaxial-cable Ethernet NE2000 cards, but I do not remember what network protocols were used.
With all earlier MS-DOS or Windows versions third party networking solutions had to be used.
Periodically someone somewhere would plug both ends of an ethernet cable into the wall sockets, causing a broadcast storm and every PC in the building would freeze - Not even the mouse pointer would move.
*Update:* Yes, looks like it uses the networking stuff provides by MS-DOS.
MS-DOS has NETSTART.BAT and PROTOCOL.INI that initializes TCP/IP with IP address and subnet mask.
When you look how a passenger information system in the trains boots up you can see how it shows BIOS information (floppy drive connected, serial and parallel port available, no harddisks) then it boots MS-DOS, initializes a XMS RAM disk, initializes parallel port, loads Crystal ENDS2ISA ethernet drivers, microsoft DOS TCP/IP protocol driver, and TCP/P MEMM driver, and calls NETBIND.COM.
https://en.wikipedia.org/wiki/Novell
Oddly enough my MS-DOS machine while in grad school was networked via a product made by Apple that allowed it to connect to a Mac network. My only use was accessing the department laser printer, but that was huge.
No it doesn't. You can run your exploit code and then crash the program, same as exploiting any other program. Or you can add some minimal code on the end of your exploit payload to exit cleanly. If you really wanted to gold-plate it by having it resume the program where it had been then yes, you'd need to figure out some details, but that's not normal or necessary - classical "smash the stack" style exploiters rarely tried to unsmash the stack afterwards, they'd execute their payload and then exit or crash.
I guess with some luck you can work on these hardware drivers for Windows 3.11 at home without any access to the network or train. What you need are specifications and maybe some part of the system, maybe there is some simulation software for the internal system of the trains.
I mean the alternative is that you have to work in the train.
*Update:* Since the SIBAS 32 system is just a box someone can sent home to you, you can probably connect a computer with Windows 3.11 to it, and run some simulations on the SIBAS system.
It's how software development is seen in Germany.
Also, there's a labor shortage I heard. Or so the companies say.
When you look at the software and AI, the German car manufactors are ahead of say Tesla.
Not going to name names, but a person like that was discovered when his employer looked for the oldest serving employee and found out that it was a contractor whose contract featured an hourly rate one usually gets for short-term contracts, like +100%. His stay had been, shall we say, extended a bit.
So maybe not a developer job at all, updating means installing not coding? And the Windows 3.11 on the train has not decent networking or remote maintenance system it needs to be done manually somehow?
But then it's a remote position.
Doesn't seem to make sense to me. But running something as unreliable as Windows 3.11 in a production environment does not seem to make sense anyway.
Some say recertification of a new system would be too expensive. But if this system is certified, I'd say it's a certification theater not worth the paper it is printed on.
They used and still use MS-DOS, Windows 3.11, Windows 95, and Windows NT for different systems over the years in the older trains starting from 1989 to estimated 2030.
Of course it depends on what software you are running. I remember running mostly Humingbird eXceed X-Windows server to access our Unix workstations.
I don't remember any BSOD on 3.11, was that a new NT feature? Maybe also "backported" to W95 and/or W98.
Well, it's been a while and I don't miss them...
It's rather unlikely that something complicated like an X-server was bug free.
So the system you describe as rock solid, can only be rock solid as long as no real world application is running on it.
IIRC NT 3.51 was the real first kernel where a buggy application could not affect the whole machine. But at least in early days BSOD was pretty common, maybe depending a bit on drivers you needed.
(Did not do any archeology now, just from increasingly vague memories.)
That being said I remember very little about Windows 3.11, though I'm sure I could learn quick.