LWN: Comments on "Software and hardware obsolescence in the kernel" https://lwn.net/Articles/829733/ This is a special feed containing comments posted to the individual LWN article titled "Software and hardware obsolescence in the kernel". en-us Fri, 05 Sep 2025 01:08:55 +0000 Fri, 05 Sep 2025 01:08:55 +0000 https://www.rssboard.org/rss-specification lwn@lwn.net Software and hardware obsolescence in the kernel https://lwn.net/Articles/834307/ https://lwn.net/Articles/834307/ nybble41 <div class="FormattedComment"> <font class="QuotedText">&gt; So an 8-bit x86 processor could be called big-endian if it reads the MSB first?</font><br> <p> Yes, the serialization of the word on the 8-bit bus would be accurately labeled big-endian if the MSB is transferred first—not that this would be observable to software. The storage would still be little-endian since the LSB is stored at the lowest-numbered address. This can be confirmed by accessing the same memory address with byte- and word-oriented instructions.<br> </div> Wed, 14 Oct 2020 18:31:26 +0000 Software and hardware obsolescence in the kernel https://lwn.net/Articles/834226/ https://lwn.net/Articles/834226/ immibis <div class="FormattedComment"> So an 8-bit x86 processor could be called big-endian if it reads the MSB first?<br> <p> I don&#x27;t think so.<br> </div> Wed, 14 Oct 2020 10:50:16 +0000 Software and hardware obsolescence in the kernel https://lwn.net/Articles/831380/ https://lwn.net/Articles/831380/ set <div class="FormattedComment"> For fun not to long ago I got a &gt;20 year old dynamicly linked Mosaic binary to run on my modern linux box. The problems there were 1) finding and installing the old required libraries, which was fairly trivial. 2) Layouts and assumptions about userspace 20 years ago meant that even though the program ran, it did not function well because some things just were not where they were expected back then. Also the web has changed a bit;) If it were important the program ran correctly, I would have used a vm with some old distribution in it.<br> </div> Sun, 13 Sep 2020 04:04:24 +0000 Software and hardware obsolescence in the kernel https://lwn.net/Articles/831304/ https://lwn.net/Articles/831304/ nix <div class="FormattedComment"> I did something similar when adding mixed-endianness support to binutils libctf (excluding the ctf_archive format, which predated this idea and is always little-endian: I&#x27;ll fix that in the next format rev). Cross-compilation notwithstanding, executables in general are usually read on architectures of the same endianness as the native endianness of the architecture they are generated on, so we write CTF dicts in the native endianness (historically, Solaris CTF did the same, presumably for the same reason). The only endianness-sensitivity is at open time, where we look at the dict&#x27;s magic number to determine this dict&#x27;s endianness, and endian-swap the whole dict in memory if the wrong endianness is detected.<br> <p> This approach has two significant advantages over endian-flipping to a format-specified hardwired endianness: firstly, you never incur endian-flipping overhead in the common case of the same endianness being used on the generator and reader, no matter what the endianness of your machine; secondly, almost the entire codebase can completely ignore all this awful stuff, and only one localized place (the place that endian-flips if a foreign endianness is detected) needs to know about it.<br> <p> The downside is that I need to explicitly test creating CTF on a machine with one endianness and then using it on one with the opposite endianness, or the endian-flipping code will never be exercised and will eventually silently rot. But still it seems to be much less bug-prone than forcing the format to be one specific endianness and compensating for that everywhere.<br> <p> </div> Fri, 11 Sep 2020 19:40:25 +0000 Software and hardware obsolescence in the kernel https://lwn.net/Articles/831302/ https://lwn.net/Articles/831302/ nix <div class="FormattedComment"> That looks like the opposite of PDP-endian.<br> <p> (Still looking back in history, the VAX had even crazier endiannesses, particularly for its weirdo floating-point formats.)<br> </div> Fri, 11 Sep 2020 19:27:59 +0000 Software and hardware obsolescence in the kernel https://lwn.net/Articles/831296/ https://lwn.net/Articles/831296/ mjg59 <div class="FormattedComment"> I&#x27;ve been working on a big endian system recently and I&#x27;m finding it surprisingly hard to parse register dumps having got so used to little endian.<br> </div> Fri, 11 Sep 2020 18:12:59 +0000 Software and hardware obsolescence in the kernel https://lwn.net/Articles/831291/ https://lwn.net/Articles/831291/ mpr22 <div class="FormattedComment"> Debugging based on hex dumps is much nicer on big-endian archs than little-endian ones.<br> <p> Of course, most people don&#x27;t have to do that very often these days.<br> </div> Fri, 11 Sep 2020 17:18:07 +0000 Software and hardware obsolescence in the kernel https://lwn.net/Articles/831251/ https://lwn.net/Articles/831251/ rep_movsd <div class="FormattedComment"> Little endian just makes more sense - simpler.<br> <p> I never understood why someone would use an un-intuitive big endian format ( which is clearly based on the fact that we write numbers left to right manually )<br> </div> Fri, 11 Sep 2020 10:05:12 +0000 Software and hardware obsolescence in the kernel https://lwn.net/Articles/830789/ https://lwn.net/Articles/830789/ marcH <div class="FormattedComment"> <font class="QuotedText">&gt; <a href="https://thedailywtf.com/articles/The-Defect-Black-Market">https://thedailywtf.com/articles/The-Defect-Black-Market</a></font><br> <font class="QuotedText">&gt; Besides the subtleties of making it work,...</font><br> <p> If you don&#x27;t mind cheating then it&#x27;s much more valuable to sell defects _outside_ the company. Works for both testers and developers.<br> <p> Spy agencies and criminals wouldn&#x27;t be doing their work if they were not approaching &quot;vulnerable&quot; developers asking them to add some security &quot;mistakes&quot; in poorly reviewed and tested areas of the code. Easier to hide and deny with an unsafe language like C where intentional memory corruption mistakes are barely distinct from unintentional ones. Even more discreet in a project that does not separate security bugs from other bugs. The only thing difficult to hide is the check/reward.<br> <p> <font class="QuotedText">&gt; There&#x27;s also developer preferences; most programmers want... Neither encourage companies...</font><br> <p> I think management not studying and not questioning what &quot;their programmers want&quot; is a good indicator of &quot;companies being clueless about development costs&quot;. &quot;Rock Stars&quot; programmers is of course the extreme version of that.<br> </div> Sun, 06 Sep 2020 19:00:07 +0000 Software and hardware obsolescence in the kernel https://lwn.net/Articles/830756/ https://lwn.net/Articles/830756/ dvdeug <div class="FormattedComment"> <font class="QuotedText">&gt; removing duplication or _unused_ code, no customer cares about that.</font><br> <p> The second line of the article says:<br> <p> <font class="QuotedText">&gt;&gt; Removing code that is no longer useful can be harder, mostly because it can be difficult to know when something is truly no longer needed. </font><br> <p> <font class="QuotedText">&gt; Same with validation: employees who find bugs before customers save their companies a lot of money and should be rewarded correspondingly. How often have you seen that happening?</font><br> <p> <a href="https://thedailywtf.com/articles/The-Defect-Black-Market">https://thedailywtf.com/articles/The-Defect-Black-Market</a><br> <p> Besides the subtleties of making it work, there&#x27;s the questions of financial value. There&#x27;s a certain point where getting something out today is much better than getting something slightly better out tomorrow, especially when tomorrow is going to bring new hardware you have to run on and thus new bugs.<br> <p> <font class="QuotedText">&gt; most companies are still clueless with respect to actual development costs.</font><br> <p> I think that modern capitalism has made many companies worry about today and not tomorrow. Long-term thinking can be discouraged in these projects. There&#x27;s also developer preferences; most programmers want to write the interesting new code, not spend a week trying to figure why these 10,000 lines of spaghetti code are returning a value that it obviously can&#x27;t return. There&#x27;s other developers who will refactor and refactor even when it produces more bugs and less clarity than they started with. Neither encourage companies to go back and clean up.<br> <p> But I go back to my original comment; people will curse an OS that crashes once a day, but they won&#x27;t use an OS that doesn&#x27;t work on their system. Several times in business I&#x27;ve been told how to work about nasty bugs in specialized programs; maybe they got reported upstream, maybe not, but I was told e.g. to twiddle with business numbers until the report printed and then fix them in pen. The upstream is not clueless with the actual development costs in those cases; the users will curse it and work around the bugs, as long as it does what they need. Windows 95 may have sucked, but it was good enough the users tended to stick around despite the bugs.<br> </div> Sun, 06 Sep 2020 01:43:36 +0000 Software and hardware obsolescence in the kernel https://lwn.net/Articles/830667/ https://lwn.net/Articles/830667/ marcH <div class="FormattedComment"> <font class="QuotedText">&gt; An industry is going to value what sells.</font><br> <p> Sure but I was writing about something entirely different: removing duplication or _unused_ code, no customer cares about that. This saves maintenance costs and makes adding new features easier yet good luck &quot;selling&quot; this to your average manager in your annual review. I don&#x27;t know who is Arnd&#x27;s manager but he seems like a lucky guy ;-)<br> <p> Same with validation: employees who find bugs before customers save their companies a lot of money and should be rewarded correspondingly. How often have you seen that happening?<br> <p> There&#x27;s generally no tracking of who adds the most bugs either. If they really meant business, companies would have a &quot;guilty&quot; field in bug trackers. It wouldn&#x27;t be rocket science thanks to &quot;git blame&quot; (the command name is a good start...) but I guess &quot;creators&quot; who add new code and bugs are too venerated for that to ever happen. We even have &quot;rock stars&quot;, says a lot.<br> <p> I heard a rumour that Apple is... different in that respect. It seems to achieve some results wrt. to quality.<br> <p> tl;dr: most companies are still clueless with respect to actual development costs.<br> </div> Fri, 04 Sep 2020 17:07:46 +0000 Software and hardware obsolescence in the kernel https://lwn.net/Articles/830468/ https://lwn.net/Articles/830468/ dvdeug <div class="FormattedComment"> <font class="QuotedText">&gt; It&#x27;s sad the industry seem to still value new code more than deleted code, should be the other way around. </font><br> <p> An industry is going to value what sells. <br> <p> Maybe Minix really is a super-reliable system with crystal clear code. Does it run on x86-64? No. Does it run on ARM64? No. Does it run on a Raspberry Pi? No. So I have a super-reliable system I can run in an emulator in a system that valued working over elegance.<br> <p> For another example, &quot;I just downloaded a file and opened it up&quot; beats &quot;I just downloaded a file and turns out to be TIFF with CCITT T.6 bi-level encoding or a PCX file or use a Microsoft MPEG-4 Version 3 video codec&quot; and I have to dig up code that works (who cares if it&#x27;s elegant) or give up on viewing it. <br> <p> There are points when stuff should just go. But if you rewrite Linux filesystem code so it supports ext4 and iso9660 and drops support for all those obsolete and half-supported filesystems like NTFS and JFS and hpfs and VFAT, I don&#x27;t see why anyone not a kernel programmer should consider that an improvement, even if it did get 0.7% faster. And even among kernel programmers, it seems they&#x27;re the most likely to have a partition for other operating systems and old drives and disks around with non-ext4 filesystems. <br> <p> I believe Linus also talks about not breaking code that runs on Linux. It&#x27;s easy to delete obsolete features if you don&#x27;t care about code that wasn&#x27;t updated yesterday.<br> </div> Fri, 04 Sep 2020 09:45:57 +0000 Software and hardware obsolescence in the kernel https://lwn.net/Articles/830591/ https://lwn.net/Articles/830591/ geert <div class="FormattedComment"> The R82 is in-order, so more predictability.<br> Still, it has branch prediction, so less predictability.<br> </div> Fri, 04 Sep 2020 08:39:00 +0000 Software and hardware obsolescence in the kernel https://lwn.net/Articles/830555/ https://lwn.net/Articles/830555/ pm215 <div class="FormattedComment"> The R82&#x27;s MMU bit is optional (per the blog post), so ARMv8R AArch64 doesn&#x27;t imply an MMU inherently. It just means it&#x27;s v8, it&#x27;s R-profile (ie primarily MPU) and it&#x27;s running 64-bit.<br> <p> If you&#x27;d prefer a different definition, Peter Greenhaugh is in the anandtech comments on <a href="https://www.anandtech.com/show/16056/arm-announces-cortexr82-first-64bit-real-time-processor">https://www.anandtech.com/show/16056/arm-announces-cortex...</a> defining Cortex-R as being all about low interrupt latency, tightly-coupled memory and the like. (Low-and-predictable latency has always been why the MPU.)<br> <p> </div> Thu, 03 Sep 2020 19:47:50 +0000 Software and hardware obsolescence in the kernel https://lwn.net/Articles/830539/ https://lwn.net/Articles/830539/ geert <div class="FormattedComment"> Indeed, originally the big-endian Linux ports used the unmodified ext2 file system, leading to incompatible metadata layout with little-endian machines.<br> <p> When people realized the incompatibility, two options were considered:<br> 1. Add non-natitve endian support to ext2, i.e. do byteswapping when needed, protected by a config option,<br> 2. Declare ext2 to be little-endian, and provide an option to migrate the big-endian format to little-endian.<br> Option 2 was picked, as 1 (when enabled) incurred a high runtime cost due to the conditional byteswapping code, and 2 turned out not that much slower than 1 (when disabled), due to the compiler doing a quite good job in optimizing the code.<br> After a while, all big-endian ext2 file systems had been migrated, and e2fsck no longer needed the -s option.<br> Similarly, XFS was declared to be big-endian, as it originated on big-endian SGI machines.<br> </div> Thu, 03 Sep 2020 17:44:01 +0000 Software and hardware obsolescence in the kernel https://lwn.net/Articles/830529/ https://lwn.net/Articles/830529/ mchouque <div class="FormattedComment"> ext2 used to be like that IIRC...<br> <p> You couldn&#x27;t mount a filesystem coming from a BE on a LE machine and vice-versa.<br> <p> e2fsck used to have an option for that:<br> -s This option will byte-swap the filesystem so that it is using<br> the normalized, standard byte-order (which is i386 or little<br> endian). If the filesystem is already in the standard byte-<br> order, e2fsck will take no action.<br> <p> -S This option will byte-swap the filesystem, regardless of its<br> current byte-order.<br> </div> Thu, 03 Sep 2020 15:49:13 +0000 Software and hardware obsolescence in the kernel https://lwn.net/Articles/830528/ https://lwn.net/Articles/830528/ excors <div class="FormattedComment"> Hmph, it&#x27;s not fair when ARM changes the definition of ARMv8-R to make me look wrong :-) . The ARMv8 ARM (<a href="https://developer.arm.com/documentation/ddi0487/fc/">https://developer.arm.com/documentation/ddi0487/fc/</a>) explicitly says the A profile &quot;Supports the A64, A32, and T32 instruction sets&quot;, the R profile &quot;Supports the A32 and T32 instruction sets&quot;, and the M profile &quot;Supports a variant of the T32 instruction set&quot;, so (according to that documentation) 64-bit is exclusively for A. The Cortex-R82 must be a new, as-yet-undocumented profile.<br> <p> Some of the existing documentation actually refers to the &quot;ARMv8-R AArch32 architecture profile&quot;, and the Cortex-R82 is called &quot;ARMv8-R AArch64&quot;, so it looks like that&#x27;s how they&#x27;re distinguishing it. The term &quot;ARMv8-R&quot; is now ambiguous and can refer to two very different architectures (one with an MMU, one without).<br> </div> Thu, 03 Sep 2020 15:37:02 +0000 Software and hardware obsolescence in the kernel https://lwn.net/Articles/830497/ https://lwn.net/Articles/830497/ pm215 <div class="FormattedComment"> Also, just announced, a 64-bit R-profile core:<br> <a href="https://community.arm.com/iot/b/internet-of-things/posts/arm-cortex-r82-high-performance-64bit-realtime-applications-processing">https://community.arm.com/iot/b/internet-of-things/posts/...</a><br> <p> So &quot;A-profile means 64 bit&quot; is now wrong from the other direction too :-)<br> <p> </div> Thu, 03 Sep 2020 13:51:10 +0000 Software and hardware obsolescence in the kernel https://lwn.net/Articles/830336/ https://lwn.net/Articles/830336/ nybble41 <div class="FormattedComment"> <font class="QuotedText">&gt; Natural languages are all about context, that&#x27;s why computers need Unicode bidi = a bit more help.</font><br> <p> Indeed, natural language is all about context. I get the feeling that we are talking about two completely different things and getting frustrated because the other person&#x27;s answers make no sense in the context of what we each thought the conversation was about. I have been trying to describe how the terms &quot;big-endian&quot; or &quot;little-endian&quot; would apply to the *visual* layout of Arabic numerals *at rest*, for example as symbols written on paper—akin to the individual bytes of an integer field which is part of a larger structure stored in RAM or a file on disk. You seem to be interpreting my statements in the context of data which is *being* written, or read, or typed into a computer—a *serialization* of the data. Or perhaps you are referring to the particular way that the digits would be serialized as Unicode code points in a text file. Naturally my statements would seem like nonsense when taken that way; they were not intended for that context.<br> <p> For data at rest there is no &quot;time&quot; component; all that matters is the relationships between the addresses or coordinates where each of the digits is stored. For digits written in a single line on paper this corresponds to linear physical coordinates; a digit may appear either to the left or the right of another symbol. In terms of the analogy to the storage of an array of multi-byte integers in computer memory, a system in which the most-significant digit of each number in a list of numbers is physically located on the same side as the first element of the list is &quot;big-endian&quot; and a system in which the least-significant digit is physically closest to the first element of the list is &quot;little-endian&quot;. Any given serialization of the data (the process of reading or writing, for example) may employ a different &quot;endianness&quot; independent of the visual layout, and indeed that is the case for Arabic numerals: they are stored or rendered (on paper or other visual medium) as little-endian, but read, written, typed, or spoken aloud with the most significant digit first, in big-endian format.<br> <p> Anyway, this debate is almost as pointless as the fictional conflict from which we get the terms &quot;big-endian&quot; and &quot;little-endian&quot;.[1] I only replied in hopes of conveying that we are arguing *past* each other more than we are actually disagreeing about anything of substance.<br> <p> [1] <a href="https://www.ling.upenn.edu/courses/Spring_2003/ling538/Lecnotes/ADfn1.htm">https://www.ling.upenn.edu/courses/Spring_2003/ling538/Le...</a><br> </div> Wed, 02 Sep 2020 03:51:01 +0000 Software and hardware obsolescence in the kernel https://lwn.net/Articles/830286/ https://lwn.net/Articles/830286/ marcH <div class="FormattedComment"> <font class="QuotedText">&gt; Are you being deliberately obtuse?</font><br> <p> I thought you were.<br> <p> Natural languages are all about context, that&#x27;s why computers need Unicode bidi = a bit more help. This has been well discussed and explained in several other places in this thread (thanks to all those who did) but if not obtuse you are definitely not receptive. Never mind.<br> <p> </div> Tue, 01 Sep 2020 16:28:37 +0000 Software and hardware obsolescence in the kernel https://lwn.net/Articles/830281/ https://lwn.net/Articles/830281/ atnot <div class="FormattedComment"> I think there&#x27;s an important caveat here in that you are talking about *binary* compatability. IME you can compile most software from decades ago today and it will run fine. I think this model of software compatibility is more desirable and I&#x27;m not sad about it for the same reason as I&#x27;m not sad the kernel doesn&#x27;t make an effort to have a stable abi. I don&#x27;t think anyone in FOSS should be spending extra effort just to make things right for a bunch of corporations that refuse to return the favor.<br> </div> Tue, 01 Sep 2020 15:10:33 +0000 Software and hardware obsolescence in the kernel https://lwn.net/Articles/830277/ https://lwn.net/Articles/830277/ nybble41 <div class="FormattedComment"> <font class="QuotedText">&gt; Of course they can, that&#x27;s called &quot;reading&quot;. I can hardly believe you wrote this...</font><br> <p> Are you being deliberately obtuse? If I sent you a picture of some digits I wrote left-to-right and some digits I wrote right-to-left, &quot;reading&quot; is not going to be enough to tell them apart. Here, I&#x27;ll demonstrate:<br> <p> 1234 <br> 1234<br> <p> To simulate physical writing I filled both lines with spaces and then overwrote the spaces with digits. One line was filled in left-to-right, and the other line right-to-left. Please tell me, which one was written left-to-right?<br> </div> Tue, 01 Sep 2020 15:01:42 +0000 Software and hardware obsolescence in the kernel https://lwn.net/Articles/830210/ https://lwn.net/Articles/830210/ farnz <p>Back in the day, you ran the applications that currently use A7 cores on 8051s and similar chips. To a very large extent, this is all a balancing act; if 64 bit cores become cheaper than 32 bit, then hardware will move to 64 bit cores, even though an 8 bit core is plenty. <p>After all, lots of devices are moving to 32 bit ARM v7-M cores, even though an 8051 is still plenty when you have 2k RAM and 16k Flash, because a 32 bit ARM is nicer to develop for, and the sheer volume of ARM cores means it's now cheaper to buy an ARM device than an 8051. Tue, 01 Sep 2020 09:31:50 +0000 Software and hardware obsolescence in the kernel https://lwn.net/Articles/830208/ https://lwn.net/Articles/830208/ tdz <div class="FormattedComment"> Another point when considering code obsolescence is how easy it is for someone to pickup the hardware and try to use it. The discussion focuses on computer architectures, which tend to remain dead after they reached their EOL. But old add-on cards and USB devices are often easy to use on modern systems. Removing the rsp drivers would be a mistake, even if the hardware is not in widespread use anymore.<br> </div> Tue, 01 Sep 2020 08:48:03 +0000 Software and hardware obsolescence in the kernel https://lwn.net/Articles/830198/ https://lwn.net/Articles/830198/ marcH <div class="FormattedComment"> <font class="QuotedText">&gt; The order in which you wrote the digits is not part of the written record. Someone coming along later can&#x27;t even tell what order the digits were recorded in</font><br> <p> Of course they can, that&#x27;s called &quot;reading&quot;. I can hardly believe you wrote this...<br> <p> Computers are not as smart though, so they may need some additional clues: <a href="https://www.w3.org/International/articles/inline-bidi-markup/uba-basics">https://www.w3.org/International/articles/inline-bidi-mar...</a><br> <p> <p> </div> Tue, 01 Sep 2020 01:23:23 +0000 Software and hardware obsolescence in the kernel https://lwn.net/Articles/830196/ https://lwn.net/Articles/830196/ notriddle <div class="FormattedComment"> August 31, 2020 at 12:00 PM<br> <p> Figure out the endianness of THAT notation!<br> </div> Tue, 01 Sep 2020 00:43:18 +0000 Software and hardware obsolescence in the kernel https://lwn.net/Articles/830190/ https://lwn.net/Articles/830190/ kjpye <div class="FormattedComment"> Actually, everybody reads numbers in a zig-zag fashion.<br> <p> If you are reading a number like 8034175, you start &quot;eight million&quot;, but you can&#x27;t get past the &quot;eight&quot; until you have scanned from the right of the number to the left to determine the magnitude.<br> <p> So a non-Arabic speaker will read left to right, encounter the number and skip to the end of the number and scan back to determine the magnitude and then read the number left to right and continue reading towards the right.<br> <p> An Arabic speaker will encounter the right-hand end of the number first, scan across it to determine the magnitude and then read the number left to right. Then they will jump back to the left of the number and continue reading towards the left.<br> <p> The only real difference is in whether the jump occurs before reading the number (non-Arabic) or after (Arabic).<br> </div> Mon, 31 Aug 2020 23:23:37 +0000 Software and hardware obsolescence in the kernel https://lwn.net/Articles/830181/ https://lwn.net/Articles/830181/ willy <div class="FormattedComment"> There&#x27;s a register in PA-RISC that reports the &quot;bit number&quot; of something. On 32-bit system, we respond by clearing 1 &lt;&lt; (31-x). On 64-bit systems, we clear 1 &lt;&lt; (63-x).<br> <p> The disease metastatized outside of IBM.<br> <p> I&#x27;m surprised nobody&#x27;s yet mentioned the mixed endian ARM FPU system (maybe it&#x27;s too old) where the bytes in each 32-bit word were stored little endian (as befitted the LE architecture that ARM was at the time), but the words were stored in the wrong order. ie 45670123<br> </div> Mon, 31 Aug 2020 22:23:59 +0000 Software and hardware obsolescence in the kernel https://lwn.net/Articles/830179/ https://lwn.net/Articles/830179/ nybble41 <div class="FormattedComment"> <font class="QuotedText">&gt; No because the numbers are not part of the text, they&#x27;re a left-to-right insert in a right-to-left text.</font><br> <p> <font class="QuotedText">&gt; As explained here, Arabic speakers start with the most significant digit when they read and write just like everyone else and that it is what should define what the &quot;lowest address&quot; is…</font><br> <p> It doesn&#x27;t make sense to talk about big-endian or little-endian without a single, consistent frame of reference for the addressing which is independent of the content. In a context where you would write the elements of a list right-to-left, that means starting with the lowest address on the right and monotonically increasing toward the left. Only after having defined this addressing scheme can we venture to answer whether the components of the list are written big-endian or little-endian with respect to that surrounding context.<br> <p> The digit you read or write first (temporally, not spatially) has nothing to do with endianness. The order in which you wrote the digits is not part of the written record. Someone coming along later can&#x27;t even tell what order the digits were recorded in; it makes no difference to them whether you wrote the least- or most-significant digit first. All they can see is the order of the digits as they are laid out visually on the page.<br> <p> In serial communication the standard is different. There it matters which digit is pronounced first, because the temporal order of the symbols is *all* you can observe.<br> </div> Mon, 31 Aug 2020 22:22:00 +0000 Software and hardware obsolescence in the kernel https://lwn.net/Articles/830168/ https://lwn.net/Articles/830168/ nybble41 <div class="FormattedComment"> It depends on what you&#x27;re doing. 64-bit addition and subtraction are generally plenty fast enough on 32-bit systems. Left or right shift (except by a constant 32 bits) requires a few more operations, and may get turned into a library call if the shift amount varies. 64x64 multiplication takes a bit more effort (three 32x32 multiplies and two additions) but will still generally be emitted inline. The real problem area is division (or modulus), which typically requires a call to libgcc or libcompiler-rt. The software to emulate unsigned 64-bit division on 32-bit x86 hardware runs to about 90 lines of optimized assembly code. The generic version[2] is about 170 lines of C. (Note: The generic version of __udivdi3 is implemented in terms of __udivmoddi4.)<br> <p> In my own extremely informal benchmarks, a series of 100M 64-bit divisions took about 40% longer to complete when compiled as a 32-bit x86 binary vs. the same code compiled for amd64. Both versions were run on the same 64-bit CPU and compiled with clang-9 -O2.<br> <p> [1] <a href="https://github.com/llvm-mirror/compiler-rt/blob/master/lib/builtins/i386/udivdi3.S">https://github.com/llvm-mirror/compiler-rt/blob/master/li...</a><br> [2] <a href="https://github.com/llvm-mirror/compiler-rt/blob/master/lib/builtins/udivmoddi4.c">https://github.com/llvm-mirror/compiler-rt/blob/master/li...</a><br> </div> Mon, 31 Aug 2020 21:44:39 +0000 Software and hardware obsolescence in the kernel https://lwn.net/Articles/830172/ https://lwn.net/Articles/830172/ marcH <div class="FormattedComment"> <font class="QuotedText">&gt; The least-significant digit is located at the lowest address, closest to the beginning of the text.</font><br> <p> No because the numbers are not part of the text, they&#x27;re a left-to-right insert in a right-to-left text. There are effectively two &quot;address spaces&quot; embedded in one another (a.k.a. &quot;zig-zag&quot;).<br> <p> As explained here, Arabic speakers start with the most significant digit when they read and write just like everyone else and that it is what should define what the &quot;lowest address&quot; is, otherwise non-Arabic speakers are misled into thinking Arabic speakers do something different which is exactly what happened in this thread. Speech readers would be confused too.<br> </div> Mon, 31 Aug 2020 21:22:30 +0000 Software and hardware obsolescence in the kernel https://lwn.net/Articles/830166/ https://lwn.net/Articles/830166/ nybble41 <div class="FormattedComment"> <font class="QuotedText">&gt; So in conclusion, numbers are *written* in big-endian direction in all common scripts, and probably read in that direction too, but this may be the opposite direction to the normal one.</font><br> <p> They&#x27;re read big-endian but written little-endian. Endianness is determined by the position (address) of each digit, not temporal order in which they&#x27;re written. The least-significant digit is located at the lowest address, closest to the beginning of the text. When &quot;serialized&quot; (read aloud or subvocalized) the numbers are converted into big-endian format, with the most significant digit spoken first.<br> </div> Mon, 31 Aug 2020 20:53:52 +0000 Software and hardware obsolescence in the kernel https://lwn.net/Articles/830165/ https://lwn.net/Articles/830165/ nybble41 <div class="FormattedComment"> <font class="QuotedText">&gt; Native Arabic readers don&#x27;t start reading the lowest-magnitude digit first, they skip to the largest digit and read left-to-right. Both when reading, and when uttering the number….</font><br> <p> So numbers are written in little-endian notation (given right-to-left addressing for &quot;unstructured&quot; data, i.e. plain text), and converted to big-endian when &quot;serialized&quot; (spoken aloud) without rearranging the rest of the text. That sounds exactly like a traditional little-endian network stack to me.<br> </div> Mon, 31 Aug 2020 20:46:11 +0000 Software and hardware obsolescence in the kernel https://lwn.net/Articles/830155/ https://lwn.net/Articles/830155/ smoogen <div class="FormattedComment"> Making chips with a specific bit size has a cost involved in that the physical space used for that manufacturing can&#x27;t be used for something else. Also while the main blue-print may not need to change, you can only use the &#x27;chip&#x27; dies for a certain amount before putting together new parts for it. Each time that happens it means you have to recertify the chip matches what was originally built. If you decide that you are going to put together a 10nm chip instead of the 30 nm 32 bit you had from a long time ago.. it is a completely new design. That takes costs and it also has a risk of failure and dealing with again a whole line of equipment being used for a specific low build chip. <br> <p> Instead it is a lot &#x27;cheaper&#x27; in manufacturing to come up with a 64 or 128 bit chip you can use across lines and maybe stick some stuff in front which makes it act like its 8bit or 32 bit ancestor. That means you can shrink the amount of factory space you need which cuts costs. <br> </div> Mon, 31 Aug 2020 18:08:42 +0000 Software and hardware obsolescence in the kernel https://lwn.net/Articles/830146/ https://lwn.net/Articles/830146/ marcH <div class="FormattedComment"> <font class="QuotedText">&gt; Yikes! </font><br> <p> This zig-zag doesn&#x27;t feel like a very hard hand writing challenge, I mean not unless you have to deal with crazy long numbers. For computers and terminals it&#x27;s apparently a bit harder :-)<br> <p> <font class="QuotedText">&gt; I guess that’s one concrete reason why left-to-right scripts are superior (apart from ink smudging).</font><br> <p> Ink smudging _and_ hiding what you just wrote. Look at how left-handed people tend to bend their wrist, even with a pencil.<br> <p> My urban legend is that right-to-left languages were superior for... carving. Ten commandments and all that :-)<br> <p> </div> Mon, 31 Aug 2020 17:11:31 +0000 Software and hardware obsolescence in the kernel https://lwn.net/Articles/830058/ https://lwn.net/Articles/830058/ geert <div class="FormattedComment"> No idea. I hope until a version that includes proper y2038 support ;-)<br> </div> Mon, 31 Aug 2020 12:09:46 +0000 Software and hardware obsolescence in the kernel https://lwn.net/Articles/830051/ https://lwn.net/Articles/830051/ arnd <div class="FormattedComment"> Any guess how long they plan to update kernels though?<br> <p> If they are already on older software releases, updating to modern kernel and glibc is already going to be tricky, and getting worse as time passes. I hope we can still update a lot of the Armv7 systems that are already deployed<br> <p> Incidentally it seems that the last CPU used on MVME cards (64-bit QorIQ P5020) is at the end of its 10 year expected life, but support for that generation never made it upstream. The 2019 manual for the previous generation (32-bit MVME7100/MPC8641D) lists Linux-2.6.25 as the default, with Linux-2.4 still an option for older machines &quot;beyond 2020&quot;.<br> <a href="https://github.com/voltumna-linux/meta-artesyn/blob/master/recipes-kernel/linux">https://github.com/voltumna-linux/meta-artesyn/blob/maste...</a> on the other hand does have updates for modern kernels.<br> </div> Mon, 31 Aug 2020 11:46:00 +0000 Software and hardware obsolescence in the kernel https://lwn.net/Articles/830052/ https://lwn.net/Articles/830052/ pm215 <div class="FormattedComment"> QEMU used to use the _fast_ integer types in some places (notably the floating point emulation code). We switched to using the exact-width types, because in practice almost all of our supported host systems used the same choice of underlying size for the fast-types, and we didn&#x27;t want to find ourselves running into &quot;code works fine on almost all systems including the ones it was developed and tested on and that 99% of the dev community use, but breaks on the less-common platform that defines the size of one of these types differently&quot; bugs -- we preferred &quot;same behaviour on all platforms&quot;. (IIRC one of the BSDs made slightly different choices, maybe for the 16-bit fast type.)<br> <p> </div> Mon, 31 Aug 2020 09:42:45 +0000 Software and hardware obsolescence in the kernel https://lwn.net/Articles/830050/ https://lwn.net/Articles/830050/ geert <div class="FormattedComment"> Probably far beyond y2038...<br> <p> A few years ago, someone who worked for the Australian navy told me that, given how low they kept running m68k MVME boxes, he expected the &quot;new&quot; PPC MVME boxes to keep running beyond y2038. So yes, &quot;modern&quot; 32-bit ARM should easily surpass that.<br> </div> Mon, 31 Aug 2020 09:18:11 +0000 Software and hardware obsolescence in the kernel https://lwn.net/Articles/830046/ https://lwn.net/Articles/830046/ jem <div class="FormattedComment"> Not all all devices need to consume forever growing hardware resources. And if some do, new applications will spring up below that are quite happy with, say, 256 MB of RAM and a 200 MHz 32-bit CPU. For some use cases a capable A/D converter is more important than a GPU or gigabit networking. There is a myriad of chips on the market with 32-bit ARM A7 cores fully capable of running Linux. Back in the day you could boot the Linux kernel on a PC with only a few megabytes of RAM.<br> </div> Mon, 31 Aug 2020 08:21:52 +0000