Profile

unixronin: Galen the technomage, from Babylon 5: Crusade (Default)
Unixronin

December 2012

S M T W T F S
      1
2345678
9101112131415
16171819202122
23242526272829
3031     

Most Popular Tags

Expand Cut Tags

No cut tags
Saturday, August 28th, 2004 10:14 am (UTC)
Are you sure the Evil Empire is responsible for this one? " . . . a cycle where the rover would reboot itself, over and over" certainly sounds like Microsoft product behavior, and marking deleted files with a special character is an old MS-DOS trick (actually I think it dates back to QDOS)--but "DOS" is a generic term, and Microsoft isn't mentioned in the story. The OS designer/vendor was Wind River.

It looks like the real problem was that at just one point some people allowed themselves to forget that they were programming an embedded system and allowed a piece of third-party software to be a memory hog.

Moral: rocket science has no tolerance for sloppiness. Even a tiny bit of sloppiness in an otherwise stunningly-brilliant project.

ObMicrosoftSlam: If the rovers were running a Microsoft OS, we'd all have been getting spam relayed from Mars for months now.
Saturday, August 28th, 2004 11:29 am (UTC)
If my memory is correct, Microsoft came up with the FAT filesystem in the first place, right? It's not properly Wind River's fault; they may not have known that the third-party tool (whatever it is, which is unspecified) required all the directory structures on the flash RAM to be mirrored in main memory. Certainly when they designed the OS, they weren't to know that NASA would use it on a rover with limited main memory and a FAT-formatted flash RAM device. It wasn't the mirroring of directory structures into main memory that in itself caused the problem; with a decent filesystem, that wouldn't have been an issue. Lots of very good operating systems do that.

The root problem was the use of a filesystem on the flash RAM in which directory structures grow forever, because directory entry slots are never re-used, in an environment in which large numbers of small data files are constantly being created and written to the flash RAM. From reading NASA's description of the issue, if FAT recycled directory entries from deleted files instead of keeping them around forever, the problem would never have occurred.

I know, the original intention of simply tagging files as deleted and keeping the directory entries in place was to allow for file undeletion. But given the nature of FAT and how it allocates disk space, the odds are against any deleted file being recoverable at all across more than a single reboot anyway, and even then, file undeletion on FAT is a hazardous operation highly likely to result in crosslinked files and a corrupted filesystem.
Sunday, August 29th, 2004 03:20 pm (UTC)
DOS simply stands for Disk Operating System. Apple had a DOS, it was called DOS 3.3, and was succeeded by ProDOS. (Incidentally, MS-DOS 3.3 also existed; it was considered the best version of DOS prior to version 5.0).

As far as I know, the procedure in the FAT file system of replacing the first character of a file's name in the directory with a question mark was not so that the file could be undeleted, but probably just to keep the code simple. The entries in the file allocation table were zero'ed so the file could only be undeleted properly if it was contiguous, or if you used a third-party deletion tracking program.

The article doesn't say that the Wind River OS is using FAT or not. The problem is, as far as I know, consistent with the FAT directory structure. However, there are newer, better file systems and, at the time FAT was developed, it was on par with other file systems for personal computers. Besides, I don't know if MS even invented FAT anyway. MS-DOS grew out of CP/M and, if that OS used FAT as well, it's someone else's invention.
Sunday, August 29th, 2004 06:44 pm (UTC)
The article doesn't say that the Wind River OS is using FAT or not.

True, it doesn't. However, I believe you'll find that the vast majority of flash memory applications, at least in consumer products, embed VFAT as the filesystem.
Sunday, August 29th, 2004 04:15 pm (UTC)
Image