Thoughts of an admin starting to get old ...

I wrote a text about the GNU tool set Polariscope 200x.y few days ago. Just to make it clear at first: I don’t like the decision but it was made, so i have to live with it. In discussion I’ve used the same arguments: Portability! Standards! But we have to face the reality. There is a prominent Unix derivate out there that doesn’t think about standards and portability isn’t an issue for this derivate. It’s called Linux, it got a large market share somehow and most people use it for the development of open source software. There is a make defined by standards, but most open source software insists on using GNU make. Often the only well tested makefile is the makefile for Linux, often you have luck for Solaris, but don’t try it on IRIX. I have the impression that portability comes just into mind, when some users ask about a different operating system. We have to face it: I wrote it at several occasions. Linux has a strong NIH attitude. No problem, it’s just a kernel. But as developers tend to test their system at the best on the system on their desktop, everything else tends to be just an afterthought. And so we end with application our build processes that depend of GNU tools you have to install instead of using the standardized and already available components. But why is it this way: I can just provide you a guess, but the worst thing that ever happened to development were notebook-class computer. People edit-compile-test their applications on their notebooks, optimize it and afterwards you get software for your server that runs exceptionally well on … well … notebooks. Then you get around with your server and the problems start. In essence you are forced to replicate the developers desktop on your server. I find this a little bit funny: Microsoft gets critics for their embrace and extend attitude. But the Linux community isn’t much better when you look at the compliance to standards. And I think this is even a kind of lock-in. You aren’t locked to a hardware vendor. You are locked to you operating system community because of the tool set. And even this community is fragmented. There is a Debian Community, a OpenSUSE community, there is a Fedora community. I tend to show people a single example, how fragmented the Linux universe is: Just look at the list of Virtualbox packages at virtualbox.org. You are pretty much locked into your distribution community and by the lack of standards conformance you are pretty much locked into Linux. I don’t know what’s worse … lock-in by commercial interests or lock-in by ignorance, albeit the second one translates to the first one, as soon as you try to migrate from SuSE to Redhat or Redhat Fedora to Debian. But to say that the Linux world is free of lock-ins is simply not true. It has its own kind of Lock-Ins. Of course there is a LSB, but I’m asking my self quite often, why there is a LSB, when we have already standard like the SUSv3 for example. Honestly I’m thinking that Solaris has much less lock-ins than Linux, as of the standard compliance as an important foundation of the Solaris development, not to something like the Solaris Standard Base, but to official, open and common standards. But you may dismiss this statement as a comment of a Solaris fan. It would be really a dream, when application developers would base on a common standards body. This would lead to sources and build processes you can compile everywhere — not just on Linux - without hassle. What did we got instead? Well, … you starting to install GNU make, you start to install GCC. Not because those compilers result in the best binaries, or because those code results in the highest quality binary, just because the application developer used those components because it was the easiest choice. You can ask yourself, how we get into this situation. My assumption is: We get more and more people with a different mindset. There used to be a time, when a decent IT guy was at least capable of reading C, knew about the constraints of memory and CPU. Today quad-cores are a normality and Amazon sells cheap notebooks with 4 GB of memory. There isn’t a need to be really efficient. Compute power is cheap. Remember the time, when you was able to do word processing on a small 8086? Long gone. We need monster systems today just to run a graphical application in a windowing environment, that gives you just a little bit more eye candy but no additional features. Most people doesn’t use more feature of Excel than they used with Multiplan … the difference: My father used Multiplan for quite complex calculations with a Zenith Z-148 with whooping 8 MHz with 512 KB. I’m sure, in 5 years from now we need 8 GHz to run Windows 10 with Excel 2014 with 512 Gigabyte. I had an interesting discussion with a professor of computer science a few days ago. The reality is: New computer science students doesn’t come from Unix, all they know is Windows (they may be some exceptions, but they are rare). Maybe this is owed to the fact, that IT is more and more transformed from a profession to a job. This is bitter truth. Many people see operating systems like exchangeable tools, as an abstraction layer for the hardware. They are correct. But on this way they lost the curiosity to understand the design of an OS, to assess the differences. People learn computer science and software development at the universities. They don’t learn administration. Many of those people see the world just through their Visual *, their Eclipse or their Netbeans and just look at the operating as the annoying stuff, where they have to install some middleware or libraries from time to time. Ask a software developer about all the implications of POSIX compliance. Many know about it, but on the other side many of them don’t. When talking to some admins I get the impression, that compiling your own software is a forgotten art. This has been completely substituted by installing a package from your favourite source. And often this packages aren’t installed by admins, they are installed by software developers and admins have just to live the mess provided by software developers. BTW: I still thinking that the root password for pure software developers is just the sure prelude to disaster and that every software developer should work at least a quarter in the server administration. To make it clear: I understand them somehow … with budget pressure and sometimes unreasonable deadlines you don’t think about the operating system. You take what you have on our systems when you develop software. And an admin takes the same stuff, the developers used because he doesn’t want to get the “Hey, that wouldn’t be a problem with Linux. It’s your fault”. BTW: I had such situations at customers and it was an inner October revolution parade for the customer admin and me that the application threw the core on Linux as well. But that’s the mechanics behind the decision for an operating system. And at the end people wonder why the OS doesn’t really scale, why the data isn’t save and why administration at 99,999% availability guarantee starts do get problematic when the service took off … but well … I have my “ls -s” … GNU-Style. The perception is somewhat skewed on the real properties with value of an operating environment. OpenSolaris is often mistaken for a Desktop OS. But it isn’t, it’s an operating system for people who want the newest features on their servers (and thus you can buy support for it) and it’s for the admin and the developer. It’s an adoption version and I even dare to say: It’s a better development OS than any Linux out of two reasons: dtrace and standard compliance. I think it’s easier to port an application to other applications than to port from a flavor of Linux to Solaris, IRIX or HPUX. But this is just an opinion. By the way: This ease was one of the reasons why we were hit so hard by the epic underestimation about the importance of x86 at the start of this decade: It was easy to migrate away. And by the way: Desktop Linux is nothing different. Anybody who believes that any Unix will be a widely adopted Desktop Environment outside deeply controlled environments is just fooling him or herself. There is only a single desktop capable Unix and it’s called MacOS X. I have even somewhat of a proof for this: The Sun Ray was a stepchild of the product portfolio for normal businesses for a long time, since we are able to virtualize Windows on it with VDI, we sell this stuff like crazy. Don’t think this was because of the horrible looking CDE … there is a Red Hat Version of the Sun Ray Server. On the other way, I’ve talked to many older admins telling me “Auto dependency resolving? No shitty script decides what I’m installing on my system” and they don’t use Blastwave out of this reason, because they don’t want a second Solaris on their system installed by the pkg-get mechanism. I’m one of them. Perhaps we are really in the midst of a paradigm shift. Away from the old mindset of understanding most of the stuff between the CPU and your application and the art of crafting a system just in the way you want it. Getting to a mindset where you outsource all your knowledge of components below your application to the vendor of the distribution, to a few knowledgeable people. Cloud computing for example is just the next iteration of this attitude. The victory of one-size-fits-all. You just get a service like HTTP with php. The rest is not your problem. But I don’t want do accept that one-size-fits-all. There is enough differentiation in the OS to mandate a good thought about operating systems. But you need knowledge about the inner workings, you need more contact to the OS than just by the installer and dpkg, to get aware of the differences. And you have to get out of your own knowledge sphere and curiosity to discover new things. We have to live with the fact, that the landscape has changed. And out of this reason all the arguments against GNU tools in front of the normal tools are correct, but when you want to help the adoption of an OS you have to eat this frog. At the end one comment of my reader is correct: The Linux fan boys get their GNU tool set and die hard Solaris sys admins know how to set PATH. You don’t have to like it, but at the end it looks like a good move. Just to close this somewhat bitter article of an admin getting old with a positive outlook. Albeit I see many admins and developers as described above, I’ve met admins in their early twenties (for example at Cebit this year) that have the same kind of curiosity that led me on my way through the IT. And so I can just say: There is hope. I have hope.