10 Things Apple Did To Make Mac OS X Faster
bariswheel writes "This kernelthread article seeks to investigate further to the inner core of OS X and the improvements therein. The subtopics are the following: BootCache, Kernel Extensions Cache, Hot File Clustering, Working Set Detection, On-the-fly Defragmentation, Prebinding, Helping Developers Create Code Faster, Helping Developers Create Faster Code, Journaling in HFS Plus, and Instant-on."
OS X is the only OS I"ve ever installed that subsequent versions speed up my older computers. Amazing... I'm waiting for an Apple Intel Tower and I'll retire my G4 Tower.
Damn ADC interface.. what am i to do with this big ass cinema display?!?!!?
Check this: http://developers.slashdot.org/article.pl?sid=04/0 6/03/130214
The website even has a link to the old slashdot story: http://developers.slashdot.org/developers/04/06/03 /130214.shtml
If Apple is going to bother optimizing other stuff on the OS, they should at least give you a way to turn off some of the extras when it comes to the GUI.
I don't need high resoution icons, drop shadows, dragging window effects, minimize effects...etc. In windows land, you can turn most of these eyecandy effects off and performance is greatly improved. You'd think that Apple would have considered this when releasing a computer with 256mb of ram on the base model (G4 mac mini). I love the computer, but it is SLOW.
You don't get out much, do you? GNOME 2.14 is supposed to be extremely fast in comparison to previous releases, which were also faster than their predecessors.
Uhhh...I'm guessing if anyone's not getting out much....well, nevermind. If you can't say something nice don't say it at all.
I updated from Panther(10.3) to Tiger(10.4) and my machine seemed slower. I decided to do a fresh install, and things improved, as always the fresh install is better than an update.
I still think that Panther was running a bit faster tahn Tiger, maybe it is the widgets..........
silly widgets!
This was all done on a PowerBook G4(TiBook).
Linux gets faster too.
Kernel 2.4 to 2.6 was a pretty big jump in speed. I just upgraded to the latest KDE and a bunch of other updates, and got another performance jump. Once they shake the bugs out of the Radeon drivers for X.org, I'll get accelerated X, and another big speed boost.
In fact, of the major OSs, it's pretty much only Windows that keeps getting slower.
GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
You don't have to be a "GNU/Hippie" to use Linux, and there are plenty of reasons to do so, as well, not the least of which is that it's free and it'll run on that old P166 you bought over a decade ago. The "GNU/Hippies" you speak of are largely the guys who spend all day tweaking this and that to make sure the next release of your operating system is secure, productive, and pleasing to the eye, which you might notice Linux is becoming more and more, especially with user-oriented flavours like Ubuntu. The main difference is, the guys at Apple get paid for what they do, and the guys who contribute to Gnome do not. As such, Apple is a little further ahead, especially since their UI is more closely integrated into the core of the OS than Linux' is (and they don't have to contend with different flavours of hardware). Anyway, in closing, flamebait.
Screw the rules, I have green hair!
VMS is not even remotely related to Unix. See History of Unix and VMS wikipedia articles.
thisnukes4u.net
somebody made a list about ten things that don't work as well as they should (and as a mac admin I agree) : Ten More Things I Hate About Mac OS X
Um... VMS is definitely NOT "some form of *nix".
OS 9 screamed in comparison to OS X. It had its problems, sure, but at the time it was the only mainstream OS that was not built on technology besides itself.
It was also the only mainstream OS that could not handle filenames more than 31 letters long, the only mainstream OS that didn't have protected memory, and the only mainstream OS that didn't have any form of preemptive multitasking.
The first of these is the most ironic. Back in 1999, Mac users were still ridiculing "Micros~1", while in fact it was their operating system, not Microsoft's, which could not handle adequately long filenames!
But it was the second and third, the lack of basic features essential for the stability of modern desktop applications, which led to it being such an unreliable system. No surprise that Apple were so keen to ditch the whole crufty thing in favour of the modern platform that became OS X. OS 9 was totally failing to salvage their rapidly declining reputation. OS X was their salvation.
So, yes, OS 9 screamed in comparison to OS X. But so did its unfortunate users... loudly and regularly.
Anyone who spent any time trying to debug extension conflicts did not shed a tear for OS 9.
OS 9 seemed faster because the first iteration of OS X, which people tended to run on the same hardware, was dog slow.
I'm not wrong. You haven't thought about it hard enough.
"Even MS is originally based on VMS, so in fact, everything is based on some form of *nix."
For the short of memory...
There were a LOT of operating systems before *nix. One of the main creaters of OSses was Digital Equipment Corporation. They had an OS for each of their different computer systems (PDP-1 through PDP-20, also known as DECsystem-20). All these OSses had a different architecture, because they wer built for different purposes. However, DEC standardised the CLI on these OSses. The CLI was called DCL (Digital Command Language).
ATT (Bell Labs) were using DEC systems with when they decided to create their own OS. IIRC they used a PDP-7, and later PDP-11's running RSX-11. So, instead of everything being based on *nix, it's the other way around. All the *nixes are "inspired" by the other OSses at the time, in particular RSX-11 and DCL.
VMS (later OpenVMS) was the world's first commercial computer using a virtual memory system. That's why it's called VMS. It was meant as a successor to RSX-11, and it ran on VAX computers (Virtual Address eXtention). The chief VMS architect Dave Cutler was hired by Microsoft to help create Windows NT. Windows NT later became W2K, WXP etc.
So, also Windows is NOT based on *nix.
As far as I can tell, actually only Linux is based on *nix.
Anybody know any other OS that is based on or inspired by Unix?
Consider the following a sampling of such optimizations, in no particular order
I'm somewhat concerned that an optimisation geek did not order his data set.
It used to be that OSX had a brain-dead ABI that resulted in not all of the PPC registers being used 'properly', in order to maintain a 68k 'compatability' mode ..
Has this been changed? Are all the registers of the PPC being used properly now? Is the PC register actually being used as a program counter, rather than one of the generic 32-bit registers?
; -- the corruption of government starts with its secrets. a truly free people keep no secrets. --
Before OSX, the mac had the reputation of the machine that crashed all the time. By comparison, Windows was actually pretty reliable (this was before all the spyware/malware/crap that affects it recently, remember). Linux was best, of course...
Now you're just displaying your ignorance
newsflash:when you need to do more work because you're in a far-more-capable and complex environment, it can take more machine-instructions to perform the task. This is just griping - the world has moved on from buggy, insecure, crappy-old OS9. Move with it.
They didn't throw any babies away, they did what they needed to do (ditch the abortion that was OS9) and move onto a new platform which provided the security, flexibility, and reliability that any modern OS provides. A brave decision, under the circumstances, and one well-conceived and executed.
Simon
Physicists get Hadrons!
The HFS plus approach seems like a good idea, but I'm wondering if there is a performance cost, both in CPU cycles and drive wear and tear. It also looks to me like the system could be defragging files that are already contiguous, but I may be wrong. Given that modern journaling filesystems (supposedly) are not likely to become fragmented in the first place, is this feature worth it?
Ideology: A tool used primarily to avoid the bother of thinking.
As long as you're waxing rhapsodic about that OS "written from the ground up in the early 80s to be graphical", you might also remember that it was also written from the ground up to be B&W, single-threaded, single-tasking, use fixed-size memory spaces, and totally without any form of internal or user-based security.
Any of those things that were added on later were major hacks to the system. Some, like the non-preemptive MultiFinder (switcher) were ingenious hacks, but hacks nontheless. Or are you saying a modern OS should swap out hundreds of shared low-level global variables on every context switch?
Or that, since you mentioned HLOCK, why a modern OS should have a handle-based non-protected fixed-patition-sized memory system, itself probably responsible for half the memory allocation/corruption bugs and crashes in any given Mac application. Or why a program needs me to allocate more memory to it when there's a half-gig free?
Or perhaps you can explain just why the system resource and process-slicing allocation kernal of a modern OS needs to be "graphical" from the ground up? Or conversely, why graphics, networking, file management, and other subsystems should not be layered on top of a rock-solid base?
I mean, if you really take the time to actually think about it, you might find that the "good old days" are in fact nothing but a fond, hazy memory... and far removed from the truth.
Any sect, cult, or religion will legislate its creed into law if it acquires the political power to do so.
Review this graphical history of unix.
My machine can run both OS 9 and OS 10.1+. OS 9 is not faster. Why? I have dual processors, which OS9 does not use very well, or I should say, much at all. OS 9 is dog slow compared to 10.2 and up.
Choosing the lesser of two evils is a choice for evil.
since I screwed up, here's the rest:
e nts" which now expands their one collumn to occupy most of the window.
I'm not sure I agree with all or even most of his points of contention.
In issue 1 for example he complains that each open/save dialouge starts out the exact same way and then goes on to complain further in the article that the OS isn't always consistant. It's consistant for each dialouge to remain the same size by default until the user specifies a change. Furthermore since the size of the dialouge can be set per application, that size would need to be specified by the application making having a universal override obnoxious.
In his 2nd point he's descirbes a senario which is at best extremely uncommon and then describes a process which is obnoxious and complicated when it's easier for most people to either have an automator script to open specific things they want or even better for his senario and automator script which asks where he is and then opens the appropriate applications. A simple applescript for the applications one doesn't need all the time with a prompt at the begining to ask whether to launch the remaining apps and then placing that script in the login items folder seems more useful and less annoying than check boxes to enable and disable each item that you must do before loging out the previous time.
point 3 he's correct on
point 4 he's correct on the disapearing sidebar but on the issue of double clicking the boarder, it's a rather difficult task to accomplish accidently so I am sure anyone doing it would notice the dimple before and after.
point 5 he's moving away from his consistancy argument again. With the column view you set the size of the columns and the number of columns, and if you chose to physicaly change the display you can. What he's suggesting is a display system which dynamicaly changes size to fit the content of the display which while it could be benneficial to some people seems overly complicated and a major violation of the consistancy guideline. It's concieveable to see a situation there where all of a sudden you would go from having 4 collumns displayed to having 2 or 1 because you have one file in the display such as "com.apple.Components2.LocalCache.QuickTimeCompon
point 6 he's correct on
point 7 he's got a point but at the same time, with the addition of the PDF abilities and the fact that faxing IS handled with PDFs it does make sense to put it under the PDF button. In the end I don't find it much more of an abstraction than his recomendation to make it an availible printer.
point 8 I can see a method to the madness in that if the next set of startup items require the server, it's important for you to know that the server is not availible BEFORE those apps launch and fail. There may be a better way, but I don't agree that it's a failing.
in point 9 the views update for the column view I think is a good thing. While it's not 100% consistant, in this case it would be irritating for a directory I'm working with to rename and then immediately move out of my working view until I indicate being done with the directory either by being idle or moving to a new object.
The size information I would assume is an updating routine thats scheduled rather than called.
in point 10 if he cant see a situation where a user might unknowingly or mistakenly change their file extention then he needs to think harder. The checkbox would be nice though but it's also nitpicking at this point. It's a potentialy destructive action, and a user should be reminded to think before they do it. Being able to permanently dismiss such reminders is what gives viruses and other malicious programs a better chance of succeeding.
T Money
World Domination with a plastic spoon since 1984
Doesn't Apple use gcc?
I know gcc itself improved a very great deal over the same time period, and I have always assumed that the speed gains were (largely? mostly?) due to that, rather than wondrous new algorithms on Apple's part.
Linux and KDE sped up a lot too, over the same timeframe.
Mods: parent is not a troll or flamebait, he's just stating an opinion. That said, he's wrong (IMO), but that's no reason to mod him down. Posts like his are useful in that they further informed and relatively civilized debate.
I much preferred Mac OS back in the OS 9 days. OS 9 screamed in comparison to OS X. It had its problems, sure, but at the time it was the only mainstream OS that was not built on technology besides itself.
If you've ever developed for Mac OS 8/9, you'd realize just how serious those problems were. I wrote part of a printer driver for OS 8/9, and it was hell. Memory allocation was an utter mess. Printer drivers *should* just run in userland, and be unable to muck with the kernel, but that's not how things worked. The driver had full access to both the system memory space and the memory space of whatever application called it. It was preferable to allocate from the application's memory space, but we didn't have that freedom. Because of the stupid user-controlled memory allocation system, we had to worry about how much free memory any application might have been given by the user, and make sure we didn't use more than that. We were trying to modernize the UI and make it more flexible, so we used Metrowerks PowerPlant (an application framework). The problem was this increased our memory requirements to the point where we couldn't fit in the 100kB or so of free memory SimpleText would have by default. To work around this, we would allocate from the system heap. This came with its own problems--if you accidentally wrote to a null pointer, you overwrote the debug traps, and crashed hard. It made for wonderful time in debugging, and forced me to very quickly learn to be careful with pointers and memory allocation (this was my first programming internship, BTW).
Then there was all the cruft left over from the Mac OS's Pascal roots... Pascal strings, pascal calling conventions. And the memory management--Handles!--ugh!
OS 8/9 was a pain in the ass to develop for, whereas OS X is much easier. That's why we're seeing so much great new OS X freeware and shareware.
Dropped. The last few revisions of PowerMacs don't have ADC ports, and the G5-styled Cinema Displays don't use ADC either. It's been that way for over a year now, I believe. Mostly, I think, because they realized there were lots of DVI monitors out there that weren't Apple that cost less and people had to buy adapters for. They figured "ah hell, it's cheaper for us to just use DVI anyway."
QUICKSILVER
:( )
Get it
Use it
Good
( P.S. Caps Lock would have been autopilot for COOL, but the lameness filter caught me
Apple has been contibuting to GCC too you know. Objective C support, PowerPC optimizations, etc (scroll down to optimizations). Another advantage of OSS. The improvements on their hardware were due to their own efforts, and much more radical than the increases to x86 Linux.
Unfortunately, on the Intel side, Apple is going with the Intel compiler, probably because it's faster than GCC Intel. No OSS. But maybe Apple doesn't need to contribute to that because Intel will keep doing good work.
Lies about crimes
Helping Developers Create Code Faster,
Helping Developers Create Faster Code
I can think of a few other useful permutations:
Helping Create Code Developers Faster
Helping Create Faster Code Developers
Helping Code Create Developers Faster
Helping Code Create Faster Developers
Helping Faster Developers Create Code
Helping Faster Code Developers Create
Helping Faster Code Create Developers
Developers Helping Code Create Faster
Developers Helping Create Faster Code
Developers Helping Code Create Faster
Developers Helping Faster Code Create
Developers Create Helping Code Faster
Developers Create Faster Helping Code
Create Helping Code Developers Faster
Create Developers Helping Faster Code
Create Code Helping Developers Faster
Create Code Helping Faster Developers
Create Code Faster, Helping Developers
Create Faster, Helping Developers Code
Create Faster Developers, Helping Code
Create Faster Code, Helping Developers
Code Helping Developers Create Faster
Code Helping Create Developers Faster
Code Helping Create Faster Developers
Code Helping Faster Developers Create
Code Developers Helping Create Faster
Code Developers Create Faster Helping
Code-Faster Developers Helping Create
Faster-Helping Developers Create Code
Faster-Helping Code Create Developers
Faster Developers Helping Create Code
Faster Developers Helping Code Create
Faster Developers Create Helping Code
Faster Code Helping Developers Create
Faster Code Helping Create Developers
Faster Code Developers Helping Create
Choose a research topic! Lucrative grants to be won! (Topics involving procreation by/of developers expected to go quickly.)
Oh, say does that Star-Spangled Banner entwine / The myrtle of Venus with Bacchus's vine?
...in OS X uses a sharper acceleration curve than on Windows. Nudge the mouse, and the pointer moves a couple of pixels. Jerk it the same distance, and it'll fly across a hi-def Cinema display. It can actually move much faster than the Windows pointer.
It's a matter of re-learning your hand-eye-mouse coordination. If the USB Overdrive behavior were the default, millions of graphic artists, and anyone who needs fine control, would cry out in anguish.
The US free market: two halves of a government-granted duopoly are free to set the market price.
I fully agree with network sharing support. Also, interoperability across the network with Linux boxes is a disaster so far as I'm concerned. (I tried it but found it to be a hit and miss affair as to whether NFS or SMB connections worked properly. Back in 10.3, accessing a SAMBA share would crash the finder some of the time!)
.DS_Store problem seems to be well known, but since it is not a problem with mac only networks, I imagine that Apple couldn't care less.
/Library or the user's ~/Library is at fault here, as is the apparently user-friendly idea of having self contained apps in the /Applications folder. Having more domains (or whatever you want to call them) so that, e.g. Audio apps could go in one domain (Library+Applications folder) and Office apps in another, possibly with things like Adobe's CS suite in its own private application group would make things easier, but I don't know what the best solution to program organisation is, and I'm sure that neither MacOSX nor Windows have got it right so far.
The
I've yet to try the mac mini on an apple only network, but interoperability with other machines such as my linux box is something I've given up on. It's quicker to send files with a USB key and all else I just work around.
I'd like an 'open command line prompt here' as well, and I dislike the inability to add things to the right-click menus.
The lack of Alt-F etc. shortcuts for accessing menus is my major gripe compared to Windows -- this is one thing I do miss.
Finally, the inability to properly uninstall applications seems to me to be a major oversight on the part of Apple. Sticking everything in
John_Chalisque
Nope, OS 9 used cooperative multitasking, not pre-emptive.
I don't know why people try to defend Apple on this particular design decision. There's absolutely no reason why hibernation shouldn't be included in OS X.
It could be that it's because hiberation actually does exist in Mac OS X. It's just not a well known fact. OS X 10.4's "Safe Sleep" (Google cache) saves the active memory to disk when a Mac [laptop] goes to sleep...lest the power get interrupted. If one is so inclined, they can activate it, and even choose to use it by default. I've enabled it on my Mini, and it definitely works.
However, if you're not a Mac user, you may not appreciate how good the normal "Sleep" mode is. Unlike Windows, a Mac which has been put to sleep will resume almost immediately, and be instantly usable. My iBook can stay 'asleep' in my briefcase for ages, with very little battery consumption, and as soon as I open the lid, I am good to go. This impresses me more than words can say.