Commentary

Serdar Yegulalp
 

Linux, The Standard Version

The first public beta of version 4.0 of the Linux Standard Base is upon us, and with it comes some thoughts: How exactly do you standardize something as protean as Linux? Answer: Create a standard that goes with the flow.

The first public beta of version 4.0 of the Linux Standard Base is upon us, and with it comes some thoughts: How exactly do you standardize something as protean as Linux? Answer: Create a standard that goes with the flow.


More Software Insights

White Papers

More >>

Reports

More >>

Webcasts

More >>

The reality of Linux as we have come to know it is that it is not going to be, never has been, and probably shouldn't be a single, monolithic entity. The folks who use and implement Linux have spent a good decade and a half making sure of that. Out of one comes many.

This has long been Linux's biggest strength and most troubling weakness. The same malleability that allows Linux to appear as an Android phone or in a TiVo set-top box also can be what keeps you from being able to correctly compile or run a given app on a somewhat left-of-center distribution.

Something of the same thing happened with Unix itself, back in the day. Apart from AT&T's System V version of Unix, there were (and still are) endless other variants: HP-UX, AIX, A/UX, ULTRIX, DGUX, Xenix , and on and on. This all sprouted from two things: first, Darpa contracting with Bill Joy at UC Berkeley to upgrade AT&T System III Unix to include a networking stack and virtual memory, resulting in BSD, and the need of various vendors to a) support their own hardware and b) be able to offer OS support to their customers.

Despite superficial claims of cross-compatibility, many of these Unixes weren't truly compatible with each other. My suspicion is that they were this way by design as a form of vendor lock-in. It's hard to write a truly cross-compatible Unix application when, say, the argument order of a critical system function is different in each one (and anyone who thinks #ifdefs are a "solution" to that problem is only kidding themselves).

Today the situation's mercifully quite different. Linux vendors and customers both have good reasons to make sure apps can run uniformly across different flavors of Linux. Granted, a given Linux distribution can offer something that another distro doesn't have, but there has to be a baseline that everyone can fall back on.

So who creates such a baseline? Preferably someone who doesn't have a vested interest in one distro over another (i.e., the Linux Foundation). The other thing that helps is to make the standard into something that can be evaluated by the creators themselves in a hands-on way. The LSB isn't just an abstraction; it's a toolset, something that complements the very malleability of the thing it's testing.

One other thing that is important, I think, is the way the LSB is elective, not mandatory. A mini-distro that's only designed for a couple of specific uses doesn't need to be LSB-compliant -- but if it earns that label, it's that much more useful. It's opt-in, but if opting in becomes its own reward, why not do it?

If you're planning to use the LSB yourself in some form, or you've run into situations where Linux's very mutability has been one of the things that's frustrated you, sound off below.


Follow me on Twitter: http://twitter.com/syegulalp


Related Reading




Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

InformationWeek encourages readers to engage in spirited, healthy debate, including taking us to task. However, InformationWeek moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing/SPAM. InformationWeek further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.
T-Shirt Giveaway T-Shirt Giveaway: Each week we're selecting one great comment from our readers. The author of the comment will receive an InformaitonWeek Community t-shirt. So get posting!
Subscribe to RSS

Resource Links