|
|
Subscribe / Log in / New account

Poettering: Revisiting how we put together Linux systems

Poettering: Revisiting how we put together Linux systems

Posted Sep 6, 2014 4:41 UTC (Sat) by dlang (guest, #313)
In reply to: Poettering: Revisiting how we put together Linux systems by raven667
Parent article: Poettering: Revisiting how we put together Linux systems

I agree that this proposal makes it easy to have many different ABIs on the same computer.

I disagree that that is a wonderful thing and everyone should be making use of it.

we are getting conflicting messages about who would maintain these base systems, if it's the distros, how are they any different than the current situation?

if it's joe random developer defining the ABI that his software is built against, it's going to be a disaster.

The assertion is being made that all the random developers (who can't agree on much of anything today, not language, not development distro, not packaging standards even within a distro, etc) are going to somehow standardize on a small set if ABIs

I see this as being a way for app developers to care LESS about maintainability, because now they don't have to deal with distro upgrades any longer, they can just state that they need ABI X and stick with it forever. When they do finally decide to upgrade, it will be a major undertaking, of the scale that kills projects (because they stop adding new features for a long time, and even loose features, as they are doing the infrastructure upgrade)

building up technical debt with the intention to pay it off later almost never works, and even when it does, it doesn't work well.

anything that encourages developers to build up technical debt by being able to ignore compatibility is bad

This encourages developers to ignore compatibilty in two ways.

1. the app developers don't have to worry about compatibility because they just stick with the version that they started with.

2.library developers don't have to worry about compatibility because anyone who complains about the difficulty in upgrading can now be told to just stick with the old ABI


to post comments

Poettering: Revisiting how we put together Linux systems

Posted Sep 6, 2014 11:22 UTC (Sat) by Wol (subscriber, #4433) [Link] (4 responses)

On the flip side there's going to be counter-pressure from

1) People who don't want their disk space chewed up with multiple environments.

2) People who don't want (or like me can't understand :-) btrfs.

3) Devs who (like me) like to run an up-to-date rolling distro.

4) Distro packagers who don't want the hassle of current packages that won't run on current systems.

Personally, I think any dev who ignores compatibility is likely to find themselves in the "deprecated" bin fairly quickly, and will just get left behind.

Where it will really score is commercial software which will be sold against something like a SLES or RHEL image, which will then continue to run "for ever" :-)

Cheers,
Wol

Poettering: Revisiting how we put together Linux systems

Posted Sep 6, 2014 21:00 UTC (Sat) by dlang (guest, #313) [Link] (3 responses)

> Where it will really score is commercial software which will be sold against something like a SLES or RHEL image, which will then continue to run "for ever" :-)

Yep, that's part of my fear.

this 'forever' doesn't include security updates.

People are already doing this with virtualization (see the push from vmware about how it allows people to keep running Windows XP forever), and you are seeing a lot of RHEL5 in cloud deployments, with no plans to ever upgrade to anything newer.

Poettering: Revisiting how we put together Linux systems

Posted Sep 6, 2014 22:14 UTC (Sat) by raven667 (subscriber, #5198) [Link] (2 responses)

As you say this is a dynamic that exists today so I'm not sure how it can be a con of the proposal as one of the main reasons VMs have taken over the industry is because of this same ABI management problem (and consolidation), with VMs you can run a particular tested userspace indefinately without impact to other software which needs a different ABI on the same system. This proposal doesn't really change this dynamic much, the same amount of pressure comes from end-users of proprietary vendor-ware to re-base and support newer OS releases even given that you can run old software indefinitely in VMs or containers.

Poettering: Revisiting how we put together Linux systems

Posted Sep 6, 2014 23:00 UTC (Sat) by dlang (guest, #313) [Link] (1 responses)

Is this a dynamic that we should be encouraging and move from a misuse of virtualization by some Enterprise customers to the status quo for everyone?

I don't think so.

Poettering: Revisiting how we put together Linux systems

Posted Sep 7, 2014 15:58 UTC (Sun) by raven667 (subscriber, #5198) [Link]

I think it is a dynamic that exists because it fills a need, it's an equilibrium, and we don't have control over he needs that drive it, but we can change the friction of different implementations to make life easier. Being able to easily run multiple ABIs on a system reduces the friction for upgrading just as much as VMs allow you to hold on to old systems forever.

On desktops as well being able to run older apps on newer systems rather than being force-upgraded because the distro updates and also being able to run other newer apps (and bugfixes) on a cadence faster than what a distro that releases every 6mo or 1yr gives, is a benefit that many seem to be looking for, staying on GNOME2 for example while keeping up with Firefox and LibreOffice updates or whatever. Being able to run multiple userspaces on the same system with low friction allows them to fight it out and compete more directly than dual-booting or VMs, rather than being locked in to what your preferred distro provides.

Poettering: Revisiting how we put together Linux systems

Posted Sep 6, 2014 23:15 UTC (Sat) by raven667 (subscriber, #5198) [Link] (8 responses)

> who would maintain these base systems, if it's the distros, how are they any different than the current situation?

I think you answered that in your first paragraph:

> I agree that this proposal makes it easy to have many different ABIs on the same computer.

There is currently more friction in running different ABIs on the same computer, there is no standard automated means for doing so, people have to build and run their own VMs or containers with limited to non-existant integration between the VMs or containers.

The other big win is a standard way to do updates that works with any kind of distro, from Desktop to Server to Android to IVI and embedded, without each kind of systems needing to redesign updates in their own special way.

> if it's joe random developer defining the ABI that his software is built against, it's going to be a disaster.

The proposal is that a developer would pick an ABI to build against, such as OpenSuSE 16.4 or for a non-desktop example OpenWRT 16.04, not that every developer would be responsible for bundling and building all of their library dependancies.

> The assertion is being made that all the random developers (who can't agree on much of anything today, not language, not development distro, not packaging standards even within a distro, etc) are going to somehow standardize on a small set if ABIs

This whole proposal is a way to try to use technology to change the social and political dynamic by changing the cost of different incentives, it is not guaranteed how it will play out. I think there is pressure though from end users who don't want to run 18 different ABI distros to run 18 different applications, to pick a few winners, maybe 2 or 3 at most, in the process there might be a de-facto standard created which re-vitalizes the LSB.

> I see this as being a way for app developers to care LESS about maintainability, because now they don't have to deal with distro upgrades any longer, they can just state that they need ABI X and stick with it forever. When they do finally decide to upgrade, it will be a major undertaking, of the scale that kills projects (because they stop adding new features for a long time, and even loose features, as they are doing the infrastructure upgrade)

I don't see it playing out that way, developers love having the latest and greatest too much for them to continue to deploy apps built against really old runtimes, all of the pressure is for them to build against the latest ABI release of their preferred distro. The thing is that one of the problems this is trying to solve is that many people don't want to have to upgrade their entire computer with all new software every six months just to keep updated on a few applications they care about, or conversely be forced to update their main applications because their distro has moved on, it might actually make more sense to run the latest distro ABI alongside the users preferred environment, satisfying both developers and end-users.

Poettering: Revisiting how we put together Linux systems

Posted Sep 7, 2014 8:20 UTC (Sun) by dlang (guest, #313) [Link] (7 responses)

so a developer gets to ignore all competing distros other than their favourite.

I can see why developers would like this, but I still say that this is a bad result.

Poettering: Revisiting how we put together Linux systems

Posted Sep 7, 2014 8:29 UTC (Sun) by Cyberax (✭ supporter ✭, #52523) [Link] (6 responses)

Speaking as an application developer, it's much better than doing nothing at all. Right now there's no standard set of packages at all, LSB is a joke that no one cares about.

And since there's no base ABI, everybody just does whatever suits them. Just last week we found out that Docker images for Ubuntu don't have libcrypto installed, for example.

Maybe this container-lite initiative will motivate distros to create a set of basic runtimes, that can actually be downloaded and used directly.

Poettering: Revisiting how we put together Linux systems

Posted Sep 7, 2014 9:48 UTC (Sun) by dlang (guest, #313) [Link] (5 responses)

so if you define these baselines to include every package, nobody is going to install them (disk space)

if you don't define them to include every package, you will run into the one that you are missing.

These baselines are no easier to standardize than the LSB or distros.

In fact, they are worse than distros because there aren't any dependencies available (other than on "RHEL10 baseline")

Poettering: Revisiting how we put together Linux systems

Posted Sep 7, 2014 9:56 UTC (Sun) by Cyberax (✭ supporter ✭, #52523) [Link] (4 responses)

> so if you define these baselines to include every package, nobody is going to install them (disk space)
Not every package, but at least _something_. And dedup partially solves the space problem.

> These baselines are no easier to standardize than the LSB or distros.
There are no standards right now. None. And LSB has shown us that when a group of vendors dictate their vision of a standard, distors simply ignore them.

The ecosystem of runtime might help to evolve at least a de-facto standard. I'm pretty sure that it can be done for the server-side (and let's face it, that's the main area of non-Android Linux use right now) but I'm less sure about the desktop.

Poettering: Revisiting how we put together Linux systems

Posted Sep 7, 2014 10:43 UTC (Sun) by dlang (guest, #313) [Link] (3 responses)

dedup only helps if the packages are exactly the same

>> These baselines are no easier to standardize than the LSB or distros.

> There are no standards right now. None. And LSB has shown us that when a group of vendors dictate their vision of a standard, distors simply ignore them.

so who is going to define the standards for the new approach? Every distro will just declare each of their releases to be a standard (and stop supporting them as quickly as they do today)

that gains nothing over the current status quo, except give legitimacy to people who don't want to upgrade

If the "standards" are going to be defined by anyone else, then they are going to be doing the same work that the distros are doing today, they will be just another distro group, with all the drawbacks of having to back-port security fixes (or fail to do so) that that implies.

Poettering: Revisiting how we put together Linux systems

Posted Sep 7, 2014 10:53 UTC (Sun) by Cyberax (✭ supporter ✭, #52523) [Link] (2 responses)

> so who is going to define the standards for the new approach? Every distro will just declare each of their releases to be a standard (and stop supporting them as quickly as they do today)
I'm hoping that the "market" is going to dictate the standard. Application developers will prefer to use a runtime that is well-supported and easy to maintain. And perhaps in time it will the become _the_ runtime.

> If the "standards" are going to be defined by anyone else, then they are going to be doing the same work that the distros are doing today, they will be just another distro group, with all the drawbacks of having to back-port security fixes (or fail to do so) that that implies.
Exactly. However, as an app developer I won't have to play against network effects of distributions - my software will run on ALL distributions supporting the /usr-based packaging.

I'm hoping that somebody like Debian or RHEL/CentOS can pick up the job of making runtimes. It shouldn't be hard, after all.

Poettering: Revisiting how we put together Linux systems

Posted Sep 7, 2014 11:18 UTC (Sun) by dlang (guest, #313) [Link] (1 responses)

> I'm hoping that the "market" is going to dictate the standard. Application developers will prefer to use a runtime that is well-supported and easy to maintain. And perhaps in time it will the become _the_ runtime.

thanks for the laugh

there isn't going to be "the runtime" any more than there will be "the distro", for the same reason, different people want different things and have different tolerance of risky new features.

> I'm hoping that somebody like Debian or RHEL/CentOS can pick up the job of making runtimes. It shouldn't be hard, after all.

they already do, it's called their distro releases

> as an app developer I won't have to play against network effects of distributions - my software will run on ALL distributions supporting the /usr-based packaging.

no, your users may just have to download a few tens of GB of base packaging to run it instead.

Plus, if the baseline you pick has security problems, your users will blame you for them (because if you had picked a different base that didn't have those problems, their system wouldn't have been hit by X)

Poettering: Revisiting how we put together Linux systems

Posted Sep 7, 2014 11:52 UTC (Sun) by Cyberax (✭ supporter ✭, #52523) [Link]

> there isn't going to be "the runtime" any more than there will be "the distro", for the same reason, different people want different things and have different tolerance of risky new features.
No. Most developers want pretty much the same basic feature set with small custom additions.

> they already do, it's called their distro releases
No they don't. Distro model is exclusionary - I can't just ship RHEL along with my software package (well, I can but it's impractical). So either I have to FORCE my clients to use a specific version of RHEL or I have to test my package on lots of different distros.

That's the crux of the problem - distros are wildly incompatible and there's no real hope that they'll merge any time soon.

> no, your users may just have to download a few tens of GB of base packaging to run it instead.
Bullshit. Minimal Docker image for Ubuntu is less than 100Mb and it contains lots of software. There's no reason at all for the basic system to be more than 100Mb in size.

>Plus, if the baseline you pick has security problems, your users will blame you for them (because if you had picked a different base that didn't have those problems, their system wouldn't have been hit by X)
Who cares. All existing software, except for high-profile stuff like browsers, is insecure like hell. Get over it.


Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds