How does the military keep its computers from crashing at the wrong time?

I just saw that Army recruiting commercial where the soldier on leave flashes back on “working with computers” under combat conditions. (He’s working at a station under a tent, with all kinds of high-paced action going on around him.)

Made me wonoder. I work at a public library. Our public-access PC’s are the most popular service we offer by a mile – at the reference desk, I get at least three times as many requests for help using the computers as for help finding a book. Often, people ask my help, not because they don’t know how to work the thing, but because it’s not working at all, or because the central computer that controls all the time-reservations has frozen up again. Happens several times every day. I can usually solve the problem by restarting the computer in question – but that takes a few minutes. So if the military nowadays really depends on computers, in the field, to coordinate things in combat – how do they keep them from freezing up at moments when the rebooting time could mean the difference between life and death? Do they have some special, extra-expensive kind of computers that are guaranteed never to go down?

Most computers are incredibly reliable, even the cheap personal computer kind. Most of the failures you are experiencing are software failures. Military grade software is just designed better and more carefully. It also doesn’t have that much priority on user friendliness as long as the job gets done, and the military cares about function a lot more than they care about the look and feel. Commercial end-user software is often shipped “barely working”, the car equivalent of being held together using duct tape and sheer strength of will, simply because of budget or schedule constraints or even sometimes ineptitude.

Because military computers don’t run Windows®.

No, I’m serious. Military programs are bullet-proof because they are single-taskers. Your ballistic computer in your artillery battery doesn’t have a web browser, word processing or anything else extraneous to its mission. Therefore it doesn’t have conflicts in its programming, therefore it doesn’t crash.

Do you mean that literally? I thought Windows NT/XP was a popular choice for embedded systems.

Not with browsers, it isn’t.

This reminds me, isn’t the Army working on some setup where they’d integrate a computer and various electronic goodies into a soldier’s combat gear and rifle? One of the things mentioned when I was hearing about it was a camera with a laser rangefinder on the rifle, and some sort of email system where the soldier can send pictures of what he’s seeing to his commander. Among the features shown was a trackball mouse for the rifle :smiley:

But yeah, when a computer for a piece of artillery is designed ONLY to calculate balistic numbers, there’s not a lot of software to mess with, since it doesn’t usually need a network interface, a very in-depth graphics setup, sound, solitaire, instant messaging, financial software, etc. If you DO need to reboot, it doesn’t take nearly as long, I would imagine.

Kinda like comparing a gaming PC to a gaming console. The console is usually much simpler in terms of what it needs to be able to do well, while a PC tends to be a Jack-of-most-trades.

Missile cruiser dead in the water for at least 2 hours, possibly required towing back to port, due to computer crash running Windows NT 4.0

I remember about 20 years ago when an Oklahoma National Guard unit all bought card-programmable TI-whatevers that ran their artillery battery at three times the speed of the regular Army, with zero sound signature and 16X redundancy. There are times… :smiley:

Actually, we do use windows. (Army). And when I worked in Washington DC we used Macs. It depends on what the computer is being used for. But remember that the military sometimes has software specifically designed for the military by various companies.

Even here, where I work now, our computers being diagnosed and checked out almost every day to prevent any problems. If someone calls me at work and says their machine crashed usually I replace the machine taking the old one back here to find out what happened. the person then doesn’t have to stop working, they have a new computer thats fully operational. (user-profiles are kept on a server, not on the PC) The server is constantly monitored.

As for the situation the OP mentioned, a soldier in the field isn’t gonna have anything he doesn’t need on the computer to cause conflicts. And government computers are set up so no one but a sys admin can add or install software most of the time. (This depends on the user, too. Some users may have permissions to do that)

I’m not going to say that military computers never crash, but every precaution is used to keep it from happening. especially in hazardous situations.

If it really **really **REALLY needs to be in an un-crashed state at all times, it’s run on expensive reliable (usually somewhat old-school) hardware, and consists of a very carefully written and tested piece of software with as few unnecessary bells and whistles as possible. And no-one is allowed to mess with it without a very good reason. And there’s a spare or two.

While Microsoft offers an embedded version of XP, I don’t think it’s all that popular (save perhaps for devices that have to integrate with a PC). Most embedded systems in military aerospace hardware use either VxWorks or QNX (in my limited experience).

These are, of course, real time operating systems and aren’t well suited to general purpose computing; they’re used primarily in equipment that does one small set of tasks and does them with great robustness and accurate timing.

groman also has a good point, in that most system failures are due to memory leakage and resource conflicts caused by gignormous, greedy applications that are not managed well by the operating system. Apache (the web server), for instance, can be a real resource hog if it is allowed to be. When properly configured and run on a Linux or FreeBSD system it is specifically restricted to a limited proportion of system resources, but is notorious for progressively using more resources on an NT/2000 Server machine. I don’t know if it’s true now, but at one time periodic reboot was officially suggested for HTTP server machines running NT. Back in the bad old days of PC-DOS, I never had to reboot on anything like a regular basis; with Windows 3.11 onward it was an almost daily occurance. That’s what you get for using crappy, often ill-documented APIs with poorly-tested commerical software.

Stranger

I have a computer next to my TV that I’m using as a media center. It has a fresh copy of Windows XP on it, and I’ve disabled just about every running task or service. The only thing running on it is a simple media center front-end program that will play mp3s and/or video files from specific folders on the hard drive. In approximately 3 years it has only been rebooted 4 or 5 times due to power outtages (damn California rolling blackouts). It has never crashed.

My point? Simply the same as many other previous posters – complexity. KISS and all you really have to worry about are hardware failures.

We have computers in our hardware test labs running many different complex programs. Those computers stay up for months or years at a time. The re generally only rebooted during lab reconfigurations. They run windows 2000 or windows XP.

If they did all crash at the same time, at least they would all crash at the right time. :wink:

In addition to what others have said about preventing crashes, they still do happen. This article details a software bug that caused the Patriot missles to fail during the first Gulf War.

When I was in the Army, (just got out in May), the everyday computers ranged from 6 year old desktops running Windows 2000 and powered by PIIIs, to more current laptops running XP with Pentium Ms. Not the greatest stuff on earth, and the drive images we got were horrendous. Horrible software that would be good in theory, but would cause serious memory leaks and stuff. My computers crashed all the time. It was even more frustrating because I build my own machines at home, and they are VERY stable (I crash XP maybe once every 5 months…and I use my machine like a sled dog), so I kept asking if I could change the image, but I couldn’t.

The embedded systems in the vehicles and weapons systems are pretty good, but everyday computer stuff sucks. It is cool to be able to run a full office in the field though, running generators to lights, computers, sattellite internet, etc. That was fun.

That first line was the first thing I thought, but I must say “me bad”. And definitely, one of the worst problems with most unstable computers (under Windows or anything else, we used to have a Mac that crashed like nobody’s business) is overload: they’re trying to do too many things at the same time. That particular Mac? Its user had so many stupid itsy bitsy programs on his desktop I’m surprised it managed to boot up. We didn’t let him near the Windows on grounds that, since there are more itsy bitsy programs for those, he’d load them so badly we wouldn’t even be able to “format c:”

Seems a bit harsh to blame that on Windows NT. Some applications crashed because of a divide by zero error, which is hardly the operating system’s fault. I have heard that applications occasionally crash in other operating systems too. Given that the software was part of the control system of a warship, I’m kind of glad that it stopped when it encountered an arithmetical error.

When you have to design and build system that you can’t afford to crash without risking someone’s life, there are strict rules that you should follow. I won’t go into details, but I will hit the high spots:

  1. You don’t put code into your S/W that in not throroughly tested, tested, and tested.

  2. You design the S/W to detect and report H/W faults and isloate them as appropriate.

  3. You use redundancy in H/W and S/W to isolate faults and provide backups when a fault is suspected.

  4. You don’t include software that you don’t know and trust and that is not documented.

It’s much more complicated than this, but to go into much more detail would drift into GD territory. This makes for very expensive software, but you have to weigh the cost against the cost of a system failure.

P.S. Microsoft does none of the above. I’m drifting to GD territory, but I wold argue how well some of the COTS OS vendors (Vxworks, Integrity, etc.) do it.

What about accurate time? How important is it to have all military computers synchonized? This would obviously involve global operation of time precision. The official US time is maintained in Boulder, Colorado. So how does the military (especially in allied coordination) maintain accurate time?