Follow Slashdot stories on Twitter

 



Forgot your password?
typodupeerror
×
Operating Systems Linux

Linus Torvalds Says Linux Kernel v5.0 'Should Be Meaningless' (betanews.com) 165

An anonymous reader shares a report: Following the release of Linux kernel 4.16, Linus Torvalds has said that the next kernel will be version 5.0. Or maybe it won't, because version numbers are meaningless. The announcement -- of sorts -- came in Torvalds' message over the weekend about the first release candidate for version 4.17. He warns that it is not "shaping up to be a particularly big release" and questions whether it even matters what version number is slapped on the final release. He says that "v5.0 will happen some day. And it should be meaningless. You have been warned." That's not to say that Linux kernel v5.0 -- or whatever it ends up being called -- will not be significant. With the removal of old architecture and other bits of tidying up, with v4.17 RC1 there were more lines of code removed than added: something described as "probably a first. Ever. In the history of the universe. Or at least kernel releases."
This discussion has been archived. No new comments can be posted.

Linus Torvalds Says Linux Kernel v5.0 'Should Be Meaningless'

Comments Filter:
  • by Anonymous Coward
    And release a new major version every six weeks. Also get rid of kernel modules in favour of webextentions, because cloud.
  • It should (Score:4, Insightful)

    by Anonymous Coward on Monday April 16, 2018 @10:21AM (#56445679)

    0.0.xx releases should be bugfixes. 0.xx releases should be minor feature updates. X.00 releases should be releases that break, or significantly change, the ABI, or that add major functionality.

    • by Junta ( 36770 )

      The problem for the kernel is it has exceedingly broad scope and as such has hit difficulties with the 'major functionality' criteria.

      Some major networknig addition that only matters for telcos lands in a kernel and that drives a bump, even though 90% of the users don't even use it? There a new DM module for a nice enterprise storage that does nothing for a phone user?

      When they did do the major functions are held back dance, some 'major things' that were quick got held up for years waiting for other 'major

    • 0.0.xx releases should be bugfixes. 0.xx releases should be minor feature updates. X.00 releases should be releases that break, or significantly change, the ABI, or that add major functionality.

      That's one way to do version numbers. That's how the Linux kernel used to do things. And Linus found that it didn't work very well for the kernel, so he changed to a different approach.

      • by ceoyoyo ( 59147 )

        Fair enough, but the jump between .17 and .0 seems odd unless there's some reason. Why not .18? Or .9 to .0 like everyone used to do it?

        • Fair enough, but the jump between .17 and .0 seems odd unless there's some reason. Why not .18? Or .9 to .0 like everyone used to do it?

          Linus's "meaningless" quote addresses his motivations: he doesn't want there to have to be a reason. He wants to discourage people from treating a "5.0" release any differently than they would treat a "4.17" release, because with the current kernel development model, every version increment is essentially equal.

          • by AvitarX ( 172628 )

            Just drop the first digit then.

            Didn't Solaris or something do that?

            As a user, I'd think it makes sense to bump the first digit for the long-term supported ones. I'd be able to know 5.0.x was going to have the x incrememnted with bugfixes longer than anything until 6.0.x

            The number is no longer then about features, but still provides useful information.

          • by ceoyoyo ( 59147 )

            I understand that. My point is that when he makes jumps as I described, he's inviting people to assume there's a reason. Presumably Linux has influence over the version numbering.

            If you go from 4.9 to 5.0, that's just a .1 bump. If you go from 4.17 to 5.0, it implies there's a reason why you changed the big number instead of the little one.

          • by jwhyche ( 6192 )

            Well then he should just drop the numbering plan all together. We should name kernel releases after porn stars. Cindy, Tammy, Candy....

            • by bakes ( 87194 )

              Good plan, although unlike numerics with this system not everyone knows in which order they come.

      • by AmiMoJo ( 196126 )

        Key thing is to pick one and stick with it. Windows 10 is all very well, but what are they gonna do when they are on V94, huh?

        I seem to recall that the API uses bytes for major and minor versions, so Windows 256 is gonna be a problem.

        Pretty short sighted if you ask me. All my version numbers are uint64s representing the number of nanoseconds since 02:14 on August 29th, 1997.

      • by Xenna ( 37238 )

        So Linus basically invented semantic versioning and now that it's become religion he's dropping it.

        Cheeky bugger ;-)

    • We already have:

      0.0.xx releases which are stable releases from the linux-stable repository, these include bug fixes. However, only LTS (Long Term Support) kernels have on-going support.

      0.xx releases are the cumulative releases. Each release is unique. Each release is generally compatible with the previous release. However, note the kernel has config options with allows the kernel to be conditionally built which allows sub-systems to be configured in and out. Therefore, the kernel version only identifies the

  • by Opportunist ( 166417 ) on Monday April 16, 2018 @10:24AM (#56445703)

    People put way to much emphasis on labels. While you might expect to break more compatibility on a major number than on a minor, i.e. I'd probably be more wary to install a 5.0 than a 4.22, it's been shown time and time again that it doesn't really matter. Why the urge to have a major number anyway? I'd be calling it 5.0 if something huge changed.

    With most software it's mostly a marketing game. We change major numbers so we can charge you again. But with the transition to SaaS, this practice will even change for CSS, why FOSS felt the urge to play the game in the first place is beyond me.

    • by the_saint1138 ( 1353335 ) on Monday April 16, 2018 @10:30AM (#56445737)

      Many version numbers in software are meaningful.

      If anyone depends on your software, then using major/minor/patch version numbers to distinguish which changes are backwards incompatible, feature additions, and bug fixes is very helpful to those downstream. See https://semver.org/ [semver.org]

      • Indeed. It's rumored that Microsoft skipped Windows 9 because of potential compatibility issues.
        https://www.informationweek.co... [informationweek.com]?

        • That's no rumor, that's the reason. Many install scripts (and other programs) didn't bother looking for "Windows 95 || Windows 98" but were just looking for "Windows 9", because whether it's 5 or 8 after the 9 didn't matter. That's all that could have happened after the 9.

          All these programs and scripts would break in Windows 9.

          Another reason was that MS learned that people wisened up and knew that only every OTHER version of Windows was actually usable, so they tried to trick people into thinking that 10 is

      • Yeah, I don't think software version numbers are necessarily (or should be) meaningless. However, I think it's true that version numbers are arbitrary. Maybe that's what Torvalds meant.

        It may not seem like much of a distinction, but the point is that developers can number their software any way that they like. The actual numbers are not objectively an indicator of anything. If the developer has no reason for the number they've chosen, then the version number has no meaning. However, if they have a rea

        • by Junta ( 36770 )

          He simply meant that for the linux kernel, the version numbers after 2.6 are meaningless except to say x is newer than y. It's just how they chose to do it. He is not making some grand statement about version numbers in general, it's just the particular approach they do for the kernel.

          The kernel is well enough known, does a lot of different things, and wrapped by other organizations that it can be one of the 'special snowflakes' and not really be a big part of the whole 'versioning' philosophy.

    • by Junta ( 36770 )

      Versions are a way of conveying information. For simplistic and/or obscure projects, adherence to general rules of thumb help people know how to interact with your software.

      For the kernel, well, they are special and for them torturing themselves over whether a particular interval has something that *means* x or y or z changes in an x.y.z version is a waste of time. For them, the direct technical stakeholders have a much more nuanced understanding of how it develops than any version number could possibly c

    • by AmiMoJo ( 196126 )

      A company I worked at had to change version numbering from two decimal places to one, because another company stripped tailing zeros when displaying our firmware version and people thought that V2.9 was older than V2.52... Because 9 is less than 52.

      • This would've been the moment for me where version 2.91 follows 2.89, with the patchnotes reading "2.90: Patch skipped because company (name) is too stupid to display it correctly".

        • by r3jjs ( 189626 )
          I *DO* this!

          Its for a rather small open source project with less than 100 users, but yea, I screwed up on the version number code and now its kind of a baked in mis-feature.
  • by Anonymous Coward

    I still have high hopes that 5.0 brings windows subsystem support

  • 2018.4.17 would be a much more useful over version numbers as consumers would know how old their IoT devices actually are.

    Year of linux desktop should be more like 1995.4.17 for gnome, kde, xfce to indicate how far behind they are when comparined to windows and macs.

    • by AvitarX ( 172628 )

      Do you add another .x for bugfixes and keep the old release date?

      It seems using strictly dates could get real messy.

  • It is not the kernel that is meaningless, but the concept of version numbers that he says is meaningless.
  • by Anonymous Coward

    Version numbers are a very broadly understood proxy for communicating risks associated with change to your users.

    The fact some have elected to fuck up version numbers for financial gain and politics shows version numbers are in fact not meaningless. As a user I would much prefer Linus et al stop playing games with version numbering. Often people working a project develop a project centric mindset that does not extent to the thinking or value propositions of users.

    You think everyone has the time to rummag

  • by johannesg ( 664142 ) on Monday April 16, 2018 @10:51AM (#56445873)

    As demonstrated by both Apple (with their OS X, but no OS XI) and Microsoft (with their Windows 10, but no Windows 11), ten is just the highest number an OS can have. Linus is just preparing for the day when Linux, too, reaches its final version number.

    • This is Linus we are talking about. If there's one person in the world who realises he also has toes it's him. Apple and Microsoft may only be able to count to 10 but I expect Linux will go up to 20.

  • by ooloorie ( 4394035 ) on Monday April 16, 2018 @11:00AM (#56445933)

    This is how Semantic Versioning [semver.org] ought to work:

    Given a version number MAJOR.MINOR.PATCH, increment the:

    MAJOR version when you make incompatible API changes,
    MINOR version when you add functionality in a backwards-compatible manner, and
    PATCH version when you make backwards-compatible bug fixes.
    Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.

    So, while Linux kernel version numbers may be meaningless, it would perhaps be better if they were actually meaningful.

    • by amorsen ( 7485 )

      It's the kernel. You can't do incompatible API changes. Does that mean Linux should be on version 1.387.4?

      • Re: (Score:2, Insightful)

        by Anonymous Coward

        Linux kernel historically has had no API/ABI stability at all and Linus actively opposes any such concept. For a good reason too, we wouln't want to end up like Windows with their backwards compatibility baggage. On the other hand that means it's really hard to support hardware in any other way than having it in the kernel itself - just ask nVidia how their closed driver efforts are going when a new kernel/x.org versions arrive.

        • by amorsen ( 7485 )

          This is completely wrong. The Linux kernel API/ABI is utterly stable. You can install one of the first distributions, switch the kernel to 4.x, and things will work just fine.

          You may have to enable a.out support though.

      • It's the kernel. You can't do incompatible API changes. Does that mean Linux should be on version 1.387.4?

        Sure you can, happens all the time, both with Linux and with other kernels. For Linux, those changes have simply been so haphazard that the rest of the Linux ecosystem assumes little and tries to compensate for them.

    • Historically, major versions are for major feature set changes. They don't have to break backwards compatibility. Sometimes they even correspond to complete rewrites, and it's hard to argue that's not useful.

    • Now that there are really long term support versions, breaking compatibility in a major version is really not that big of a deal. Fix the memory manager so mmaped files can be unloaded on a low memory condition and generate a page fault as needed. Make the various compressed memory and file subsystems compatible with each other when using the same compression format (rather than de+re-compressing on each copy) simplify the video/gpu systems. Currently, if you run code deduplication software you will fill
    • it would perhaps be better if they were actually meaningful.

      It is meaningful in its meaninglessness. The semantic versioning system assumes that you make software in a way that breaks functionality frequently or that you roll out bug fixes at a different cadence to feature improvements. The Linux kernel hasn't been maintained like that in a long time.

      • The semantic versioning system assumes that you make software in a way that breaks functionality frequently

        Where does it assume that?

        or that you roll out bug fixes at a different cadence to feature improvements

        And the problem with that is...?

        The Linux kernel hasn't been maintained like that in a long time.

        Indeed! Probably because Linus thinks that a lot of standard software engineering "is meaningless".

        • Where does it assume that?

          Right in the major version number.

          And the problem with that is...?

          Version numbering ceases making sense when you classify it according to bug fix / feature improvement but don't have a development cadence that incorporates standard fixes and maintenance fixes. When every fix involves both bux fixes and feature improvements then the entire premise of the versioning system you promote falls apart. You may as well just Start at 1.0 and then increase the decimal point at every commit. Which version of Linux are you running? 1.123512345 or the

          • Right in the major version number.

            Where in the major version number does it say that you "break functionality frequently"? Lots of software projects increment their major version number very infrequently.

            And? To be clear you are proposing changing the approach taken by one of the worlds most expensive and longest ongoing software projects.

            No, I'm simply saying that people should remember that version numbers are not meaningless, it is only Linux kernel version numbers that are meaningless because Linus happ

            • Where in the major version number does it say that you "break functionality frequently"?

              Dunno I was quoting you with your incompatible API changes. Maybe you were wrong.

              No, I'm simply saying that people should remember that version numbers are not meaningless

              They aren't. They form a logical sequence of releases. But the specific versioning system you proposed is meaningless to the development process of the Linux kernel. Maybe you don't understand Linus's comment because you don't understand the kernel development. I tried to explain it to you but you either didn't read it or willfully ignored it choosing instead to just repeat your original reply without addressing any subsequent

              • Dunno I was quoting you with your incompatible API changes. Maybe you were wrong.

                I simply stated that version numbers are meaningful and that major version number changes indicate API changes. How does that imply that a project "breaks functionality frequently"?

                But the specific versioning system you proposed is meaningless to the development process of the Linux kernel.

                I wasn't making a comment about the Linux kernel, I was making a comment about version numbers in general.

                I tried to explain it to you but y

  • At least, they are not supposed to be. Version numbering, particularly decimal-delimited versioning, was originally intended to communicate concisely the level of risk involved with the change from the prior version, with each field, progressing left to right, representing less risk.

    For example:

    2.4.12 -> 2.4.13 ~= Little risk involving a low degree of time and expense managing integration failures and customer blowback. Often these changes can be rolled out in production with little or even no integrati

  • Considering how poor QA and regression testing Linux kernel gets even x.y.z is meaningless unless we are talking about the kernels maintained by Red Hat and Google.
  • Isn't the whole world moving away from point releases? Perhaps the Linux kernel still needs development and stable tracks, but the whole idea of a "major release" followed by a bunch of "point releases" is an artifact of the days when software came in a box with a CD in it, or (for us old greybeards) on a magnetic tape. Rolling releases with whole numbers (like 50123 rather than 5.0.123) are where it's all going now.
    • by Njovich ( 553857 )

      Isn't the whole world moving away from point releases?

      Not really. I would say that atrocities such as Semver have made point releases more popular than ever. You aren't wrong about rolling releases with whole numbers being popular too though.

  • In particular, a legitimate "5.0" release really needs to be a "GT" version, and should include sport suspension, an aero package, 21-inch wheels, and Brembo brakes.

  • by Anonymous Coward

    Version numbers are pretty meaningless, but it does mean you can generate some news. Write up a big press release about all the changes since version 4.0, stick in some stats about how many computers are running linux and you might get into the mainstream press.

  • Five dot oh: complete with systemd.

    The red pill: Back to the way it once was. Meaning less trouble.

  • Keep them going in an ever increasing direction, and any numbering scheme will be fine. Just don't go with the Asinine Asshole method Ubuntu's doing (and Android). Numbers are easy to remember and keep in order, artsy-fartsy naming conventions are harder to keep up with.
  • by Anonymous Coward

    Version numbers are coherent. You instantly know where in the chain of evolution you are.

    I despise projects that use names instead... "marshmellow finger", "Toxic lake"... what does that even mean? That is not information I want to have to store in my brain.

    Version 5.0. I know exactly what that means and I am grateful for the simplicity.

  • He's right, when we went from 0.98/1.0 to 2.0 kernel, there were entire suits of new hardware supported, kernel modules, many new features, to say nothing of breaking existing functionality for many things.

    20 years later and the major releases are functionally changing things only kernel programmers would care about.

    Not to diminish those contributions, but by this point it's more slow roll evolution and iteration.

  • Deleting code is my favourite software development activity, ever. Especially when all the tests are still green afterward.
  • We go for three levels deep whilst reporting one of Linus' burps.

  • The present android operating system is derived from Linux.

Beware of Programmers who carry screwdrivers. -- Leonard Brandwein

Working...