![]() Psychedelic Panorama of FooÁ¦ À̸§ÀÌ Inigo Montoya ÀÔ´Ï´Ù. ´ç½ÅÀÌ ³» ¾Æ¹öÁö¸¦ Á׿´¾î. Á×À» ÁغñÇØ.Åä¿äÀÏ, 3¿ù 22, 2008GNUL v. AOSX¾Æ³çÇϼ¼¿ä. I thought it would be amusing to title this after what they would look like if they were stock symbols. It has no further meaning than that. This is really "GNU/Linux vs. Apple Mac OS X." There I fully qualified the operating system names for the picky enthusiasts from both sides. Since an apparent rivalry is beginning between Linux and OS X, I thought I would offer up my perspective as a user of both. I've been using GNU/Linux since I installed version 0.2.1 (yes, the versioning system has existed that long,) BSD since 1999, and OS X since 2001. First computer I ever used was an Apple II and I learned to type in 1991 on an Mac Classic. My first programming job was DCL and MACRO on VAX's, but my second job was virus projection for Macs written in perl, and e-commerce sites also written in perl. I developed on the Power Computing Mac clones. Remember those? Why Do I Use Linux?Linux is for ALL DevelopmentNeedless to say, I have serious Mac-envy. I love Macs. Why then did I become a Linux user. Even so, why did I stay a Linux user after OS X was released? In simplest terms, I'm a software developer. Linux is THE software development platform. I'm not speaking for just web development, database programming, embedded software, or anything specific at all. It's just good for ANY and ALL software development. Seriously. Linux is an OS designed and created by developers for developers. OS X in contrast is an OS designed to be cool and draw consumers to Apple Consumer Electronics. A Variety Cross Platform/Architecture Compilers and ToolsHere's an example. I haven't run Windows on my home or work computer willingly since 1996. I gave Windows 95 a chance hoping it would improve on 3.11 WFW. In 2003, a friend asked me to write a multi-threaded program to integrate with their performance testing tool on Win32 platform. I'd done plenty of multi-threaded programming in and out of C++ by that point. Not hardly any Win32 though because I swore off that stuff. It was my friend though. We do crazy things for favors. Using the MinGW libraries, I was able to produce something for ia32 and alpha platforms in a couple weeks. Here's another good example. There's a product called perl2exe. It's a build tool that takes your perl software and converts it to native binaries (bypassing code completely.) It just takes the perl and creates a binary plus library for any platform (Solaris, Linux MIPS, Linux ia32, Linux ia64, et al.) Basically, Linux easily crosses architecture/platform barrier with ease. OS X can do this as well, but with a bit more tweaking. Some might argue that the examples I give are primarily aimed toward GCC which is also available on OS X. OS X even has a prime IDE for C/C++/Obj-C development that just comes with the operating system for free. That may be true, but the GCC compiler that is distributed for OS X is usually dated and not well supported. To get the newer features and fixes that caused problems on OS X, one needs to download the new source and rebuild it. OS X does not lend itself well to this kind of tweaking. Especially, if one is not experienced with GCC from Linux. Aside from GCC, there are other tools and compilers supported on Linux that are not supported on OS X for development. This is coming along, and maybe it will get there. My point is that the way things are right now, OS X has not caught up to Linux. Take Wind River for example. Wind River is an embedded compiler that supports a number of platforms. I prefer this compiler for all my embedded development. It has much better hardware optimization support than GCC. It is possible to just use GCC, but Wind River is head and shoulders of above it. What's my point? If you follow the link, you'll find that it only runs on Windows, Linux, and Solaris. It's proprietary and not OSS, so you can't just rebuild it for OS X. It just simply isn't supported. Maybe in the future it will be, but for now I'm using Linux for my embedded development. A Variety of Hardware Emulation PlatformsHardware emulators aren't just for emulating your favorite video game console or for running Windows, but that seems about the best OS X supports. Why do we need virtual machines and hardware emulators? Well, for the same reasons given above. Once you write your source and it compiles, do you really expect it to run on your machine? Absolutely not. You have to run it on a hardware emulator which Linux has so many and so much support, that it's insane. Some may say that this is really only useful for hacking and enthusiasts, but that's absolutely not true. I think too that this is definitely the electronic age. If you truly want to get the most out of your products, you should be looking at ways to improve them. Likewise, this kind of thinking is what landed us the iPhone, other smartphones, and PDA phones. As a result, more jobs for this kind of work are appearing in the world. The demand for hardware emulators for professional software development is going up faster and faster. OS X has an uphill battle on this because the only embedded development platform it truly supports is for the iPhone and people have to pay to do that. Linux is LeanNow we get into probably my favorite reasons why I like to use Linux and not OS X. Linux is not a bloated BSD. I'll agree that the best thing to happen to BSD is OS X, but it's still bloated. It's got tons of software that you can't easily configure, or trim. It takes forever and a day to install. I can install Linux in less than 10 minutes and have everything I need. OS X took me over an hour on my Macbook and it came with a ton of things I really didn't want. People don't realize it, but there are tons of things to configure to get your OS X to run A LOT faster. Who's idea was it to turn all the features on and make it run super slooooow out-of-the-box? Most Linux systems are designed to run lean out-of-the-box. If you want the cool features, you have to be cool to know what to tweak. Furthermore, the number is growing of Linux distributions that can run in small-footprint platforms, and the desire for embedded Linux platforms is growing because the ease of development. Desktop Environments Aimed for Geeks and DevelopersThis is probably my greatest reason for Linux. I don't think this will change either. The desktop environment is aimed toward developers. Linux Distributions (Ubuntu, Fedora, et al.) have made many attempts at a more user-friendly environment for desktop users, but they're in their prime right now for developer desktops. As a developer, let me list the things that impress me about Linux desktop.
Why Do I Use OS X?This may seem absurd to some, but I actually think OS X is the best OS out there right now for Consumer Level Desktops and Servers. OS X is for DesktopsFrom the perspective of a Desktop User and a Desktop Support Specialist, OS X is a dream.
There is just no denying it. OS X is the most dumbed-down, simple OS in the world. Perfect for the average consumer or someone who just doesn't want to worry about support of their PC. Now some have suggested that in order to get over my Linux Desktop environment hangups, that I should run XonX. Now, I want to dispel this as a good idea right here and now. That's just silly. Why would I run two desktop environments on the same system. I would run either X or Aqua. Now, with that said, if I do choose X, why am I running OS X in the first place? That is my logic. If I'm going to run X on my Mac, I'm going to install Linux and let that be the end of it. I want to run OS X for its unique features. That's why I run it at all. When I get home, I am glad that I know I can come home to a stable system that I don't have to maintain. OS X is for ServersA lot of companies like to lean on Blade Center running Linux or Windows. Primarily Linux has been chosen for most server platforms because it's lean, and Linux Administrators are a dime-a-dozen. You can just get a Linux SA and a cheap ia32 machine and there you go. I don't necessarily believe that is all that great. Apple's XServe is some of the best hardware for a 1U server that you can find anywhere. It comes with OS X though. You can install Linux on it, but wait! OS X for the same reasons illustrated above for Desktop Users is exactly the reason why you want to keep it for your server. Setting it up becomes a no-brainer. It ships to you headless and ready-to-go. You can configure it remotely with no problems. It just works. Basically, my logic is that XServe is some of the best server hardware you can find, so why not buy it? It comes with OS X and is simple to manage on your own, so why install Linux on it? Apple has made it so that anything more than going to the apple store and purchasing an Xserve through it is just too much of a hassle. |
