Poettering's next big thing after systemd



  • Revisiting How We Put Together Linux Systems

    Lennart Poettering of the pulseaudio and systemd fame has a new plan that will upset old-school linux people.

    Basically, he is trying to leverage some fancy btrfs technologies in order to split a typical Linux OS installation into a bunch of precisely versioned containers. Which you can then mix and match freely, switch between distributions and install apps without fear you'll cause a collision.

    Here's his example:

    Let's say Fedora, Mageia and ArchLinux all implement this scheme, and provide ready-made end-user images. Also, the GNOME, KDE, SDL projects all define a runtime+framework to develop against. Finally, both LibreOffice and Firefox provide their stuff according to this scheme. You can now trivially install of these into the same btrfs volume:

    • usr:org.fedoraproject.WorkStation:x86_64:24.7
    • usr:org.fedoraproject.WorkStation:x86_64:24.8
    • usr:org.fedoraproject.WorkStation:x86_64:24.9
    • usr:org.fedoraproject.WorkStation:x86_64:25beta
    • usr:org.mageia.Client:i386:39.3
    • usr:org.mageia.Client:i386:39.4
    • usr:org.mageia.Client:i386:39.6
    • usr:org.archlinux.Desktop:x86_64:302.7.8
    • usr:org.archlinux.Desktop:x86_64:302.7.9
    • usr:org.archlinux.Desktop:x86_64:302.7.10
    • root:revolution:org.fedoraproject.WorkStation:x86_64
    • root:testmachine:org.fedoraproject.WorkStation:x86_64
    • root:foo:org.mageia.Client:i386
    • root:bar:org.archlinux.Desktop:x86_64
    • runtime:org.gnome.GNOME3_20:x86_64:3.20.1
    • runtime:org.gnome.GNOME3_20:x86_64:3.20.4
    • runtime:org.gnome.GNOME3_20:x86_64:3.20.5
    • runtime:org.gnome.GNOME3_22:x86_64:3.22.0
    • runtime:org.kde.KDE5_6:x86_64:5.6.0
    • framework:org.gnome.GNOME3_22:x86_64:3.22.0
    • framework:org.kde.KDE5_6:x86_64:5.6.0
    • app:org.libreoffice.LibreOffice:GNOME3_20:x86_64:133
    • app:org.libreoffice.LibreOffice:GNOME3_22:x86_64:166
    • app:org.mozilla.Firefox:GNOME3_20:x86_64:39
    • app:org.mozilla.Firefox:GNOME3_20:x86_64:40
    • home:lennart:1000:1000
    • home:hrundivbakshi:1001:1001

    In the example above, we have three vendor operating systems installed. All of them in three versions, and one even in a beta version. We have four system instances around. Two of them of Fedora, maybe one of them we usually boot from, the other we run for very specific purposes in an OS container. We also have the runtimes for two GNOME releases in multiple versions, plus one for KDE. Then, we have the development trees for one version of KDE and GNOME around, as well as two apps, that make use of two releases of the GNOME runtime. Finally, we have the home directories of two users.

    Now, with the name-spacing concepts we introduced above, we can actually relatively freely mix and match apps and OSes, or develop against specific frameworks in specific versions on any operating system. It doesn't matter if you booted your ArchLinux instance, or your Fedora one, you can execute both LibreOffice and Firefox just fine, because at execution time they get matched up with the right runtime, and all of them are available from all the operating systems you installed. You get the precise runtime that the upstream vendor of Firefox/LibreOffice did their testing with. It doesn't matter anymore which distribution you run, and which distribution the vendor prefers.

    I suggest you read the entire article. It's fascinating.

    The one problem I see is that all my personal settings will be saved in a single home:cartman:1000:1000 partition that will be shared between a bunch of different OS-s and applications. So let's say I boot the system with app:org.libreoffice.LibreOffice:GNOME3_20:x86_64:133 and start working with that. LibreOffice 133 saves all my temp files and configs into ~/.config/libreoffice or whatever.

    Then, I install app:org.libreoffice.LibreOffice:GNOME3_20:x86_64:200. Version 200 now tries to load user config files that version 133 made in my home folder. But what if the format differs? And if 200 just upgrades the old format, what if I revert back to 133?

    So I'm not sure this scheme can work as effortlessly as he's suggesting. But the idea is super interesting.

    Also, you have to admire Pottering's drive. His detractors are still wriggling their hands over systemd, while he's already diving into the next big thing. Where is the old-school Linux gurus' viable alternative to systemd? Where is their cool container-based OS setup? Where the fuck is my Devuan? It's been years and they don't even have a proper site yet.

    Say what you will about Pottering, but the guy gets shit done.


  • ♿ (Parody)

    @cartman82 said:

    His detractors are still wriggling their hands over systemd, while he's already diving into the next big thing.



  • I think Poettering is spot on on what the "Unix way" actually means: you get a set of blocks to build really cool things with. And he's busy building cool things while "old school" (read: who lost their learning abilities long ago) "hackers" are busy protecting their old boring lawns.

    I can understand sentiments that systemd, pulseaudio etc make things progressively harder for tinkerers. But the truth is that the systems themselves grow in complexity every month and you cannot hone forever that shell script from init.d that grew to enormous size.

    systemd and pulseaudio made things easier for people who do some actual shit. No more double-fork magic to make a daemon, yay! I can concentrate on shit my service is actually meant to do. Pulseaudio these days mostly just works without second thought, a thing that I missed from proprietary OSes which had their quirks but got that one bit right. Now I can reroute my sound streams as I wish without installing 3rd party cruft (like SoundFlower on OS X, which is shit) (I admit that I did use that to rip some songs from Google Play Music, well, duh).

    Also, a bit from OS X that systemd got right and which was possible with mucho quirks in SysV init: per-session services.

    I don't wear pink glasses so I'm perfectly aware that neither PA nor systemd are bug-free. However, they are steps in the right direction. If I'm just tinkering with an OS, I like freedom. But once I start making money with an OS, I want it to behave in a standardized and predictable manner. And in this regard, Poettering's efforts are spot on.

    What the heck, even ArchLinux which is meant for tinkering and finding problems for your ass to solve, adopted systemd. This is, well, telling.



  • @cartman82 said:

    The one problem I see is that all my personal settings will be saved in a single home:cartman:1000:1000 partition that will be shared between a bunch of different OS-s and applications. So let's say I boot the system with app:org.libreoffice.LibreOffice:GNOME3_20:x86_64:133 and start working with that. LibreOffice 133 saves all my temp files and configs into ~/.config/libreoffice or whatever.

    I guess Linux will finally have to get their "how to store settings" story straightened-out, and stop having 50,000 applications all ad-hoc-ing their settings paths and file formats.

    @cartman82 said:

    Also, you have to admire Pottering's drive. His detractors are still wriggling their hands over systemd, while he's already diving into the next big thing.

    He's exactly what Linux needs. Too bad there aren't more like him.

    Just think, if he succeeds and removes all of the low-level bullshit annoyances most Linux developers are just fine with (or actually defend!) we might eventually end up with an OS that's useful for the average joe wanting to run a spreadsheet. Eventually. Probably still not.

    @cartman82 said:

    Where is the old-school Linux gurus' viable alternative to systemd? Where is their cool container-based OS setup? Where the fuck is my Devuan? It's been years and they don't even have a proper site yet.

    No successful endeavor has ever been founded on hating the competitor. (Which is also the only thing the Devuan contributors have in common.)

    You have to work towards something; you can't just work against something. Because there are 50,000 paths away from SystemD, but only one path towards a better system (if they had one designed; which they do not).



  • @wft said:

    systemd and pulseaudio made things easier for people who do some actual shit.

    Moreover, they bring Linux distros closer to feature-parity with Windows, so wags like me have to find new things to complain about other other than "Linux doesn't have a per-application mixer", or "Linux doesn't have real Services, daemons are just a lame hack".

    (Actually except for the insane amounts of latency, PulseAudio is actually better than the Windows audio stack. Feature-wise; I'm sure the UI is fried shit. And the latency will probably go away once Linux distros man-up and start tearing out all the old shitty audio layers.)



  • @blakeyrat said:

    I guess Linux will finally have to get their "how to store settings" story straightened-out, and stop having 50,000 applications all ad-hoc-ing their settings paths and file formats.

    the dbus path org.freedesktop.settings1 will be provided by the settingsd binary 🚎



  • @cartman82 said:

    Version 200 now tries to load user config files that version 133 made in my home folder. But what if the format differs? And if 200 just upgrades the old format, what if I revert back to 133?

    I don't think this has anything to do with this new thing. It's just a consequence of shitty programs that think the user's computer is their playground and they are the only and most important application that ever existed. It's specially bad when an application has trouble dealing with files from it's own versions.

    The solution is pretty simple: If you change your config files, you introduce a versioning scheme that is 100% compatible with the previous scheme. Then when a user installs you, you keep a backup of the old setting file and create your own.

    So if you run the old version, it detects a config file it can't parse and warns the user "I'm starting with default settings because I can't read the config file". If you run the new version you warn the user "I detected the old config version. I'm saving it here, and creating a new config file based off of it. Or I can create a default settings file if you click this handy button."

    You don't need to have a weird chimeric OS system to run into the situation of a user having more than one version of your program or files installed at once.


  • BINNED

    I think everyone (excluding old farts) is in wild agreement, Poettering is the best thing that ever happened to Linux desktop. Desktop is dying and so is Linux desktop with a greater rate. If this new effort brings the force of all those otherwise puny little distros (that only differentiate themselves by where they store their shit) together, maybe it can last little longer, I only care as long as I can run it during my lifetime.



  • Question:

    How many copies of glibc does this system have installed?

    1? n? 2n?



  • I've been toying with doing something like this myself. It's not too hard -- NIX uses a similar system. Pottering has some serious community cred, and can hopefully popularize the ideas.

    The one problem I see is that all my personal settings will be saved in a single home:cartman:1000:1000 partition that will be shared between a bunch of different OS-s and applications.

    It probably wouldn't be so useful to a desktop user's use case. But consider:

    /home/cartman/myproject/systemd.conf -- for "global" myproject system daemon configuration
    /home/cartman/myproject/env.conf    -- for "global" myproject environment (app, etc) installs
    /home/cartman/myproject/thewebsite/systemd.conf -- for thewebsite's daemon's
    /home/cartman/myproject/thephoneapp/systemd.conf --
    

    etc...

    and running systemd/etc for whatever project you're working on at the moment.

    Suddenly, it's super easy to create projects on whatever Linux you like as a desktop, and deploy by copying/rsync/whatever to the server.



  • @powerlord said:

    Question:

    How many copies of glibc does this system have installed?

    1? n? 2n?

    Read the article, btrfs is doing the deduping. So, probably 3.72.



  • I was pointing out a problem in the premise.

    Linux installs are very touchy about library versions. You're looking at a minimum of one different glibc version for each archlinux or fedora install listed there. Two if the 32-bit versions are also included.

    And that's just one library (albeit an important one).

    One of the major flaws in this architecture has to do with library versions. Different Linux distributions use different library versions than one another. Sometimes, you can get away with switching them out. Sometimes, you can't.

    It's a serious stability problem that needs to be addressed before this solution is anywhere near reasonable.



  • @blakeyrat said:

    Actually except for the insane amounts of latency

    ...being intensively worked on to fix lately. I think the next major version will have this straightened out (I don't think it's players per se to blame, they work just fine with pure ALSA — no latency problems there).

    I remember my own astonishment when Ubuntu 12.04 came out, I paired a Bluetooth headset to my laptop, and it worked instantly. Being a 10-year Linux user, I thought I would get it to work, but was expecting a 10-hour configuration clusterfuck. Now I can mostly afford myself just doing whatever shit I wanted to do in the first place — Linux computers just became plain old boring.



  • @blakeyrat said:

    Feature-wise; I'm sure the UI is fried shit.

    Mostly. I miss something like patchbay for all those sources and sinks so I'm able to replug them to one another at my whim.

    Jackd has this, but it's not meant for mundane software using audio, rather for DAWs, synths, and the like.



  • @wft said:

    I remember my own astonishment when Ubuntu 12.04 came out, I paired a Bluetooth headset to my laptop, and it worked instantly.

    Wow only 8 years behind Windows.

    That's lightning-quick by Lunix standards.


  • FoxDev

    @blakeyrat said:

    Wow only 8 years behind Windows.

    hmm.... 12.04....

    ah! that's when ubuntu adopted pulseaudio as default. that would have been why that worked.

    hmm... pulseaudio... systemd... i'm detecting a trend here with this poettering fellow...

    /me watches this new product with interest



  • @blakeyrat said:

    Wow only 8 years behind Windows.

    That's lightning-quick by Lunix standards.

    Well, Microsoft is sure glad the hardware vendors finally got the message regarding 64-bit-clean drivers, or else Windows would have been 8 years behind Linux in terms of 64-bit desktops...(in some ways, 64-bit Linux has been the driver of that all along)



  • @blakeyrat said:

    That's lightning-quick by Lunix standards.

    I remember people in forums, when I requested whether something desktop-ish or workstation-ish is possible without editing fucktons of configs — not that I cannot do it, I just don't want to — I got responses from neckbeards like: "who would need that?" "Is that so hard to edit that config, restart this, restart that, write a shell script, dubadub this yaddayadda?" "Is your mouse ingrown to your hand?"

    I can understand the convenience of editable configuration for server processes, and do plenty of that. I can even understand it if I have to edit a configuration, or script a non-trivial usage scenario that no one else would want to do — for example, I dunno, reconfigure buttons when I connect a particular mouse which I like but which has its left button fucked up, whatever. Or some hotkeys that boost my productivity by 500% or whatnot.

    But to spend a few hours configuring and scripting what should be the default?



  • Once Vista rolled around, Microsoft's HQL would no longer sign drivers if they didn't have both 32-bit and 64-bit versions, meaning Windows users would get Big Scary Warnings™ if users tried to install said drivers.

    In theory, that would increase support calls and/or drive people to competing products.



  • @tarunik said:

    Well, Microsoft is sure glad the hardware vendors finally got the message regarding 64-bit-clean drivers, or else Windows would have been 8 years behind Linux in terms of 64-bit desktops...(in some ways, 64-bit Linux has been the driver of that all along)

    Oh well your HYPOTHETICAL SITUATION THAT DIDN'T ACTUALLY OCCUR is a good response to my ACTUAL REAL SITUATION THAT DID ACTUALLY OCCUR IN REALITY. Thank you.

    And it's a good thing Windows removed that hypothetical "kick users in the nuts" feature because man that would have really had a negative effect on usability! Windows users can thank Lunix for getting rid of the "kick users in the nuts" feature! Bow down before Lunix!

    @wft said:

    I remember people in forums, when I requested whether something desktop-ish or workstation-ish is possible without editing fucktons of configs

    Yes, that's because your operating system was (and still mostly is) a giant piece of broken shit.

    And apparently, until Pottering came around, absolutely nobody involved in it even slightly cared about feature-parity with its competitors.



  • @accalia said:

    hmm.... 12.04....

    ah! that's when ubuntu adopted pulseaudio as default. that would have been why that worked.


    They adopted it in 8.04 as the default. Back when it didn't work. That I remember quite distinctly.


  • FoxDev

    .... right. 12.04 was when it actually worked.

    my bad!



  • @powerlord said:

    Once Vista rolled around, Microsoft's HQL would no longer sign drivers if they didn't have both 32-bit and 64-bit versions, meaning Windows users would get Big Scary Warnings™ if users tried to install said drivers.

    In theory, that would increase support calls and/or drive people to competing products.

    Yep. In practice, hardware vendors either excreted a 64bit "driver", or pulled out the stops when it came to bypassing said Big Scary Warnings.

    Filed under: NT's shortsightedness with the Alpha came around to bite 'em...



  • I watched an installer run last week. The Unsigned Driver dialog box popped up, and the installer issued a command that clicked "Continue Anyways" on it.



  • Let me guess, samsung?


  • FoxDev

    @Jaime said:

    I watched an installer run last week. The Unsigned Driver dialog box popped up, and the installer issued a command that clicked "Continue Anyways" on it.

    name and shame. because that is evil.



  • I'm trying to recall what it was. If it comes to me, I'll post it.


  • Discourse touched me in a no-no place

    @Jaime said:

    I'm trying to recall what it was. If it comes to me, I'll post it.

    There was a point when ALL BT drivers did that (or just showed the warning) because there was no way to WHQL BT drivers for some reason.



  • @Jaime said:

    I watched an installer run last week. The Unsigned Driver dialog box popped up, and the installer issued a command that clicked "Continue Anyways" on it.

    Turn on UAC you ass.

    That's one of the reasons it exists.

    (Or you're using fucking Windows XP and badly need to upgrade.)


  • Java Dev

    I'd call windows bug that it can even do that...



  • Like blakey said: It can't unless you tell Windows that you're okay with that kind of awful.


  • FoxDev

    @PleegWat said:

    I'd call windows bug that it can even do that...

    i can thing of eight ways to do it, three of which you couldn't block at the OS layer without breaking some accessibility features completely (using a virtual HID)



  • @accalia said:

    i can thing of eight ways to do it, three of which you couldn't block at the OS layer without breaking some accessibility features completely (using a virtual HID)

    I hand you that, a virtual HID would be pretty hard to defeat, but then again it'd require UAC permission to install one.

    For almost all other "remote control the mouse to hit 'Yes'"-type exploits, the UAC alternative desktop puts the kibosh on those no problem. Nothing on the UAC desktop can be controlled (or even passed messages) from by anything other than the OS itself.



  • Well, Win8 doesn't let you do this anymore - you need to boot into a special mode to allow installing unsigned drivers.


  • FoxDev

    @blakeyrat said:

    I hand you that, a virtual HID would be pretty hard to defeat, but then again it'd require UAC permission to install one.

    IIRC there's one already installed and active by default. windows accessibility uses one for voice control and that uses an unsecure virtual HID. at least it did back in windows XP, not sure if they've locked that one down so that you can't use that HID with any old program just by sending the right messages to the OS.



  • @blakeyrat said:

    virtual HID

    And if you end up with one of those installed and it's malicious, you might as well burn your computer down to the ground.


  • FoxDev

    @Maciejasjmj said:

    Well, Win8 doesn't let you do this anymore - you need to boot into a special mode to allow installing unsigned drivers.

    which is one of the better security updates that they implemented in 8/8.1 over 7



  • @accalia said:

    IIRC there's one already installed and active by default. windows accessibility uses one for voice control and that uses an unsecure virtual HID.

    If that's true, there's no way it wouldn't have been exploited and fixed about 4372,0432784732,432467237 times since Vista came out. So you'll excuse me if I don't buy it without at least a little evidence.


  • FoxDev

    this is XP we're talking about. there were are24372,0432784732,432467237 easier ways to PWN a windows XP machine.

    still i'll see if i can dig that docs up. should make interesting reading.



  • @accalia said:

    this is XP we're talking about. there were are24372,0432784732,432467237 easier ways to PWN a windows XP machine.

    ???

    Voice recognition didn't ship in XP. It was an Office feature at that point and, IIRC, only actually worked in Office apps. Maybe in XP Tablet Edition?


  • FoxDev

    @blakeyrat said:

    It was an Office feature at that point and, IIRC, only actually worked in Office apps. Maybe in XP Tablet Edition?

    huh. you're right about that.

    that would explain my lack of success locating the docs. guess that attack surface was smaller than i remember it.

    though at least for business it was almost guaranteed word and excel would be installed...

    /me starts looking at tablet edition and office XP



  • At one point, I know Microsoft wasn't going to allow unsigned drivers at all for 64-bit drivers.

    I assume they went back on that after companies complained.



  • @Kian said:

    shitty programs that think the user's computer is their playground and they are the only and most important application that ever existed

    Also of a design mindset that says that one user ID === one seat, implying that user preferences and runtime application state can be safely stored in the same on-disk structures. Many application programs and systems will cause you some degree of grief if you try to run two or more concurrent sessions on the same OS with the same user credentials.



  • @dse said:

    Desktop is dying

    Bullshit. The everything-is-a-phone brain worms are still rampaging through the developer community, that is true; but how many devs actually use a mobile device as their primary dev tool? Four fifths of fuck all, that's how many.

    This is because devs, like all human beings fitted with both eyes and hands, understand this fundamental ergonomic truth: if your control surface is identical with your viewing surface, you have a choice of positioning your control surface too high for your hands, or positioning your viewing surface too low for your neck and shoulders.

    Desktop computing is not going to die until desks do, and that's not going to happen until hi-def 4k+ internet terminals get routinely implanted when you get your MMR jabs as an infant.



  • @blakeyrat said:

    Turn on UAC you ass

    That's unlikely to stop an installer, which would typically have got UAC elevation consent early on.


  • BINNED

    @flabdablet said:

    how many devs actually use a mobile device as their primary dev tool?

    What is the percentage of devs compared to total users? Desktop (form-factor) prices will go up, that is what I mean by dead, instead of seeing constant drop in the price of PC hardware, the trend will reverse. Also, if you connect a keyboard and monitor to a phone, that would be fine for most of the desks.



  • If you connect a keyboard and monitor to a phone, you've just made a slow and shitty desktop computer.

    I'm also not seeing the desktop form factor get more expensive. At least where I live, you've been able to buy good-enough-for-school desktop performance for well under $1000/seat for the last ten years; the prices are pretty stable but the hardware keeps getting better.


  • BINNED

    It is shitty now, yes, but so was a 286 about 15 years ago, even I would say my quad-core phone is much better and has a freaking GPU. The reason the price point has been stable (or decreasing) is because normal users have been subsidizing it for you and me. When user counts drop the price will eventually rise. Unless something like Steam becomes more prevalent and PCs become the new game consoles or home theater boxes.



  • @flabdablet said:

    Bullshit. The everything-is-a-phone brain worms are still rampaging through the developer community, that is true; but how many devs actually use a mobile device as their primary dev tool? Four fifths of fuck all, that's how many.

    I long fot the day when i can have what ubuntu phone (and recently Windows) promised. All my data on one device. Connecting it to a monitor converts it to a regular desktop. Disconnecting it makes it a mobile phone/phablet again.



  • @dse said:

    even I would say my quad-core phone is much better and has a freaking GPU

    Yes, and it runs a touch-optimized OS that's frankly annoying to use when you set it up as a desktop machine. Desktop work with mouse, keyboard and loads of screen space is not the same use case as small portable touchscreen, and pretending that they are the same just creates gratuitously shitty desktop computing experiences.


Log in to reply