4 ms·
Why do government contractors refuse to use COTS hardware and software? Is it just a bureaucracy thing, tradition, or is there any significant ACTUAL benefit to
by kunai 10y ago
Why do government contractors refuse to use COTS hardware and software? Is it just a bureaucracy thing, tradition, or is there any significant ACTUAL benefit to not using something like RTLinux or QNX for systems instead of the proprietary mess of legacy spaghetti code they usually use instead?
- danielvf 10y agoFor the F-35, this is roughly the equivalent of asking why Google or Facebook doesn't use COTS software instead of mess of proprietary legacy code. The F-35's reason for existence is its software. Other existing aircraft are faster, can carry more, fly further, or be more stealthy. The F-35's value statement is that its pilots will know more about what's going on around it than any other combat aircraft, for the next ten or fifteen years. COTS stuff is used at the base layers of military avionics. LynxOS is used under the hood of the Army's very successful CAAS helicopter avionics system.
- mschuster91 10y agoProbably a shitload of certifications are missing...
- mavhc 10y ago"Much of the F-35's software is written in C and C++ due to programmer availability, Ada83 code also is reused from the F-22. The Integrity DO-178B real-time operating system (RTOS) from Green Hills Software runs on COTS Freescale PowerPC processors" "24 million lines of code" From https://en.wikipedia.org/wiki/Lockheed_Martin_F-35_Lightning_II https://en.wikipedia.org/wiki/Lockheed_Martin_F-35_Lightning... Integrity-178B is the DO-178B–compliant version of Integrity. It is used in several military jets such as the B-2, F-16, F-22 and F-35, as well as the commercial airframes Airbus A380. Its kernel's design guarantees bounded computation times by eliminating features such as dynamic memory allocation. The auditing and security engineering capabilities have allowed it to obtain the EAL6 rating by the NSA. Integrity-178B has a unique feature: an EAL6 rating. https://en.wikipedia.org/wiki/Integrity_%28operating_system%29 https://en.wikipedia.org/wiki/Integrity_%28operating_system%... EAL6: Semiformally Verified Design and Tested
- jokoon 10y agoThat's not the kind of stuff web programmers really care about everyday.
- outworlder 10y ago> Much of the F-35's software is written in C and C++ due to programmer availability This sounds ridiculous. Surely it would be very easy to get as many programmers as they wanted for whatever tech they need with the 1 trillion USD that they have. It would be fine if C++ was the best tool for the job, but I suspect it isn't. If it is not the best tool for the job, then whatever is gained in "programmer availability" is lost in productivity, correctness, reliability or whatever metric a fighter jet's software development is measured against. Furthermore, this whole IT industry fetish with hiring for a particular programming language is completely misguided. Domain knowledge is usually the bottleneck. I'd expect that to be even more so in flight or sensor software.
- albinofrenchy 10y agoC++ is likely the best bet for this kind of thing. Or rather, a strict subset of C++. You want real time, you want a minimal OS and you probably want some of the nicer type capabilities over c.
- engi_nerd 10y ago>strict subset of C++ http://www.stroustrup.com/JSF-AV-rules.pdf http://www.stroustrup.com/JSF-AV-rules.pdf Here's the link that gets posted in all of these conversations. A strict subset of C++ is exactly what's been used.
- ArkyBeagle 10y agoIt depends muchly. In general, I'd rather have a seasoned set of 'C' programmers rather than people who are unconcerned with what happens at the level of the metal. But that's probably a personal bias, one that's been hard-earned. It's a way of leveraging the decades of mistakes made by those folks - and aid for by previous employers. A "'C' with classes" approach is probably a good one - but I'd hate to find some subtle template or Boost bug in mid flight... This is all IMO, but an approach like Bruce Powell Douglass "Doing Hard Time' is a pretty good way to satisfy the "systems engineer" customers for UML charts and still have rigorous development. UML is quite the anti-pattern and Rose is kind of awful but this should be a compromise that can work. CASE tools have gone out of fashion.
- hackuser 10y agoIs there COTS hardware and software for cutting-edge fighter jets? Even Google and Apple create custom OS's for smartphones; I doubt QNX would be a great choice for a plane. Also, performance is extremely important for this application. If the plane is a little slow, a little too easy to track, the computer a little slow, then the pilots die, the people they are defending are bombed and killed, the battle is lost, and maybe the war too. It's not a place to compromise performance to save money and use COTS, even if it was a available.
- ArkyBeagle 10y agoThey tend to use Greenhills tools. Just the memory partitioning/object space thing in that is bizarre and buggy. But it does provide complete isolation of chunks from each other. When I brought up the single-vendor problem inherent to that, I think it ended my career at that company. "But we need our vendors." RTLinux will be treated with open source FUD. Doesn't matter if you escrow it or not - a single licensing slip would be a security breach. Since you can't successfully argue that this is specious, you're done before you start. It's impossible to understand the way this plays out without seeing it up close. I don't know how it is in all DoD contractors, but the lifespan of an actual programmer in the one I saw was five years. If you tried to stay technical, you'd get a PIP and be laid off in the next round unless you made yourself indispensable to the customer. Doing that is tantamount to a life sentence - you have to actively politick to get on another program and that's unlikely. Charge numbers are life or death. You might be left alone if you got an advanced degree and published certain sorts of papers. And if you do stay technical, you'll be subject to death marches. And of course it's all processes optimized for maximum paperwork; waterfall and crushing technical debt. Each action item is budgeted and when the budget runs out, you're done regardless. You are expected to angle towards program management to feed the beast. Even then , it's still "up or out."
- albinofrenchy 10y agoGreen hills is an expensive nightmare. I occasionally have to use their stack, and their JTAG crashes multi with infuriating frequency. For a stack that is something like 20k, having to resort to serial line printf debugging is inexcusable.
- ArkyBeagle 10y agoI haven't used in in ten years, but the debugger worked extremely well. Given my view of how thin on the ground they were, I am not surprised if it's gotten worse.
- holograham 10y agodo you know the level of security they put their code through? Especially for mission critical systems? Most of us programmers take for granted libraries and COTS products that we find online when we have little idea who coded them and if they put backdoors in them. Most programmers have no idea security of their systems especially if most are put together as fast a humanly possible. Simply put ... you cannot use COTS/Open Source for warefare systems. There is a reason the military now considers battles spaces land, sea, air, and cyberspace.