Houston, We Have a Software Problem
An anonymous reader writes "The computer system that launches the Space Shuttle is an old, but important, computer system. It is built from mid 70's technology and features SSI chips like 7400's...which are getting hard to find. It has 64k of memory and no room to repair any software bugs. NASA started the CLCS project in 1996 which uses state of the art computer languages, OO methodologies, and hardware. Everything that you could actually hire people off the street for. However, NASA is in a budget crunch with the Space Station cost overruns. It is looking to trim costs to keep the Space Station going. There are stories about CLCS getting cancelled here and these guys say its already cancelled."
But I thought 64k should be enough for anybody...
I have nothing to allude to, and I am alluding to it.
Hire Steve Buscemi and Bruce Willis.
It had bugs...Dang, that's too bad. Of course, good software has no bugs, and anybody who says differently obviously has no idea what they're talking about.
Only 64K? Damn, I guess BIll Gates was right when he said that 640K ought to be enough for anybody...
And what plans do they have to keep this from happening again in a decade?
Sorry if the article answers this, I can't get to it.
"a quote" -me
Given todays hardware, why you can't just simulate the old system if finding parts for repair becomes a problem. You would just run your old software on the simulated machine.
At the beginning was at.
Unfortunately, this demonstrates the trend and growing problem in software development of bloated code. Just think about it, if a machine with 64k of memory could run the code necessary to control the launch of the space shuttle, it should be enough to do even the most complicated of tasks. The current memory requirements for most of the common Linux distributions is obscene. 32 MB, 64 MB, where will it stop? Of course, with this bloating horror of what we call "good" code, we lose a lot of the quality seen in software of yesterday. Give me my TRS-80, and I'll show you legendary software design.
I think as long as NASA is in charge of our space program we will continue to have myopic planning. Hopefully soon space will become privatized.
Lets put Rocketguy in charge of NASA!
Manipulate the moderator system! Mod someone as "overrated" today.
If they used Linux (which they could obtain Free as in beer and speech), and open sourced the space shuttle code, Open Source programmers from around the world could donate their time to the cause, and NASA wouldn't have to pay anybody. Plus, since it's open source, the code would be bug-free, and anyone would be able to contribute their fixes and additions. I'd love to see Open Source take "one giant leap" by a stronghold of support from NASA.
At some point it might be cheaper to give up on computers and just pilot the Shuttle by hand.
-- Ed Avis ed@membled.com
current system has just 64K memory...
replacement system has been underway since 1996 - and 400 contractors will get the axe when its canned..
sounds like the "replacement" system might have suffered from a bit of scope creep ??
[x] auto-moderate all posts by this user as insightful
Is there a Linux that will install on a machine with only 640K RAM? I have an old 486 laptop that's only got 1MB RAM. Normally I use Debian, but it needs 12MB to install...
Where do I get my own shuttle so I can test the code I wrote?
Exactly how are SSI (small scale integration) chips hard to find... The 7400 series is industry standard and everyone still makes them. Just look at Ti, Motorolla, ON Semiconductor, National Semiconductor, etc. Sure they're NOT the kind of building blocks you'd like to use now (espcially when you could use a microprocessor or FPGA) but they're not hard to find by ANY means.
Well that's what you get if you hire 400 contractors to a nice cooshie government job
thank God the internet isn't a human right.
This is a common problem in big projects. The time it takes to design a system and then actually implement that system is so great, that by the time the sytem is complete, the hardware used to make that system is 'obsolete.' You can't just add more memory and speed, because then you'd have to go through and make sure that everything still works perfectly, and that would take so long as to make the current hardware 'obsolete.' The real problem here is public hype. You don't need 4 GHz and 40GB of memory to program the space shuttle, but if the public finds out that NASA only uses 64k, they will think NASA is behind the times, even though 64K is enough for the system. Of course, the space shuttle is already considered obsolete by some, and new sytems are being created, so don't fret much over this.
Stephen
Fault loves the past, worry loves the future, but content enjoys the present.
Certainly the 7400 series as a whole is still widespread and used in hobbyists kits, I'm not that old. Maybe the original 7400 is becoming obsolete, being replaced with the 74LS (low-power Schottkey) or CMOS chips? If then it shouldn't be too difficult to replace the TTL logic with CMOS logic, given a few adjustment levels in voltage, or they could use the TTL-logic and CMOS-logic in one compatible chips.
Of course, the 5400 series SSIs (small-scale integrated circuits) are preferred over the 7400s for industrial purposes, and as a plus they are completely backwards compatible. Why isn't NASA using those?
"The lesson to be learned is not to take the comments on slashdot too literally." --Vinnie Falco, BearShare
There's an old Slashdot article that I couldn't find that pointed out this article about the code for the shuttle.
The implication in this article is that there few bugs in the code to start with (1 bug in 420,000 lines of code).
So was the first article bogus or this open source fantasy about flying a space ship?
What?
"shuttle_launcher_0_1"
Excellent. That'll save a few dollars. What's the development status?
"1 - Planning, sir"
Ah.
Or better yet have the astronauts just lift the clutch and step on it.
"since it's open source, the code would be bug-free"
LMAO!
(1) Print up 50,000 numbered authenticity certificates...
(2) Break down the old mainframes until you have roughly 50,000 pieces...
(3) Sell it on eBay (or other auction sites) as space memorabilia, mention that the computer the parts came from were responsible for guiding the Apollo missions to the moon, etc and so on... The machines are SO obsolete now that the only way they could pose a security risk is by sending them back in time...
(4) Profit!
(5) Buy a nice little beowulf cluster, hire 20 Linux geeks and feed each of them $50 in dew and pizza in exchange for setting up the system...
(6) Use remaining funds to pay the Russian space agency to have a little "airlock accident" for that Nsync guy...
Just because you can mod me down, doesn't mean you're right. Shoes for industry!
With the upcoming anniversary of 9/11/01, I think it's time for Americans to sit down and think long and hard about what's really important in this world.
Newer Cell phones have more power.
No no no, hire Steve Buscemi, Harvey Keitel, and Quentin Tarantino to steal some diamonds to fund the project.
They are not thinking too smart. ... put the logic into a netlist... fire up Cadence or another tool and burn a custom chip that is their original machine reduced to one nice chip. Now hire a ME to put it into a compatible case and you are off to the races.
If they don't trust an emulator why then take their gates and chips
If a bunch of kids can hack up an emulator for every damn architecture under the sun with stuff like MAME and MESS, why can't NASA just emulate the stuff on a modern system. Save them tons of money too.
You can get 7400s at Newark Electronics here. Hurry, I think they have only 10 million left in stock.... I they run out I have a couple in my junkbox.
Slashdot = alt.religion.windows.mpaa.riaa.sucks
Shut up Al Gore.
If they think they can improve quality and robustness of the system by implementing it in "new" languages, use OO techniques, make it 100x as large (and use 1000x the resources), and hire people off the street (html coders anyone?) to do it, they're obviously in for a disaster.
"If anything can go wrong, it will." - Murphy
It's not like this is rocket science!
Oh, wait....
$0.02 (CDN)
It has 64k of memory and no room to repair any software bugs.
LOAD "NASASHUTTLE",8,1
Just what is the space station actually for?
The money spent on this (and the space shuttle) could be spent on real science and could get a thousand off-the-shelf spaceprobes to interesting places.
I suppose getting rid of Lance Bass would have made it worthwhile, but even that's not going to happen anymore (unless /.ers constribute to a paypal account for this purpose...)
roses are red
violets are blue
the Russians have satellite laser weapons
so why can't we too?
## W.Finlay McWalter ## http://www.mcwalter.org ##
I'm not one to replace things that are working fine, but as I understand it, newer designs could be a whole lot cheaper to operate. So I wonder if pouring more into the Space Shuttle program is the best thing to do.
I'm not saying "let's throw out the space shuttle" but it bothers me that there's apparently nothing in the works with a decent shot at replacing it any time soon. It seems the field of space exploration is becoming antiquated.
Hire John Carmack to do the job. He's into rocketry so he gets to learn more about the whole thing, you get a kickass system, and he may even do it for free.
The guy's so good he may do a better job than a bloated team of 400 contractors.
You can't keep rig-upgrade all the time. Finding wierd solutions like emulators and buying old hardware.
Will they write an emulator 70's hardware in 2100 too ? Probably not. They point where you upgrade the whole system has to come at some point. Might as well do it now. At least now those chips aren't that old compared to 20 years from now, when NOBODY will know how to deal with them.
Though I don't envy the poor guys who'll have to rewrite that code...
"My mom always said that there are no monsters - no real ones - but there are !"
I have a bag full of TTL 7400 chips left over from my undergraduate logic design class!
I want my rights back. I was actually using them when our government stole them after 9/11.
It's kind of sad how NASA's running out of money when the military gets so much money. Personally, a government that can keep a space shuttle fleet up to date and flying would give me a better sense of security than a government that's eager to go to war. But maybe that's just me.
---
Open Source Shirts
They need a cheap replacement for a 7400? No problem! I have an old 7800 they can have for free. I'll throw in some 2600 games that it can play - StarMaster & Missle Command, that should get them back into orbit in no time, right?
Remember "Bring 'em on"? *sigh
But 64k should be enough for everybody!
/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i
I was thinking this. Why don't they open some of the current code and some of the requirements they need to "the community".
Think of who space enthusiasts are and what a lot of them do; software and hardware development. In a budget crunch a good strategy would be to allow interested hobbyists to write some of the code, and then have NASA's boys peer review it.
-- The unsig...
These chips are NOT hard to find. http://www.digikey.com/scripts/us/dksus.dll?PName? Name=296-1723-5-ND
Maybe Lance Bass could offer up a solution?
Surely OO is a bit risky for such a thing. They should be looking at Pascal or something. Isn't that what some nuclear power station use? or Fortran?
That would be Mr. Pink, Mr. White and Mr. Brown.
Thank you.
NASA has been underdelivering for decades and now someone wants to throw another bandaid on the wound?
Why are we talking about cysts and lesions when the carcass has no head, legs or arms?
I can't remember how much core we have left, but rest assured that we have plenty of room to fix bugs. And since we are in the process of replacing the display system with one that does most of its own processing, we are freeing up a large amount of data and code space.
Keep in mind that our patches are usually measured in 16 bit half-words in the single digits.
- "Sweet merciful crap!" Homer J. Simpson
From the tone of the article, it sounds as if the writer is more concerned with the money already invested. I understand it is really frustrating to spend a lot of time on a project that doesn't pan out, but upgrading the software on the space shuttle is a serious endevour.
First of all, finding hardware, or having replacement parts made is not a big deal. Schematics exist for all the chips they use, and even low volume reproduction of the chips won't cost more than this new software they are developing.
Secondly, the space shuttle works, it has worked for years. There are major flaws in the entire design of the space shuttle. IMHO the entire space shuttle needs to be redesigned. No software redesign will fix the major flaws of the shuttle.
Lastly, if true OO approaches were used in the development of the software, then most of it should be able to be used for the next generation of shuttle vehicles.
So stop focusing on the narrow application of this software on an outdated Space Shuttle, and look to the future of spacecraft.
From an article in the Sydney Morning Herald .
The software is built in a similar way - lots of internal checks, tell-me-thrice memory, soft-failure-bit-flip-correcting daemons etc. In this case, lives aren't at stake, but the people doing the programming are used to situations where they are.
Zoe Brain - Rocket Scientist
Not really the combined penis lengths for all the nerds there cannot exeed 6 inches. They prefer to hire crack addicts off the streets to satisfy their anal cravings.
Why do I have to be Mr. Brown?
Get a TI-89 and write an assembly program to control the space shuttle. The TI-89 runs off a MC68000 chip, and has (almost) a meg of space. That's about the programming power of the Apollo computers in a pocket-sized object--plenty of power to calculate the orbital trajectory/angle of entry/etc. It even has built-in calculus functions in case the astronauts forget the Fundamental Theorem of Calculus :) .
I'm the Devil the Windows users warned you about.
Jeez, they should just release the code as open source. It would probably be done in a month, and run KDE too.
Just because you simulate your own personal lifedoesn't mean that people doing productive stuff in the REAL world have to resort to "simulations".
Get a life, you sad sad person.
From the page:
FlightLinux is a concept that uses a real-time variation of the open source Linux Operating System for onboard spacecraft use. Onboard Operating systems have evolved from custom code to applications of embedded real-time operating systems. The time has come to go to open source.
Some interesting information in the article... like the main reasons for cancelling the project are a lack of significant improvements in safety, reliability, or cost savings over the shuttle program's remaining lifetime. I'm no fan of keeping obsolete systems hobbling along beyond their years, but this reasoning doesn't seem outrageous to me. The outrageous thing is that it took 400 contractors to develop something that won't outperform a 30-year-old system that runs in 64k.
and save us the headache of that outdated tin can.
Build something new.
A Good Troll is better than a Bad Human.
I love the idea and would love to see this. It also makes sense, since NASA, like most national space agencies are for the good of human kind.
On the other hand trying to see it from you average government official's point of view, there would be paranoia since, I believe, NASA shares technology with the military and even without the mililtary ties, there would still be fear mungering over 'national security'. Also, your average programmer probably wouldn't have access to the hardware to run and test the stuff on.
Jumpstart the tartan drive.
I have a teacher who actually worked on the operating system for the shuttle. He said the things they had to go through was insane. He said "EVERYTHING" had to be flowcharted before it could be coded. Apparently, they were spending just as much money on draftsmen as they were coders. And everytime they made a change to the software, the flow charts had to be changed. It was insane. Eventually, the coders talked them into dropping the flow charts until the code was finished.
As for who these guys are, (the coders), they would hang out in the control rooms and wait till tour groups came by. Then they would run around screaming and scare the tourists!!!
Apparently, they had some fun before the DOD got involved with NASA.
Might I suggest using FPGAs to emulate the hardware old system so the software doesn't have to be thrown out?
Assuming that circuit layouts are available for these old chips, it would be a piece of cake to emulate them in VHDL (a hardware description language) because they are comparatively simple to today's integrated circuits. Once the chip descriptions are written in VHDL, it would be relatively easy to 'port' the hardware over to a new FPGA if the old one dies or whatever. Then it would not be necessary to truly port or re-code any of the currently working code, and it would be much easier to fix bugs and extend it because you don't have the memory and speed limitations of the old system.
Bill could buy this little toy for CASH, and either of Larry or Scott could probably rake together the cash to fund it single-handed.
C _is_ the state of the art of procedural languages for over 30 years. It's not like such a simple thing has a lot of room for improvement, there are other areas where new languages can be created, but honestly how many ways are there to do things like preprocessor, functions, variables, etc.?
OO languages' authors may feel that they are doing something more "advanced" but in fact they are working on a completely ortogonal area of development. And most of them are far from C elegance (ex: Stroustrup doesn't even understand C design properly, so C++ is even more inconsistent than what its origin would suggest, and I don't even consider a rotting pile of shit that its "standard" libraty is, to be a part of language), or are simply badly designed (ex: Java), or are not languages but eclectic messes made by including specific librariers' and object models design into the language itself (ex: C#).
This is the area where we can use a lot of progress until it will reach the state where we can keep call the same thing "state of the art" for 30 years, but I won't hold my breath -- OO language design is dead, everyone is just making "OO" languages as various vehicles to promote their narrow-minded ideas. So I won't be surprised if Stroustrup's mess will remain the most useful semi-OO language for the next 30 years, too (but those libraries HAVE TO GO, and so should the attitude that students should learn that atrocity without studying C first).
Contrary to the popular belief, there indeed is no God.
At the time of the Challenger inquiry, the late physicist Richard Feynman was part of the investigation committee. He found that most of NASA at the time was in full delusional mode about how reliable the Shuttle really was.
The only exception was the computer systems group, in particular the software side. They had metrics, procedures and rigour.At the time of the enquiry the hardware was already old.
It's the attitude that counts, not the hardware, not the methodology of the month. OO is not going to solve NASA's problem, it's going to be difficult. Myself I'd just make sure that the hardware would always be available, and not change a thing.
Over two hundred million dollars and six years of work have been spent on CLCS to date. CLCS is roughly 70% finished. [...] The CLCS main development has roughly two more years to go. The exact schedule is not completely predictable, nor is its final cost.
On a "modern techniques" replacement for a program than ran on a machine with a 16-bit address space? Do I detect the stench of committee designed software with a whiff of low bidder? Yikes!
Moderating "-1, Disagree" is simple censorship. Have the guts to post your opinion.
They prefer to hire crack addicts off the streets to satisfy their anal cravings.
That cannot be true. Most, if not almost all crack addicts oon the street are older than 8 years old. That alone would disqualify them.
-- i = i + 1; /* That's one small step for i, one giant leap for mankind. */
++ i++;
++
http://www.urbanlegends.com/science/hp_calculators _on_space_shuttle.html
Nope they use HP calculators.
HP41's and HP 48's.
Much better machines.
I forgot to mention that I am unsure of how the systems run today. I know that back in the Challenger days it was something like this, and I am hoping (only for the integrity of the previous post, of course) that it is still like this today.
I actually did run Linux on a 2MB RAM system (a 386 SX16). That was back in the 0.99.14 days, and I was using SLS 1.03.
My main machine was a 486DX33 with 4MB a the time. Everything fit fine on a 90MB partition when I was first getting started. Later, I got a 340MB drive and installed X. X was a bit painful until I managed to upgrade to a whopping 8MB RAM. Of course, olvwm has a much smaller footprint than GNOME or KDE, and there wasn't a web worth browsing in 1994.
--JoeProgram Intellivision!
nitpick: Weight doesn't matter quite as much for the ground-based launch system, which is what this article's about.
As for using Java and all that: I don't know if you actually read any of the details, but the system must cope with upwards of 50000 events with millisecond response times. This argues for a highly real time, perhaps rather distributed processing. In many ways, it argues for many smaller, simpler subsystems, just so you can keep the predictability! Java is NOT the way to go for such a system. Having a mondo mega centralized system on a super-powerful CPU with lots of RAM is a recipe for disaster unless you were extremely careful. A room full of 6502s each dedicated to a narrow task would cope with this problem much better.
Don't make me trot out the Engineer and the Toaster again...
--JoeProgram Intellivision!
No matter what the language, no matter what I had to learn. If I could contribute in any small way to the code that ran part of the space program I'd spend all my free time on it. NASA should consider calling upon the OSS community.
Launching rockets into space is more of an engineering problem than a software problem. Newton figured out how to do it 500 years ago.
Watching Cowboy Bebop in my jammies, eating a bowl of Shreddies.
...NASA could billions by deorbiting all personal after their mission so that they burn on the atmosphere. No suits needed, have them jump out an airlock with a little solid rocket to deorbit them as they exhale their last breath. Strip all of the trash and excess stuff to them and land the Shuttle on auto. Think of all of the weight it would save and supplies and fuel. And payroll, too. It would however, make recuriting new people harder, but every plan has it's bad points.
Not only that, a single space launch of even a fairly small satellite still costs over a billion dollars. If there's a software glitch, it could render the satellite totally inoperable, and I doubt that these engineers want to tell their source of funding that a glitch they're responsible for just wasted the whole launch...
Which is also why Microsoft doesn't do aerospace embedded systems. :) Whoops, Satellite Redmond I just had a BSOD...
Qu'on me donne six lignes écrites de la main du plus honnête homme, j'y trouverai de quoi le faire pendre.
That's all well and dandy until my code with a well-obfuscated backdoor is put into use, and i root the ISS.
"Upon attaching the waterblock to my penis, I began to notice that I know nothing about computers." -- JRockway
it's such a simple solution. In fact, for reliability, they could probably fit 2 or more of their current systems on comodity FPGAs, and then use a couple separate chips, and then run them in parallel. when one doesnt seem to agree with the others, time to reimage or replace. i dont know why this takes such an undue amount of resources...
And to those who talk about emulation as the answer, that is only part of the problem. (1) They'd still have the same address space limitations in an emulated platform. (2) they'd still have a hard time finding people to work on it, and a long training period to get them up to speed. They really need to migrate the platform, even if they only replace the current function..
-dB
"It if was easy to do, we'd find someone cheaper than you to do it."
They obviously don't need very high performance, since it runs on 1970s hardware, but they do need high reliability and low development costs.
That means that they should be using a safe, secure high-level language. Something with a virtual machine might be a good idea so that it will be easy to adapt to new hardware platforms: you verify the virtual machine on the new machine and then have reasonable confidence that your code runs.
If they want something in widespread use, a home-built Java byte-code interpreter (not a JIT--they are too buggy) might be a reasonable choice--it's well specified and there are lots of people who know how to program it. They should probably avoid JNI like the plague and instead add new bytecodes for I/O and communications and verify them the same way that they do the virtual machine itself.. VLISP might be another good choice--or at least a source of ideas for how to implement a verified Java interpreter--DARPA already has paid for its development.
And they should hire someone who doesn't recommed COTS with C++, lest we see the next shuttle go up in flames again.
Haha...it's funny because most of the projects on slashdot are in planning or pre-alpha stages, and never release any code! Especially the really interesting projects or the one that sounds like it exactly fills a need. He's a genius! Mod him up!
Seems like an obvious answer to a silly question (i.e. How can we get more 7400's real cheap?)
I used to work for GSFC (Goddard Space Flight Center). It was wonderful... many years ago.
Anywho... they had *shitloads of unbelievable equipment... ages old... *name that piece of hardware*. We could wander from building to building, and look/view/see the equipment.
Lots were there because they were running projects that took many many years to see results, thus they could not upgrade *in-the-field* because it would stop the project.
Indeed, part of GSFC when I was there was to backup Houston on launches. When they upgraded they built a totally new floor above the existing backup, and on a *grand* day they transfered power, with one big switch, from one floor to the next - why? because they had to. It had to be well tested and well checked before it could be put in live production, yet the existing systems had to be on-line to backup Houston.
It was fantastic walking through the various buildings and rooms... I've seen equipment I've no idea what it did. For example, one room had these rather large, circular platforms with clear plastic or glass domes. Inside the domes where flat plates - think silicon... but BIG.. 1 1/2 ft octogon. Stacked with about 2 inches spacing, about 10 of them. I'd say, looking at the room, some very old old old type of RAM.
That's the wonder of NASA :)
Problem is the hardware is the least of the concerns. When I worked at Raytheon we had similar problems. We had systems written in fortran/assembly and hardware using discrete logic ICs. Redoing the hardware was simple and we often replaced a board full of ICs with a single Xilinx FPGA. But who cares about the logic ICs? Redoing that was as simple as redrawing the schematic. Maintaining the software written for a PDP-11 was the hard part.
The ISS is a relic of the first generation of US space plans, going back to the 1952 Collier's articles. The assumption was that to further explore the solar system you'd need (a) a reusable shuttle to go to and from orbit (b) a space station as a research facility and also as a base for assembling and testing space-only ships (c) said space-only ships that would leave and return to the space station with crew being transferred by the shuttle to and from earth, ie the station would be a sort of orbital railway terminus or airport.
This was sensible plan if you were looking at a large number of flights per year and/or setting up say regular interplanetary shuttles. *However* it is totally inapplicable to the current situation where *we haven't even been back to the moon in thirty years let alone get to Mars let alone make out-of-LEO human travel routine*.
There is no way in the world that the money will be made available to allow a manned-space flight schedule that would effectively use these facilities; it would make Apollo's budget look like that of the proverbial chook raffle.
What *should* have been done after the fall of communism was a joint US/Russian Mars program. The Russians had the heavy lift vehicle (Energia), the experience with long-duration space living and well-advanced Mars plans. The US had the experience from Apollo in control systems, rendezvous and building landers and the money. An enhanced Energia (or two) launching a Russio-US crew in a US-designed spaceship and Mars lander would have been a far more effective use of the money and skills on both sides, and would really have reignited world interest in manned space flight. If Mars was still inappropriate, they should have looked at a big, long duration moon mission with a plan to set up a base there. For a one-off effort (initially) there would be no point in having the ISS. And if you really wanted a test space station you'd launch it in one go Skylab-style from Energia.
Frankly given the duration of the Russian space-station missions I don't see what else we can learn of relevance to surviving a Mars mission. It certainly doesn't give us experience in the *big* potential show-stopper - protecting against radiation exposure during the trip and solar flares once you get outside the Van Allen belts.
[Finished Stephen Baxter's fabulous novel "Voyage" over the weekend. Alternative history of NASA going to Mars in 1985 instead of building the Shuttle. Read it and weep...]
NASA is having Space Station "cost overruns" which are utterly dwarfed by the $350 BILLION we spend every year on Social Security, which will go into the red in about 10 years. Someone earning $50,000 a year sees SEVEN THOUSAND FIVE HUNDRED DOLLARS A YEAR go to a program which will run out of money in a couple of decades.
Schools have no money (classes in trailers, perpetually). We're constantly running or almost running deficits. People hand over 40 percent of their gross income in taxes, a figure which increases every year. I'll guess that 30 percent of the working population is unemployed or seriously underemployed.
Yet there is NEVER any money for anything worthwhile, like a new launch platform. And yes, the space program is worthwhile.
"It is built from mid 70's technology and features SSI chips like 7400's...which are getting hard to find."
I have a whole bag of them right here for my Digital Design class. The receipt says $14. Hard to find?
Replacing it can be harder. I used to work in newspaper publishing; the core editorial systems of one employer were old ATEX J11 systems with a proprietary, tightly integrated OS and application suite. Over time, various aspects of the system were offloaded to more modern systems (eg, PostScript output and integration with graphics from desktop systems had dedicated AIX systems, imagesetters driven by PostScript RIPs, dumb terminals run from dedicated I/O boards replaced with terminal emulators on the desktop).
Despite all this tweaking, the crufty old systems stayed in place. Why? Well, on each of these old boxes, we could support 25-30 journos and the systems just worked, grinding out newspapers day after day.
People kept talking about replacing them, not least because we had to train up operators and engineers on them every time new staff came in, parts were hard to come by (the standards-not-compatible SCSI and ethernet interfaces were picky about what they talked to, and the filesystem could only address 600 MB of disk per system), and they used huge amounts of power and floor space.
For the three years I worked there and in the three years hence no-one has been able to deliver an editorial system that just works. When vendors rolled their rigged demos in, they crash. The major vendors like CyberGraphics and ATEX couldn't point to successful implementations of their new systems producing a decent number of newspapers on the basis of more than one edition per day.
Would it have been nice to have a Unix or Windows based system? Sure. Reduced overheads and training burdens, able to buy the latest and greatest hardware, and so on. But no-one could actually deliver something that worked better than the crufty old J11 systems.
NASA are probably in a similar bind; it's a very familiar problem: old systems developed by tight, focused, skilled teams and developed over the years are very, very hard to replace.
Somewhere an NASA'a very large website are tons of schematics and code used in the shuttle. I'm not sure if it's opensource, but nasa has historiclly been generous with the work the do. Witness Donald Beckers ethernet drivers for Linux (probably most of them, in fact) and the Bewolfe stuff.
"A language that doesn't affect the way you think about programming, is not worth knowing" - Alan Perlis
software is only part of the story. if the shuttle is running on 7400 series TTL, its computers are using up too much space, too much weight, and *way* too much power.
all of these are multiplied in severity by the fuel needed to lift it (and the fuel needed to lift the extra fuel).
the shuttle is only one generation beyond "spam in a can" and is a very inefficient way of taking things to orbit. nasa has to innovate or get out of the way.
"State of the Art" is a good way to run your pocket book into the ground. Jumping on the newest, fanciest programming language doesn't usually make a business successful.
Here's yet another example: My company's (former) largest competitor invested *millions* into Sun hardware and development in Java. Why? "State of the Art". And guess what! With all of their "state of the art" infrastructure, their system was still slow as molasses.
What did we do? We spent less than a tenth of what they did to develop with Perl on x86 servers. Our site handles huge traffic loads pretty effectively, and we did it without running ourselves to the bankruptcy court.
steve
Oh, you're not stuck, you're just unable to let go of the onion rings.
It isn't an urban legend.
NASA is currently struggling with obtaining a reasonably modern rad-hard CPU. The market is so dinky that nobody wants to bother with it. But they have been able to retrofit flat panel displays, at least.
So what's the next phase?
"2. Arguing over phase 1. Time frame: 3 to 5 years."
I used to work with military electronics and found that the best gear was always from the 80s. The stuff from the 60s and 70s (yes, some of that is still in service) was too primitive. The 90s hardware was too complicated and suffered from unreliable software.
In the 80s the microcontroller technology was just good enough to embed a processor with 64k of ROM full of finely crafted code written by a single programmer and it always just worked, perfectly, every time.
Stop worrying about the risks of nuclear power and start worrying about the risks of not using nuclear power.
If NASA's budget is hurting so badly, why not swallow a bit of pride and recruit help from fans of the space program who may also happen to be hardware and software engineers?
Perhaps the crew at, say, ham radio organizations like AMSAT, or other groups that already combine volunteer engineering effort with an interest in space exploration, would be happy to help out with modernizing the systems. I wonder if anyone's asked them?
NASA would, of course, keep enough engineering staff around to check the improvements out, but why limit themselves to paid labor if the resource to pay is drying up?
Bruce Lane, KC7GR,
Blue Feather Technologies
" 'The system must be ductile - bending, not breaking - when things go wrong. In space no one can press Control/Alt/ Delete.' "
Nice quote, but real embedded systems DO have a reset. It's called a watchdog circuit. If the circuit is not periodically refreshed, it will count down to zero and reset the computer to a known state.
Yeah. I'd trust my life to a bunch of geeks with no clear design principles.
"Information wants to be paid"
How can a paradigm be risky? It is a way of looking at data and the operations performed on them. Proper application of a sound paradigm (ie., good code) is all that matters; no paradigm is inherently evil[1].
Using Java might(/would) be risky. But OO isn't Java.
[1]: Except functional programming. Gah.
Note that they are most likely using GNU software. Here is a list of the software development environments for these chips, and Here is the European Space Agency's web page for the tools and emulator.
The amount of cosmic radiation which is needed to flip a bit anywhere in the circuit, even inside the processor is very low. todays 2GHz processors can even crash in an airplane because of the high frequency it works and tho low voltage levels it uses.
They obviously don't need very high performance, since it runs on 1970s hardware, but they do need high reliability and low development costs
this raizes an interesting question: how much better would a rocket with fast-response feedback mechanisms be ?
and what are the time-scales involved ?
how much can you raize efficiency and reliability (automated problem detection and solving) with better computing ?
would a "real-time" (at the time-scales involved) automated simulation and analysis of the machinery involved (using inputs from the hardware) be beneficial at all ? how ?
Working for necessity's mother.
"A language that doesn't affect the way you think about programming, is not worth knowing" - Alan Perlis
One of the news headlines on TV RECENTLY was that NASA wanted to know whether anybody from the public wanted to give them extra pre-186 cpus to build on there massive network of pre-186 computers.
So NASA are facing a budget crunch, huh? Well here's a thought: good. That should shake management out of their complacency. They could have been taking paying astronauts up at $20m a pop, but they aren't. How many software upgrades would a single self-financed crewman (or crewwoman - no need to be sexist) have paid for?
When the Shuttle was still just a concept they claimed that the crew wouldn't be super-fit fighter pilots, just ordinarily fit men and women. But they never made the cultural conversion to allow that to happen - it's still fighter pilots and PhDs on the shuttle (check out the crew for STS-112, if proof is required).
What about the dumb, fat gimps that cough up their taxes every year? Don't they get a ride-along if they want one? What are they? Too stupid to go, but dumb enough to pay? How long's that going to last for? You could ask for a ride-along in a cop car, but I guess it's too much to expect that NASA would realise that it's a publicly-funded instution and beholden to the people in exactly the same way.
Now, I'm not saying that they have to give a lift to every spud with $20m in their back pocket, but a flat refusal to even entertain the idea of self-financed crewmen is nothing but profound institutional arrogance. Take their money and give them the groundside training. If they don't make the grade then can their ass and keep the bucks. If they do make the grade then NASA still makes a tidy profit and has another trained astronaut on their books. Win-win.
Maybe, when a few more engineers get pink-slipped, the ones that are left will start pulling out their calculators and pointing out to management that NASA really needs that money.
One of the penalties for refusing to participate in politics is that you end up being governed by your inferiors - Plato
Um... Functional programming might be a much more appropriate tool for this job than any OO language I know. And I program C++ for a living. :-)
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
That really depends on your definition of reliability. If you're talking about things like buffer overflows and memory leaks, then yes, good basic programming technique in C++ makes it a far more powerful tool than most give it credit for. OTOH, C++ compilers are complex and buggy, and the imperative rather than declarative nature of the language makes verification of algorithms much harder than it might be. There is still plenty of scope for unreliable C++, on the scales we're talking about here.
In a case like this, you could well afford to go for a more advanced language and make sure you've got a well-trained development team and a verified compiler. The programming world has better tools than C++ available, but pragmatism puts them beyond mainstream use for the time being, which is why C++ remains such a useful tool. In this case, though, you have both the resoures and the motivation to use better.
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
It strikes me that this is exactly the sort of project where you don't want to attempt to construct an ambitious, all-singing, all-dancing, state of the art, eighth wonder of the world. This misses the point about what is actually needed. Instead, you go for something as simple and straightforward as you can design which will have the capacity to do the job and continue doing the job for the forseeable future. It needs to be simple so that you can analyse its behaviour and failure modes with a high degree of confidence. You can push the sexy bells and whistles out to helper boxes, but the core systems must 'just work'. And technology that's far enough behind the bleeding edge for its characteristics to be well understood is definitely a Good Thing in these situations.
Remember the old engineering rule of thumb: "when in doubt, make it stout, out of things you know about".
I know the Java JVM is alreasy stack based , but is is far too complex to for the generated code to be verified. Stick with a very simple FORTH based stack with three data stack, long (64) int, Floating point ( 80/128? ). Note, no strings at all, all object/Array access via int syscalls.
For those that clicked on the link to the OMG's UML web site, the UML is not a methodology -- it is a notation. The RUP, OPEN, or XP are methodologies. The UML only describes a meta-model for capturing the static and dynamic object-based model. That's it -- nothing more, nothing less. So, please, for those of you who insist on commenting on OO technologies, languages, and methodologies, plesae get your facts straight. Of course, it would help if the editors of Slashdot would do the same ...
Yeah, I can just see it...SPACESH.ROM
You just don't see it.
What was "state of the art" in the '80s is now ubiquitous and hidden from the end user.
Ever found a bug in your portable Nomad MP3 player (The flash-based ones, not any of the disk-based ones - Although the disk ones are still pretty strong)
Has your car ever shut down because its computer crashed? (Note: Hardware failure doesn't count, although automotive ECU failure is RARE unless you've done something to screw with its cooling.)
What about your VCR?
These are all cases of coding like you described - Fitting as much as possible into as little space as possible. In Lucent's (now Avaya) business communications division, there was (maybe still is) a raging debate on whether the usability benefits of using two LEDs rather than one justified the *pennies* of extra cost on an item that sold for a few hundred dollars. In a cost-cutting environment that intensive, you're not going to spec a processor with 8k of flash and 2k RAM when a processor with 2k/256 bytes will do. (Note - Popular microcontroller such as the Atmel AVR, Microchip PIC, Motorola 68HC11, etc. all are in this range.)
And it's quite easy for a single programmer to do all of this. I've seen CD-based MP3 players developed in a few weeks by a team of two college students for their Microcontrollers course taking 3-4 other classes at the same time.
retrorocket.o not found, launch anyway?
Throw it up on source-forge and invite anyone to help finishing writing it! I'm sure many would be thrilled to be able to say a little piece of their code is responsible for launching a shuttle.
NASA could just try to sustain a team responsible for writing, maintain and running test cases over the code so they could still be confident it works as specified.
/..sig file not found - permission denied.
Yes, but so could firing guided missiles into a random chemical plant in order to divert attention from a presidential sex scandal. America has done a lot of awful things to the people of the middle east, since at least the 1960s if not earlier... looking back on it all, I find it amazing that it took them this long to hit us back on our home territory.
What I don't understand is the people who reacted to 9/11 by saying "clearly we have not bombed the shit out of the middle east ENOUGH! Bombing them even more must be the solution to all of our problems!" Duh, Bombing the middle east every alternate thursday is what got us into this mess in the first place! Bombing them more will create MORE PROBLEMS!
I only see two ways to bring a permanent end to this mess: pull all military forces out of the middle east, stop meddling in their politics, and leave them with only themselves to blame for their problems... or escalate the conflict to it's logical conclusion, and ruthlessly exterminate every man, woman, and child in the middle east with hydrogen bombs.
I prefer the first method, but even the second method is better than a wishy-washy comprimise where we kill just enough of them to piss them off even more, ensuring that they will hit us back sooner or later. If we are going to kill them, let's at least do a proper job of it!
The computer screens all used ASCII graphics, and eight colors, including the infamous cyan. (Aside: does anyone who isn't in computer science even know what cyan is?)
You really don't think of multiple shift keys (e.g. Ctrl-, Alt-, Meta-, etc.) as a new technology, but it's something that hadn't been thought up yet at the time they installed the firing room computers. So what you see is, they had multiple different-function keyboards stacked on top of each other, so as to be able to invoke multiple commands.
The printer was amazing -- it used mimeograph fluid and produced wet -- soaking wet -- purplish printouts. You had to wait several minutes for them to dry.
As laughable as it seems to see the old tech in use, it is important to remember that there is a considerable amount of time, money, and lives at stake on these launches -- so much so that nightmares were not uncommon among the people working in this environment. As such, it is a extremely dangerous process to change out any of the hardware or software in use. So much can be lost during the inevitable process of working the kinks out of a new system.
I object to that article, and to the next reply.
These news items should say it all. What do NASA engineers eat, the design documents from past projects? What on (or off) Earth is so difficult engineering-wise about piecemeal replacement of an existing system, even entire redesigns? Don't engineers spend time monitoring the obsolescence of their own equipment, and make plans to replace them?
... but some mag tapes in a multimillion-dollar project were deemed not worth archiving, even though the software (even the tapes) can be examined and re-used, and in fact should be looked at again when the present system must needs be replaced.
...
after all, several hundred million dollars more have been spent, and that's enough waste for one project.
NASA already blew through "several hundred million dollars" on the first replacement system called CORE. They "threw the software away" after the project was killed. This fact alone shows how wasteful and inept the NASA organization is. All of Challenger's recovered remains are stored in in some bunker or silo; these remains will never fly again, although they can be examined again. BUT
So now NASA is getting ready to shitcan the CLCS, probably having judged that it is time to kill the project
If I had my druthers, I'd crack NASA open like corporate Chapter 7, and sell off the pieces to the public. Then all of those so-called engineers (who probably spend their time reporting on the reporting procedures of the Department of Departmental Oversight) would have to do real work.
(I had a more qualitative posting in mind, but while typing I got more and more pissed off. Sorry.)
[also misbehaves on Kuro5hin as Peahippo]
as opposed to slave labour H1B contractors (400 of them!) which are already waay overdue on budget/competion and time.
congratulations. you obviously made the right choice.
Verify the assembly generated by
the compiler. It's all that matters,
in the end.
How much of what's in the system is really not currently available? They only mentioned 7400-series logic...variations (74LS, 74HCT, etc.) of that are readily available from companies such as DigiKey and Mouser, last time I checked. For what's not available, I'd think that old databooks would have functional descriptions and/or block diagrams from which VHDL could be written. While a transistor-level diagram would be nice, I'm not sure that it would be necessary--or even useful. (Example: if the 7400 wasn't still available, the databook would tell you that it was a quad 2-input NAND chip. That ought to be enough to duplicate its functionality.)
(Then again, I changed majors from computer engineering to computer science, so I could be all wet here. :-) )
20 January 2017: the End of an Error.
Why does this informative, on-topic post have a 0 mod??????
There are many facts that can be said in favor of space exploration and NASA. There are a lot of benefits to everyday life. NASA and its technology helps with emergencies, like wild fires and satelite imaging. Its not about the quality (or lack) of management, or fiscal blunders and so on.
:)
Its about the future.
However, the CLCS project is one of NASA's most challenging. It challenging to upgrade from a system that is nearly 30 years old to one that actually uses technology that you (we) use. The stuff that acutally launches the shuttle now was invented by our parents or grandparents. It is amazing that it actually works, so far, so well and so safely. However, the fact is that it can only survive so much longer.
Beyond that, the fact is that I have spent 5 years of my life trying to convince the agency how to do it right. Again, this is more than showing how to upgrade from Win95 to Win2K. Its more like trying to upgrade from a PC/XT to a 1Ghz P4. Actually, the Launch system is a lot slower than a PC/XT. This is an attempt at a revolutionary change. And a long needed one.
And as always, revolutions are defended against by strong armies. In this case, the armies are civil servants and certain contractors that either have no vision for the future or corporate agendas aimed at defending their corporate place against change. In either case, the result is the same -
nothing.
This may be the final word on CLCS. The 500 or so engineers, designers, analysts and support staff at KSC will stand up at 9:00 EST tomorrow to hear what the status of our project will be. The livlihood of these 500, plus several hundred others at other locations, are hanging in the balance. But more than that, it is the future of the future that is in question.
gratuitous plug: write your congressman at http://house.gov/writerep (and you might save our jobs!