I've been a Linux user for seven or eight years now, and I had never even considered picking up a Macintosh until the release of OS X. OS X 10.1 sold me -- it's an absolutely fantastic piece of software.
There's a complete BSD environment going on underneath everything in OS X (you can pull up a terminal and poke around) with all the benefits that that brings -- ease of development with GNU tools, fantastic memory management, rock solid stability, multi-user ability, and a horde of other features that Microsoft can only dream of. However, you'd never know this using the OS casually, because on top of everything is a beautiful, seamless GUI that holds everything together and hides the implementation details. The OS X window manager is gorgeous, and fully functional (much more oriented towards multiple applications than OS 9 and earlier ever were,) complete with everything that you could expect, along with a lot of eye candy.
Overall, I'm immensely impressed with OS X. All the features of a standard UNIX, with the added bonus of a fantastic GUI, and good application support (Photoshop, Office, IE,.. everything you need to be productive.)
I've been a linux user for almost 6 years, and generally laughed at Macs (the whole one-button thing, etc.)
I wanted to find a nice laptop that would run linux, and even had a dell for a few days. Then, a friend of mine introduced me to Macs, and, in particular, the Tibook. You can see it yourself - overall, its probably the single best piece of hardware engineering imaginable.
And OS X really is awesome. I'm not into having the point-and-click interface myself, and love the console. But OS X really is nice to use. Its networking support is amazing, and works right out of the box. Support for sleep is great too.
Right now, from what I can see, the biggest problem with OS X is the lack of a decent DivX player. (4.11 tends to desync in about a second). Otherwise, it's awesome. And, if you really can't let go of blackbox or whatever (like me), there's the XDarwin project that lets you run X on top of OS X. So far, I've only tested the default twm, which runs fine. But using the apple developer tools you can compile any window that's been ported (I believe at least gnome and afterstep have been), and run it there.
Certain products are still not quite ready for OS X, but the situation is improving rapidly. I have to disagree with one of the posts below - its not about being "productive"; one could easily do that in Linux. (I refused to run IE, and will
NOT be getting Office). But it is a sincerely nice operating system to use, and the hardware is definitely going to be a computer legend.
Regards,
The crucial difference between the "free" BSD systems and Linux is that OpenBSD/FreeBSD/NetBSD define as their "base OS" something rather larger than Linux does.
In effect, all Linux proper is is an OS kernel. Everything on top of the kernel is something that is bolted on independently of any kernel development. Thus Slackware is the Linux kernel plus "all sorts of stuff Patrick Volkerding added;" Red Hat Linux is the kernel plus "all sorts of stuff they added;" ditto for SuSE, Debian, Mandrake, ad infinitum.
With the BSDs, there's quite a lot of additional "environment" that is tightly tied to kernel development so that you've got a "base system" that is defacto-standardized that is capable of, for instance, recompiling itself.
With Linux, you've got to add in whatever that is needed that isn't in the kernel in order to do that yourself.
With that larger basis of "stuff" surrounding the kernel, a whole lot of the arguments "Red Hat puts the files here; Debian puts them there" just plain go away. The "Linux Standard Base" effort where they're trying to standardize where a bunch of the basic stuff goes and what it does is an effort that would be ludicrously irrelevant amongst the BSD folk; they started off by standardizing the user space stuff that LSB is fighting over.
Then there's Ports. Ports is sort of the BSD equivalent to Debian's apt-get or perhaps the Red Hat-oriented autoRPM . Except with a difference: With Ports, the approach is not to download binary packages, it is rather to download the sources, pull in any patches needed for Ports integration, and then compile it all.
That's got the demerit that it's a lot more work for your poor, overworked CPU.
However, it has the merit that if you compile libraries and packages, together, on your system, with the same compiler, the sorts of "DLL Hell" that people suffer from when they grab RPM files from here and there just can't happen. The libraries will necessarily be compatible with the applications because the applications were compiled with and for the precise set of libraries you have on your system.
This means that if there are any challenges in getting programs to compile, you'll hit them. That being said, since the folks collecting and maintaining the Ports will indeed hit those issues, they're likely to have patches in place so that by the time you see the code, it should compile cleanly.
In effect, the crucial concept involved in all of this is that the BSD packaging paradigm is that everything should be readily compilable and recompilable, from the ground up. The classic "make world" will compile all the base tools, the kernel, all the kings horses, and all the kings men, and what you get at the end is that every single component in the "world" (which is the base system; the stuff below Ports ) has been rebuilt locally.
It's all using Makefiles, and can be downloaded using CVS, so the details are all visible. None of the controversies of "well, the Red Hat kernel compiles include some special patches, and getting at them is a bit challenging...."
Big-time learning opportunity.
-- If you're not part of the solution, you're part of the precipitate.
Re:Coupla questions
by
ZigMonty
·
· Score: 4, Informative
What kind of shell does this "console" for Darwin/BSD have? Does it come with bash? Does it come with many of the standard Unix tools like top, vi, etc... Does the directory structure look fairly close to Unix? Do the Mac user apps really go into/usr like we're used to?
The default shell is tcsh. It comes with zsh but it's not default. Bash is NOT installed but it can be downloaded easily or compiled from sources if you're paranoid.
top, vi etc are all there./usr/bin is where CLI programs go. MacOSX GUI programs go into/Applications. This is so that if you don't want to use a command line, you don't see any CLI apps (/usr is invisible to the GUI by default). A Terminal window sees all though.
There is no need for the quotes around "console". It is not some lame DOS ripoff that Apple put there for marketing purposes. Open a term window and you'd be hard pressed to tell it apart from FreeBSD except for directories like/Applications being there.
And this toolkit on the extra CD... is that the Cocoa tools? Is it somewhat comparable to how Qt/GTK is worked with?
Yes it is the Dev tools (Cocoa, Carbon, C++ compilers, etc). Side note: When NeXT was selling this, the dev tools were several hundred dollars, $700 IIRC. Apple is GIVING them away. Of couse some here would ignore that and gripe that they're not open source *sigh*.
Is almost seems like OSX is "open" at the Darwin/BSD level, but the "closed/restricted" part is the GUI level above. You can work with the Cocoa tools to build apps, but unlike Qt/GTK, you can never have open access to much of what's going on in the UI layer. Does that seem about a fair description?
Sort of. The OS and unix CLI stuff is Darwin. It's open and can be downloaded separately for free for PPC and x86. It has no GUI but you can install XFree86 if you want. The rest of MacOSX is only for PPC and is a set of closed source libraries and applications.
Yes, you can't change the source. Apple is a NASDAQ company and must make money. They have to keep some things in-house. The Cocoa environment is EXTREMELY good though and by subclassing etc you can override a lot of defaults, not that it's usually necessary though. Apple did a good job the first time. If you want to see how some things are implemented, check out GNUStep, an open source implementation of Cocoa for Linux.
Good, object orientated frameworks mean that you don't have to see the source to have flexibility. Check out the Cocoa docs.
Re:had to beg for a job?
by
jkh
·
· Score: 5, Informative
This is something which got a little confused in the translation. What I said was that it took me several months to come to Apple after my initial interviews because a little detour to Wind River happened in the middle (for reasons I won't go into). This somehow got permuted into my spending months chasing the job. In reality, Apple never gave up after "losing" me to WindRiver and their persistence coupled with my desire to get involved with MacOS X is what finally induced me to leave WRS.
-- - Jordan Hubbard
co-founder, the FreeBSD Project. Director, UNIX Technology. Apple Computer
I've been a Linux user for seven or eight years now, and I had never even considered picking up a Macintosh until the release of OS X. OS X 10.1 sold me -- it's an absolutely fantastic piece of software.
.. everything you need to be productive.)
There's a complete BSD environment going on underneath everything in OS X (you can pull up a terminal and poke around) with all the benefits that that brings -- ease of development with GNU tools, fantastic memory management, rock solid stability, multi-user ability, and a horde of other features that Microsoft can only dream of. However, you'd never know this using the OS casually, because on top of everything is a beautiful, seamless GUI that holds everything together and hides the implementation details. The OS X window manager is gorgeous, and fully functional (much more oriented towards multiple applications than OS 9 and earlier ever were,) complete with everything that you could expect, along with a lot of eye candy.
Overall, I'm immensely impressed with OS X. All the features of a standard UNIX, with the added bonus of a fantastic GUI, and good application support (Photoshop, Office, IE,
Check it out if you get the chance.
I've been a linux user for almost 6 years, and generally laughed at Macs (the whole one-button thing, etc.)
I wanted to find a nice laptop that would run linux, and even had a dell for a few days. Then, a friend of mine introduced me to Macs, and, in particular, the Tibook. You can see it yourself - overall, its probably the single best piece of hardware engineering imaginable.
And OS X really is awesome. I'm not into having the point-and-click interface myself, and love the console. But OS X really is nice to use. Its networking support is amazing, and works right out of the box. Support for sleep is great too.
Right now, from what I can see, the biggest problem with OS X is the lack of a decent DivX player. (4.11 tends to desync in about a second). Otherwise, it's awesome. And, if you really can't let go of blackbox or whatever (like me), there's the XDarwin project that lets you run X on top of OS X. So far, I've only tested the default twm, which runs fine. But using the apple developer tools you can compile any window that's been ported (I believe at least gnome and afterstep have been), and run it there.
Certain products are still not quite ready for OS X, but the situation is improving rapidly. I have to disagree with one of the posts below - its not about being "productive"; one could easily do that in Linux. (I refused to run IE, and will
NOT be getting Office). But it is a sincerely nice operating system to use, and the hardware is definitely going to be a computer legend.
Regards,
trurl
In effect, all Linux proper is is an OS kernel. Everything on top of the kernel is something that is bolted on independently of any kernel development. Thus Slackware is the Linux kernel plus "all sorts of stuff Patrick Volkerding added;" Red Hat Linux is the kernel plus "all sorts of stuff they added;" ditto for SuSE, Debian, Mandrake, ad infinitum.
With the BSDs, there's quite a lot of additional "environment" that is tightly tied to kernel development so that you've got a "base system" that is defacto-standardized that is capable of, for instance, recompiling itself.
With Linux, you've got to add in whatever that is needed that isn't in the kernel in order to do that yourself.
With that larger basis of "stuff" surrounding the kernel, a whole lot of the arguments "Red Hat puts the files here; Debian puts them there" just plain go away. The "Linux Standard Base" effort where they're trying to standardize where a bunch of the basic stuff goes and what it does is an effort that would be ludicrously irrelevant amongst the BSD folk; they started off by standardizing the user space stuff that LSB is fighting over.
Then there's Ports. Ports is sort of the BSD equivalent to Debian's apt-get or perhaps the Red Hat-oriented autoRPM . Except with a difference: With Ports, the approach is not to download binary packages, it is rather to download the sources, pull in any patches needed for Ports integration, and then compile it all.
That's got the demerit that it's a lot more work for your poor, overworked CPU.
However, it has the merit that if you compile libraries and packages, together, on your system, with the same compiler, the sorts of "DLL Hell" that people suffer from when they grab RPM files from here and there just can't happen. The libraries will necessarily be compatible with the applications because the applications were compiled with and for the precise set of libraries you have on your system.
This means that if there are any challenges in getting programs to compile, you'll hit them. That being said, since the folks collecting and maintaining the Ports will indeed hit those issues, they're likely to have patches in place so that by the time you see the code, it should compile cleanly.
In effect, the crucial concept involved in all of this is that the BSD packaging paradigm is that everything should be readily compilable and recompilable, from the ground up. The classic "make world" will compile all the base tools, the kernel, all the kings horses, and all the kings men, and what you get at the end is that every single component in the "world" (which is the base system; the stuff below Ports ) has been rebuilt locally.
It's all using Makefiles, and can be downloaded using CVS, so the details are all visible. None of the controversies of "well, the Red Hat kernel compiles include some special patches, and getting at them is a bit challenging...."
Big-time learning opportunity.
If you're not part of the solution, you're part of the precipitate.
top, vi etc are all there. /usr/bin is where CLI programs go. MacOSX GUI programs go into /Applications. This is so that if you don't want to use a command line, you don't see any CLI apps (/usr is invisible to the GUI by default). A Terminal window sees all though.
There is no need for the quotes around "console". It is not some lame DOS ripoff that Apple put there for marketing purposes. Open a term window and you'd be hard pressed to tell it apart from FreeBSD except for directories like /Applications being there.
Yes it is the Dev tools (Cocoa, Carbon, C++ compilers, etc). Side note: When NeXT was selling this, the dev tools were several hundred dollars, $700 IIRC. Apple is GIVING them away. Of couse some here would ignore that and gripe that they're not open source *sigh*. Sort of. The OS and unix CLI stuff is Darwin. It's open and can be downloaded separately for free for PPC and x86. It has no GUI but you can install XFree86 if you want. The rest of MacOSX is only for PPC and is a set of closed source libraries and applications.Yes, you can't change the source. Apple is a NASDAQ company and must make money. They have to keep some things in-house. The Cocoa environment is EXTREMELY good though and by subclassing etc you can override a lot of defaults, not that it's usually necessary though. Apple did a good job the first time. If you want to see how some things are implemented, check out GNUStep, an open source implementation of Cocoa for Linux.
Good, object orientated frameworks mean that you don't have to see the source to have flexibility. Check out the Cocoa docs.
This is something which got a little confused in the translation. What I said was that it took me several months to come to Apple after my initial interviews because a little detour to Wind River happened in the middle (for reasons I won't go into). This somehow got permuted into my spending months chasing the job. In reality, Apple never gave up after "losing" me to WindRiver and their persistence coupled with my desire to get involved with MacOS X is what finally induced me to leave WRS.
- Jordan Hubbard co-founder, the FreeBSD Project. Director, UNIX Technology. Apple Computer