“Computer platform advocacy can bubble up in the strangest places. In a recent interview at a conference in Australia, Linux creator Linus Torvalds got the Macintosh community in an uproar when he described Mac OS X’s file system as ‘complete and utter crap, which is scary’. What did he mean? What is a ‘file system’ anyway, and why would we care why one is better than another? At first glance, it might seem that file systems are boring technical widgetry that would never impact our lives directly, but in fact, the humble file system has a huge influence on how we use and interact with computers.”
I’ve never recommended an article on OSNews (seeing I’m the one putting them there in the first place), but this is an exception. This is an excellent article, and I’m actually a little jealous I didn’t write this; humour, technical information, credit-where-it’s-due, it has it all.
Great article, and definitely worth a read.
Articles of this kind really need years of experience on different platforms as well as some technical backgrounds plus interests. Anyway, it is a great article.
Just imagine if Gary Kidell had been home when the IBM guys came a callin’. Bill Borg would be working at Radio Shack and the world would be a very different place.
not really likely as that NDA would still be on the table, and im not sure if kidell was the kind of guy to accept it.
If I remember correctly, the Gates family was into law; my fear is that Bill would have followed the family business and gone into law and possibly politics based on his drive for kingship.
There are days I’m glad that people with that kind of charisma and mind for strategy went into the areas they did; Elvis in music, Bill in business…
It would be interesting to see how it would have turned out. Maybe some other company would have broken the computer from IBM’s monopoly or maybe we’d still be living in a 90% IBM world instead of a 90% Microsoft world.
Thankfully, the way it did turn out left us with alternatives and choice though it still get’s one labelled a freak for thinking outside the Window.. er.. box.
It’s obvious that Gary Kildall wasn’t too interested. He knew that IBM was visiting to discuss things and he wanted to fly his plane that day.
If Tim Paterson hadn’t cloned CP/M, except for user spaces, Microsoft wouldn’t have had anything to buy. Months later, CP/M-86 would have probably been in the works and IBM would have had to delay the launch on their PC. Maybe, they could have borrowed the DisplayWriter operating system instead.
The author seemed to miss a few details like CP/M’s user spaces, the fact that the adverts for Tim Paterson’s operating system were selling 86-DOS, not QDOS.
Easy to read, lots of info, all important systems mentioned ( no classic computers .. Amiga cannot be killed and thus is still alive )
It generally makes a good case of showing that progress in filesystem tech is really REALLY slow. ( I still think Linux should get something ZFS like soonish tho )
@Thom: Writing one of these cant be easy .. just look around and you will see that nearly everybody fails ( most of them miserably )
Be lacked drivers… as anyone who has read the ‘raging’ driver requests/petitions at Benews will remember. At some point, it was given away for free, but what good is that if it does not start up? The good ole chicken-egg problem…
OT: I am still not sure what to put on a ~3 yo Dell laptop and downloaded the BeosMax ISO (couldn’t burn it yet) – any chances this will run..?
Anyway, this was a nice round up of FSs….
got to love drivers.
it seems that one issue with vista is that they rewrote the driver system, making it unable to use win2k/xp drivers…
now if we could just convince those hardware makers to release docs before a product was on the market, not months after…
I think it was more the hardware manufacturors being strung along in the dark with Vista. If I remember the news from pre-release, the hardware manufacturors couldn’t get driver interface specs for Vista in a timely manner. I can’t fault them for not being able to write Vista drivers by guessing if that was the case.
Still, your point stands; release driver interface specs and if they don’t write the driver, someone will. They could even track the drivers to get a true idea of where the hardware is being used rather than sales stats that can only half-accurately measure Apple/Microsoft market share.
Even the hardware manufacturors that claim patents keep them from releasing code; put a generic interface infront of your closed secrets. No more excuses, the consumers are asking; where’s the driver specs?
sadly its the geeks asking, the consumers only “eat” what is found before them.
If your Dell is a Latitude CPi, it is fully supported under BeOS and quite fast as well.
To be fair, he may need to download a sound driver from http://www.bebits.com, and while the video driver included with BeOS works fine – I got more choices in resolutions and colour depth by downloading video drivers off bebits as-well.
What about comparasion to Solaris SXDE or SXCE for example.
The article is long and also rather comprehensive as it covers most operating systems. I can well understand that they cannot cover everything related to file systems in a single article. But I was still hoping that the article would have written a bit more about Linux and Unix file systems. Now it has only about a paragraph long short introduction to each one of them. For people interested in *nix file systems, for example Wikipedia articles are a much more detailed source of information.
There is lots of geeky mystique related to *nix file systems and their speed and other differences. It would be good if someone in the know could clarify things a bit more, based on reality instead of hype, mentioning about stability problems too etc.
Also, when talking about future file systems, why isn’t ext4 or btrfs even mentioned?
(Edit: yeah, Reiser4 is mentioned, didn’t notice it first.)
Edited 2008-03-17 12:22 UTC
mentioned it is
was worth a read, i enjoyed reading it , took me back a little though, i miss my amiga 600 & 1200 hehe
Some of the features of ZFS are implemented on a different layer like RAID, LVM on linux or subversion.
In my opinion, it is better to keep separate layers for separate tasks, so the end user can adjust to his needs.
But that is just my opinion…
To the best of my knowledge, there is nothing to stop the use of SVM or VxVM to provide LVM or RAID for a ZFS filesystem. For instance, I am pretty sure you can create a zvol on a SVM raid1 metadevice. It just makes no sense to do so in most (if not all) situations.
The old ‘layering violation’ saw is just a glib catchphrase expressing some linux kernel developer’s aesthetic disagreement with the ZFS design. It has nothing to do with the end user.
To each their own I guess.
I have nothing against ZFS. I just don’t agree to say that it is the end-of-history FS that will rule it all.
I’ll keep ext2/LVM for /tmp because it’s faster.
I see a lot of useful features and some places where ZFS should be used because it is certainly a very nice FS.
I would just love it if I could just take parts of ZFS and use it with other parts that suit my setup more.
True, but the one part of ZFS that isn’t available on Linux is the part where it guarantees data integrity. Any RAID implementation suffers from the write-hole.
I’m not too familiar with ZFS’s layout, but I would imagine that if it isn’t layered it is at least modular. I double Sun would create something that is completely unorganized.
HFS+ was never considered, even by Apple, a great filesystem. It did the job of managing a desktop OS’ files but not much else. Robust and stable, it never was.
It was, however a lot better than HFS, and before that MFS, which was a flat filesystem used in the early years of the Mac OS.
HFS+ has journaling now, finally, but the problem with Apple changing filesystems is that it would break many, many apps and system tools.
You can install Mac OS X on UFS, which sucks on Mac OS X, or HFS+, HFS+ case sensitive which may break some apps.
Apple knows HFS+ isn’t great. That’s why they have been slowly improving it without breaking everything else.
Excellent piece. Well written and full of useful info. I give it a ten.
I really like this article. I was originally interested in how OSes do things by the macro/micro kernel debate by the classic Linux/Tannenbaum debate; This article was a great introduction to the evolution of filesystmes in a similar manner.
As a layman with an interest in things OS, this was a great article for my level of knowledge and has given me metric tons of material for googling at 3AM when I can’t sleep. I would love Mr. Reimer to write an article just on the evolution of the UNIX filesystems in parallel to the timeline in the article. His slight bit of humor was not overpowering or annoying and his level of complexity was well chosen and informative.
One of the best articles linked onto OSnews in a long time…I even printed it up and put it into my file of things to research later…
Thanks Thom for reminding me why I started reading this forum. Keep up the great work!
Edited 2008-03-17 16:51 UTC
Filesystems have served their purpose, but as it is obvious to any developer right now, they should be replaced by databases.
Um, how is a database supposed to work without a filesystem?
Well isn’t a filesystem sort of a database anyway?
Why not make some kind of databases that run og whole hardrives?
Now, if this was a good idea it would prob. allready happen. So can someone enlighten a ignorant being on the matter?
Palm OS works much like a Database. Play around on one and try the search, you’ll understand the potential.
But on the desk the biggest problem is that Unix doesn’t work with a pure DB. The idea in Unix is that everything is a file, and accessible via a hierarchical tree. Moving to a record, Seek and Retrieve would be more complicated and more difficult to program to. But not impossible, if you move away from the Unix concept.
So hybrid systems like DBFS or BFS are possible but are in the end are just a way for the user to get information on files stored in the FS not files stored in a DB.
Please don’t take this reply as calling you ignorant (I’m probably no less ignorant)
I just wanted to say that there’s much to say about the assumption that “if it were a good idea it would have happened”. Consider this:
_ Many good ideas are difficult to implement until major and minor technical hurdles are ironed out.
_ Most implementations of new ideas are confined to prototypes and niche applications for a very long time, because legacy systems are good enough, and migration costs can be huge.
If one takes “filesystem” in the broadest sense of a well-defined method of storing persistent information, it’s not likely to become obsolete anytime soon. What may happen is that future filesystems don’t have what we usually call files (named unstructured blocks of bytes, where a program can manipulate every byte) but instead the may have objects (in the OO sense), typed values or some other abstraction. Without such a radical departure, some systems try to integrate the database into the filesytem:
http://www.inf.uni-konstanz.de/dbis/teaching/ws0708/fs/markus_majer…
Some disagree with having too much high-level functionality in the filesystem. They may be right, but take this into account: I’d say the best antidote against leaky abstractions is to always implement abstractions at a lower level than its users. The file abstraction works as long as no process can bypass the “open()” system call. The database abstraction as currently implemented is rather frail, because it conflicts with the lower-level file abstraction. For instance, if you have a picture database with metadata about all the pictures in your system, and you move or rename some pictures from another application, you may break the DB. That’s because you can bypass the DB abstraction. In a DB-driven filesystem this kind of data corruption would not be possible.
IBM’s OS/400 and its predecessor CPF had databases for their day-to-day file systems. Even source code was stored as a group of 92 byte records. Since the database was in the virtual machine below the operating system, it was all quite convenient and powerful without being difficult. Since CPF saw the light of day in 1979 on the System/38, it was quite a bit ahead of its time.
Many large databases (e.g., Sybase) sometimes run on a raw partition and do their own disk management, completely bypassing the filesystem support provided by the operating system.
There is not much difference between the backend of a good database and a file system. Modern file systems support atomic updates of an arbitrary number of files and guarantee data integrity.
The relational part of a RDBMS such as different indexes, a query language and query optimizations, can be layered on top.
I agree that the POSIX file interface needs to be replaced to support transactions though.
By the way: here are some nice videos about ZFS. It is really an amazing FS, not just because of the ridiculous sized volumes it permits:
http://www.sun.com/software/media/real/zfs_learningcenter/high_band…
I believe as mentioned in the article that file system forms the backbone of any OS or even DBMS. And now with the ever increasing popularity of ZFS things are looking ever popular in this front.
My only concern being how would the newly evolving technology comprising of hand held devices, cell phones and PDAs would adopt to these file systems…and do we need a separate file system for them or would the existing one be adapted specifically for their purpose ? Also do we need a hybrid share of different file systems specifically for different purposes like speed, security and management..besides how interoperable should they be with respect to each other ? These are some of the topics open for discussions.
Btw a very good read for anyone majoring in file systems
XFS for the win baby!
/me looks over at his Indigo²
This article was very pleasant to read and even though it was extensive it did not get me bored at all.
I am glad that someone took the time to write such a good article. It does miss some stuff but hey I don’t need all the details.
I’ll be sure to read up more articles from the author.
If you read this article you could imagine that Digital ended just before CP/M, which means you would skip features of file systems under VMS such as file versioning or support of record strcutured files in the file system. Not every file system represented files as a stream of untyped bytes.