<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl" media="all"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
<title>Roastidio.us Tagged with linux</title>
<link>https://roastidio.us/tag/2428</link>
<atom:link href="https://roastidio.us/tagged_with/linux" rel="self" type="application/rss+xml"></atom:link>
<description>Roastidio.us Tagged with linux</description>
<item>
<title>&quot;1195725856&quot; and other mysterious numbers</title>
<link>https://chrisdown.name/2020/01/13/1195725856-and-friends-the-origins-of-mysterious-numbers.html</link>
<enclosure type="image/jpeg" length="0" url="https://chrisdown.name/images/hnr.jpg"></enclosure>
<guid isPermaLink="false">FvFXefXnw2i4TR4-TInadpXz5YnABjEY9QboCw==</guid>
<pubDate>Fri, 24 Apr 2026 05:13:34 +0000</pubDate>
<description>Last week was the final week for this half&#39;s performance review at Facebook, where we write summaries of work and impact we and our peers had over the last h...</description>
<content:encoded>&lt;h1&gt;&amp;quot;1195725856&amp;quot; and other mysterious numbers&lt;/h1&gt;&lt;p&gt;Last week was the final week for this half&amp;#39;s performance review at Facebook, where we write summaries of work and impact we and our peers had over the last half year. Naturally, that can only mean one thing: the entire company trends towards peak levels of procrastination, doing literally anything and everything to avoid the unspeakable horror of having to write a few paragraphs of text.&lt;/p&gt;&lt;p&gt;My personal distraction of choice a few days before the deadline was looking at lines like this, spamming from some hosts serving NFS traffic:&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;pre&gt;&lt;code&gt;RPC: fragment too large: 1195725856
RPC: fragment too large: 1212498244&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Let&amp;#39;s take a look at the kernel code responsible for generating this warning. Grepping for &amp;quot;fragment too large&amp;quot; shows it comes from &lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/net/sunrpc/svcsock.c?h=v5.4#n943&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;svc_tcp_recv_record&lt;/code&gt; in net/sunrpc/svcsock.c&lt;/a&gt;:&lt;/p&gt;&lt;p&gt;So we&amp;#39;re erroring out because we got passed some message which is beyond &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sv_max_mesg&lt;/code&gt;, cool. But where does this come from? Looking at &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;svc_sock_reclen&lt;/code&gt; shows the following:&lt;/p&gt;&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ntohl&lt;/code&gt; converts a uint from network byte ordering to the host&amp;#39;s byte ordering. The bitwise &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;AND&lt;/code&gt; with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;RPC_FRAGMENT_SIZE_MASK&lt;/code&gt; results in only some of the data being retained, and looking at the definition shows us how many bits that is:&lt;/p&gt;&lt;figure&gt;&lt;pre&gt;&lt;code class=&quot;language-c&quot;&gt;#define RPC_LAST_STREAM_FRAGMENT (1U &amp;lt;&amp;lt; 31)
#define RPC_FRAGMENT_SIZE_MASK   (~RPC_LAST_STREAM_FRAGMENT)&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;p&gt;Okay, so we will only keep the first 31 bits and zero out the high bit, since &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;~&lt;/code&gt; is bitwise &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;NOT&lt;/code&gt;.&lt;/p&gt;&lt;p&gt;That means that these numbers come from the first four bytes of the fragment, omitting the final highest bit, which is reserved to record whether the fragment is the last one for this record (see &lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/linux/sunrpc/svcsock.h?h=v5.4#n47&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;svc_sock_final_rec&lt;/code&gt;&lt;/a&gt;). The fact that the error happens so early in fragment parsing in particular got me thinking that the fragment may not be protocol-confirming in the first place, since it&amp;#39;s not like we got very far in processing at all, not even past the first four bytes. So what &lt;em&gt;are&lt;/em&gt; these first four bytes, then? Looking at the numbers in hex shows something interesting:&lt;/p&gt;&lt;p&gt;These are all really tightly clustered, generally from 0x40 to 0x50, which implies there might actually be some semantic meaning per-byte. And since these are &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;char&lt;/code&gt;-sized, here&amp;#39;s a guess about what might be encoded in them…&lt;/p&gt;&lt;p&gt;Oh dear. Somebody is sending HTTP requests to NFS RPC, but at least we are outright rejecting the fragments instead of actually allocating and dirtying a gigabyte of memory.&lt;/p&gt;&lt;p&gt;Next up was finding out who&amp;#39;s actually sending these requests. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;rpcinfo -p&lt;/code&gt; shows NFS is listening on the default port, 2049, so we can set up a trap with tcpdump like so:&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;pre&gt;&lt;code&gt;tcpdump -i any -w trap.pcap dst port 2049
# ...wait for logs to appear again, then ^C...
tcpdump -qX -r trap.pcap | less +/HEAD&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;From here, it was pretty easy to catch the origin of these requests by tracing back to the origin host and service using the captured pcap data. After that one can coordinate with the team responsible to work out what&amp;#39;s actually going on here, and avoid these errant packets being sent out in the first place. As a bonus, you also get to learn more about parts of infrastructure you might otherwise not interact with, which is always cool. :-)&lt;/p&gt;&lt;p&gt;Funnily enough, if you Google for these numbers you can find tons of threads with people encountering them in the wild. Maybe we should start printing ASCII in future in some of the error paths hit when all character values are between 0x0 and 0x7F. I&amp;#39;m sure it would help a lot of people realise what&amp;#39;s going on much more quickly. Maybe I&amp;#39;ll send a patch upstream to do that in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;svc_tcp_recv_record&lt;/code&gt; and a few other places in the kernel that directly parse the first few data bytes from packets as an integer, let&amp;#39;s see.&lt;/p&gt;&lt;p&gt;Here&amp;#39;s a trivial program that can generate a bunch of other integers for HTTP that might be of interest:&lt;/p&gt;&lt;figure&gt;&lt;pre&gt;&lt;code class=&quot;language-c&quot;&gt;#include &amp;lt;assert.h&amp;gt;
#include &amp;lt;byteswap.h&amp;gt;
#include &amp;lt;inttypes.h&amp;gt;
#include &amp;lt;limits.h&amp;gt;
#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;string.h&amp;gt;

static int system_is_little_endian(void) {
    static const int tmp = 1;
    return *(const char *)&amp;amp;tmp == 1;
}

#define print_reinterpreted_inner(type, fmt, bs_func, hdr)      \
    do {                                                        \
        if (strlen(hdr) &amp;gt;= sizeof(type)) {                      \
            type *_hdr_conv = (type *)hdr;                      \
            type _le, _be;                                      \
            if (system_is_little_endian()) {                    \
                _le = *_hdr_conv;                               \
                _be = bs_func(*_hdr_conv);                      \
            } else {                                            \
                _le = bs_func(*_hdr_conv);                      \
                _be = *_hdr_conv;                               \
            }                                                   \
            printf(&amp;quot;%.*s,%zu,%&amp;quot; fmt &amp;quot;,%&amp;quot; fmt &amp;quot;\n&amp;quot;,              \
                   (int)strlen(hdr) - 2, hdr, sizeof(type),     \
                   _le, _be);                                   \
        }                                                       \
    } while (0)

#define print_reinterpreted(bits, hdr)                          \
    print_reinterpreted_inner(uint##bits##_t, PRIu##bits,       \
                              bswap_##bits, hdr)

int main(void) {
    const char *methods[] = {&amp;quot;GET&amp;quot;,   &amp;quot;HEAD&amp;quot;,   &amp;quot;POST&amp;quot;,
                             &amp;quot;PUT&amp;quot;,   &amp;quot;DELETE&amp;quot;, &amp;quot;OPTIONS&amp;quot;,
                             &amp;quot;TRACE&amp;quot;, &amp;quot;PATCH&amp;quot;,  &amp;quot;CONNECT&amp;quot;};
    size_t i;

    printf(&amp;quot;data,bytes,little-endian,big-endian\n&amp;quot;);

    for (i = 0; i &amp;lt; sizeof(methods) / sizeof(methods[0]); i++) {
        int ret;
        char hdr[16];
        unsigned const char *check =
            (unsigned const char *)methods[i];

        /* No high bit, so no need to check signed integers */
        assert(!(check[0] &amp;amp; (1U &amp;lt;&amp;lt; (CHAR_BIT - 1))));

        ret = snprintf(hdr, sizeof(hdr), &amp;quot;%s /&amp;quot;, methods[i]);
        assert(ret &amp;gt; 0 &amp;amp;&amp;amp; ret &amp;lt; (int)sizeof(hdr));

        print_reinterpreted(64, hdr);
        print_reinterpreted(32, hdr);
        print_reinterpreted(16, hdr);
    }
}&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;p&gt;And the results:&lt;/p&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;data&lt;/th&gt;&lt;th&gt;bytes&lt;/th&gt;&lt;th&gt;little-endian&lt;/th&gt;&lt;th&gt;big-endian&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;GET&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;542393671&lt;/td&gt;&lt;td&gt;1195725856&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;GET&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;17735&lt;/td&gt;&lt;td&gt;18245&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HEAD&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;1145128264&lt;/td&gt;&lt;td&gt;1212498244&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HEAD&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;17736&lt;/td&gt;&lt;td&gt;18501&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;POST&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;1414745936&lt;/td&gt;&lt;td&gt;1347375956&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;POST&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;20304&lt;/td&gt;&lt;td&gt;20559&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PUT&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;542397776&lt;/td&gt;&lt;td&gt;1347769376&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PUT&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;21840&lt;/td&gt;&lt;td&gt;20565&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DELETE&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;3395790347279549764&lt;/td&gt;&lt;td&gt;4919422028622405679&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DELETE&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;1162626372&lt;/td&gt;&lt;td&gt;1145392197&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DELETE&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;17732&lt;/td&gt;&lt;td&gt;17477&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;OPTIONS&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;2329291534720323663&lt;/td&gt;&lt;td&gt;5715160600973038368&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;OPTIONS&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;1230262351&lt;/td&gt;&lt;td&gt;1330664521&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;OPTIONS&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;20559&lt;/td&gt;&lt;td&gt;20304&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;TRACE&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;1128354388&lt;/td&gt;&lt;td&gt;1414676803&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;TRACE&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;21076&lt;/td&gt;&lt;td&gt;21586&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PATCH&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;1129595216&lt;/td&gt;&lt;td&gt;1346458691&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PATCH&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;16720&lt;/td&gt;&lt;td&gt;20545&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CONNECT&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;2329560872202948419&lt;/td&gt;&lt;td&gt;4850181421777769504&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CONNECT&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;1313754947&lt;/td&gt;&lt;td&gt;1129270862&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CONNECT&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;20291&lt;/td&gt;&lt;td&gt;17231&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;Here&amp;#39;s an expandable complete list with all methods &lt;a href=&quot;https://www.iana.org/assignments/http-methods/http-methods.xhtml&quot;&gt;known to IANA&lt;/a&gt;:&lt;/p&gt;&lt;details&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;data&lt;/th&gt;&lt;th&gt;bytes&lt;/th&gt;&lt;th&gt;little-endian&lt;/th&gt;&lt;th&gt;big-endian&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;ACL&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;541868865&lt;/td&gt;&lt;td&gt;1094929440&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ACL&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;17217&lt;/td&gt;&lt;td&gt;16707&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BASELINE-CONTROL&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;4994009628729884994&lt;/td&gt;&lt;td&gt;4774188637087157829&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BASELINE-CONTROL&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;1163084098&lt;/td&gt;&lt;td&gt;1111577413&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BASELINE-CONTROL&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;16706&lt;/td&gt;&lt;td&gt;16961&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BIND&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;1145981250&lt;/td&gt;&lt;td&gt;1112100420&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BIND&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;18754&lt;/td&gt;&lt;td&gt;16969&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CHECKIN&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;2327878644997113923&lt;/td&gt;&lt;td&gt;4848201154192559648&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CHECKIN&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;1128613955&lt;/td&gt;&lt;td&gt;1128809795&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CHECKIN&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;18499&lt;/td&gt;&lt;td&gt;17224&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CHECKOUT&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;6076850456876107843&lt;/td&gt;&lt;td&gt;4848201154192954708&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CHECKOUT&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;1128613955&lt;/td&gt;&lt;td&gt;1128809795&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CHECKOUT&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;18499&lt;/td&gt;&lt;td&gt;17224&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CONNECT&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;2329560872202948419&lt;/td&gt;&lt;td&gt;4850181421777769504&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CONNECT&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;1313754947&lt;/td&gt;&lt;td&gt;1129270862&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CONNECT&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;20291&lt;/td&gt;&lt;td&gt;17231&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;COPY&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;1498435395&lt;/td&gt;&lt;td&gt;1129271385&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;COPY&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;20291&lt;/td&gt;&lt;td&gt;17231&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DELETE&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;3395790347279549764&lt;/td&gt;&lt;td&gt;4919422028622405679&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DELETE&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;1162626372&lt;/td&gt;&lt;td&gt;1145392197&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DELETE&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;17732&lt;/td&gt;&lt;td&gt;17477&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;GET&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;542393671&lt;/td&gt;&lt;td&gt;1195725856&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;GET&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;17735&lt;/td&gt;&lt;td&gt;18245&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HEAD&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;1145128264&lt;/td&gt;&lt;td&gt;1212498244&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HEAD&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;17736&lt;/td&gt;&lt;td&gt;18501&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LABEL&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;1161969996&lt;/td&gt;&lt;td&gt;1279345221&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LABEL&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;16716&lt;/td&gt;&lt;td&gt;19521&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LINK&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;1263421772&lt;/td&gt;&lt;td&gt;1279872587&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LINK&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;18764&lt;/td&gt;&lt;td&gt;19529&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LOCK&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;1262702412&lt;/td&gt;&lt;td&gt;1280262987&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LOCK&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;20300&lt;/td&gt;&lt;td&gt;19535&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MERGE&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;1196574029&lt;/td&gt;&lt;td&gt;1296388679&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MERGE&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;17741&lt;/td&gt;&lt;td&gt;19781&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MKACTIVITY&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;5284491839020288845&lt;/td&gt;&lt;td&gt;5569617121606456905&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MKACTIVITY&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;1128352589&lt;/td&gt;&lt;td&gt;1296777539&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MKACTIVITY&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;19277&lt;/td&gt;&lt;td&gt;19787&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MKCALENDAR&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;4921947636577291085&lt;/td&gt;&lt;td&gt;5569619311905295940&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MKCALENDAR&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;1094929229&lt;/td&gt;&lt;td&gt;1296778049&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MKCALENDAR&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;19277&lt;/td&gt;&lt;td&gt;19787&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MKCOL&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;1329810253&lt;/td&gt;&lt;td&gt;1296778063&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MKCOL&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;19277&lt;/td&gt;&lt;td&gt;19787&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MKREDIRECTREF&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;4995135494276926285&lt;/td&gt;&lt;td&gt;5569635821625627205&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MKREDIRECTREF&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;1163021133&lt;/td&gt;&lt;td&gt;1296781893&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MKREDIRECTREF&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;19277&lt;/td&gt;&lt;td&gt;19787&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MKWORKSPACE&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;5788052762991741773&lt;/td&gt;&lt;td&gt;5569641362368451408&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MKWORKSPACE&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;1331120973&lt;/td&gt;&lt;td&gt;1296783183&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MKWORKSPACE&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;19277&lt;/td&gt;&lt;td&gt;19787&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MOVE&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;1163284301&lt;/td&gt;&lt;td&gt;1297045061&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MOVE&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;20301&lt;/td&gt;&lt;td&gt;19791&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;OPTIONS&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;2329291534720323663&lt;/td&gt;&lt;td&gt;5715160600973038368&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;OPTIONS&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;1230262351&lt;/td&gt;&lt;td&gt;1330664521&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;OPTIONS&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;20559&lt;/td&gt;&lt;td&gt;20304&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ORDERPATCH&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;6071222086951785039&lt;/td&gt;&lt;td&gt;5715705941611004244&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ORDERPATCH&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;1162105423&lt;/td&gt;&lt;td&gt;1330791493&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ORDERPATCH&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;21071&lt;/td&gt;&lt;td&gt;20306&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PATCH&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;1129595216&lt;/td&gt;&lt;td&gt;1346458691&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PATCH&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;16720&lt;/td&gt;&lt;td&gt;20545&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;POST&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;1414745936&lt;/td&gt;&lt;td&gt;1347375956&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;POST&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;20304&lt;/td&gt;&lt;td&gt;20559&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PRI&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;541676112&lt;/td&gt;&lt;td&gt;1347569952&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PRI&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;21072&lt;/td&gt;&lt;td&gt;20562&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PROPFIND&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;4921952009106444880&lt;/td&gt;&lt;td&gt;5787775677319695940&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PROPFIND&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;1347375696&lt;/td&gt;&lt;td&gt;1347571536&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PROPFIND&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;21072&lt;/td&gt;&lt;td&gt;20562&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PROPPATCH&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;4851574511785431632&lt;/td&gt;&lt;td&gt;5787775677486945347&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PROPPATCH&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;1347375696&lt;/td&gt;&lt;td&gt;1347571536&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PROPPATCH&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;21072&lt;/td&gt;&lt;td&gt;20562&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PUT&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;542397776&lt;/td&gt;&lt;td&gt;1347769376&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PUT&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;21840&lt;/td&gt;&lt;td&gt;20565&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;REBIND&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;3395789222064571730&lt;/td&gt;&lt;td&gt;5928217367116259375&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;REBIND&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;1229079890&lt;/td&gt;&lt;td&gt;1380270665&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;REBIND&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;17746&lt;/td&gt;&lt;td&gt;21061&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;REPORT&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;3395806831532066130&lt;/td&gt;&lt;td&gt;5928232786117009455&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;REPORT&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;1330660690&lt;/td&gt;&lt;td&gt;1380274255&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;REPORT&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;17746&lt;/td&gt;&lt;td&gt;21061&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SEARCH&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;3395793573017371987&lt;/td&gt;&lt;td&gt;6000273900112977967&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SEARCH&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;1380009299&lt;/td&gt;&lt;td&gt;1397047634&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SEARCH&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;17747&lt;/td&gt;&lt;td&gt;21317&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;TRACE&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;1128354388&lt;/td&gt;&lt;td&gt;1414676803&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;TRACE&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;21076&lt;/td&gt;&lt;td&gt;21586&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;UNBIND&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;3395789222064574037&lt;/td&gt;&lt;td&gt;6146923424020439087&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;UNBIND&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;1229082197&lt;/td&gt;&lt;td&gt;1431192137&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;UNBIND&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;20053&lt;/td&gt;&lt;td&gt;21838&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;UNCHECKOUT&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;5713734517093781077&lt;/td&gt;&lt;td&gt;6146924519086050127&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;UNCHECKOUT&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;1212370517&lt;/td&gt;&lt;td&gt;1431192392&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;UNCHECKOUT&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;20053&lt;/td&gt;&lt;td&gt;21838&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;UNLINK&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;3395796918646623829&lt;/td&gt;&lt;td&gt;6146934419137175599&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;UNLINK&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;1229737557&lt;/td&gt;&lt;td&gt;1431194697&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;UNLINK&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;20053&lt;/td&gt;&lt;td&gt;21838&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;UNLOCK&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;3395796871502646869&lt;/td&gt;&lt;td&gt;6146934444722429999&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;UNLOCK&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;1330400853&lt;/td&gt;&lt;td&gt;1431194703&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;UNLOCK&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;20053&lt;/td&gt;&lt;td&gt;21838&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;UPDATE&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;3395790347211919445&lt;/td&gt;&lt;td&gt;6147488538738106415&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;UPDATE&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;1094996053&lt;/td&gt;&lt;td&gt;1431323713&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;UPDATE&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;20565&lt;/td&gt;&lt;td&gt;21840&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;UPDATEREDIRECTREF&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;4995131164881866837&lt;/td&gt;&lt;td&gt;6147488538738119237&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;UPDATEREDIRECTREF&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;1094996053&lt;/td&gt;&lt;td&gt;1431323713&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;UPDATEREDIRECTREF&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;20565&lt;/td&gt;&lt;td&gt;21840&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;VERSION-CONTROL&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;3264633956239295830&lt;/td&gt;&lt;td&gt;6216465378320535085&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;VERSION-CONTROL&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;1397900630&lt;/td&gt;&lt;td&gt;1447383635&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;VERSION-CONTROL&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;17750&lt;/td&gt;&lt;td&gt;22085&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/details&gt;&lt;p&gt;As expected, if you Google for most of these numbers, you can find an endless supply of questions mentioning them in error messages (some previously unidentified examples which I replied to: &lt;a href=&quot;https://github.com/inconshreveable/ngrok/issues/545&quot;&gt;1&lt;/a&gt;, &lt;a href=&quot;https://stackoverflow.com/a/59730358/945780&quot;&gt;2&lt;/a&gt;, &lt;a href=&quot;https://github.com/ehang-io/nps/issues/315&quot;&gt;3&lt;/a&gt;).&lt;/p&gt;&lt;p&gt;Hopefully this post will help people find their &lt;em&gt;real&lt;/em&gt; problem – using the wrong protocol – more quickly in future. In particular, if your affected application crashed due to ENOMEM/&amp;quot;Out of memory&amp;quot;, please especially consider submitting a patch to clamp the size to some reasonable maximum :-)&lt;/p&gt;</content:encoded>
</item>
<item>
<title>Chris Down, Linux SRE</title>
<link>https://chrisdown.name/</link>
<enclosure type="image/jpeg" length="0" url="https://chrisdown.name/images/hnr.jpg"></enclosure>
<guid isPermaLink="false">y_M1aYUYsRH373ZijFLr7l56FAQ1EnQ4BCY6Dg==</guid>
<pubDate>Fri, 24 Apr 2026 05:13:32 +0000</pubDate>
<description>Linux SRE and developer living in London, England, currently helping Meta scale to over 3 billion users.</description>
<content:encoded>&lt;p&gt;Hey there! I&amp;#39;m a kernel developer and SRE, primarily working on Linux memory management. I work at &lt;a href=&quot;https://meta.com&quot;&gt;Meta&lt;/a&gt; as part of the Linux Kernel team, and am responsible for improving the overall reliability and performance of user-facing products from an infrastructure perspective. In general, my drive is in conceiving, designing, and improving systems that make Meta and the wider industry better.&lt;/p&gt;&lt;p&gt;Most of my active work revolves around making operating systems more efficient at scale, developing things like &lt;a href=&quot;https://github.com/torvalds/linux&quot;&gt;the Linux kernel&lt;/a&gt;, &lt;a href=&quot;https://www.youtube.com/watch?v=ikZ8_mRotT4&quot;&gt;cgroups&lt;/a&gt;, &lt;a href=&quot;https://github.com/systemd/systemd&quot;&gt;systemd&lt;/a&gt;, and a number of other emerging technologies.&lt;/p&gt;&lt;p&gt;Outside of that, I dabble in &lt;a href=&quot;https://chrisdown.photo/&quot;&gt;photography&lt;/a&gt;, &lt;a href=&quot;https://chrisdown.name/birds/&quot;&gt;birding&lt;/a&gt;, and &lt;a href=&quot;https://chrisdown.name/racing.html&quot;&gt;sim racing&lt;/a&gt;.&lt;/p&gt;&lt;h2&gt;Popular articles&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://chrisdown.name/2018/01/02/in-defence-of-swap.html&quot;&gt;In defence of swap: common misconceptions&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://chrisdown.name/2020/01/13/1195725856-and-friends-the-origins-of-mysterious-numbers.html&quot;&gt;&amp;quot;1195725856&amp;quot; and other mysterious numbers&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://chrisdown.name/2018/04/17/kernel-adventures-the-curious-case-of-squashfs-stalls.html&quot;&gt;The curious case of stalled squashfs reads&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://chrisdown.name/2019/07/18/linux-memory-management-at-scale.html&quot;&gt;Linux memory management at scale&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://chrisdown.name/2024/02/05/reliably-creating-d-state-processes-on-demand.html&quot;&gt;Controllable D state (uninterruptible sleep) processes&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;More posts are available on the &lt;a href=&quot;https://chrisdown.name/archive.html&quot;&gt;archive page&lt;/a&gt;.&lt;/p&gt;&lt;h2&gt;Software&lt;/h2&gt;&lt;p&gt;I am a creator, contributor to, or maintainer of a number of projects, including:&lt;/p&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/facebookincubator/below&quot;&gt;below&lt;/a&gt;&lt;/td&gt;&lt;td&gt;time-travelling resource monitor for Linux&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=ikZ8_mRotT4&quot;&gt;cgroup v2&lt;/a&gt;&lt;/td&gt;&lt;td&gt;modern resource control and accounting&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/cdown/clipmenu&quot;&gt;clipmenu&lt;/a&gt;&lt;/td&gt;&lt;td&gt;clipboard manager with a dmenu frontend&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=&quot;https://dwm.suckless.org/&quot;&gt;dwm&lt;/a&gt;&lt;/td&gt;&lt;td&gt;dynamic window manager for X&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/cdown/exifrename&quot;&gt;exifrename&lt;/a&gt;&lt;/td&gt;&lt;td&gt;fast renames based on EXIF data&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/torvalds/linux&quot;&gt;Linux&lt;/a&gt;&lt;/td&gt;&lt;td&gt;free and open-source OS kernel&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/cdown/mack&quot;&gt;mack&lt;/a&gt;&lt;/td&gt;&lt;td&gt;opinionated, fast music organiser&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/mpv-player/mpv&quot;&gt;mpv&lt;/a&gt;&lt;/td&gt;&lt;td&gt;videos on the command line&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/cdown/nota&quot;&gt;nota&lt;/a&gt;&lt;/td&gt;&lt;td&gt;simple daily logs with your $EDITOR + git&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/facebookincubator/oomd&quot;&gt;oomd&lt;/a&gt;&lt;/td&gt;&lt;td&gt;next-generation OOM killer&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/facebook/osquery&quot;&gt;osquery&lt;/a&gt;&lt;/td&gt;&lt;td&gt;OS instrumentation, monitoring, and analysis framework&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=&quot;https://www.passwordstore.org/&quot;&gt;pass&lt;/a&gt;&lt;/td&gt;&lt;td&gt;the standard Unix password manager&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/cdown/psi-notify&quot;&gt;psi-notify&lt;/a&gt;&lt;/td&gt;&lt;td&gt;proactively detect machine oversaturation&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/cdown/srt&quot;&gt;srt&lt;/a&gt;&lt;/td&gt;&lt;td&gt;tools and library to handle &lt;a href=&quot;https://en.wikipedia.org/wiki/SubRip#SubRip_text_file_format&quot;&gt;SRT subtitles&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/systemd/systemd&quot;&gt;systemd&lt;/a&gt;&lt;/td&gt;&lt;td&gt;system and service manager for Linux&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=&quot;https://git-scm.com/book/en/v2&quot;&gt;the Pro Git book&lt;/a&gt;&lt;/td&gt;&lt;td&gt;guide to Git and its internals&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/cdown/tzupdate&quot;&gt;tzupdate&lt;/a&gt;&lt;/td&gt;&lt;td&gt;update /etc/localtime automatically using geolocation&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/cdown/xinput-toggle&quot;&gt;xinput-toggle&lt;/a&gt;&lt;/td&gt;&lt;td&gt;tool to manipulate arbitrary xinput devices&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/cdown/zcfan&quot;&gt;zcfan&lt;/a&gt;&lt;/td&gt;&lt;td&gt;zero-configuration fan control for ThinkPad&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=&quot;https://www.zsh.org/&quot;&gt;zsh&lt;/a&gt;&lt;/td&gt;&lt;td&gt;modern Bourne-like shell&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;You can find other projects on my &lt;a href=&quot;https://github.com/cdown&quot;&gt;GitHub&lt;/a&gt;, although if they&amp;#39;re not on this list, I&amp;#39;m probably not actively developing or maintaining them.&lt;/p&gt;&lt;h2&gt;Selected talks&lt;/h2&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=7sjyqiMjmZk&quot;&gt;Lies programmers believe about memory&lt;/a&gt;&lt;/td&gt;&lt;td&gt;at &lt;a href=&quot;https://www.usenix.org/conference/srecon25americas/presentation/down&quot;&gt;SREcon&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=LX6fMlIYZcg&quot;&gt;7 years of cgroup v2&lt;/a&gt;&lt;/td&gt;&lt;td&gt;at &lt;a href=&quot;https://fosdem.org/2023/schedule/event/container_cgroup_v2/&quot;&gt;FOSDEM&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=kPMZYoRxtmg&quot;&gt;The future of Linux resource control&lt;/a&gt;&lt;/td&gt;&lt;td&gt;at &lt;a href=&quot;https://www.usenix.org/conference/lisa21&quot;&gt;LISA&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=&quot;https://chrisdown.name/2019/07/18/linux-memory-management-at-scale.html&quot;&gt;Linux memory management at scale&lt;/a&gt;&lt;/td&gt;&lt;td&gt;at &lt;a href=&quot;https://www.usenix.org/conference/srecon19asia/presentation/down&quot;&gt;SREcon&lt;/a&gt;/&lt;a href=&quot;https://fosdem.org/2020/schedule/event/containers_memory_management/&quot;&gt;FOSDEM&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=ikZ8_mRotT4&quot;&gt;cgroup v2: Linux&amp;#39;s new unified resource hierarchy&lt;/a&gt;&lt;/td&gt;&lt;td&gt;at &lt;a href=&quot;https://archive.fosdem.org/2017/schedule/event/cgroupv2/&quot;&gt;FOSDEM&lt;/a&gt;/&lt;a href=&quot;https://twitter.com/ASGConf/status/922010850218725376&quot;&gt;ASG&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=9Ya8H-9Hrp4&quot;&gt;Lessons learned running SSL at scale&lt;/a&gt;&lt;/td&gt;&lt;td&gt;at &lt;a href=&quot;https://archive.fosdem.org/2016/schedule/event/sslmanagement/&quot;&gt;FOSDEM&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;The Web Foundation model&lt;/td&gt;&lt;td&gt;lecture at &lt;a href=&quot;https://www.ucl.ac.uk/&quot;&gt;UCL&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h2&gt;Other content on this domain&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://chrisdown.name/archive.html&quot;&gt;Assorted technology-related articles&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://chrisdown.name/birds/&quot;&gt;Bird lifer list&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://chrisdown.name/tf2&quot;&gt;My old TF2 configs&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://chrisdown.name/oldgames.html&quot;&gt;Old game miscellany&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://chrisdown.name/privacy.html&quot;&gt;Privacy policy&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://chrisdown.name/builds&quot;&gt;Project quality dashboard&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://chrisdown.name/rym.html&quot;&gt;RYM profile export&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://chrisdown.name/racing.html&quot;&gt;Sim racing data/notes&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Profiles elsewhere&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://chrisdown.photo/&quot;&gt;chrisdown.photo&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://facebook.com/christopherdown&quot;&gt;Facebook&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.flickr.com/photos/chrisdown/albums/72157711447135721&quot;&gt;Flickr&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://github.com/cdown&quot;&gt;GitHub&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://keybase.io/cdown&quot;&gt;Keybase&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://last.fm/user/unixchris&quot;&gt;last.fm&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.linkedin.com/in/chrisldown&quot;&gt;LinkedIn&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://fosstodon.org/@cdown&quot;&gt;Mastodon&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.reddit.com/user/chrisdown/&quot;&gt;Reddit&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://twitter.com/unixchris&quot;&gt;Twitter&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://unix.stackexchange.com/users/10762/chris-down?tab=profile&quot;&gt;Unix and Linux Stack Exchange&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</content:encoded>
</item>
<item>
<title>[Repost] WSL9x</title>
<link>https://danq.me/2026/04/22/wsl9x/</link>
<guid isPermaLink="false">_bhlTrKvZ8Zj9xxDhpKg0LK3T46zMRtJ7APKaw==</guid>
<pubDate>Fri, 24 Apr 2026 02:40:50 +0000</pubDate>
<description>Hailey Somerville&#39;s managed to get something akin to WSL working on Windows 95. Who&#39;d have even thought such a thing was possible?</description>
<content:encoded>&lt;blockquote&gt;&lt;div&gt;&lt;p&gt;WSL9x runs a modern Linux kernel (6.19 at time of writing) cooperatively inside the Windows 9x kernel, enabling users to take advantage of the full suite of capabilities of both operating systems at the same time, including paging, memory protection, and pre-emptive scheduling. Run all your favourite applications side by side – no rebooting required!&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://danq.me/wp-content/uploads/2026/04/wsl9x-screenshot.png&quot;&gt;&lt;img src=&quot;https://danq.me/wp-content/uploads/2026/04/wsl9x-screenshot-640x512.png&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;…&lt;/p&gt;&lt;/div&gt;&lt;footer&gt;&lt;cite&gt;&lt;a href=&quot;https://hails.org/&quot;&gt;Hailey Somerville&lt;/a&gt;, in &lt;a href=&quot;https://codeberg.org/hails/wsl9x&quot;&gt;WSL9x&lt;/a&gt;&lt;/cite&gt;&lt;/footer&gt;&lt;/blockquote&gt;&lt;p&gt;Well this blew my mind.&lt;/p&gt;&lt;p&gt;Windows Subsystem for Linux (WSL) is one of the single best things Microsoft have added to Windows in the last decade&lt;sup&gt;1&lt;/sup&gt;. But, of course, it’s for Windows 10 and 11 only. I would never have conceived that somebody could make the same trick work for, like, &lt;em&gt;Windows 95&lt;/em&gt;!&lt;/p&gt;&lt;p&gt;But Hails has done so. And no, this isn’t some kind of emulation; it’s proper cooperative multitasking between the two kernels, just like regular WSL does. Somehow, in a version that came out nine years before Windows even supported the NX bit. Mindboggling.&lt;/p&gt;&lt;div&gt;&lt;h2&gt;Footnotes&lt;/h2&gt;&lt;p&gt;&lt;sup&gt;1&lt;/sup&gt; This ought to be a little embarrassing for them: I mean – if the most-valuable improvement you make to your operating system is to make it… more like a different operating system… – that’s not a &lt;em&gt;great&lt;/em&gt; sign, is it?&lt;/p&gt;&lt;/div&gt;&lt;p&gt;🧡 I love RSS feeds. And I love you for using them. 💙&lt;/p&gt;</content:encoded>
</item>
<item>
<title>Linux</title>
<link>https://au.pcmag.com/linux/</link>
<enclosure type="image/jpeg" length="0" url="https://sm.pcmag.com/t/pcmag/review/q/qimo-linux/qimo-linux_65jg.1200.jpg"></enclosure>
<guid isPermaLink="false">oJ5vP84Ua3WeiVvSYScnjA0WYjhgGdC6oPBGEg==</guid>
<pubDate>Fri, 24 Apr 2026 02:09:16 +0000</pubDate>
<description>PC Magazine is your complete guide to computers, phones, tablets, peripherals and more. We test and review the latest gadgets, products and services, report technology news and trends, and provide shopping advice and price comparisons.</description>
<content:encoded>&lt;ul&gt;

  &lt;li&gt;
   &lt;article&gt;
      &lt;div&gt;
      &lt;a href=&quot;https://au.pcmag.com/video-streaming-services/116791/another-price-increase-how-to-cancel-or-downgrade-your-netflix-subscription&quot;&gt;Is Netflix Premium Still Worth It? How to Downgrade to the $9 Plan and Save $216&lt;/a&gt;
      
      &lt;p&gt;As of March 2026, Netflix can cost up to $27 per month. If you don’t use the service enough or think it’s gotten too pricey, here&amp;#39;s how to modify your plan or cancel it outright.&lt;/p&gt;
      
         &lt;span&gt;3 weeks&lt;/span&gt; &lt;span&gt;By Lance Whitney&lt;/span&gt;
      
      &lt;/div&gt;
      &lt;div&gt;
         &lt;a href=&quot;https://au.pcmag.com/video-streaming-services/116791/another-price-increase-how-to-cancel-or-downgrade-your-netflix-subscription&quot;&gt;
         &lt;img src=&quot;https://au.pcmag.com/linux/&quot; alt=&quot;Is Netflix Premium Still Worth It? How to Downgrade to the $9 Plan and Save $216 (Tips &amp;amp; Help Video Streaming Services)&quot; title=&quot;&quot;/&gt;
         &lt;/a&gt;
      &lt;/div&gt;
   &lt;/article&gt;
   &lt;/li&gt;
  
  &lt;li&gt;
   &lt;article&gt;
      &lt;div&gt;
      &lt;a href=&quot;https://au.pcmag.com/linux/116916/i-gave-up-on-windows-11-linux-mint-is-simply-better-in-7-big-ways&quot;&gt;I Gave Up on Windows 11. Linux Mint Is Simply Better in 7 Big Ways&lt;/a&gt;
      
      &lt;p&gt;Linux Mint isn&amp;#39;t perfect, but it has some clear advantages over Windows 11. Here&amp;#39;s what stood out after I made the move.&lt;/p&gt;
      
         &lt;span&gt;3 weeks&lt;/span&gt; &lt;span&gt;By Michael Muchmore&lt;/span&gt;
      
      &lt;/div&gt;
      &lt;div&gt;
         &lt;a href=&quot;https://au.pcmag.com/linux/116916/i-gave-up-on-windows-11-linux-mint-is-simply-better-in-7-big-ways&quot;&gt;
         &lt;img src=&quot;https://au.pcmag.com/linux/&quot; alt=&quot;I Gave Up on Windows 11. Linux Mint Is Simply Better in 7 Big Ways (Opinion Linux)&quot; title=&quot;&quot;/&gt;
         &lt;/a&gt;
      &lt;/div&gt;
   &lt;/article&gt;
   &lt;/li&gt;
  
  &lt;li&gt;
   &lt;article&gt;
      &lt;div&gt;
      &lt;a href=&quot;https://au.pcmag.com/video-streaming-services/116883/what-to-watch-on-paramount-in-april-2026&quot;&gt;What to Watch on Paramount+ in April 2026&lt;/a&gt;
      
      &lt;p&gt;The ever-growing streaming service has a bunch of content for you this month, including tons of hit movies and TV shows.&lt;/p&gt;
      
         &lt;span&gt;3 weeks, 1 day&lt;/span&gt; &lt;span&gt;By K. Thor Jensen&lt;/span&gt;
      
      &lt;/div&gt;
      &lt;div&gt;
         &lt;a href=&quot;https://au.pcmag.com/video-streaming-services/116883/what-to-watch-on-paramount-in-april-2026&quot;&gt;
         &lt;img src=&quot;https://au.pcmag.com/linux/&quot; alt=&quot;What to Watch on Paramount+ in April 2026 (News Video Streaming Services)&quot; title=&quot;&quot;/&gt;
         &lt;/a&gt;
      &lt;/div&gt;
   &lt;/article&gt;
   &lt;/li&gt;
  
  &lt;li&gt;
   &lt;article&gt;
      &lt;div&gt;
      &lt;a href=&quot;https://au.pcmag.com/video-streaming-services/116828/what-to-watch-on-disney-and-hulu-in-april-2026&quot;&gt;What to Watch on Disney+ and Hulu in April 2026&lt;/a&gt;
      
      &lt;p&gt;Darth Maul finally gets his own series, plus tons of new movies and shows this month.&lt;/p&gt;
      
         &lt;span&gt;3 weeks, 4 days&lt;/span&gt; &lt;span&gt;By K. Thor Jensen&lt;/span&gt;
      
      &lt;/div&gt;
      &lt;div&gt;
         &lt;a href=&quot;https://au.pcmag.com/video-streaming-services/116828/what-to-watch-on-disney-and-hulu-in-april-2026&quot;&gt;
         &lt;img src=&quot;https://au.pcmag.com/linux/&quot; alt=&quot;What to Watch on Disney+ and Hulu in April 2026 (News Video Streaming Services)&quot; title=&quot;&quot;/&gt;
         &lt;/a&gt;
      &lt;/div&gt;
   &lt;/article&gt;
   &lt;/li&gt;
  
  &lt;li&gt;
   &lt;article&gt;
      &lt;div&gt;
      &lt;a href=&quot;https://au.pcmag.com/video-streaming-services/116817/what-to-watch-on-hbo-max-in-april-2026&quot;&gt;What to Watch on HBO Max in April 2026&lt;/a&gt;
      
      &lt;p&gt;Two popular shows, Euphoria and Hacks, return this month, along with all the Alien films and tons of other cool stuff&lt;/p&gt;
      
         &lt;span&gt;3 weeks, 5 days&lt;/span&gt; &lt;span&gt;By K. Thor Jensen&lt;/span&gt;
      
      &lt;/div&gt;
      &lt;div&gt;
         &lt;a href=&quot;https://au.pcmag.com/video-streaming-services/116817/what-to-watch-on-hbo-max-in-april-2026&quot;&gt;
         &lt;img src=&quot;https://au.pcmag.com/linux/&quot; alt=&quot;What to Watch on HBO Max in April 2026 (News Video Streaming Services)&quot; title=&quot;&quot;/&gt;
         &lt;/a&gt;
      &lt;/div&gt;
   &lt;/article&gt;
   &lt;/li&gt;
  
  &lt;li&gt;
   &lt;article&gt;
      &lt;div&gt;
      &lt;a href=&quot;https://au.pcmag.com/video-streaming-services/116809/the-best-movies-to-watch-on-netflix-right-now-march-27-april-3-2026&quot;&gt;The Best Movies to Watch on Netflix Right Now (March 27-April 3, 2026)&lt;/a&gt;
      
      &lt;p&gt;The Peaky Blinders spin-off movie is getting tons of views. Here are similar flicks worth streaming.&lt;/p&gt;
      
         &lt;span&gt;3 weeks, 6 days&lt;/span&gt; &lt;span&gt;By K. Thor Jensen&lt;/span&gt;
      
      &lt;/div&gt;
      &lt;div&gt;
         &lt;a href=&quot;https://au.pcmag.com/video-streaming-services/116809/the-best-movies-to-watch-on-netflix-right-now-march-27-april-3-2026&quot;&gt;
         &lt;img src=&quot;https://au.pcmag.com/linux/&quot; alt=&quot;The Best Movies to Watch on Netflix Right Now (March 27-April 3, 2026) (News Video Streaming Services)&quot; title=&quot;&quot;/&gt;
         &lt;/a&gt;
      &lt;/div&gt;
   &lt;/article&gt;
   &lt;/li&gt;
  
  &lt;li&gt;
   &lt;article&gt;
      &lt;div&gt;
      &lt;a href=&quot;https://au.pcmag.com/video-streaming-services/116807/whats-new-to-watch-on-disney-and-hulu-the-week-27-april-2-2026&quot;&gt;What&amp;#39;s New to Watch on Disney+ and Hulu the Week of March 27-April 2, 2026&lt;/a&gt;
      
      &lt;p&gt;Hulu and Disney+ have a megaton of new movies dropping as April begins, plus popular shows and more. Here are the week&amp;#39;s top picks.&lt;/p&gt;
      
         &lt;span&gt;3 weeks, 6 days&lt;/span&gt; &lt;span&gt;By K. Thor Jensen&lt;/span&gt;
      
      &lt;/div&gt;
      &lt;div&gt;
         &lt;a href=&quot;https://au.pcmag.com/video-streaming-services/116807/whats-new-to-watch-on-disney-and-hulu-the-week-27-april-2-2026&quot;&gt;
         &lt;img src=&quot;https://au.pcmag.com/linux/&quot; alt=&quot;What&amp;#39;s New to Watch on Disney+ and Hulu the Week of March 27-April 2, 2026 (News Video Streaming Services)&quot; title=&quot;&quot;/&gt;
         &lt;/a&gt;
      &lt;/div&gt;
   &lt;/article&gt;
   &lt;/li&gt;
  
  &lt;li&gt;
   &lt;article&gt;
      &lt;div&gt;
      &lt;a href=&quot;https://au.pcmag.com/video-streaming-services/116806/whats-new-to-watch-on-hbo-max-the-week-27-april-2-2026&quot;&gt;What&amp;#39;s New to Watch on HBO Max the Week of March 27-April 2, 2026&lt;/a&gt;
      
      &lt;p&gt;The first four Alien movies in all of their permutations hit HBO Max this week, plus lots of shows for every audience.&lt;/p&gt;
      
         &lt;span&gt;3 weeks, 6 days&lt;/span&gt; &lt;span&gt;By K. Thor Jensen&lt;/span&gt;
      
      &lt;/div&gt;
      &lt;div&gt;
         &lt;a href=&quot;https://au.pcmag.com/video-streaming-services/116806/whats-new-to-watch-on-hbo-max-the-week-27-april-2-2026&quot;&gt;
         &lt;img src=&quot;https://au.pcmag.com/linux/&quot; alt=&quot;What&amp;#39;s New to Watch on HBO Max the Week of March 27-April 2, 2026 (News Video Streaming Services)&quot; title=&quot;&quot;/&gt;
         &lt;/a&gt;
      &lt;/div&gt;
   &lt;/article&gt;
   &lt;/li&gt;
  
  &lt;li&gt;
   &lt;article&gt;
      &lt;div&gt;
      &lt;a href=&quot;https://au.pcmag.com/video-streaming-services/116805/whats-new-to-watch-on-netflix-the-week-27-april-2-2026&quot;&gt;What&amp;#39;s New to Watch on Netflix the Week of March 27-April 2, 2026&lt;/a&gt;
      
      &lt;p&gt;Let&amp;#39;s head into a new month on Netflix with a ton of new shows and movies. Here are our three top picks for the week.&lt;/p&gt;
      
         &lt;span&gt;3 weeks, 6 days&lt;/span&gt; &lt;span&gt;By K. Thor Jensen&lt;/span&gt;
      
      &lt;/div&gt;
      &lt;div&gt;
         &lt;a href=&quot;https://au.pcmag.com/video-streaming-services/116805/whats-new-to-watch-on-netflix-the-week-27-april-2-2026&quot;&gt;
         &lt;img src=&quot;https://au.pcmag.com/linux/&quot; alt=&quot;What&amp;#39;s New to Watch on Netflix the Week of March 27-April 2, 2026 (News Video Streaming Services)&quot; title=&quot;&quot;/&gt;
         &lt;/a&gt;
      &lt;/div&gt;
   &lt;/article&gt;
   &lt;/li&gt;
  
  &lt;li&gt;
   &lt;article&gt;
      &lt;div&gt;
      &lt;a href=&quot;https://au.pcmag.com/video-streaming-services/116790/what-to-watch-on-netflix-in-april-2026&quot;&gt;What to Watch on Netflix in April 2026&lt;/a&gt;
      
      &lt;p&gt;The first Stranger Things spin-off lands on Netflix, plus tons of movies, shows, specials, and more.&lt;/p&gt;
      
         &lt;span&gt;3 weeks, 6 days&lt;/span&gt; &lt;span&gt;By K. Thor Jensen&lt;/span&gt;
      
      &lt;/div&gt;
      &lt;div&gt;
         &lt;a href=&quot;https://au.pcmag.com/video-streaming-services/116790/what-to-watch-on-netflix-in-april-2026&quot;&gt;
         &lt;img src=&quot;https://au.pcmag.com/linux/&quot; alt=&quot;What to Watch on Netflix in April 2026 (News Video Streaming Services)&quot; title=&quot;&quot;/&gt;
         &lt;/a&gt;
      &lt;/div&gt;
   &lt;/article&gt;
   &lt;/li&gt;
  
  &lt;li&gt;
   &lt;article&gt;
      &lt;div&gt;
      &lt;a href=&quot;https://au.pcmag.com/video-streaming-services/116792/watch-while-you-can-everything-leaving-netflix-in-april-2026&quot;&gt;Watch While You Can: Everything Leaving Netflix in April 2026&lt;/a&gt;
      
      &lt;p&gt;All the James Bond movies retire from Netflix this month. Plus, everything else on the kill list.&lt;/p&gt;
      
         &lt;span&gt;3 weeks, 6 days&lt;/span&gt; &lt;span&gt;By K. Thor Jensen&lt;/span&gt;
      
      &lt;/div&gt;
      &lt;div&gt;
         &lt;a href=&quot;https://au.pcmag.com/video-streaming-services/116792/watch-while-you-can-everything-leaving-netflix-in-april-2026&quot;&gt;
         &lt;img src=&quot;https://au.pcmag.com/linux/&quot; alt=&quot;Watch While You Can: Everything Leaving Netflix in April 2026 (News Video Streaming Services)&quot; title=&quot;&quot;/&gt;
         &lt;/a&gt;
      &lt;/div&gt;
   &lt;/article&gt;
   &lt;/li&gt;
  
  &lt;li&gt;
   &lt;article&gt;
      &lt;div&gt;
      &lt;a href=&quot;https://au.pcmag.com/video-streaming-services/116780/netflix-just-raised-prices-again-heres-your-guide-to-streaming-service-costs-and-increases&quot;&gt;Netflix Just Raised Prices Again. Here&amp;#39;s Your Guide to Streaming Service Costs and Increases&lt;/a&gt;
      
      &lt;p&gt;Netflix is the latest streaming service to get a price increase, following Prime Video, Paramount+, HBO Max, and more. Here&amp;#39;s how we got here and what you can expect to pay.&lt;/p&gt;
      
         &lt;span&gt;4 weeks&lt;/span&gt; &lt;span&gt;By Chloe Albanesius&lt;/span&gt;
      
      &lt;/div&gt;
      &lt;div&gt;
         &lt;a href=&quot;https://au.pcmag.com/video-streaming-services/116780/netflix-just-raised-prices-again-heres-your-guide-to-streaming-service-costs-and-increases&quot;&gt;
         &lt;img src=&quot;https://au.pcmag.com/linux/&quot; alt=&quot;Netflix Just Raised Prices Again. Here&amp;#39;s Your Guide to Streaming Service Costs and Increases (Explainers Video Streaming Services)&quot; title=&quot;&quot;/&gt;
         &lt;/a&gt;
      &lt;/div&gt;
   &lt;/article&gt;
   &lt;/li&gt;
  
  &lt;li&gt;
   &lt;article&gt;
      &lt;div&gt;
      &lt;a href=&quot;https://au.pcmag.com/how-to/67524/how-to-watch-the-marvel-movies-in-order&quot;&gt;&amp;#39;Daredevil&amp;#39; Returns: How to Watch All the Marvel Movies and TV Shows in Order&lt;/a&gt;
      
      &lt;p&gt;Looking to revisit the MCU franchise now that Daredevil: Born Again is back? Whether you want to watch in order of release or chronological story order, we&amp;#39;ve got you covered.&lt;/p&gt;
      
         &lt;span&gt;4 weeks, 1 day&lt;/span&gt; &lt;span&gt;By Eric Griffith&lt;/span&gt;
      
      &lt;/div&gt;
      &lt;div&gt;
         &lt;a href=&quot;https://au.pcmag.com/how-to/67524/how-to-watch-the-marvel-movies-in-order&quot;&gt;
         &lt;img src=&quot;https://au.pcmag.com/linux/&quot; alt=&quot;&amp;#39;Daredevil&amp;#39; Returns: How to Watch All the Marvel Movies and TV Shows in Order (Tips &amp;amp; Help Video Streaming Services)&quot; title=&quot;&quot;/&gt;
         &lt;/a&gt;
      &lt;/div&gt;
   &lt;/article&gt;
   &lt;/li&gt;
  
  &lt;li&gt;
   &lt;article&gt;
      &lt;div&gt;
      &lt;a href=&quot;https://au.pcmag.com/old-video-streaming-services/68956/the-best-ways-to-stream-the-mlb-playoffs&quot;&gt;The Best MLB Streaming Services for 2026&lt;/a&gt;
      
      &lt;p&gt;Major League Baseball returns on March 25, but you don&amp;#39;t need cable to watch the games. Catch every homer, strikeout, and stolen base with these top, tested video streaming services.&lt;/p&gt;
      
         &lt;span&gt;4 weeks, 1 day&lt;/span&gt; &lt;span&gt;By Jordan Minor&lt;/span&gt;
      
      &lt;/div&gt;
      &lt;div&gt;
         &lt;a href=&quot;https://au.pcmag.com/old-video-streaming-services/68956/the-best-ways-to-stream-the-mlb-playoffs&quot;&gt;
         &lt;img src=&quot;https://au.pcmag.com/linux/&quot; alt=&quot;The Best MLB Streaming Services for 2026 (Guide Video Streaming Services)&quot; title=&quot;&quot;/&gt;
         &lt;/a&gt;
      &lt;/div&gt;
   &lt;/article&gt;
   &lt;/li&gt;
  
  &lt;li&gt;
   &lt;article&gt;
      &lt;div&gt;
      &lt;a href=&quot;https://au.pcmag.com/video-streaming-services/100694/how-to-get-around-the-netflix-account-sharing-ban-for-now&quot;&gt;Is Netflix Password Sharing Dead? 5 Workarounds That Still Work (for Now)&lt;/a&gt;
      
      &lt;p&gt;In theory, the era of shared streaming passwords is over, but thrifty binge-watchers can try these tricks before forking over cash to Netflix (or Disney+ and HBO Max).&lt;/p&gt;
      
         &lt;span&gt;1 month&lt;/span&gt; &lt;span&gt;By Jason Cohen&lt;/span&gt;
      
      &lt;/div&gt;
      &lt;div&gt;
         &lt;a href=&quot;https://au.pcmag.com/video-streaming-services/100694/how-to-get-around-the-netflix-account-sharing-ban-for-now&quot;&gt;
         &lt;img src=&quot;https://au.pcmag.com/linux/&quot; alt=&quot;Is Netflix Password Sharing Dead? 5 Workarounds That Still Work (for Now) (Explainers Video Streaming Services)&quot; title=&quot;&quot;/&gt;
         &lt;/a&gt;
      &lt;/div&gt;
   &lt;/article&gt;
   &lt;/li&gt;
  
&lt;/ul&gt;</content:encoded>
</item>
<item>
<title>Framework: Our Linux Laptop 13 Pro Is Outselling the Windows Model</title>
<link>https://au.pcmag.com/linux/117293/framework-our-linux-laptop-13-pro-is-outselling-the-windows-model</link>
<enclosure type="image/jpeg" length="0" url="https://sm.pcmag.com/t/pcmag_au/news/f/framework-/framework-our-linux-laptop-13-pro-is-outselling-the-windows_95ya.1200.jpg"></enclosure>
<guid isPermaLink="false">2k6E7R4w6YtaUr9_ig09Z4HM7WxYJktGgrguYw==</guid>
<pubDate>Fri, 24 Apr 2026 02:09:15 +0000</pubDate>
<description>The Laptop 13 Pro is Framework&#39;s first Ubuntu-certified laptop. Customers can buy it with Ubuntu preinstalled, in addition to Windows 11.</description>
<content:encoded>&lt;img src=&quot;https://sb.scorecardresearch.com/bs/p?c1=2&amp;amp;c2=6036202&amp;amp;cv=2.0&amp;amp;cj=1&quot; alt=&quot;*&quot; title=&quot;&quot;/&gt;&lt;div&gt;
    
    &lt;div&gt;
      &lt;a href=&quot;https://au.pcmag.com/&quot;&gt;&lt;span&gt;PCMag Australia&lt;/span&gt;&lt;/a&gt; 
      &lt;a href=&quot;https://au.pcmag.com/article/news&quot;&gt;&lt;span&gt;News&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;https://au.pcmag.com/operating-systems&quot;&gt;&lt;span&gt;Operating Systems&lt;/span&gt;&lt;/a&gt; &lt;a href=&quot;https://au.pcmag.com/linux&quot;&gt;&lt;span&gt;Linux&lt;/span&gt;&lt;/a&gt; 
    &lt;/div&gt;
    &lt;div&gt;
    &lt;div&gt;
        &lt;h1&gt;Framework: Our Linux Laptop 13 Pro Is Outselling the Windows Model&lt;/h1&gt;
        &lt;div&gt;
            &lt;time&gt;Updated Apr 24, 2026&lt;/time&gt;
            &lt;div&gt;
                
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    
    &lt;div&gt;
        &lt;h2&gt;The Laptop 13 Pro is Framework&amp;#39;s first Ubuntu-certified laptop. Customers can buy it with Ubuntu preinstalled, in addition to Windows 11.&lt;/h2&gt;
    &lt;/div&gt;
    
    &lt;div&gt;
        &lt;div&gt;
            &lt;div&gt;
                
                    &lt;a href=&quot;https://au.pcmag.com/u/michael-kan&quot;&gt;
                        &lt;div&gt;
                            &lt;img src=&quot;https://i.pcmag.com/imagery/authors/06W4G6A5rmg4LxEffqKnnc6.png&quot; alt=&quot;Michael Kan&quot; title=&quot;&quot;/&gt;
                        &lt;/div&gt;
                    &lt;/a&gt;
                
            &lt;/div&gt;
            &lt;div&gt;
                
                    &lt;div&gt;
                        &lt;span&gt; &amp;amp;&lt;/span&gt;
                        &lt;a href=&quot;https://au.pcmag.com/u/michael-kan&quot;&gt;Michael Kan&lt;/a&gt;
                        &lt;span&gt;Principal Reporter&lt;/span&gt;
                    &lt;/div&gt;
                    
            &lt;/div&gt;
            
                &lt;div&gt;
                    &lt;p&gt;
                        Our team tests, rates, and reviews more than 1,500 products each year to help you make better buying decisions and get more from technology.
                    &lt;/p&gt;
                &lt;/div&gt;
            
            
            &lt;div&gt;
                Our Expert
            &lt;/div&gt;
            
        &lt;/div&gt;
        &lt;div&gt;
            &lt;div&gt;
                &lt;div&gt;
                    &lt;span&gt;LOOK INSIDE PC LABS&lt;/span&gt;
                    &lt;a href=&quot;https://www.pcmag.com/about/how-we-test-everything-we-review&quot;&gt;HOW WE TEST&lt;/a&gt;
                &lt;/div&gt;
            &lt;/div&gt;
            &lt;div&gt;
                &lt;div&gt;
                    &lt;div&gt;
                        &lt;span&gt;65&lt;/span&gt;
                        &lt;span&gt;EXPERTS&lt;/span&gt;
                    &lt;/div&gt;
                    &lt;div&gt;
                        &lt;span&gt;43&lt;/span&gt;
                        &lt;span&gt;YEARS&lt;/span&gt;
                    &lt;/div&gt;
                    &lt;div&gt;
                        &lt;span&gt;41,500+&lt;/span&gt;
                        &lt;span&gt;REVIEWS&lt;/span&gt;
                    &lt;/div&gt;
                &lt;/div&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


    
    
  &lt;/div&gt;&lt;div&gt;
    &lt;div&gt;
        
        
  &lt;article&gt;
  
      
          
              
                  &lt;div&gt;
                    &lt;img src=&quot;https://sm.pcmag.com/t/pcmag_au/news/f/framework-/framework-our-linux-laptop-13-pro-is-outselling-the-windows_95ya.1920.jpg&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;
                    &lt;span&gt;(Credit: PCMag/Michael Kan)&lt;/span&gt;
                  &lt;/div&gt;
              
          
      
  
    
    
    
    &lt;div&gt;
      &lt;p&gt;&lt;a href=&quot;https://au.pcmag.com/linux/116916/i-gave-up-on-windows-11-linux-mint-is-simply-better-in-7-big-ways&quot;&gt;Linux PCs&lt;/a&gt; are usually considered niche, but one Linux-based laptop is outselling its Windows 11 counterpart.&lt;/p&gt;&lt;p&gt;Upgradable laptop maker Framework reported the surprising stat after opening preorders for the &lt;a href=&quot;https://au.pcmag.com/laptops/117257/i-want-it-hands-on-with-the-framework-laptop-13-pro-a-new-premium-player&quot;&gt;Laptop 13 Pro&lt;/a&gt;. “Framework Laptop 13 Pro is selling far above our forecast, and we&amp;#39;ve sold out of the first six batches already,” the company &lt;a href=&quot;https://x.com/FrameworkPuter/status/2047343510639325260&quot;&gt;tweeted&lt;/a&gt;. “Also nice validation of our approach, the Ubuntu configurations are outselling the Windows ones!”&lt;/p&gt;&lt;blockquote&gt;&lt;a href=&quot;https://twitter.com/FrameworkPuter/status/2047343510639325260&quot;&gt;&lt;/a&gt;&lt;/blockquote&gt;&lt;p&gt;Unveiled on Tuesday, the 13 Pro is meant to appeal to power users, including software developers. It&amp;#39;s Framework’s first Ubuntu-certified laptop, meaning it’s undergone extensive validation to ensure it runs the Linux-based OS without issues. Importantly, customers can buy the laptop with Ubuntu preinstalled, in addition to &lt;a href=&quot;https://au.pcmag.com/operating-systems/87991/microsoft-windows-11&quot;&gt;Windows 11&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;Although other laptops have &lt;a href=&quot;https://ubuntu.com/certified/laptops&quot;&gt;received&lt;/a&gt; Ubuntu certification, the 13 Pro was specifically designed to be a &amp;quot;MacBook Pro for Linux users,&amp;quot; Framework says. During its launch event, the company also invited a staff engineer from Ubuntu developer Canonical to talk about the certification.&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;h3&gt;Recommended by Our Editors&lt;/h3&gt;&lt;div&gt;&lt;div&gt;&lt;a href=&quot;https://au.pcmag.com/linux/116916/i-gave-up-on-windows-11-linux-mint-is-simply-better-in-7-big-ways&quot;&gt;&lt;div&gt;&lt;img src=&quot;https://au.pcmag.com/linux/117293/framework-our-linux-laptop-13-pro-is-outselling-the-windows-model&quot; alt=&quot;I Gave Up on Windows 11. Linux Mint Is Simply Better in 7 Big Ways&quot; title=&quot;&quot;/&gt;&lt;/div&gt;&lt;/a&gt;&lt;div&gt;&lt;a href=&quot;https://au.pcmag.com/linux/116916/i-gave-up-on-windows-11-linux-mint-is-simply-better-in-7-big-ways&quot;&gt;I Gave Up on Windows 11. Linux Mint Is Simply Better in 7 Big Ways&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://au.pcmag.com/linux/115631/i-switched-from-windows-11-to-linux-mint-here-are-7-things-it-does-way-better&quot;&gt;&lt;div&gt;&lt;img src=&quot;https://au.pcmag.com/linux/117293/framework-our-linux-laptop-13-pro-is-outselling-the-windows-model&quot; alt=&quot;I Switched From Windows 11 to Linux Mint. Here Are 7 Things It Does Way Better&quot; title=&quot;&quot;/&gt;&lt;/div&gt;&lt;/a&gt;&lt;div&gt;&lt;a href=&quot;https://au.pcmag.com/linux/115631/i-switched-from-windows-11-to-linux-mint-here-are-7-things-it-does-way-better&quot;&gt;I Switched From Windows 11 to Linux Mint. Here Are 7 Things It Does Way Better&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://au.pcmag.com/linux/115517/i-replaced-windows-11-with-linux-mint-here-are-7-things-it-does-much-better&quot;&gt;&lt;div&gt;&lt;img src=&quot;https://au.pcmag.com/linux/117293/framework-our-linux-laptop-13-pro-is-outselling-the-windows-model&quot; alt=&quot;I Replaced Windows 11 With Linux Mint. Here Are 7 Things It Does Much Better&quot; title=&quot;&quot;/&gt;&lt;/div&gt;&lt;/a&gt;&lt;div&gt;&lt;a href=&quot;https://au.pcmag.com/linux/115517/i-replaced-windows-11-with-linux-mint-here-are-7-things-it-does-much-better&quot;&gt;I Replaced Windows 11 With Linux Mint. Here Are 7 Things It Does Much Better&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;The marketing seems to have resonated with Framework fans at a time when Linux usage has been increasing. The latest Steam hardware survey &lt;a href=&quot;https://au.pcmag.com/gaming-systems/116933/windows-use-among-gamers-falls-linux-tops-5-for-the-first-time&quot;&gt;logged&lt;/a&gt; Linux at a 5% share, a first for the OS and its various distributions. (Linux share first &lt;a href=&quot;https://au.pcmag.com/games/88581/percentage-of-linux-gamers-on-steam-tops-1-for-first-time-in-years&quot;&gt;crossed&lt;/a&gt; the 1% mark back in 2021.) Valve’s Linux-based SteamOS has likely been a major contributor.&lt;/p&gt;&lt;p&gt;Although Framework isn’t a large PC vendor like Dell or HP, the Ubuntu-certified sales could help Linux become more mainstream. Microsoft has faced &lt;a href=&quot;https://au.pcmag.com/migrated-15175-windows-10/116825/windows-update-hype-vs-reality-why-im-skeptical&quot;&gt;negative&lt;/a&gt; user sentiment about Windows 11, prompting a pledge to &lt;a href=&quot;https://au.pcmag.com/migrated-15175-windows-10/116675/less-ai-microsoft-pledges-to-focus-on-windows-11-updates-you-actually-want&quot;&gt;focus on quality improvements&lt;/a&gt; for the OS.&lt;/p&gt;&lt;p&gt;Stay tuned for our review of the Framework Laptop 13 Pro. In the meantime, the company is looking beyond Ubuntu. Framework CEO Nirav Patel noted that it’s been sending laptops to developers of other Linux distributions, suggesting that a wider range of Linux preinstall support could arrive down the line.&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;data:image/svg+xml,%3Csvg xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39; viewBox=&amp;#39;0 0 16 9&amp;#39;%3E%3C/svg%3E&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;span&gt;(Credit: Framework)&lt;/span&gt;&lt;/figure&gt;
    &lt;/div&gt;
    
  &lt;/article&gt;

        
    
    

    &lt;/div&gt;
    
&lt;section&gt;
  
  &lt;div&gt;
  
  
  &lt;/div&gt;
&lt;/section&gt;

&lt;/div&gt;&lt;div&gt;
    

  
  

  
  

  
      &lt;div&gt;
         &lt;h1&gt;About Our Expert&lt;/h1&gt; 


&lt;div&gt;
    
        &lt;div&gt;
            &lt;div&gt;
                &lt;img src=&quot;https://i.pcmag.com/imagery/authors/06W4G6A5rmg4LxEffqKnnc6.png&quot; alt=&quot;Michael Kan&quot; title=&quot;&quot;/&gt;
            &lt;/div&gt;
            &lt;div&gt;
                &lt;h3&gt;Michael Kan&lt;/h3&gt;
                &lt;h4&gt;Principal Reporter&lt;/h4&gt;
            &lt;/div&gt;
            &lt;div&gt;
                &lt;div&gt;
                    
                        
                            &lt;a href=&quot;https://twitter.com/@Michael_Kan&quot;&gt;
                                
                            &lt;/a&gt;
                        
                    
                        
                            &lt;a href=&quot;https://twitter.com/@Michael_Kan&quot;&gt;
                                
                            &lt;/a&gt;
                        
                    
                &lt;/div&gt;
            &lt;/div&gt;
        &lt;/div&gt;
        &lt;div&gt;
            &lt;div&gt;&lt;h2&gt;My Experience&lt;/h2&gt;&lt;p&gt;I&amp;#39;ve been a journalist for over 15 years. I got my start as a schools and cities reporter in Kansas City and joined PCMag in 2017, where I cover satellite internet services, cybersecurity, PC hardware, and more. I&amp;#39;m currently based in San Francisco, but previously spent over five years in China, covering the country&amp;#39;s technology sector.&lt;/p&gt;&lt;p&gt;Since 2020, I&amp;#39;ve covered the launch and explosive growth of SpaceX&amp;#39;s Starlink satellite internet service, writing 600+ stories on availability and feature launches, but also the regulatory battles over the expansion of satellite constellations, fights with rival providers like AST SpaceMobile and Amazon, and the effort to expand into satellite-based mobile service. I&amp;#39;ve combed through FCC filings for the latest news and driven to remote corners of California to test Starlink&amp;#39;s cellular service. &lt;/p&gt;&lt;p&gt;I also cover cyber threats, from ransomware gangs to the emergence of AI-based malware. In 2024 and 2025, &lt;a href=&quot;https://www.pcmag.com/news/did-avast-sell-your-data-heres-how-to-get-a-piece-of-the-ftc-settlement&quot;&gt;the FTC forced Avast&lt;/a&gt; to pay consumers $16.5 million for secretly harvesting and selling their personal information to third-party clients, as revealed in my joint &lt;a href=&quot;https://www.pcmag.com/news/the-cost-of-avasts-free-antivirus-companies-can-spy-on-your-clicks&quot;&gt;investigation&lt;/a&gt; with Motherboard.&lt;/p&gt;&lt;p&gt;I also cover the PC graphics card market. Pandemic-era shortages &lt;a href=&quot;https://www.pcmag.com/news/i-camped-out-at-best-buy-to-get-an-rtx-3000-graphics-card-feel-my-pain&quot;&gt;led me to camp out&lt;/a&gt; in front of a Best Buy to get an RTX 3000. I&amp;#39;m now following how the AI-driven memory shortage is impacting the entire consumer electronics market. I&amp;#39;m always eager to learn more, so please jump in the comments with feedback and send me tips.&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;h2&gt;The Best Tech I&amp;#39;ve Had:&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;My first video game console: a Nintendo Famicom&lt;/li&gt;&lt;li&gt;I loved my Sega Saturn despite PlayStation&amp;#39;s popularity.&lt;/li&gt;&lt;li&gt;The iPod Video I received as a gift in college&lt;/li&gt;&lt;li&gt;Xbox 360 FTW&lt;/li&gt;&lt;li&gt;The Galaxy Nexus was the first smartphone I was proud to own.&lt;/li&gt;&lt;li&gt;The PC desktop I built in 2013, which still works to this day.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;
        &lt;/div&gt;
    

    &lt;div&gt;
        &lt;h3&gt;Read the latest from Michael Kan&lt;/h3&gt;
        &lt;ul&gt;
            
                &lt;li&gt;
                    &lt;a href=&quot;https://au.pcmag.com/wireless-carriers/117296/fcc-tells-spacex-ast-spacemobile-to-stay-in-their-lane-with-satellite-spectrum&quot;&gt;FCC Tells SpaceX, AST SpaceMobile To Stay In Their Lane With Satellite Spectrum&lt;/a&gt;
                &lt;/li&gt;
            
                &lt;li&gt;
                    &lt;a href=&quot;https://au.pcmag.com/wireless-routers/117294/facing-router-ban-tp-link-tells-fcc-its-investing-hundreds-of-millions-in-the-us&quot;&gt;Facing Router Ban, TP-Link Tells FCC It&amp;#39;s Investing Hundreds of Millions in the US&lt;/a&gt;
                &lt;/li&gt;
            
                &lt;li&gt;
                    &lt;a href=&quot;https://au.pcmag.com/linux/117293/framework-our-linux-laptop-13-pro-is-outselling-the-windows-model&quot;&gt;Framework: Our Linux Laptop 13 Pro Is Outselling the Windows Model&lt;/a&gt;
                &lt;/li&gt;
            
                &lt;li&gt;
                    &lt;a href=&quot;https://au.pcmag.com/networking/117291/spacex-preps-next-gen-gateway-to-accelerate-starlink-speeds&quot;&gt;SpaceX Preps Next-Gen Gateway to Accelerate Starlink Speeds&lt;/a&gt;
                &lt;/li&gt;
            
                &lt;li&gt;
                    &lt;a href=&quot;https://au.pcmag.com/modems-hotspots/117285/fccs-foreign-made-router-ban-expands-to-portable-wi-fi-hotspot-devices&quot;&gt;FCC&amp;#39;s Foreign-Made Router Ban Expands to Portable Wi-Fi Hotspot Devices&lt;/a&gt;
                &lt;/li&gt;
            
            &lt;li&gt;
                &lt;a href=&quot;https://au.pcmag.com/u/michael-kan&quot;&gt;More from Michael Kan&lt;/a&gt;
            &lt;/li&gt;
        &lt;/ul&gt;
    &lt;/div&gt;
    &lt;p&gt;&lt;a href=&quot;https://au.pcmag.com/u/michael-kan&quot;&gt;Read full bio&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;

        
        
&lt;h5&gt;Comments&lt;/h5&gt;






        
      &lt;/div&gt;
  


&lt;/div&gt;&lt;footer&gt;

&lt;div&gt;
    &lt;div&gt;
        &lt;a href=&quot;https://www.pcmag.com/newsletter_manage&quot;&gt;
            &lt;span&gt;PCMag Newsletters&lt;/span&gt;
            &lt;span&gt;Our Best Stories in Your Inbox &lt;/span&gt;
        &lt;/a&gt;
        &lt;div&gt;
            &lt;span&gt;Follow PCMag&lt;/span&gt;
            &lt;ul&gt;
                &lt;li&gt;
                    &lt;a href=&quot;https://www.facebook.com/PCMag&quot;&gt;
                        &lt;span&gt;(Opens in a new window)&lt;/span&gt;
                        &lt;span&gt;facebook&lt;/span&gt;
                        
                    &lt;/a&gt;
                &lt;/li&gt;
                &lt;li&gt;
                    &lt;a href=&quot;https://x.com/pcmag&quot;&gt;
                        &lt;span&gt;(Opens in a new window)&lt;/span&gt;
                        &lt;span&gt;X&lt;/span&gt;
                        
                    &lt;/a&gt;
                &lt;/li&gt;
                &lt;li&gt;
                    &lt;a href=&quot;https://flipboard.com/@PCMag&quot;&gt;
                        &lt;span&gt;(Opens in a new window)&lt;/span&gt;
                        &lt;span&gt;flipboard&lt;/span&gt;
                        
                    &lt;/a&gt;
                &lt;/li&gt;
                &lt;li&gt;
                    &lt;a href=&quot;https://news.google.com/publications/CAAqBggKMIClPDCEjQc?oc=3&quot;&gt;
                        &lt;span&gt;(Opens in a new window)&lt;/span&gt;
                        &lt;span&gt;google&lt;/span&gt;
                        
                    &lt;/a&gt;
                &lt;/li&gt;
                &lt;li&gt;
                    &lt;a href=&quot;https://instagram.com/pcmag/&quot;&gt;
                        &lt;span&gt;(Opens in a new window)&lt;/span&gt;
                        &lt;span&gt;instagram&lt;/span&gt;
                        
                    &lt;/a&gt;
                &lt;/li&gt;
                &lt;li&gt;
                    &lt;a href=&quot;https://www.pinterest.com/pcmag/&quot;&gt;
                        &lt;span&gt;(Opens in a new window)&lt;/span&gt;
                        &lt;span&gt;pinterest&lt;/span&gt;
                        
                    &lt;/a&gt;
                &lt;/li&gt;
            &lt;/ul&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
    &lt;section&gt;
    &lt;div&gt;
        &lt;h2&gt;Honest, Objective, Lab-Tested Reviews&lt;/h2&gt;
        &lt;p&gt;PCMag.com is a leading authority on technology, delivering lab-based, independent reviews of the latest products and services. Our expert industry analysis and practical solutions help you make better buying decisions and get more from technology.&lt;/p&gt;
        &lt;a href=&quot;https://au.pcmag.com/about/how-we-test-everything-we-review&quot;&gt;How We Test&lt;/a&gt;
        &lt;a href=&quot;https://au.pcmag.com/about/pcmagcom-mission-statement&quot;&gt;Editorial Principles&lt;/a&gt;
    &lt;/div&gt;
    &lt;/section&gt;
&lt;/div&gt;


  &lt;div&gt;
    

    &lt;p&gt;For over 40 years, PCMag has been a trusted authority on technology, delivering independent, labs-based reviews of the latest products and services. With expert analysis and practical solutions across consumer electronics, software, security, and more, PCMag helps consumers make informed buying decisions and get the most from their tech. From in-depth reviews to the latest news and how-to guides, PCMag is the go-to source for staying ahead in the digital world.&lt;/p&gt;
    
    &lt;div&gt;
      &lt;a href=&quot;https://world.ziffdavis.com&quot;&gt;&lt;/a&gt;
      © 1996-2026 © 1996-2026 Ziff Davis, LLC., a Ziff Davis company. All Rights Reserved. PCMag, PCMag.com and PC Magazine are among the federally registered trademarks of Ziff Davis and may not be used by third parties without explicit permission. The display of third-party trademarks and trade names on this site does not necessarily indicate any affiliation or the endorsement of PCMag. If you click an affiliate link and buy a product or service, we may be paid a fee by that merchant.
    &lt;/div&gt;
    &lt;div&gt;
      &lt;span&gt;International Editions:&lt;/span&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/footer&gt;&lt;div&gt;
  



  
  
  
  
  



  
&lt;/div&gt;</content:encoded>
</item>
<item>
<title>Sayonara Player and Liferea happiness</title>
<link>https://basic.bearblog.dev/sayonara-player-and-liferea-happiness/</link>
<guid isPermaLink="false">30YF5R2ubPR8pBtVc4mUlsftksxJJRvVLnPCQw==</guid>
<pubDate>Thu, 23 Apr 2026 11:35:03 +0000</pubDate>
<description>As I continue to work on my desktop environment, I believe I&#39;ve finally found a music and reading app I like.</description>
<content:encoded>&lt;p&gt;As I continue to work on my desktop environment, I believe I&amp;#39;ve finally found a music and reading app I like.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://sayonara-player.com/&quot;&gt;Sayonara&lt;/a&gt; Player was suggested to me on Mastodon long ago. It is a music app with many features including smart playlists, internet streaming and adding podcasts. Finding album art and saving it in an album&amp;#39;s folder is genius. Many apps save them in their own database. There is also a metadata editor which I love.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://bear-images.sfo2.cdn.digitaloceanspaces.com/basic/sayonara11.webp&quot; alt=&quot;sayonara11&quot; title=&quot;&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://lzone.de/liferea/&quot;&gt;Liferea&lt;/a&gt; is a RSS reader. It is a very clean and simple app to read RSS feeds including podcasts. There is an embedded browser and the ability to read gopher plogs!&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://bear-images.sfo2.cdn.digitaloceanspaces.com/basic/liferea-title.webp&quot; alt=&quot;liferea-title&quot; title=&quot;&quot;/&gt;&lt;/p&gt;&lt;p&gt;Some other apps I&amp;#39;ve added to my daily routine are FreeTube for YouTube channel subscriptions and Lagrange for gopher/gemini browsing.&lt;/p&gt;</content:encoded>
</item>
<item>
<title>Coding Without a Laptop - Two Weeks with AR Glasses and Linux on Android</title>
<link>https://holdtherobot.com/blog/linux-on-android-with-ar-glasses</link>
<guid isPermaLink="false">hAKzFDvqNo4RvtQQzosTOk5FN10NCaO3BHArmQ==</guid>
<pubDate>Thu, 23 Apr 2026 08:44:40 +0000</pubDate>
<description>I recently learned something that blew my mind; you can run a full desktop Linux environment on your phone.</description>
<content:encoded>&lt;p&gt;I recently learned something that blew my mind; you can run a full
desktop Linux environment on your phone.&lt;/p&gt;&lt;p&gt;Not some clunky virtual machine and not an outright OS replacement
like Ubuntu Touch or postmarketOS. Just native arm64 binaries running
inside a little chroot container on Android. Check it out:&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://holdtherobot.com/img/blog/image1.avif&quot; alt=&quot;i3, picom, polybar, firefox, and htop&quot; title=&quot;&quot;/&gt;&lt;/p&gt;&lt;p&gt;That’s a graphical environment via X11 with real window management
and compositing, Firefox comfortably playing YouTube (including working
audio), and a status bar with system stats. It launches in less than a
second and feels snappy.&lt;/p&gt;&lt;p&gt;Ignoring the details of getting this to work for the moment, the
obvious response is “okay yeah that’s neat but like, &lt;em&gt;why&lt;/em&gt;”. And
fair enough. It’s novel, but surely not useful.&lt;/p&gt;&lt;p&gt;Thing is, I had a 2 week trip coming up where I’d need to work, and I
got a little obsessed with the idea that I could somehow leave my laptop
at home and &lt;em&gt;just use my phone&lt;/em&gt;. So what if we add a folding
keyboard and some AR glasses?&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://holdtherobot.com/img/blog/image2.avif&quot; alt=&quot;A CRDT-based ebook/audiobook reader running a desktop Linux app and connected to the Flutter debugger&quot; title=&quot;&quot;/&gt;&lt;/p&gt;&lt;p&gt;What’s kind of amazing here is that both the glasses and the keyboard
fit comfortably in my pockets. And I’m already carrying the phone, so
it’s not that much extra.&lt;/p&gt;&lt;h3&gt;The Hardware&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Keyboard:&lt;/strong&gt; There’s plenty of little folding bluetooth
keyboards on the market, and I only had to go through 5 of them before I
&lt;a href=&quot;https://amzn.to/4mnjRYq&quot;&gt;found one&lt;/a&gt; that was tolerable. I
tried some with trackpads, but they were either too big or the keys were
squeezed together to make it fit. The Termux:X11 app that displays the
graphical environment is able to function as a trackpad to move a mouse
pointer around, and that turned out to be good enough for mouse input.
I’m very keyboard-centric anyway, so I’d often go for a while without
needing to touch it.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;The Glasses:&lt;/strong&gt; Believe it or not, “augmented reality”
glasses are kinda good now. The AR part is almost entirely a misnomer;
they’re just tiny little OLED displays strapped to your face attached to
bird bath optics. I was able to get a lightly used pair of &lt;a href=&quot;https://amzn.to/4dtA4HA&quot;&gt;Xreal Air 2 Pros&lt;/a&gt; off of ebay that
would show me a 1080p display with a 46° field of view. Some of the
newer ones can do large virtual displays rather than the
pinned-to-your-head image that mine have, but I’m pretty skeptical of
that setup, at least until the resolution and field of view improve.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;The Phone:&lt;/strong&gt; I unfortunately had to upgrade my phone,
because to drive the glasses you need to have DisplayPort Alt mode. My
very cheap, very crappy old phone did not. The 8 series seems to be the
first Pixel phone where Google decided to be marginally less evil and
not lock out the DP Alt Mode feature in software (forcing people to buy
Chromecasts? IDK), so I bought a used &lt;a href=&quot;https://amzn.to/3F02fRD&quot;&gt;Pixel 8 Pro&lt;/a&gt; on ebay.&lt;/p&gt;&lt;p&gt;So the whole setup:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Used Pixel 8 Pro $350&lt;/li&gt;&lt;li&gt;Used Xreal Air 2 Pro - $260&lt;/li&gt;&lt;li&gt;Samers Foldable Keyboard $18&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Total cost: $636. Although I’m not sure the $350 for the phone should
count, because I really did need a new one.&lt;/p&gt;&lt;p&gt;After a few afternoons experimenting, I felt like I could
&lt;em&gt;probably&lt;/em&gt; function with only this setup for the two weeks. I
figured the full commit would keep me from reverting back to a PC when I
hit a wall and got frustrated or bored.&lt;/p&gt;&lt;h3&gt;The Result&lt;/h3&gt;&lt;p&gt;So after using this on an airplane, in coffee shops, at various
family member’s houses, in parks, and even sitting in the car, I think I
have some answers for “why would you use this when laptops exist and are
excellent”.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;It really does fit into your pockets. No bag, nothing to carry.&lt;/li&gt;&lt;li&gt;I can use it outdoors in bright sunlight. I wrote most of this blog
post sitting at a picnic table in a park. Screen glare and brightness is
not an issue.&lt;/li&gt;&lt;li&gt;I can fit into tight spaces. This setup was infinitely more
comfortable than a laptop when on a plane. Some coffee shops also have
narrow bars that are too small for a laptop, but not for this.&lt;/li&gt;&lt;li&gt;The phone has a cellular connection, so I’m not tied to wifi.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;In other words, there’s a sense of freedom that you do not get with a
laptop. And I can be &lt;em&gt;outdoors&lt;/em&gt;. One of the things I’ve grown
tired of as software dev is feeling like I’m stuck inside all the time
in front of a screen. With this I can walk to a coffee shop and work for
an hour or two, then get up and walk to a park for another hour of work.
It feels like a breath of fresh air, quite literally.&lt;/p&gt;&lt;p&gt;That said, there were plenty of pain points and nuances to the whole
thing. So here’s my experience:&lt;/p&gt;&lt;h3&gt;The Linux Environment&lt;/h3&gt;&lt;p&gt;Linux-on-Android was &lt;em&gt;eventually&lt;/em&gt; great, but I don’t want to
gloss over the fact that it was a pain in the ass to figure out. My
definition of “sufficiently capable” was Neovim + functioning langauge
servers (Nim, Python, Dart, JS), Node, and Flutter (compiling to both
desktop and web apps that could be run and debugged).&lt;/p&gt;&lt;p&gt;The I won’t go though everything line-by-line here (I can though, if
anyone is interested), but there’s already some great resources out
there (linked below). Here’s the high level picture, based on my
learnings.&lt;/p&gt;&lt;p&gt;There’s roughly 4 different approaches to Linux on Android:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;A virtual machine emulating x86_64&lt;/li&gt;&lt;li&gt;Termux, which is an Android app that provides a mix of terminal
emulator, lightweight Linux userland, and set of packages that are able
to run in that environment.&lt;/li&gt;&lt;li&gt;arm64 binaries running in chroot, which is basically just a
directory where those programs will run, sealed off from the rest of the
filesystem. Notably, it requires the system to be rooted.&lt;/li&gt;&lt;li&gt;proot. Same idea as chroot, but doesn’t use the forbidden system
calls that chroot needs root for&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;After way too much time spent experimenting, I landed on the chroot
approach. I really didn’t want to root the phone, but nothing else did
what I needed. The virtual machine was way too slow and clunky, as was
proot. Sticking to what can be run inside Termux got me surpisingly far,
but Android’s C implementation is Bionic and most programs won’t run
unless they’re compiled with that in mind. That, plus other differences
in the environment mean you’re pretty limited. Chroot has no performance
penalty as far as I can tell, and (for the most part), anything that can
be compiled for arm64 seemed to work.&lt;/p&gt;&lt;p&gt;As far as distro (I tried many), here’s what matters:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Small and light. This is a phone, after all.&lt;/li&gt;&lt;li&gt;Has to support aarch64, obviously.&lt;/li&gt;&lt;li&gt;Doesn’t use systemd (I could never make it work inside chroot, and
it’s unclear if it’s possible).&lt;/li&gt;&lt;li&gt;Has some amount of testing or support for running in chroot. Arch
Linux ARM, for example, had some odd issues here, like fakeroot not
working.&lt;/li&gt;&lt;li&gt;Uses glibc. I thought Alpine was going to be the ticket, but I
really needed Flutter/Dart to work, and I couldn’t get it working with
musl. This might not be a problem for everyone though.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;So ultimately, the aarch64 glibc rootfs tarball of Void Linux fit the
bill, and it’s been running beautifully.&lt;/p&gt;&lt;p&gt;I used i3 (a keyboard-centric tiling window manager), but I tested
xfce and that worked fine too.&lt;/p&gt;&lt;p&gt;Some useful links:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://github.com/LinuxDroidMaster/Termux-Desktops&quot;&gt;https://github.com/LinuxDroidMaster/Termux-Desktops&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://github.com/termux/termux-x11#using-with-chroot-environment&quot;&gt;https://github.com/termux/termux-x11#using-with-chroot-environment&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://github.com/Magisk-Modules-Alt-Repo/chroot-distro&quot;&gt;https://github.com/Magisk-Modules-Alt-Repo/chroot-distro&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;The AR Glasses&lt;/h3&gt;&lt;p&gt;The quality of the image on these things is fantastic. You’re seeing
bright pixels from a beatiful OLED display. But because each pixel is
bounced off the lens, a black pixel just looks clear. So a black
terminal background with white text means you’re seeing white text
floating in space. This is actually pretty cool if you want “less
screen, more world around you” kind of feel, but can also be
distracting. However, the model I bought has electrochromic dimming, so
you can darken the actual “sunglasses” part to block out ambient light.
Without this they’d be unuseable in bright sunlight as the image washes
out, so I highly recommend getting a pair that has this.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://holdtherobot.com/img/blog/image3.avif&quot; alt=&quot;Through-the-lens photo of the AR glasses without electrochromic dimming&quot; title=&quot;&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;small&gt; It’s apparently impossible to get a good through-the-lens
photo, but trust me that the image through the glasses is excellent.
This is without the electrochromic dimming turned on, so text just
floats in front of the scenery. You can darken the glasses to the point
where you can hardly see through them if you want. &lt;/small&gt;&lt;/p&gt;&lt;p&gt;I do feel a little weird wearing these in public, but not
&lt;em&gt;that&lt;/em&gt; weird. They more or less pass for sunglasses, so the odd
part is wearing sunglasses indoors and typing on a keyboard with nothing
in front of you. I had couple people ask me about them, but they seemed
to just think they were cool. One guy said he was going to buy a pair.
That may be selection bias though; I’m sure some people thought I was an
idiot.&lt;/p&gt;&lt;p&gt;The biggest downside of the glasses is that the FOV is actually too
big. Seeing the top and bottom edges of the screen means moving your
eyeballs to angles that are just a little uncomfortable, and it’s
actually difficult to get the lenses in the right spot so that both are
clearly in focus at the same time. I had the window manager add some
extra padding at the top and bottom of the screen, and that helped quite
a bit.&lt;/p&gt;&lt;p&gt;Worth mentioning: I tried to get multi-display mode working on
Android, and it was awful. I ended up using &lt;a href=&quot;https://play.google.com/store/apps/details?id=com.tribalfs.pixels&amp;amp;hl=en-US&quot;&gt;this
app&lt;/a&gt; to change the phone’s resolution to 1080p, and then just mirror
to the glasses. It turned out to be great, because you can pull the
glasses off and just work on the phone whenever you want a break.&lt;/p&gt;&lt;p&gt;The focal plane of the glasses is about 10 feet. Which means if you
use readers for a laptop, you probably won’t need them.&lt;/p&gt;&lt;h3&gt;The Keyboard&lt;/h3&gt;&lt;p&gt;&lt;em&gt;Sigh&lt;/em&gt;. Can someone please make a good folding keyboard? This
little $18 piece of plastic is decent for what it is, but this was the
weakest part of the whole setup, and it feels like it should be the
easiest. It feels cheap, is bulkier than it needs to be, doesn’t lock
when it’s open (which means you can’t really sit with it in your lap),
and there’s no firmware based key remapping.&lt;/p&gt;&lt;p&gt;I might continue to play alibaba roulette and see if there’s a better
one out there. But I would quite literally pay 10 times as much for
something good.&lt;/p&gt;&lt;h3&gt;Performance&lt;/h3&gt;&lt;p&gt;As a rough benchmark, I tried compiling Nim from source.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;On my Framework 13 with a Core Ultra 5 125H it took
&lt;code&gt;4:15&lt;/code&gt;.&lt;/li&gt;&lt;li&gt;On my Thinkpad T450s with an Intel Core i5-5300U it took
&lt;code&gt;14:20&lt;/code&gt;.&lt;/li&gt;&lt;li&gt;On the Pixel 8 Pro it took &lt;code&gt;11:20&lt;/code&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;I would say qualitatively that’s about how it feels to use. Faster
than the Thinkpad, but definitely not as fast as the Framework.&lt;/p&gt;&lt;p&gt;BTW I am glad I paid a little extra for the Pixel 8 Pro, because the
12GB of RAM it has vs the 8 of the non-pro model seems worthwhile. RAM
usage often gets close to that 12GB ceiling.&lt;/p&gt;&lt;h3&gt;Battery Life&lt;/h3&gt;&lt;p&gt;With the glasses on and the phone screen dimmed, the phone used a
little under 3 watts at idle, and 5 to 10 when compiling or doing
heavier things. On average I’d drain about 15% battery per hour. So 4 to
5 hours before you need to be thinking about charging, but I’m not sure
you’d want to have the glasses on longer than that anyway.&lt;/p&gt;&lt;h3&gt;Am I Going to Keep Using
This?&lt;/h3&gt;&lt;p&gt;I’m safely out of the novelty phase at this point, and incredibly, I
think the answer is yes. If I had my laptop with me I would never reach
for the phone, in the same way that if I’m sitting next to my desktop
PC, I’m not going to grab my laptop. But this phone setup can go places
that the laptop can’t, and that freedom is something I’ve been wanting
for a long time, even if I didn’t quite realize it.&lt;/p&gt;&lt;p&gt;I also find it amazing that the whole thing was relatively cheap,
especially when compared to something like the Apple Vision Pro. Which,
funnily enough, can’t do any of what I ended up caring about. It can’t
fit in your pockets, and it’s no more capable of “real” computing than
an iPhone. I guess you can use it outdoors, but your eyes are in a
sealed box, so I don’t think that even counts.&lt;/p&gt;&lt;p&gt;I think there might actually be a future for ultra-mobile software
development. Especially as these AR glasses continue to improve and
Linux continues to be flexible and awesome. Despite the rough edges, I’m
able to go places and do things now that I couldn’t do before, and I’m
exited about it.&lt;/p&gt;</content:encoded>
</item>
<item>
<title>How to Choose the Right Laptop for Linux in 2026 (Performance, Compatibility, and Efficiency)</title>
<link>https://cyberpanel.net/blog/how-to-choose-the-right-laptop-for-linux-in-2026-performance-compatibility-and-efficiency</link>
<guid isPermaLink="false">plfQvBwsfC711I_YgZw1sK31f5aPC9avfoDepQ==</guid>
<pubDate>Thu, 23 Apr 2026 06:16:15 +0000</pubDate>
<description>How to Choose the Right Laptop for Linux in 2026 (Performance, Compatibility, and Efficiency) Linux has become a core platform for developers, cloud engineers, and system administrators—but many users still overlook one critical factor: hardware selection. Choosing the right laptop directly affects kernel compatibility, driver support, and package management efficiency, all of which play a […]</description>
<content:encoded>How to Choose the Right Laptop for Linux in 2026 (Performance, Compatibility, and Efficiency) Linux has become a core platform for developers, cloud engineers, and system administrators—but many users still overlook one critical factor: hardware selection. Choosing the right laptop directly affects kernel compatibility, driver support, and package management efficiency, all of which play a […]</content:encoded>
</item>
<item>
<title>New GoGra malware for Linux uses Microsoft Graph API for comms</title>
<link>https://www.bleepingcomputer.com/news/security/new-gogra-malware-for-linux-uses-microsoft-graph-api-for-comms/</link>
<guid isPermaLink="false">d_8_f9V_iT1I3F8VrwIUUvLamrG6oVmWfo60Gw==</guid>
<pubDate>Thu, 23 Apr 2026 00:12:14 +0000</pubDate>
<description>A Linux variant of the GoGra backdoor uses legitimate Microsoft infrastructure, relying on an Outlook inbox for stealthy payload delivery. [...]</description>
<content:encoded>A Linux variant of the GoGra backdoor uses legitimate Microsoft infrastructure, relying on an Outlook inbox for stealthy payload delivery. [...]</content:encoded>
</item>
<item>
<title>Thelio Mira Quick Look</title>
<link>https://dominickm.com/thelio-mira-quick-look/</link>
<guid isPermaLink="false">8qJLGwOgOWBOP5LuhNPXxAICPQb0PMqBqINSnQ==</guid>
<pubDate>Wed, 22 Apr 2026 23:07:49 +0000</pubDate>
<description>Coder Radio fans will know that I love checking out new hardware and to go along with my System76 Launch Keyboard Heavy, I also picked up the new Thelio Mira; technically, it’s the Thelio Mira Elite which is the pre-configured high-end SKU.  It’s been nearly two weeks and I am still putting it through its […] The post Thelio Mira Quick Look appeared first on dominickm.com.</description>
<content:encoded>&lt;p&gt;&lt;a href=&quot;https://coder.show&quot;&gt;Coder Radio&lt;/a&gt; fans will know that I love checking out new hardware and to go along with my System76 &lt;a href=&quot;https://dominickm.com/system76-launch-heavy-keyboard-review/&quot;&gt;Launch Keyboard Heavy&lt;/a&gt;, I also picked up the new Thelio Mira; technically, it’s the Thelio Mira Elite which is the pre-configured high-end SKU.  It’s been nearly two weeks and I am still putting it through its paces, but I do have some quick takes on how it stacks up to its older Thelio siblings and just general points.  Also, now through the end of May, my shop &lt;a href=&quot;https://themadbotter.com/data&quot;&gt;The Mad Botter INC&lt;/a&gt; is running a promotion on our full solution – if you want to control your data from the shop / floor all the way up to the dashboard, drop me a line!&lt;/p&gt;&lt;p&gt;&lt;strong&gt;The Good&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Fans / Noise:&lt;/strong&gt; In the past, I’ve had some issue with older Thelio models’ fan noise; so much so that I ended getting my hands dirty in the BIOS trying to mitigate it. I’m thrilled to report that with the Mira this is no longer an issue. The fan curve is much improved, I hardly ever hear it under normal usage and when I push it, the noise is reasonable. This clearly was a priority in the design of the totally re-imagined case, as the new case has tons of very large sections of airflow / ventilation.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Performance:&lt;/strong&gt; Of course performance will largely depend on your configuration and I went for a beast – see the &lt;code&gt;neofetch&lt;/code&gt; screen-cap below. With that said, I have been super impressed with this machines raw power especially given the acoustics improvements.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Front Panel Ports:&lt;/strong&gt; When I first read on the announcement that the newly designed case, I didn’t really pay it much mind. Boy was I off base on that. I literally use the front USB-C and standard USB ports just about everyday. I know this is a small point and I almost didn’t include it, but if you are coming from one of the older Thelios this is going to be a significant quality of life improvement for you.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;The Bad&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;2.5GB Networking: &lt;/strong&gt;I’ll admit that I am blessed with FIOS and likely this won’t be an issue for many of you given the miserable state of high-quality high-speed connectivity here in the US. Still, I was disappointed that the only configure network card available even in the Elite configuration maxes out at 2.5GB; for those unfamilar with how these cards work – that’s the max for wired as well. With that said, the Thelio is meant to be easily user-serviceable, so I will probably just swap out the networking card for a more capable one once I’m done with all my reviews of it.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Pricing: &lt;/strong&gt;We all know that tech pricing is wild right now, so I don’t want to hit this too hard. However, it is true that – like is generally System76 machines – the Mira is slightly premium priced. I’m not sure how premium it really is given the RAM-pocolypse and there’s a strong argument that you’re paying for a premium experience and that’s all fair. I just felt that I needed to flag it, because it’s something likely to be flagged.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;All in all, I am extremely happy with this machine and really the whole setup of it and the Launch Heavy. Stay tuned, because I’ve got a whole series of these coming that go into more detail for specific use-cases. Also, remember if you want to retain your data sovereignty end-to-end from the field to the dashboard to the data lake, checkout &lt;a href=&quot;https://themadbotter.com/data&quot;&gt;The Mad Botter INC&lt;/a&gt; and take advantage of that launch promo while it lasts. Comments? Questions? Blood curdling rage? Hit me up on &lt;a href=&quot;https://www.linkedin.com/in/dominucco/&quot;&gt;LinkedIn&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;The post &lt;a href=&quot;https://dominickm.com/thelio-mira-quick-look/&quot;&gt;Thelio Mira Quick Look&lt;/a&gt; appeared first on &lt;a href=&quot;https://dominickm.com&quot;&gt;dominickm.com&lt;/a&gt;.&lt;/p&gt;</content:encoded>
</item>
<item>
<title>Captain’s Log: Reclaiming the Firewall with Local AI - dominickm.com</title>
<link>https://dominickm.com/captains-log-reclaiming-the-firewall-with-local-ai/</link>
<enclosure type="image/jpeg" length="0" url="https://dominickm.com/wp-content/uploads/2026/04/april_12-1024x683.png"></enclosure>
<guid isPermaLink="false">yOZT60Gsdx7fwfq-aSlPgK-eHUujJ8hWuhA-2A==</guid>
<pubDate>Wed, 22 Apr 2026 23:07:49 +0000</pubDate>
<description>Date: April 12, 2026 Status: All Systems Operational Location: The Mad Botter Workshop in Gatorland. Another orbit, another set of rising API bills. Back in January, I noted that the “AI Gold Rush” was entering its consolidation phase. We’re seeing it everywhere: token prices are creeping up, “unlimited” plans are getting asterisked into oblivion, and […]</description>
<content:encoded>&lt;p&gt;&lt;strong&gt;Date:&lt;/strong&gt; April 12, 2026&lt;br/&gt;
&lt;strong&gt;Status:&lt;/strong&gt; All Systems Operational&lt;br/&gt;
&lt;strong&gt;Location:&lt;/strong&gt; The Mad Botter Workshop in Gatorland.&lt;/p&gt;&lt;p&gt;Another orbit, another set of rising API bills.&lt;/p&gt;&lt;p&gt;Back in January, I noted that the “AI Gold Rush” was entering its consolidation phase. We’re seeing it everywhere: token prices are creeping up, “unlimited” plans are getting asterisked into oblivion, and the privacy policies of the big providers are starting to look more like data-harvesting manifestos than legal agreements.&lt;/p&gt;&lt;p&gt;On the bridge of &lt;em&gt;The Mad Botter&lt;/em&gt;, we’ve decided that resistance isn’t just futile—it’s expensive. It’s time to move the nacelles toward &lt;strong&gt;Local Intelligence&lt;/strong&gt;.&lt;/p&gt;&lt;h2&gt;The Professional’s Pivot&lt;/h2&gt;&lt;p&gt;For a long time, running local LLMs was a hobbyist’s game. You needed a stack of GPUs that sounded like a jet engine and the patience of a Vulcan to get the drivers working. But 2026 has changed the math. Between the unified memory efficiency of modern silicon and the sheer optimization of projects like &lt;strong&gt;Ollama&lt;/strong&gt; and &lt;strong&gt;vLLM&lt;/strong&gt;, the Linux desktop has become the premier AI workstation.&lt;/p&gt;&lt;p&gt;We’ve recently transitioned our internal coding assistants and documentation scrapers from the cloud to a dedicated &lt;strong&gt;System76 Thelio&lt;/strong&gt; sitting right behind our firewall.&lt;/p&gt;&lt;h2&gt;Why Linux Wins the AI War&lt;/h2&gt;&lt;p&gt;While the “other” OS options have their “Neural Engine” marketing, Linux has the one thing a professional actually needs: &lt;strong&gt;Transparency&lt;/strong&gt;. On my Pop!_OS setup, I can precisely partition resources without wondering if a background telemetry process is “checking in” with my proprietary code snippets.&lt;/p&gt;&lt;p&gt;Here is why the transition has been “boring” in the best way possible:&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Zero Latency:&lt;/strong&gt; When the model is running on your LAN (or your local NVMe), the “thinking” happens at the speed of your hardware, not your ISP’s whims.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The Dockerized Sanity:&lt;/strong&gt; We’re using a containerized setup that keeps our AI stack completely isolated from the host OS. If a model update goes sideways, we just roll back the image. No “dependency hell” allowed on this bridge.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The “Omakase” AI:&lt;/strong&gt; Just as the &lt;strong&gt;Omakub&lt;/strong&gt; project provides a curated developer experience, we’ve found that a “curated” local model—specifically tuned for our CGO, Python, and Ruby on Rails stack—actually outperforms the “jack-of-all-trades” proprietary models for our specific codebase.&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;The Sovereign Stack (and the Shortcut)&lt;/h2&gt;&lt;p&gt;For the curious, we aren’t doing anything mystical. We’re running a highly optimized Ollama instance paired with a clean web interface. It gives the team a familiar experience but with &lt;strong&gt;100% data sovereignty&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;I spent weeks tuning this configuration to make sure it didn’t just &lt;em&gt;run&lt;/em&gt;, but actually felt like a professional tool. If you want to bypass the trial and error and get this exact setup running on your own hardware, I’ve packaged everything—the containers, the models, and the “Mad Botter” secret sauce—into the &lt;a href=&quot;https://themadbotter.gumroad.com/l/coderstack&quot;&gt;&lt;strong&gt;Coder Stack&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;When I’m out with the &lt;strong&gt;Oryx Pro&lt;/strong&gt;, I VPN back into the Thelio. It feels like having a personal data center in my pocket. No token limits, no “as an AI language model” moralizing, and most importantly, no monthly subscription “AI Tax.”&lt;/p&gt;&lt;h2&gt;The Verdict&lt;/h2&gt;&lt;p&gt;The era of the “Cloud-First” developer is hitting a ceiling. As AI becomes an essential part of the shipping process, the friction of external dependencies becomes a liability.&lt;/p&gt;&lt;p&gt;2026 is the year we stop renting our intelligence. If you’re still sending your IP to a third party because “local is too hard,” you haven’t been paying attention to how far the Linux ecosystem has come. The tools are here, the hardware is ready, and the nacelles are stable.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;It’s time to bring your bots home.&lt;/strong&gt;&lt;/p&gt;&lt;hr/&gt;&lt;p&gt;&lt;em&gt;If you enjoyed this log, check out the latest episode of &lt;a href=&quot;https://coder.show&quot;&gt;Coder Radio&lt;/a&gt; or drop me a line on LinkedIn. If you’re ready to flip the switch on your own local AI, grab the &lt;a href=&quot;https://themadbotter.gumroad.com/l/coderstack&quot;&gt;Coder Stack&lt;/a&gt; and let’s get to work. – Also, for a fully integrated solution checkout my company &lt;a href=&quot;https://themadbotter.com/botterkit?utm_source=dominickm&quot;&gt;The Mad Botter&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;</content:encoded>
</item>
<item>
<title>Robin Candau | Arch Linux now has a bit-for-bit reproducible Docker image</title>
<link>https://antiz.fr/blog/archlinux-now-has-a-reproducible-docker-image/</link>
<guid isPermaLink="false">gidEKun9n8fxFsRftU_Yu4o1zFkpSAlXG67Rqg==</guid>
<pubDate>Wed, 22 Apr 2026 22:14:21 +0000</pubDate>
<description>As a follow-up to the similar milestone reached for our WSL image a few months ago, I’m happy to share that Arch Linux now has a bit-for-bit reproducible Docker image! This bit-for-bit reproducible image is distributed under a new “repro” tag. The reason for this is due to one noticeable caveat: to ensure reproducibility, the pacman keys have to be stripped from the image, meaning that pacman is not usable out of the box in this image. While waiting to find a suitable solution to this t...</description>
<content:encoded>&lt;h1&gt;Arch Linux Now Has a Bit-for-Bit Reproducible Docker Image&lt;/h1&gt;&lt;ul&gt;
          &lt;li&gt;
            
            &lt;span&gt;
                
                  Tue, Apr 21, 2026
                

              
            &lt;/span&gt;
          &lt;/li&gt;
          &lt;li&gt;
            
            &lt;span&gt;3-minute read&lt;/span&gt;
          &lt;/li&gt;
        &lt;/ul&gt;&lt;p&gt;As a follow-up to the &lt;a href=&quot;https://antiz.fr/blog/the-archlinux-wsl-image-is-now-reproducible/&quot;&gt;similar milestone reached for our WSL image a few months ago&lt;/a&gt;, I’m happy to share that Arch Linux now has a bit-for-bit reproducible Docker image!&lt;/p&gt;&lt;p&gt;This bit-for-bit reproducible image is distributed under a new &lt;a href=&quot;https://hub.docker.com/layers/archlinux/archlinux/repro&quot;&gt;“repro” tag&lt;/a&gt;.&lt;br/&gt;
The reason for this is due to one &lt;em&gt;noticeable&lt;/em&gt; caveat: to ensure reproducibility, the pacman keys have to be stripped from the image, meaning that pacman is not usable &lt;em&gt;out of the box&lt;/em&gt; in this image. While waiting to find a suitable solution to this technical constraint, we are therefore providing this reproducible image under a dedicated tag as a first milestone.&lt;/p&gt;&lt;p&gt;In practice, that means that users will need to (re)generate the pacman keyring in the container before being able to install and update packages via &lt;code&gt;pacman&lt;/code&gt;, by running: &lt;code&gt;pacman-key --init &amp;amp;&amp;amp; pacman-key --populate archlinux&lt;/code&gt; (whether interactively at first start or from a &lt;code&gt;RUN&lt;/code&gt; statement in a Dockerfile if using this image as base).&lt;br/&gt;
Distrobox users can run this as a pre-init hook: &lt;code&gt;distrobox create -n arch-repro -i docker.io/archlinux/archlinux:repro --pre-init-hooks &amp;quot;pacman-key --init &amp;amp;&amp;amp; pacman-key --populate archlinux&amp;quot;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;The bit-for-bit reproducibility of the image is confirmed by digest equality across builds (via &lt;code&gt;podman inspect --format &amp;#39;{{.Digest}}&amp;#39; &amp;lt;image&amp;gt;&lt;/code&gt;) and by using &lt;a href=&quot;https://github.com/reproducible-containers/diffoci&quot;&gt;diffoci&lt;/a&gt; to compare builds.&lt;br/&gt;
Documentation to reproduce this Docker image is available &lt;a href=&quot;https://gitlab.archlinux.org/archlinux/archlinux-docker/-/blob/master/REPRO.md&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Building the base rootFS for the Docker image in a deterministic way was the main challenge, but it reuses &lt;a href=&quot;https://gitlab.archlinux.org/archlinux/archlinux-wsl/-/commit/7c0340e26358048f3f8ee03b3ab3aea666751712&quot;&gt;the same process as for our WSL image&lt;/a&gt; (as both share the same rootFS build system).&lt;/p&gt;&lt;p&gt;The main Docker-specific adjustments include (see also the related &lt;code&gt;diffoci&lt;/code&gt; reports):&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;Set &lt;code&gt;SOURCE_DATE_EPOCH&lt;/code&gt; and honor it in the &lt;code&gt;org.opencontainers.image.created&lt;/code&gt; LABEL in the Dockerfile&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;TYPE    NAME                  INPUT-0    INPUT-1
Cfg     ctx:/config/config    ?          ?&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;Remove the ldconfig auxiliary cache file (which introduces non-determinism) from the built image in the Dockerfile:&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;TYPE    NAME                            INPUT-0                                                             INPUT-1
File    var/cache/ldconfig/aux-cache    656b08db599dbbd9eb0ec663172392023285ed6598f74a55326a3d95cdd5f5d0    ffee92304701425a85c2aff3ade5668e64bf0cc381cfe0a5cd3c0f4935114195&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;Normalize timestamps during &lt;code&gt;docker build&lt;/code&gt; / &lt;code&gt;podman build&lt;/code&gt; using the &lt;code&gt;--source-date-epoch=$SOURCE_DATE_EPOCH&lt;/code&gt; and &lt;code&gt;--rewrite-timestamp&lt;/code&gt; options:&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;TYPE    NAME                 INPUT-0                          INPUT-1
File    etc/                 2026-03-31 07:57:46 +0000 UTC    2026-03-31 07:59:21 +0000 UTC
File    etc/ld.so.cache      2026-03-31 07:57:46 +0000 UTC    2026-03-31 07:59:21 +0000 UTC
File    etc/os-release       2026-03-31 07:57:46 +0000 UTC    2026-03-31 07:59:21 +0000 UTC
File    sys/                 2026-03-31 07:57:46 +0000 UTC    2026-03-31 07:59:21 +0000 UTC
File    var/cache/           2026-03-31 07:57:46 +0000 UTC    2026-03-31 07:59:21 +0000 UTC
File    var/cache/ldconfig/  2026-03-31 07:57:46 +0000 UTC    2026-03-31 07:59:21 +0000 UTC
File    proc/                2026-03-31 07:57:46 +0000 UTC    2026-03-31 07:59:21 +0000 UTC
File    dev/                 2026-03-31 07:57:46 +0000 UTC    2026-03-31 07:59:21 +0000 UTC&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You can check &lt;a href=&quot;https://gitlab.archlinux.org/archlinux/archlinux-docker/-/merge_requests/96/diffs&quot;&gt;the related change set in our archlinux-docker repository&lt;/a&gt; for more details.&lt;br/&gt;
Thanks to &lt;a href=&quot;https://hegreberg.io/&quot;&gt;Mark&lt;/a&gt; for his help on that front!&lt;/p&gt;&lt;p&gt;This represents yet another meaningful achievement regarding our general “reproducible builds” efforts and I’m already looking forward to the next step! 🤗&lt;/p&gt;&lt;p&gt;For what it’s worth, I’m eventually considering setting up a rebuilder for this Docker image (as well as for &lt;a href=&quot;https://gitlab.archlinux.org/archlinux/archlinux-wsl/-/blob/main/REPRO.md&quot;&gt;the WSL image&lt;/a&gt; and future eventual reproducible images) on my server in order to periodically / automatically rebuild the latest image available, verify it’s reproducibility status and share build logs / results publicly somewhere (if I find the time to get to it 👼).&lt;/p&gt;</content:encoded>
</item>
<item>
<title>Linux may be ending support for older network drivers due to influx of false AI-generated bug reports — maintenance has become too burdensome for old large...</title>
<link>https://www.tomshardware.com/software/linux/linux-may-be-ending-support-for-older-network-drivers-due-to-influx-of-false-ai-generated-bug-reports-maintenance-has-become-too-burdensome-for-old-largely-unused-systems</link>
<enclosure type="image/jpeg" length="0" url="https://cdn.mos.cms.futurecdn.net/3nYgMvQAeoYcdknTBwVHid-1280-80.png"></enclosure>
<guid isPermaLink="false">yT6sFMJRPxhX2grHdJysvTwKX9X4OfgBYwy0KA==</guid>
<pubDate>Wed, 22 Apr 2026 19:33:28 +0000</pubDate>
<description>Linux kernel developers are reviewing a proposal to remove obsolete ISA and PCMCIA-era Ethernet drivers from the mainline kernel, citing rising maintenance burden from AI-driven bug reports and fuzzing. The change would cut around 27,000 lines of legacy code</description>
<content:encoded>Linux kernel developers are reviewing a proposal to remove obsolete ISA and PCMCIA-era Ethernet drivers from the mainline kernel, citing rising maintenance burden from AI-driven bug reports and fuzzing. The change would cut around 27,000 lines of legacy code</content:encoded>
</item>
<item>
<title>Valve VRAM hack may improve gaming on 4GB GPUs — testing showed mixed results in select titles, with FPS almost tripling in certain games</title>
<link>https://www.tomshardware.com/software/linux/valve-vram-hack-may-improve-gaming-on-4gb-gpus-testing-showed-mixed-results-in-select-titles-with-fps-almost-tripling-in-certain-games</link>
<enclosure type="image/jpeg" length="0" url="https://cdn.mos.cms.futurecdn.net/R9UpfU865KJYAkXHNbYVPW-1280-80.jpg"></enclosure>
<guid isPermaLink="false">0TuE2heP-pCb4Rb0t1nWsfWPQExa9D_yI9H2Og==</guid>
<pubDate>Wed, 22 Apr 2026 19:33:28 +0000</pubDate>
<description>Valve’s VRAM hack can boost performance on 4GB GPUs, with testing showing FPS gains of up to 3x in some titles, though results vary widely depending on the game and settings.</description>
<content:encoded>Valve’s VRAM hack can boost performance on 4GB GPUs, with testing showing FPS gains of up to 3x in some titles, though results vary widely depending on the game and settings.</content:encoded>
</item>
<item>
<title>Linux 7.1 update includes new in-kernel NTFS driver — delivers storage support upgrade for Linux users</title>
<link>https://www.tomshardware.com/software/linux/linux-7-1-update-includes-new-in-kernel-ntfs-driver-delivers-storage-support-upgrade-for-linux-users</link>
<enclosure type="image/jpeg" length="0" url="https://cdn.mos.cms.futurecdn.net/QsdcGfcmJhk9bSzheCthVf-1280-80.jpg"></enclosure>
<guid isPermaLink="false">n5rMEJdEpIIFUs9oo4Kj7WEnxaL4yU0_phOUhQ==</guid>
<pubDate>Wed, 22 Apr 2026 19:33:27 +0000</pubDate>
<description>Linux 7.1 is bringing what might be the biggest under-the-radar storage change in years: a new in-kernel NTFS driver.</description>
<content:encoded>Linux 7.1 is bringing what might be the biggest under-the-radar storage change in years: a new in-kernel NTFS driver.</content:encoded>
</item>
<item>
<title>Hello Again, SuSE Linux | Brain Baking</title>
<link>https://brainbaking.com/post/2026/04/hello-again-suse-linux/</link>
<enclosure type="image/jpeg" length="0" url="https://brainbaking.com/post/2026/04/hello-again-suse-linux/suse-linux.jpg"></enclosure>
<guid isPermaLink="false">qN9K8IufPtb-ECPkOdvtCRlWrDxhAIojN_NHSQ==</guid>
<pubDate>Wed, 22 Apr 2026 17:35:29 +0000</pubDate>
<description>It’s good to see you again, old friend. It’s been a while. Twenty-three years, you say? …</description>
<content:encoded>&lt;p&gt;It’s good to see you again, old friend. It’s been a while. Twenty-three years, you say? How come we managed to drift apart that far? I know, I know, I betrayed you. But my room was cold at night and Gentoo offered me the ability to keep on compiling. And then I betrayed GNU/Linux for FreeBSD. And then I switched the demon for the apple. I’ve been on an apple diet for so long now, I can barely remember the tux.&lt;/p&gt;&lt;p&gt;What is it you say? Oh, it’s openSUSE now. Sure, you’re a chameleon, you can take on any colour you’d like. Great to see it’s still green. I like green. How’s YaST doing these days? &lt;code&gt;zypper&lt;/code&gt;? What’s that, no more &lt;code&gt;rpm -i&lt;/code&gt;? That’s cool, it looks like you’ve made some progress! Let’s make a screenshot the proper nerdy way and do some &lt;code&gt;uname -a | cowsay&lt;/code&gt; in a terminal! Oh, that’s no longer cool? &lt;code&gt;fastfetch&lt;/code&gt;? So first &lt;code&gt;zypper install fastfetch&lt;/code&gt; and then that command? Let’s try that:&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;figure&gt;&lt;a href=&quot;https://brainbaking.com/post/2026/04/hello-again-suse-linux/suse-linux.jpg&quot;&gt;
		&lt;img src=&quot;https://brainbaking.com/post/2026/04/hello-again-suse-linux/suse-linux.jpg&quot; alt=&quot;&quot; title=&quot;openSUSE Tumbleweed running on the HP work laptop.&quot;/&gt;
	&lt;/a&gt;
	
		&lt;figcaption&gt;openSUSE Tumbleweed running on the HP work laptop.&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;My last experience with the Linux desktop was indeed about twenty years ago. Since 2012, I’ve been a macOS user. I’m no longer proud of it: &lt;a href=&quot;https://brainbaking.com/post/2024/05/i-miss-bsd-linux/&quot;&gt;I miss Linux&lt;/a&gt; and I think &lt;a href=&quot;https://brainbaking.com/post/2022/10/my-desktop-is-dull-thanks-to-macos/&quot;&gt;macOS is boring and full of bloat&lt;/a&gt;. Yet the rise of the Apple silicon made me buy another one in 2020, which is still the one I’m using right now. The hardware is amazing, the screen is amazing, and the weight and fanless features are amazing. But I still miss customisation features—the ability to truly make the desktop mine—and I stopped updating the OS as a protest to ever increasing bloatware. This laptop is still running Sonoma which is bad enough as it is.&lt;/p&gt;&lt;p&gt;I have no intentions to go out and buy another machine any time soon; this one’s still doing fine; but I did start to wonder. What if… I got a ThinkPad and installed Linux back onto it? Would the hardware match the high standards I’m accustomed to now? Would I still be able to make my way around the OS? I ran GNOME 2 and KDE 3 (and then got nerdy with Fvwm). I compiled my own &lt;a href=&quot;https://brainbaking.com/works/linux-2-6-sources/&quot;&gt;Linux 2.6 kernel patches&lt;/a&gt; back when that was brand new. I have no idea what’s happening now. That’s not to say that I don’t touch Linux: I use it daily to host this website, to run the NAS at home, and in virtual containers. But that’s not the &lt;em&gt;Linux Desktop Experience&lt;/em&gt;.&lt;/p&gt;&lt;p&gt;My main motivation for moving away from Linux was my frustration with endless configuration and compilation. Back in the day, hibernate didn’t just work out of the box, the fan speed had to be configured depending on the type of the laptop, nVidia drivers were a pain (still are), etc. Work and life started getting in the way: I no longer had endless seas of time on my hand to go nuts with Gentoo. With two young kids, that times has dwindled even more, so NixOS or even Arch is out of the question.&lt;/p&gt;&lt;p&gt;Being fed up with the crappy Windows 11 installation on my work laptop, I wiped that partition and remembered my old friend The European Chameleon. So here I am, testing the waters yet again. Thanks to Valve, &lt;a href=&quot;https://lutris.net/&quot;&gt;Lutris is amazing&lt;/a&gt;. KDE Plasma feels mature (even though some configuration settings seem sluggish). I don’t want to dive into the rabbit hole of AwesomeWM (but I do). I don’t want to try and live without systemd or have to hurt my brain about X11 vs Wayland. I want the thing to “just work”. I want my chameleon to be an apple. A proper one, like a “back in the day” apple one.&lt;/p&gt;&lt;p&gt;I haven’t had the time to give openSUSE a proper trail. I’m mainly fighting my muscle memory with &lt;code&gt;CMD&lt;/code&gt; versus that strange &lt;code&gt;CTRL&lt;/code&gt; location which is somewhat diminished by &lt;a href=&quot;https://github.com/RedBearAK/toshy&quot;&gt;Toshy&lt;/a&gt; that then doesn’t work well in combination with my Emacs configuration. What I did notice is that hibernation/suspend is still ugly: if I close the lid for a night without putting the laptop in true hibernate mode (with its dedicated swap partition), the battery drain is ridiculous, especially coming from a MacBook Air that I just jam shut and open up again a hundred times a day.&lt;/p&gt;&lt;p&gt;This made me realise I will probably have to give up on the hardware quality part if my next laptop is going to be a non-Apple one. Which I don’t really want to? &lt;a href=&quot;https://site.sebasmonia.com/&quot;&gt;Seb&lt;/a&gt; and I discussed which laptop to get when ours would break down. The Framework is an obvious one as are the System76 ones that specifically support Linux. Alex White’s &lt;a href=&quot;https://thatalexguy.dev/my-everyday-carry&quot;&gt;everyday carry post&lt;/a&gt; made me realise the build quality of these is average at best. It’s going to be a painful experience migrating from that. I know &lt;a href=&quot;https://kevquirk.com/a-year-with-the-framework-13&quot;&gt;Kev is happy with his Framework&lt;/a&gt;, but I’m not yet fully convinced. The fact that this HP EliteBook 6 G1a 16 work laptop’s screen and overall build quality is terrible is not helping either. The touchpad palm detection experience is horrible on KDE.&lt;/p&gt;&lt;p&gt;Let’s first give the chameleon another chance to see if on an OS level I could live without macOS and my usual mac-exclusive power tools. The ones I’ll miss the most might be &lt;a href=&quot;https://alfred.app/&quot;&gt;Alfred&lt;/a&gt; and &lt;a href=&quot;https://www.devontechnologies.com/apps/devonthink&quot;&gt;DEVONthink&lt;/a&gt;. My recent migration to do-everything-in-Emacs does make the transition a lot easier. I also moved from iTerm2 to Ghostty last year and am now trying out Kitty with the Fish shell. My RSS feed now lives inside my FreshRSS server making me less dependent on NetNewsWire.&lt;/p&gt;&lt;p&gt;Software-wise, I’m getting there. I’m sure I’ll get there.&lt;/p&gt;&lt;p&gt;But what about hardware-wise?&lt;/p&gt;&lt;p&gt;
			        
			        	
                
                    &lt;kbd&gt;&lt;a href=&quot;https://brainbaking.com/categories/software&quot;&gt;software&lt;/a&gt;&lt;/kbd&gt;
                
                 
			        
				    
				    	
					    &lt;span&gt;
					        
					            &lt;kbd&gt;&lt;a href=&quot;https://brainbaking.com/tags/linux&quot;&gt;linux&lt;/a&gt;&lt;/kbd&gt; 
					        
					    &lt;/span&gt;
					&lt;/p&gt;</content:encoded>
</item>
<item>
<title>Linux 7.0 Released</title>
<link>https://www.igalia.com/2026/04/15/Linux-70-Released.html</link>
<guid isPermaLink="false">QAPiOG22f47OuRJzdU3M_f642qQRpZcqiH6ZRg==</guid>
<pubDate>Wed, 22 Apr 2026 16:46:55 +0000</pubDate>
<description>Linux 7.0 Released The new kernel version is out, this time with an increased major number. As usual, despite the perceived importance of the version number, this is just one release more. That means no spectacular announcements; just consistent work, more features, more fixes, better support. A couple of non-technical changes stand out in this release: Rust is no longer considered experimental in the kernel, and there is now an official policy on tool-generated content. The kernel keeps evol...</description>
<content:encoded>&lt;h1&gt;Linux 7.0 Released&lt;/h1&gt;&lt;p&gt;The new kernel version &lt;a href=&quot;https://lkml.org/lkml/2026/4/12/604&quot;&gt;is out&lt;/a&gt;, this time with an increased major number. As usual, despite the perceived importance of the version number, this is just one release more. That means no spectacular announcements; just consistent work, more features, more fixes, better support.&lt;/p&gt;&lt;p&gt;A couple of non-technical changes stand out in this release: Rust is &lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9fa7153c31a3&quot;&gt;no longer considered experimental&lt;/a&gt; in the kernel, and there is now an &lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a66437c27979577fe1feffba502b9eadff13af7d&quot;&gt;official policy&lt;/a&gt; on tool-generated content. The kernel keeps evolving and this will surely pave the way for future development in the coming years.&lt;/p&gt;&lt;p&gt;For a detailed list of changes, you can check the &lt;a href=&quot;https://kernelnewbies.org/Linux_7.0&quot;&gt;KernelNewbies ChangeLog&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;At Igalia, the Linux kernel is one of ever-present work areas and interests and we keep contributing to it on many fronts. Here’s our list of contributions and patches for this release.&lt;/p&gt;&lt;h2&gt;Igalia changelog&lt;/h2&gt;&lt;h3&gt;Direct Rendering Manager improvements&lt;/h3&gt;&lt;p&gt;Our work on the DRM (Direct Rendering Manager) continues. Being one of our biggest areas of contribution, in this release we once again provided improvements.&lt;/p&gt;&lt;p&gt;In the AMD display driver, we fixed unexpected color results reported by SteamOS/Gamescope users. These were related to incorrect mapping of color values made by the AMD color module when programming some color transformations into the hardware. We also improved the support for newer hardware families by exposing missing plane color blocks.&lt;/p&gt;&lt;p&gt;Further, we provided many assorted patches to do various cleanups in the &lt;a href=&quot;https://www.kernel.org/doc/html/v7.0/gpu/drm-mm.html#the-translation-table-manager-ttm&quot;&gt;TTM layer&lt;/a&gt; and multiple small (but important!) fixes in the AMD, Intel and v3d drivers, as well as a fix for the framebuffer probing on the Valve Steam Deck.&lt;/p&gt;&lt;h3&gt;New BPF helpers for sched_ext schedulers&lt;/h3&gt;&lt;p&gt;For the past couple of years, we’ve been consistently contributing to &lt;a href=&quot;https://github.com/sched-ext/scx&quot;&gt;sched_ext&lt;/a&gt; and, in particular, to the &lt;a href=&quot;https://github.com/sched-ext/scx/tree/main/scheds/rust/scx_lavd#scx_lavd&quot;&gt;scx_lavd&lt;/a&gt; scheduler to enhance the gaming experience in Linux, improving the latency and interactivity under gaming workloads.&lt;/p&gt;&lt;p&gt;In this release, we introduced a set of BPF helper APIs –&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;bpf_in_nmi()&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;bpf_in_hardirq()&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;bpf_in_serving_softirq()&lt;/code&gt;, and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;bpf_in_task()&lt;/code&gt; – along with their corresponding self-tests. These helpers allow BPF programs to precisely detect their execution context. This capability is particularly valuable for sched_ext schedulers; for instance, a BPF scheduler like &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;scx_lavd&lt;/code&gt; can now distinguish whether a task was woken up by another process or via an interrupt, enabling more informed scheduling decisions.&lt;/p&gt;&lt;h3&gt;Small fixes to RPi pmdomain and vc4 fixes for RPi 3&lt;/h3&gt;&lt;p&gt;In our ongoing effort to improve Raspberry Pi devices, we addressed several issues related to the RPi 4 power domain, fixing system hangs during power transitions and correcting a broken reset status read. Additionally, on the RPi 3, we resolved a couple of memory leaks, race conditions, and PM reference imbalances, improving overall reliability for RPi users.&lt;/p&gt;&lt;h3&gt;Assorted bug fixes and maintainability improvements&lt;/h3&gt;&lt;p&gt;As usual, we helped with the never-ending task of fixing bugs, this time clearing up a few of them in the Bluetooth stack and the DRM TTM.&lt;/p&gt;&lt;p&gt;We determined the root cause of two race conditions in the thermal subsystem’s core that could potentially cause a system crash, and developed synthetic reproducers for it. Even though the approach selected to address the issue was not our proposed fix, we contributed to its code review and testing with our specific understanding of the issue and synthetic reproducers, improving the overall quality of the fix.&lt;/p&gt;&lt;p&gt;Another important and often overlooked type of contribution is the refactoring of code to make it more maintainable. In this case, by replacing deprecated APIs and legacy macros. We submitted some patches to do this kind of update in parts of the DRM subsystem and the v3d driver.&lt;/p&gt;&lt;h3&gt;Other&lt;/h3&gt;&lt;p&gt;As with every release, we helped with assorted janitor tasks such as documentation fixes and cleanups — specifically improving the exportfs and DRM documentation — as well as the usual share of reviews and tests.&lt;/p&gt;&lt;h2&gt;Authored (52)&lt;/h2&gt;&lt;h3&gt;Alberto Garcia&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=734eba62cd32cb9ceffa09e57cdc03d761528525&quot;&gt;PM: hibernate: Drain trailing zero pages on userspace restore&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;André Almeida&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5e7fa6bfa9b5ced6868fc652d5c40fe0eac154d9&quot;&gt;exportfs: Fix kernel-doc output for get_name()&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=fc76b5968a435894062ad4160c2e81c32cc4972e&quot;&gt;exportfs: Mark struct export_operations functions at kernel-doc&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7a6f811e2c06d656996776771f0498df129a0cc2&quot;&gt;exportfs: Complete kernel-doc for struct export_operations&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f9a6a3fec23a852851049847f2ba3be6eb6eb0b7&quot;&gt;docs: exportfs: Use source code struct documentation&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changwoo Min&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c31df36bd26a5ed8898bb3fcc8c37ea9157ba784&quot;&gt;selftests/bpf: Introduce execution context detection helpers&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=221b5e76c1c6e8ad4fa7c95a689e44ff45daab1c&quot;&gt;selftests/bpf: Add tests for execution context helpers&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=cd77618c418254b827f2a807b4c27b97088fdb52&quot;&gt;selftests/bpf: Make bpf get_preempt_count() work for v6.14+ kernels&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9badc2a84e688be1275bb740942d5f6f51746908&quot;&gt;PM: EM: Fix NULL pointer dereference when perf domain ID is not found&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0c4a59df370bea245695c00aaae6ae75747139bd&quot;&gt;sched_ext: Fix is_bpf_migration_disabled() false negative on non-PREEMPT_RCU&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Heitor Alves de Siqueira&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=21e4271e65094172aadd5beb8caea95dd0fbf6d7&quot;&gt;Bluetooth: purge error queues in socket destructors&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=8a768552f7a8276fb9e01d49773d2094ace7c8f1&quot;&gt;usb: usbtmc: Flush anchored URBs in usbtmc_release&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Helen Koike&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b6552e0503973daf6f23bd6ed9273ef131ee364f&quot;&gt;Bluetooth: L2CAP: Fix null-ptr-deref on l2cap_sock_ready_cb&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3822743dc20386d9897e999dbb990befa3a5b3f8&quot;&gt;ext4: reject mount if bigalloc with s_first_data_block != 0&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Maíra Canal&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=eaba54b8a67bdec7f834d61ff6cf5f0f3f4ea5bc&quot;&gt;drm/v3d: Consolidate CPU job validation in a function&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f5520a1a844342af7295a72c35cc9690b7a9fdd1&quot;&gt;drm/v3d: Convert v3d logging to device-based DRM helpers&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=550bae2c0931dbb664a61b08c21cf156f0a5362a&quot;&gt;pmdomain: bcm: bcm2835-power: Fix broken reset status read&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b826d2c0b0ecb844c84431ba6b502e744f5d919a&quot;&gt;pmdomain: bcm: bcm2835-power: Increase ASB control timeout&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=aaefbdde9abdc43699e110679c0e10972a5e1c59&quot;&gt;drm/vc4: Release runtime PM reference after binding V3D&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f4dfd6847b3e5d24e336bca6057485116d17aea4&quot;&gt;drm/vc4: Fix memory leak of BO array in hang state&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9525d169e5fd481538cf8c663cc5839e54f2e481&quot;&gt;drm/vc4: Fix a memory leak in hang state error path&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=338c56050d8e892604da97f67bfa8cc4015a955f&quot;&gt;drm/vc4: Protect madv read in vc4_gem_object_mmap() with madv_lock&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Melissa Wen&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5006505b19a2119e71c008044d59f6d753c858b9&quot;&gt;drm/amd/display: fix wrong color value mapping on MCM shaper LUT&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0274a54897f356f9c78767c4a2a5863f7dde90c6&quot;&gt;drm/amd/display: extend delta clamping logic to CM3 LUT helper&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1714dcc4c2c53e41190896eba263ed6328bcf415&quot;&gt;drm/amd/display: remove assert around dpp_base replacement&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ff205dc95a897b4b8c093b665702e83bffd04dc9&quot;&gt;drm/amd/display: expose plane blend LUT in HW with MCM&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Rodrigo Siqueira&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b9befc9a21bdeafb0f81b757c60df66e6e9feb17&quot;&gt;drm/amdgpu: Expand kernel-doc in amdgpu_ring&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e0f90f184d18c70c1b04e8b03a5243e275ce86f4&quot;&gt;Documentation/gpu: Add new glossary entries from UMR&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d68ba530ec79ec02c5432c3ae9c852081cc5ebb1&quot;&gt;Documentation/gpu: Expand generic block information&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=03a48f07aa89ee72c2cfcc0be70858a745b2a573&quot;&gt;Documentation/gpu: Add more information about GC&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=03dc0a6cb6dc8a2ca0201acf599adb26b8c9423b&quot;&gt;Documentation/gpu: Add documentation about ring buffer&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Thadeu Lima de Souza Cascardo&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=267f53140c9d0bf270bbe0148082e9b8e5011273&quot;&gt;fpga: dfl: use subsys_initcall to allow built-in drivers to be added&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=91d7e9df42598af28ca440b95b16a4e51a408771&quot;&gt;drm/ttm: Fix bo resource use-after-free&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Tvrtko Ursulin&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e85e9ccf3f8404007f62dff9a02273fcdeb44206&quot;&gt;drm/panic: Report invalid or unsupported panic modes&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ee8721bee80150ed1e4ee5ebb6aaf070802ac81b&quot;&gt;drm/ttm: Make ttm_bo_init_validate safe against ttm_operation_ctx re-ordering&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=feb065155bab2fabc3545bf57ae31e86d02df9a1&quot;&gt;drm/ttm: Resource cannot be NULL in ttm_resource_intersects&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=802620f5a9cf7231933cfce61817577b3b6543d9&quot;&gt;drm/ttm: Tidy ttm_operation_ctx initialization&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c06da4b3573a2d3c906c185450d0b1059d02820e&quot;&gt;drm/ttm: Tidy usage of local variables a little bit&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6a99e91a6ca8fec5882450128fb128265f86b32a&quot;&gt;drm/i915/display: Detect AuxCCS support via display parent interface&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=bb2c941b3131437185e79c8f2a16469876664572&quot;&gt;efi: sysfb_efi: Replace open coded swap with the macro&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=449b87e81f3561bd907d3b9a31cf69590132a2df&quot;&gt;efi: sysfb_efi: Fix lfb_linelength calculation when applying quirks&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7f2f1fd6fc050be874afa9eb52a0ff974f379869&quot;&gt;efi: sysfb_efi: Convert swap width and height quirk to a callback&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c7c7eb5ed5a3896e57019f7b33e3b7dcb4ab73b4&quot;&gt;efi: sysfb_efi: Fix efidrmfb and simpledrmfb on Valve Steam Deck&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=fec2c3c01f1ca0cd2706941e78b9972e7f9474c0&quot;&gt;drm/syncobj: Convert syncobj idr to xarray&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a61bf068f1fe359203f1af191cb523b77dc32752&quot;&gt;drm/xe: Fix ggtt fb alignment&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f7e06786512e730f750138b1221b6342bcf07859&quot;&gt;drm/amdgpu/mes: Remove idr leftovers v2&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=dda702172dc26e080fe048b8f170eaccb8097c1a&quot;&gt;drm/amdgpu: Simplify sorting of the bo list&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=49abfa812617a7f2d0132c70d23ac98b389c6ec1&quot;&gt;drm/amdgpu/userq: Fix reference leak in amdgpu_userq_wait_ioctl&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7b7d7693a55d606d700beb9549c9f7f0e5d9c24f&quot;&gt;drm/amdgpu/userq: Do not allow userspace to trivially triger kernel warnings&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6e3f4514e3b432871ac81717d24f56b441857f77&quot;&gt;drm/ttm: Fix ttm_pool_beneficial_order() return type&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=048c1c4e51715ffddd4189745c07f530f34fbe37&quot;&gt;drm/amdgpu/userq: Consolidate wait ioctl exit path&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=06f4297134db37fb326047b1ed8194a23cdf057d&quot;&gt;drm/syncobj: Fix xa_alloc allocation flags&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Reviewed (29)&lt;/h2&gt;&lt;h3&gt;Christian Gmeiner&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a8fffbe7dec7d2dda19ed8c7cc13bed744546c05&quot;&gt;drm/etnaviv: Add command stream definitions required for a PPU flop reset&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9934873be03c781e0be7b91168fb6a929b140cd1&quot;&gt;drm/etnaviv: move some functions to a header to be able to use them externally&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9fcdece1a734bc71d2d9f9e3dd301cc9fff23327&quot;&gt;drm/etnaviv: Add a new function to emit a series of states to cmd stream&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=85ba57ad88cf96b2fb4cf6c81639c7907bf3cd94&quot;&gt;drm/etnaviv: Add PPU flop reset&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6a0b99e9fb45f403c3097a9047963d2dd5b0fab2&quot;&gt;drm/etnaviv: Add module parameter to force PPU flop reset&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Gavin Guo&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=939080834fef3ce42fdbcfef33fd29c9ffe5bbed&quot;&gt;mm/huge_memory: fix early failure try_to_migrate() when split huge pmd for shared THP&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Iago Toral Quiroga&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=eaba54b8a67bdec7f834d61ff6cf5f0f3f4ea5bc&quot;&gt;drm/v3d: Consolidate CPU job validation in a function&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f5520a1a844342af7295a72c35cc9690b7a9fdd1&quot;&gt;drm/v3d: Convert v3d logging to device-based DRM helpers&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Mauricio Faria de Oliveira&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=45b859b0728267a6199ee5002d62e6c6f3e8c89d&quot;&gt;thermal: core: Address thermal zone removal races with resume&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Maíra Canal&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6e0b1b82017b9ba16b87685e1e4902cd9dc762d2&quot;&gt;drm/gem: Add huge tmpfs mountpoint helpers&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f19f99bbaf9f91d0b0a95d760f4d6755758b913d&quot;&gt;drm/v3d: Use huge tmpfs mountpoint helpers&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7cdf69d903759b81abde5973d703c93a742ddab7&quot;&gt;drm/gem: Get rid of *_with_mnt helpers&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=70478348fc6d52d5bb7568a035d3cbe5bcc6af4c&quot;&gt;Documentation/gpu/drm-mm: Add THP paragraph to GEM mapping section&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Melissa Wen&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c28b3ec3ca034fd1abc832fef46ce36eb13f8fad&quot;&gt;drm/amd/display: Use mpc.preblend flag to indicate 3D LUT&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a4fa2355e0add57253468ef13bd08f11285f3b6e&quot;&gt;drm/amd/display: Enable DEGAMMA and reject COLOR_PIPELINE+DEGAMMA_LUT&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=52289ce48ef1f8a81cd39df1574098356e3c9d4c&quot;&gt;drm/amdgpu: Fix kernel-doc comments for some LUT properties&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b49814033cb5224c818cfb04dccb3260da10cc4f&quot;&gt;drm/amd/display: Fix gamma 2.2 colorop TFs&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=aaefbdde9abdc43699e110679c0e10972a5e1c59&quot;&gt;drm/vc4: Release runtime PM reference after binding V3D&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f4dfd6847b3e5d24e336bca6057485116d17aea4&quot;&gt;drm/vc4: Fix memory leak of BO array in hang state&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9525d169e5fd481538cf8c663cc5839e54f2e481&quot;&gt;drm/vc4: Fix a memory leak in hang state error path&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=338c56050d8e892604da97f67bfa8cc4015a955f&quot;&gt;drm/vc4: Protect madv read in vc4_gem_object_mmap() with madv_lock&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Rodrigo Siqueira&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=41af6215cdbcecd12920f211239479027904abf3&quot;&gt;drm/amd/display: Reject cursor plane on DCE when scaled differently than primary&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Thadeu Lima de Souza Cascardo&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=feb065155bab2fabc3545bf57ae31e86d02df9a1&quot;&gt;drm/ttm: Resource cannot be NULL in ttm_resource_intersects&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c06da4b3573a2d3c906c185450d0b1059d02820e&quot;&gt;drm/ttm: Tidy usage of local variables a little bit&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Tvrtko Ursulin&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=97f419848b1db69fc7ea99f385a7d2fa2b2ca454&quot;&gt;dma-buf/selftests: drop the mock_wait implementation&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6419fc157e55665dc8680deb1737dc4c53c33f94&quot;&gt;drm/panic: Ensure drm_panic_type is initialized to a valid value&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6abb6a0e1104279763d1561b8110c1db442c5fac&quot;&gt;drm/panic: Fix expected string for QR_CODE in drm_panic_type_map&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=91d7e9df42598af28ca440b95b16a4e51a408771&quot;&gt;drm/ttm: Fix bo resource use-after-free&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a13edf9b92fc4700b3020d7ea547a3d64dd33b63&quot;&gt;drm/i915/gem: Drop check for changed VM in EXECBUF&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Tested (6)&lt;/h2&gt;&lt;h3&gt;Helen Koike&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b7cdc5a97d02c943f4bdde4d5767ad0c13cad92b&quot;&gt;netfilter: nf_tables: Fix for duplicate device in netdev hooks&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Mauricio Faria de Oliveira&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=45b859b0728267a6199ee5002d62e6c6f3e8c89d&quot;&gt;thermal: core: Address thermal zone removal races with resume&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Melissa Wen&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=bb2c941b3131437185e79c8f2a16469876664572&quot;&gt;efi: sysfb_efi: Replace open coded swap with the macro&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=449b87e81f3561bd907d3b9a31cf69590132a2df&quot;&gt;efi: sysfb_efi: Fix lfb_linelength calculation when applying quirks&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7f2f1fd6fc050be874afa9eb52a0ff974f379869&quot;&gt;efi: sysfb_efi: Convert swap width and height quirk to a callback&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c7c7eb5ed5a3896e57019f7b33e3b7dcb4ab73b4&quot;&gt;efi: sysfb_efi: Fix efidrmfb and simpledrmfb on Valve Steam Deck&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Acked (4)&lt;/h2&gt;&lt;h3&gt;Thadeu Lima de Souza Cascardo&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ee8721bee80150ed1e4ee5ebb6aaf070802ac81b&quot;&gt;drm/ttm: Make ttm_bo_init_validate safe against ttm_operation_ctx re-ordering&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=802620f5a9cf7231933cfce61817577b3b6543d9&quot;&gt;drm/ttm: Tidy ttm_operation_ctx initialization&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e849ada70c6b1ee22e9f4f5c0e38231dcee53f04&quot;&gt;char: misc: Use IS_ERR() for filp_open() return value&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Tvrtko Ursulin&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ff9e240212f6693c293f9e58ade05bc887297a1e&quot;&gt;drm/i915: Fix BO alloc flags&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Maintainer SoB (6)&lt;/h2&gt;&lt;h3&gt;Christian Gmeiner&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a8fffbe7dec7d2dda19ed8c7cc13bed744546c05&quot;&gt;drm/etnaviv: Add command stream definitions required for a PPU flop reset&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9934873be03c781e0be7b91168fb6a929b140cd1&quot;&gt;drm/etnaviv: move some functions to a header to be able to use them externally&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9fcdece1a734bc71d2d9f9e3dd301cc9fff23327&quot;&gt;drm/etnaviv: Add a new function to emit a series of states to cmd stream&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=85ba57ad88cf96b2fb4cf6c81639c7907bf3cd94&quot;&gt;drm/etnaviv: Add PPU flop reset&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6a0b99e9fb45f403c3097a9047963d2dd5b0fab2&quot;&gt;drm/etnaviv: Add module parameter to force PPU flop reset&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Maíra Canal&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9eb018828b1b30dfba689c060735c50fc5b9f704&quot;&gt;drm/v3d: Set DMA segment size to avoid debug warnings&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</content:encoded>
</item>
<item>
<title>Igalia at OSPM Summit</title>
<link>https://www.igalia.com/2026/04/08/Igalia-at-OSPM-Summit.html</link>
<guid isPermaLink="false">LSSnUR6fdW9Y6zjhZsCsfIFwJ1ZujBo3Y042Gw==</guid>
<pubDate>Wed, 22 Apr 2026 16:46:55 +0000</pubDate>
<description>Next week we will be at the Operating-System-Directed Power-Management (OSPM) Summit, VIII edition, which will be held at Arm in Cambridge (UK), on April 14-16. Changwoo Min and Gavin Guo will share lessons learned from evolving scx_lavd (Latency-Aware Virtual Deadline), a sched_ex scheduler, to support strict container isolation, complex server topologies, and energy-aware scheduling. The talk will happen on the second day of the summit, on Wednesday, 15th April. We hope to see you there!</description>
<content:encoded>&lt;p&gt;Next week we will be at the &lt;a href=&quot;https://retis.santannapisa.it/ospm-summit/&quot;&gt;Operating-System-Directed Power-Management (OSPM) Summit, VIII edition&lt;/a&gt;, which will be held at Arm in Cambridge (UK), on April 14-16.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://www.igalia.com/team/changwoo&quot;&gt;Changwoo Min&lt;/a&gt; and &lt;a href=&quot;https://www.igalia.com/team/gavinguo&quot;&gt;Gavin Guo&lt;/a&gt; will share lessons learned from evolving &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;scx_lavd&lt;/code&gt; (Latency-Aware Virtual Deadline), a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sched_ex&lt;/code&gt; scheduler, to support strict container isolation, complex server topologies, and energy-aware scheduling.&lt;/p&gt;&lt;p&gt;The talk will happen on the second day of the summit, on Wednesday, 15th April. We hope to see you there!&lt;/p&gt;</content:encoded>
</item>
<item>
<title>Igalia 2026 Coding Experience Open for Applications</title>
<link>https://www.igalia.com/2026/02/27/Igalia-2026-Coding-Experience-Open-for-Applications.html</link>
<guid isPermaLink="false">-4lTL-tidFbmpZLfqqYnJgagv4GLGbElAQNYYg==</guid>
<pubDate>Wed, 22 Apr 2026 16:46:55 +0000</pubDate>
<description>Are you looking for your first open source experience in a professional environment? If so, we invite you to apply to the 2026 Coding Experience (CE) Program. This year, we are accepting candidates to participate on one of the following five areas: Linux Packaging, Graphics, JavaScript DevTools, Multimedia and GStreamer, and Web Standards. CE participants receive financial compensation of €7,000 for 450 hours of work time over a period of either 3 or 6 months, on a schedule that works best ...</description>
<content:encoded>&lt;p&gt;Are you looking for your first open source experience in a professional environment? If so, we invite you to apply to the &lt;a href=&quot;https://www.igalia.com/coding-experience/&quot;&gt;2026 Coding Experience (CE) Program&lt;/a&gt;. This year, we are accepting candidates to participate on one of the following five areas: Linux Packaging, Graphics, JavaScript DevTools, Multimedia and GStreamer, and Web Standards.&lt;/p&gt;&lt;p&gt;CE participants receive financial compensation of €7,000 for 450 hours of work time over a period of either 3 or 6 months, on a schedule that works best for you. Each CE participant is mentored by one of Igalia’s outstanding open source contributors, and acquire knowledge and skills that will benefit them well beyond the program. The Coding Experience is remote-friendly, in keeping with Igalia’s fully-remote structure.&lt;/p&gt;&lt;p&gt;Applicants to the program can be students enrolled in an official education program, such as a college degree program, or can be students in alternative learning itineraries (e.g., self-learning). The CE program is also open to people who are in a later stage of their professional career, do not have experience working in tech fields, and are willing to refocus.&lt;/p&gt;&lt;p&gt;Igalia welcomes all applicants regardless of their age, disability, gender, race, marital status, religion, sexual orientation, or any other marginalized identity. Due to our strong commitment to diversity and inclusion, we would like to expressly invite individuals from underrepresented communities in our industry to apply.&lt;/p&gt;&lt;p&gt;The application period is open through &lt;strong&gt;April 3rd, 2026&lt;/strong&gt;, with applicants being informed of their acceptance status by mid-May. If you’re interested in learning more about the Coding Experience program or you are ready to apply, please visit the &lt;a href=&quot;https://www.igalia.com/coding-experience/&quot;&gt;Igalia Coding Experience page&lt;/a&gt;.&lt;/p&gt;</content:encoded>
</item>
<item>
<title>Installing Android and Linux on Switch</title>
<link>https://social.emucafe.org/naferrell/installing-android-and-linux-on-switch-04-19-26/</link>
<guid isPermaLink="false">XS96PM2O9Nf7LtRml6qnIvF_9-0QD208fNuEeg==</guid>
<pubDate>Wed, 22 Apr 2026 15:17:04 +0000</pubDate>
<description>Quoted Installing Android on the Nintendo Switch by Max Glenister (blog.omgmog.net) Installing Android on it turned out to be fairly well-documented. There are a few different options for the Switch - the Switchroot project maintains Android 10 and 11 builds alongside Linux images (Ubuntu, Fedora), and LineageOS now has official support going up to Android 15. I had seen on the LineageOS website that the LineageOS project supports a couple of different Nintendo Switch models. While I have run...</description>
<content:encoded>&lt;section&gt;&lt;header&gt;&lt;span&gt;Quoted&lt;/span&gt;&lt;a href=&quot;https://blog.omgmog.net/post/android-on-the-nintendo-switch/&quot;&gt;Installing Android on the Nintendo Switch&lt;/a&gt; by &lt;span&gt;Max Glenister&lt;/span&gt;&lt;em&gt; (&lt;span&gt;blog.omgmog.net&lt;/span&gt;)&lt;/em&gt;&lt;/header&gt;&lt;blockquote&gt;Installing Android on it turned out to be fairly well-documented. There are a few different options for the Switch - the Switchroot project maintains Android 10 and 11 builds alongside Linux images (Ubuntu, Fedora), and LineageOS now has official support going up to Android 15.&lt;/blockquote&gt;&lt;/section&gt;&lt;p&gt;I had seen on the LineageOS website that the LineageOS project supports a couple of different Nintendo Switch models. While I have run LineageOS on &lt;a href=&quot;https://thenewleafjournal.com/stick-library-in-brooklyn-heights/&quot;&gt;phones&lt;/a&gt; and &lt;a href=&quot;https://thenewleafjournal.com/installing-lineageos-on-a-2013-nexus-7-wi-fi/&quot;&gt;tablets&lt;/a&gt;, I will stick to Nintendo’s stock OS on the Switch. But I was curious about how LineageOS would run on a Switch, which made me read Max Glenister’s article on &lt;a href=&quot;https://blog.omgmog.net/post/android-on-the-nintendo-switch/&quot;&gt;Installing Android on the Nintendo Switch&lt;/a&gt; with interest. To be sure, his article has interesting notes about installing LineageOS 22 on the Switch and how it performs. But I am sharing his article because it noted that “the Switchroot project maintains Android 10 and 11 builds alongside Linux images (Ubuntu, Fedora), and LineageOS now has official support going uip to Android 15.” I followed the link and saw that the &lt;a href=&quot;https://switchroot.org/&quot;&gt;Switchroot project&lt;/a&gt; also supports Lakka, which is a sort of Retro Arch-based OS. That would be an interesting option for a Switch that is being used only for games.&lt;/p&gt;&lt;p&gt;Installing Android and Linux on Switch (https://social.emucafe.org/naferrell/installing-android-and-linux-on-switch-04-19-26/) by Nicholas A. Ferrell first appeared on &lt;i&gt;The Emu Café Social&lt;/i&gt; on April 19, 2026. Thank you for subscribing to our feed, the best way to follow &lt;i&gt;The Emu Café Social&lt;/i&gt;. Copyright 2026 The Emu Café Social and/or the listed author. All rights reserved.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://social.emucafe.org/naferrell/installing-android-and-linux-on-switch-04-19-26/&quot;&gt;Source&lt;/a&gt;&lt;/p&gt;</content:encoded>
</item>
<item>
<title>Project Glasswing quiere dar a los mantenedores de open source una IA de élite</title>
<link>https://noticias.ai/project-glasswing-quiere-dar-a-los-mantenedores-de-open-source-una-ia-de-elite/</link>
<guid isPermaLink="false">8gHy8xsMPgdEHuMzi8Cq8HVOfyIOixi5oidWog==</guid>
<pubDate>Wed, 22 Apr 2026 13:20:29 +0000</pubDate>
<description>La Linux Foundation ha decidido poner el foco en uno de los colectivos más desbordados y menos visibles del ecosistema tecnológico: los mantenedores de software open source. Su mensaje es […]</description>
<content:encoded>&lt;p&gt;La Linux Foundation ha decidido poner el foco en uno de los colectivos más desbordados y menos visibles del ecosistema tecnológico: los mantenedores de software open source. Su mensaje es claro y, al mismo tiempo, inquietante. Los nuevos modelos de Inteligencia Artificial no solo escriben mejor código, también están empezando a encontrar vulnerabilidades inéditas con una eficacia que puede alterar el equilibrio de la ciberseguridad. Y si esa capacidad acaba primero en manos ofensivas, el software abierto —que sostiene buena parte de la infraestructura digital del mundo— puede entrar en una etapa especialmente delicada.&lt;/p&gt;&lt;p&gt;Para responder a ese riesgo, la Linux Foundation se ha sumado a &lt;strong&gt;&lt;a href=&quot;https://noticias.ai/anthropic-presenta-mythos-y-avisa-la-ia-ya-puede-cambiar-la-ciberseguridad/&quot;&gt;Project Glasswing&lt;/a&gt;&lt;/strong&gt;, la iniciativa impulsada por Anthropic junto a Amazon Web Services, Apple, Broadcom, Cisco, CrowdStrike, Google, JPMorganChase, Microsoft, NVIDIA y Palo Alto Networks. El objetivo no es lanzar otro asistente de código, sino usar &lt;strong&gt;Claude Mythos Preview&lt;/strong&gt;, un modelo todavía no publicado de forma general, para tareas defensivas: encontrar fallos, ayudar a parchearlos y reducir la presión que hoy soportan los proyectos críticos de código abierto. Anthropic sostiene que Mythos ya ha encontrado miles de vulnerabilidades de alta severidad, incluidas algunas en los principales sistemas operativos y navegadores web.&lt;/p&gt;&lt;h2&gt;El problema ya no es solo el software inseguro, sino el ritmo del ataque&lt;/h2&gt;&lt;p&gt;Jim Zemlin, CEO de la Linux Foundation, plantea el desafío en términos bastante directos. En su artículo sobre Glasswing, recuerda que el open source es hoy la forma dominante de software consumido por la empresa y, por tanto, uno de los mayores objetivos posibles para atacantes. Hospitales, bancos, telecomunicaciones, transporte y servicios digitales críticos dependen de componentes abiertos mantenidos a menudo por comunidades pequeñas o equipos con recursos limitados. Al mismo tiempo, esos mantenedores están recibiendo más &lt;em&gt;pull requests&lt;/em&gt;, más informes de seguridad —muchos ya generados con IA— y más presión derivada de ataques a la cadena de suministro.&lt;/p&gt;&lt;p&gt;La lectura de la Linux Foundation coincide con la de Anthropic: el periodo más peligroso no será necesariamente el de madurez, sino el de transición. Si las nuevas capacidades de búsqueda y explotación de fallos avanzan más rápido que las defensas y los procesos de parcheo, el coste para el software crítico puede crecer con mucha rapidez. Por eso Project Glasswing no se presenta como una simple colaboración tecnológica, sino como una maniobra preventiva para dar herramientas de primer nivel a quienes mantienen piezas esenciales de la infraestructura digital.&lt;/p&gt;&lt;h2&gt;La apuesta: que la IA encuentre y arregle antes de que otros exploten&lt;/h2&gt;&lt;p&gt;Lo más interesante del enfoque de la Linux Foundation no está solo en la detección de vulnerabilidades, sino en la posibilidad de que la IA ayude también a corregirlas. Zemlin sostiene que, cuando estas herramientas funcionan bien, aportan escala y velocidad para analizar código, detectar patrones y proponer soluciones a partir de correcciones previas. Incluso cita una valoración breve, pero significativa, de Greg Kroah-Hartman, mantenedor clave del kernel Linux, que después de mostrarse inicialmente escéptico llegó a describir algunos parches generados por IA como “pretty good”. En ese contexto, el atractivo de Glasswing es evidente: menos tiempo dedicado a jugar permanentemente a la defensa y más margen para seguir desarrollando el proyecto.&lt;/p&gt;&lt;p&gt;Anthropic, por su parte, ha explicado que Project Glasswing dará acceso a Mythos Preview a los socios de lanzamiento y a más de 40 organizaciones adicionales que construyen o mantienen software crítico, para analizar tanto sistemas propios como componentes open source. La compañía también ha prometido compartir aprendizajes con la industria y publicar, en un plazo de 90 días, lo que pueda revelar sobre vulnerabilidades corregidas y mejoras derivadas del programa. Además, planea trabajar con organizaciones de seguridad para producir recomendaciones prácticas sobre divulgación de fallos, procesos de actualización, seguridad de la cadena de suministro y automatización del parcheo.&lt;/p&gt;&lt;h2&gt;Dinero, acceso gratuito y el intento de evitar una brecha entre grandes y pequeños&lt;/h2&gt;&lt;p&gt;Una parte esencial de Glasswing es económica. Zemlin subraya que este tipo de capacidades no puede quedar reservado a quienes tienen grandes presupuestos o plantillas de seguridad muy amplias. En su artículo insiste en que el acceso debe distribuirse de forma más equilibrada entre quienes sostienen el software crítico del mundo, y que el coste no puede convertirse en una nueva barrera. En línea con eso, Anthropic ha comprometido hasta &lt;strong&gt;100 millones de dólares en créditos de uso&lt;/strong&gt; para Mythos Preview dentro del programa y &lt;strong&gt;4 millones de dólares en donaciones directas&lt;/strong&gt; a organizaciones vinculadas a la seguridad del open source.&lt;/p&gt;&lt;p&gt;El reparto de esa financiación también ayuda a entender la estrategia. Según Anthropic, &lt;strong&gt;2,5 millones de dólares&lt;/strong&gt; irán a &lt;strong&gt;Alpha-Omega&lt;/strong&gt; y &lt;strong&gt;OpenSSF&lt;/strong&gt; a través de la Linux Foundation, mientras que &lt;strong&gt;1,5 millones&lt;/strong&gt; se han destinado a la &lt;strong&gt;Apache Software Foundation&lt;/strong&gt;. La propia ASF ya ha confirmado esa donación y ha explicado que servirá para reforzar infraestructura, procesos de seguridad, servicios para proyectos y soporte a la comunidad. Anthropic añade además que los mantenedores interesados en acceder a estas capacidades podrán hacerlo a través de su programa &lt;strong&gt;Claude for Open Source&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;Ese detalle es importante porque desplaza el eje del debate. La pregunta ya no es solo si una gran tecnológica puede usar IA para auditar mejor su propio código, sino si quienes mantienen librerías, herramientas y componentes básicos del ecosistema también podrán contar con esa ayuda sin quedar fuera por coste o por falta de infraestructura. Glasswing, al menos sobre el papel, intenta responder a ese desequilibrio.&lt;/p&gt;&lt;h2&gt;Un proyecto prometedor, pero también una señal de alarma&lt;/h2&gt;&lt;p&gt;Conviene no perder de vista el tono del anuncio. La Linux Foundation no lo presenta como una mejora incremental, sino como una reacción ante una amenaza real. Zemlin habla de un momento especialmente peligroso, en el que los atacantes podrían ganar ventaja significativa mientras el ecosistema tecnológico digiere el impacto de estas nuevas herramientas. Anthropic va incluso más lejos al justificar que Mythos Preview no se publique de forma abierta por su capacidad para encontrar y explotar fallos a gran escala. En otras palabras, Glasswing no es solo un programa de ayuda a mantenedores; es también la confirmación de que la IA ofensiva ya está lo bastante madura como para obligar a reorganizar la defensa.&lt;/p&gt;&lt;p&gt;La gran incógnita es si esta respuesta llegará con la velocidad suficiente. Los mantenedores de open source llevan años trabajando con menos visibilidad, menos incentivos y menos apoyo estructural del que exige la importancia real de su trabajo. Si Glasswing logra convertir esa nueva generación de IA en una herramienta útil para encontrar, priorizar y corregir fallos antes de que se exploten, el impacto puede ser enorme. Si se queda en un programa valioso pero demasiado limitado para la magnitud del problema, el riesgo seguirá ahí. La Linux Foundation, al menos, ha dejado clara una idea: el open source no puede entrar en la era de la IA defensiva con herramientas del pasado.&lt;/p&gt;&lt;h2&gt;Preguntas frecuentes&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;¿Qué es exactamente Project Glasswing?&lt;/strong&gt;&lt;br/&gt;Es una iniciativa coordinada por Anthropic junto a grandes empresas tecnológicas y la Linux Foundation para usar Claude Mythos Preview con fines defensivos, especialmente en la búsqueda y corrección de vulnerabilidades en software crítico, incluido open source.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;¿Por qué la Linux Foundation considera urgente este proyecto?&lt;/strong&gt;&lt;br/&gt;Porque sostiene que los nuevos modelos de IA ya están mostrando una capacidad inédita para descubrir vulnerabilidades, incluso en sistemas muy endurecidos, mientras los mantenedores de open source soportan cada vez más carga operativa y de seguridad.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;¿Los mantenedores de open source tendrán acceso gratuito?&lt;/strong&gt;&lt;br/&gt;Ese es uno de los objetivos declarados. La Linux Foundation afirma que el acceso debe ser gratuito para evitar fricción económica, y Anthropic indica que los mantenedores podrán solicitar acceso a través de Claude for Open Source.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;¿Qué financiación acompaña a Glasswing para el open source?&lt;/strong&gt;&lt;br/&gt;Anthropic ha comprometido hasta 100 millones de dólares en créditos de uso del modelo y 4 millones en donaciones: 2,5 millones para Alpha-Omega y OpenSSF a través de la Linux Foundation y 1,5 millones para la Apache Software Foundation.&lt;/p&gt;&lt;p&gt;vía: &lt;a href=&quot;https://www.linuxfoundation.org/blog/project-glasswing-gives-maintainers-advanced-ai-to-secure-open-source&quot;&gt;linuxfoundation&lt;/a&gt;&lt;/p&gt;</content:encoded>
</item>
<item>
<title>hails/wsl9x: Windows 9x subsystem for Linux - Codeberg.org</title>
<link>https://codeberg.org/hails/wsl9x</link>
<enclosure type="image/jpeg" length="0" url="https://codeberg.org/hails/wsl9x/-/summary-card"></enclosure>
<guid isPermaLink="false">P8FdKNSbOWGGLiSbg0v3dgKk_iztmpY7NsaFwQ==</guid>
<pubDate>Wed, 22 Apr 2026 12:47:21 +0000</pubDate>
<description>Windows 9x subsystem for Linux</description>
<content:encoded>&lt;div&gt;
			&lt;div&gt;
				
				&lt;span&gt;Windows 9x subsystem for Linux&lt;/span&gt;
				
			&lt;/div&gt;
		&lt;/div&gt;&lt;div&gt;
			
			
		&lt;/div&gt;&lt;table&gt;
	&lt;thead&gt;
		&lt;tr&gt;
			&lt;th colspan=&quot;2&quot;&gt;
				&lt;div&gt;
					&lt;div&gt;
						
	
		&lt;img src=&quot;https://codeberg.org/avatars/764f89b7337c4794d760506593a65725c57c31b3a12952f759ffe416ea15d22c&quot; alt=&quot;&quot; title=&quot;Hailey&quot;/&gt;
		
			&lt;a href=&quot;https://codeberg.org/hails&quot;&gt;&lt;strong&gt;Hailey Somerville&lt;/strong&gt;&lt;/a&gt;
		
	
	

&lt;a href=&quot;https://codeberg.org/hails/wsl9x/commit/0cac695aa28307ebe59f03845cabc385839300e6&quot;&gt;
	&lt;span&gt;0cac695aa2&lt;/span&gt;&lt;/a&gt;

	

	
	&lt;span&gt;&lt;span&gt;&lt;a href=&quot;https://codeberg.org/hails/wsl9x/commit/0cac695aa28307ebe59f03845cabc385839300e6&quot;&gt;add note to readme&lt;/a&gt;&lt;/span&gt;
		
	&lt;/span&gt;


					&lt;/div&gt;
				&lt;/div&gt;
			&lt;/th&gt;
			&lt;th&gt;2026-04-22 21:06:46 +10:00&lt;/th&gt;
		&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
		
		
			
			
			&lt;tr&gt;
				&lt;td&gt;
					&lt;span&gt;
						
							
								
								&lt;a href=&quot;https://codeberg.org/hails/wsl9x/src/branch/main/bin&quot;&gt;
									
									
									bin
									
								&lt;/a&gt;
							
						
					&lt;/span&gt;
				&lt;/td&gt;
				&lt;td&gt;
					&lt;span&gt;
						
							
							&lt;a href=&quot;https://codeberg.org/hails/wsl9x/commit/12c6eb41a0b5cc58fbea51402ed7323aea4a7d8c&quot;&gt;it loads!&lt;/a&gt;
						
					&lt;/span&gt;
				&lt;/td&gt;
				&lt;td&gt;2026-04-13 23:15:09 +10:00&lt;/td&gt;
			&lt;/tr&gt;
		
			
			
			&lt;tr&gt;
				&lt;td&gt;
					&lt;span&gt;
						
							
								
								&lt;a href=&quot;https://codeberg.org/hails/wsl9x/src/branch/main/ddk&quot;&gt;
									
									
									ddk
									
								&lt;/a&gt;
							
						
					&lt;/span&gt;
				&lt;/td&gt;
				&lt;td&gt;
					&lt;span&gt;
						
							
							&lt;a href=&quot;https://codeberg.org/hails/wsl9x/commit/2af31eae863efee8174b317b87021931eb7cbca3&quot;&gt;fix vxdjmp macro, use vxdjmp in dev_vmm_cproc&lt;/a&gt;
						
					&lt;/span&gt;
				&lt;/td&gt;
				&lt;td&gt;2026-04-18 10:48:19 +10:00&lt;/td&gt;
			&lt;/tr&gt;
		
			
			
			&lt;tr&gt;
				&lt;td&gt;
					&lt;span&gt;
						
							
								
								&lt;a href=&quot;https://codeberg.org/hails/wsl9x/src/branch/main/inc&quot;&gt;
									
									
									inc
									
								&lt;/a&gt;
							
						
					&lt;/span&gt;
				&lt;/td&gt;
				&lt;td&gt;
					&lt;span&gt;
						
							
							&lt;a href=&quot;https://codeberg.org/hails/wsl9x/commit/aa112e0f78cb5f0eb93379a2a17be9d976bbdb41&quot;&gt;very messy but it does spawn sh on a console&lt;/a&gt;
						
					&lt;/span&gt;
				&lt;/td&gt;
				&lt;td&gt;2026-04-21 19:00:21 +10:00&lt;/td&gt;
			&lt;/tr&gt;
		
			
			
			&lt;tr&gt;
				&lt;td&gt;
					&lt;span&gt;
						
							
								
								&lt;a href=&quot;https://codeberg.org/hails/wsl9x/src/branch/main/vxd&quot;&gt;
									
									
									vxd
									
								&lt;/a&gt;
							
						
					&lt;/span&gt;
				&lt;/td&gt;
				&lt;td&gt;
					&lt;span&gt;
						
							
							&lt;a href=&quot;https://codeberg.org/hails/wsl9x/commit/01171fefe4fb343403fe2fe071930f7d17bdc9fb&quot;&gt;tidy&lt;/a&gt;
						
					&lt;/span&gt;
				&lt;/td&gt;
				&lt;td&gt;2026-04-22 16:10:29 +10:00&lt;/td&gt;
			&lt;/tr&gt;
		
			
			
			&lt;tr&gt;
				&lt;td&gt;
					&lt;span&gt;
						
							
								
								&lt;a href=&quot;https://codeberg.org/hails/wsl9x/src/branch/main/wsl&quot;&gt;
									
									
									wsl
									
								&lt;/a&gt;
							
						
					&lt;/span&gt;
				&lt;/td&gt;
				&lt;td&gt;
					&lt;span&gt;
						
							
							&lt;a href=&quot;https://codeberg.org/hails/wsl9x/commit/aa112e0f78cb5f0eb93379a2a17be9d976bbdb41&quot;&gt;very messy but it does spawn sh on a console&lt;/a&gt;
						
					&lt;/span&gt;
				&lt;/td&gt;
				&lt;td&gt;2026-04-21 19:00:21 +10:00&lt;/td&gt;
			&lt;/tr&gt;
		
			
			
			&lt;tr&gt;
				&lt;td&gt;
					&lt;span&gt;
						
							
								&lt;a href=&quot;https://codeberg.org/hails/wsl9x/src/branch/main/.envrc.example&quot;&gt;.envrc.example&lt;/a&gt;
							
						
					&lt;/span&gt;
				&lt;/td&gt;
				&lt;td&gt;
					&lt;span&gt;
						
							
							&lt;a href=&quot;https://codeberg.org/hails/wsl9x/commit/ea97a28a1cf0f84359bcc0e918cda170d02eaaa9&quot;&gt;add readme, screenshot, example envrc&lt;/a&gt;
						
					&lt;/span&gt;
				&lt;/td&gt;
				&lt;td&gt;2026-04-22 15:47:36 +10:00&lt;/td&gt;
			&lt;/tr&gt;
		
			
			
			&lt;tr&gt;
				&lt;td&gt;
					&lt;span&gt;
						
							
								&lt;a href=&quot;https://codeberg.org/hails/wsl9x/src/branch/main/.gitignore&quot;&gt;.gitignore&lt;/a&gt;
							
						
					&lt;/span&gt;
				&lt;/td&gt;
				&lt;td&gt;
					&lt;span&gt;
						
							
							&lt;a href=&quot;https://codeberg.org/hails/wsl9x/commit/40bd3bde0a5db26fa9bc2b982b4623452a136a9e&quot;&gt;just vendor fixlink&lt;/a&gt;
						
					&lt;/span&gt;
				&lt;/td&gt;
				&lt;td&gt;2026-04-21 19:01:32 +10:00&lt;/td&gt;
			&lt;/tr&gt;
		
			
			
			&lt;tr&gt;
				&lt;td&gt;
					&lt;span&gt;
						
							
								&lt;a href=&quot;https://codeberg.org/hails/wsl9x/src/branch/main/bochs.bxrc&quot;&gt;bochs.bxrc&lt;/a&gt;
							
						
					&lt;/span&gt;
				&lt;/td&gt;
				&lt;td&gt;
					&lt;span&gt;
						
							
							&lt;a href=&quot;https://codeberg.org/hails/wsl9x/commit/12c6eb41a0b5cc58fbea51402ed7323aea4a7d8c&quot;&gt;it loads!&lt;/a&gt;
						
					&lt;/span&gt;
				&lt;/td&gt;
				&lt;td&gt;2026-04-13 23:15:09 +10:00&lt;/td&gt;
			&lt;/tr&gt;
		
			
			
			&lt;tr&gt;
				&lt;td&gt;
					&lt;span&gt;
						
							
								&lt;a href=&quot;https://codeberg.org/hails/wsl9x/src/branch/main/config.sys&quot;&gt;config.sys&lt;/a&gt;
							
						
					&lt;/span&gt;
				&lt;/td&gt;
				&lt;td&gt;
					&lt;span&gt;
						
							
							&lt;a href=&quot;https://codeberg.org/hails/wsl9x/commit/12c6eb41a0b5cc58fbea51402ed7323aea4a7d8c&quot;&gt;it loads!&lt;/a&gt;
						
					&lt;/span&gt;
				&lt;/td&gt;
				&lt;td&gt;2026-04-13 23:15:09 +10:00&lt;/td&gt;
			&lt;/tr&gt;
		
			
			
			&lt;tr&gt;
				&lt;td&gt;
					&lt;span&gt;
						
							
								&lt;a href=&quot;https://codeberg.org/hails/wsl9x/src/branch/main/fixlink.c&quot;&gt;fixlink.c&lt;/a&gt;
							
						
					&lt;/span&gt;
				&lt;/td&gt;
				&lt;td&gt;
					&lt;span&gt;
						
							
							&lt;a href=&quot;https://codeberg.org/hails/wsl9x/commit/40bd3bde0a5db26fa9bc2b982b4623452a136a9e&quot;&gt;just vendor fixlink&lt;/a&gt;
						
					&lt;/span&gt;
				&lt;/td&gt;
				&lt;td&gt;2026-04-21 19:01:32 +10:00&lt;/td&gt;
			&lt;/tr&gt;
		
			
			
			&lt;tr&gt;
				&lt;td&gt;
					&lt;span&gt;
						
							
								&lt;a href=&quot;https://codeberg.org/hails/wsl9x/src/branch/main/Makefile&quot;&gt;Makefile&lt;/a&gt;
							
						
					&lt;/span&gt;
				&lt;/td&gt;
				&lt;td&gt;
					&lt;span&gt;
						
							
							&lt;a href=&quot;https://codeberg.org/hails/wsl9x/commit/72f7624f6bb25a8313c53788c5e613309c4a3432&quot;&gt;symlink vmlinux in makefile&lt;/a&gt;
						
					&lt;/span&gt;
				&lt;/td&gt;
				&lt;td&gt;2026-04-22 15:37:13 +10:00&lt;/td&gt;
			&lt;/tr&gt;
		
			
			
			&lt;tr&gt;
				&lt;td&gt;
					&lt;span&gt;
						
							
								&lt;a href=&quot;https://codeberg.org/hails/wsl9x/src/branch/main/mtoolsrc&quot;&gt;mtoolsrc&lt;/a&gt;
							
						
					&lt;/span&gt;
				&lt;/td&gt;
				&lt;td&gt;
					&lt;span&gt;
						
							
							&lt;a href=&quot;https://codeberg.org/hails/wsl9x/commit/12c6eb41a0b5cc58fbea51402ed7323aea4a7d8c&quot;&gt;it loads!&lt;/a&gt;
						
					&lt;/span&gt;
				&lt;/td&gt;
				&lt;td&gt;2026-04-13 23:15:09 +10:00&lt;/td&gt;
			&lt;/tr&gt;
		
			
			
			&lt;tr&gt;
				&lt;td&gt;
					&lt;span&gt;
						
							
								&lt;a href=&quot;https://codeberg.org/hails/wsl9x/src/branch/main/README.md&quot;&gt;README.md&lt;/a&gt;
							
						
					&lt;/span&gt;
				&lt;/td&gt;
				&lt;td&gt;
					&lt;span&gt;
						
							
							&lt;a href=&quot;https://codeberg.org/hails/wsl9x/commit/0cac695aa28307ebe59f03845cabc385839300e6&quot;&gt;add note to readme&lt;/a&gt;
						
					&lt;/span&gt;
				&lt;/td&gt;
				&lt;td&gt;2026-04-22 21:06:46 +10:00&lt;/td&gt;
			&lt;/tr&gt;
		
			
			
			&lt;tr&gt;
				&lt;td&gt;
					&lt;span&gt;
						
							
								&lt;a href=&quot;https://codeberg.org/hails/wsl9x/src/branch/main/screenshot.png&quot;&gt;screenshot.png&lt;/a&gt;
							
						
					&lt;/span&gt;
				&lt;/td&gt;
				&lt;td&gt;
					&lt;span&gt;
						
							
							&lt;a href=&quot;https://codeberg.org/hails/wsl9x/commit/ea97a28a1cf0f84359bcc0e918cda170d02eaaa9&quot;&gt;add readme, screenshot, example envrc&lt;/a&gt;
						
					&lt;/span&gt;
				&lt;/td&gt;
				&lt;td&gt;2026-04-22 15:47:36 +10:00&lt;/td&gt;
			&lt;/tr&gt;
		
			
			
			&lt;tr&gt;
				&lt;td&gt;
					&lt;span&gt;
						
							
								&lt;a href=&quot;https://codeberg.org/hails/wsl9x/src/branch/main/system.ini&quot;&gt;system.ini&lt;/a&gt;
							
						
					&lt;/span&gt;
				&lt;/td&gt;
				&lt;td&gt;
					&lt;span&gt;
						
							
							&lt;a href=&quot;https://codeberg.org/hails/wsl9x/commit/12c6eb41a0b5cc58fbea51402ed7323aea4a7d8c&quot;&gt;it loads!&lt;/a&gt;
						
					&lt;/span&gt;
				&lt;/td&gt;
				&lt;td&gt;2026-04-13 23:15:09 +10:00&lt;/td&gt;
			&lt;/tr&gt;
		
	&lt;/tbody&gt;
&lt;/table&gt;&lt;div&gt;

	

	&lt;h4&gt;
		&lt;div&gt;
			
				
				&lt;strong&gt;README.md&lt;/strong&gt;
			
		&lt;/div&gt;
		&lt;div&gt;
			
			
			
		&lt;/div&gt;
	&lt;/h4&gt;
	&lt;div&gt;
		
		&lt;div&gt;
			
				&lt;h1&gt;WSL9x&lt;/h1&gt;
&lt;p&gt;Windows 9x Subsystem for Linux.&lt;/p&gt;
&lt;p&gt;WSL9x runs a modern Linux kernel (6.19 at time of writing) cooperatively inside the Windows 9x kernel, enabling users to take advantage of the full suite of capabilities of both operating systems at the same time, including paging, memory protection, and pre-emptive scheduling. Run all your favourite applications side by side - no rebooting required!&lt;/p&gt;
&lt;p&gt;Proudly written with zero AI.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://codeberg.org/hails/wsl9x/media/branch/main/screenshot.png&quot;&gt;&lt;img src=&quot;https://codeberg.org/hails/wsl9x/media/branch/main/screenshot.png&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Building and running&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;You will need a cross toolchain targeting &lt;code&gt;i386-linux-musl&lt;/code&gt; on PATH. Use &lt;a href=&quot;https://github.com/richfelker/musl-cross-make&quot;&gt;musl-cross-make&lt;/a&gt; to build one&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;You will need the Open Watcom v2 toolchain for building the Windows components&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Build a patched Linux kernel from my &lt;a href=&quot;https://github.com/haileys/linux/tree/win9x-um-6.19&quot;&gt;&lt;code&gt;win9x-um-6.19&lt;/code&gt; branch&lt;/a&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;chroma language-sh-session display&quot;&gt;$ make defconfig ARCH=um SUBARCH=i386 KBUILD_DEFCONFIG=win9x
$ make vmlinux ARCH=um SUBARCH=i386 -j $(nproc)&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Set env vars appropriately for the WSL9x build, in particular you will need to point &lt;code&gt;WATCOM&lt;/code&gt; and &lt;code&gt;LINUX&lt;/code&gt; at the right places. See &lt;code&gt;.envrc.example&lt;/code&gt; for an example&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;You will need a hard drive image &lt;code&gt;hdd.base.img&lt;/code&gt; with Windows 9x pre-installed&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run &lt;code&gt;make&lt;/code&gt; - this will produce a new &lt;code&gt;hdd.img&lt;/code&gt; with WSL9x ready to go.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run &lt;code&gt;wsl&lt;/code&gt; at the MS-DOS prompt to open a pty. If you&amp;#39;d like to use ANSI colours, make sure you have an appropriate driver loaded before running &lt;code&gt;wsl&lt;/code&gt;. &lt;a href=&quot;https://www.kegel.com/nansi/&quot;&gt;&lt;code&gt;nnansi.com&lt;/code&gt;&lt;/a&gt; is a good option.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;License&lt;/h2&gt;
&lt;p&gt;GPL-3&lt;/p&gt;

			
		&lt;/div&gt;
	&lt;/div&gt;
&lt;/div&gt;</content:encoded>
</item>
<item>
<title>Isolated &amp; Sandboxed WSL Environments with Debian Slim // Tony Metzidis</title>
<link>https://tonym.us/isolated-sandboxed-wsl-debian-slim.html</link>
<guid isPermaLink="false">7A3shHC-58W09ubS4ifq51baU_mEbDVqH6Q9-Q==</guid>
<pubDate>Wed, 22 Apr 2026 11:10:59 +0000</pubDate>
<description>This approach moves away from the “one big distro” model, which often leads to 100GB+ VHDX files and dependency hell. Instead, we use a modular, immutable-ish workflow by utilizing the debian:stable-slim Docker image as our “Gold Master.” It makes recovery loads easier, and isolates each project, which is expecially important with so many supply chain attacks today. The Architecture of a Sandboxed WSL Environment The goal is to create a clean Base Image, snapshot it, and then spin up ...</description>
<content:encoded>&lt;p&gt;This approach moves away from the “one big distro” model, which often leads to
100GB+ VHDX files and dependency hell. Instead, we use a modular, immutable-ish
workflow by utilizing the &lt;code&gt;debian:stable-slim&lt;/code&gt; Docker image as our “Gold
Master.” It makes recovery loads easier, and isolates each project,
which is expecially important with so many supply chain attacks today.&lt;/p&gt;&lt;hr/&gt;&lt;h2&gt;The Architecture of a Sandboxed WSL Environment&lt;/h2&gt;&lt;p&gt;The goal is to create a clean &lt;strong&gt;Base Image&lt;/strong&gt;, snapshot it, and then spin up lightweight, project-specific &lt;strong&gt;Instances&lt;/strong&gt;. This ensures that an experimental library or a legacy Node.js version in one project never touches your primary development environment.&lt;/p&gt;&lt;h3&gt;Step 1: Prepare the Gold Master (Base Image)&lt;/h3&gt;&lt;p&gt;First, we pull the most minimal Debian footprint available and import it as our template.&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Get the RootFS:&lt;/strong&gt;
In PowerShell:&lt;/p&gt;
&lt;div&gt;&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;docker pull debian:stable-slim
docker create --name temp-debian debian:stable-slim
docker export temp-debian -o debian-slim.tar
docker rm temp-debian&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Import as a Template:&lt;/strong&gt;&lt;/p&gt;
&lt;div&gt;&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;wsl --import Debian-Master C:\WSL\Debian-Master .\debian-slim.tar&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt; Debian-slim images are extemely minimal . No man pages, no sudo, no
users. They “boot” as &lt;em&gt;root&lt;/em&gt; . For WSL, this is more convenient, and secure since
each sandbox is restricted to only your toolchain and no services  or Windows resources.&lt;/p&gt;&lt;hr/&gt;&lt;h3&gt;Step 2: Setup the Toolchain (Node/NVM)&lt;/h3&gt;&lt;p&gt;Enter the new &lt;code&gt;Debian-Master&lt;/code&gt; and install your core essentials. We keep this minimal: just the tools required to fetch other tools.&lt;/p&gt;&lt;div&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Update and install minimal build dependencies
apt update &amp;amp;&amp;amp; apt install -y vim-tiny curl procps locale git 
# use the lightest locale settings
echo &amp;quot;LANG=C.UTF-8&amp;quot; &amp;gt; /etc/default/locale

# Install NVM
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

# Load NVM and install LTS
source ~/.bashrc
nvm install --lts

# Install Go
VERSION=&amp;quot;1.26.1&amp;quot; &amp;amp;&amp;amp; curl -LO https://go.dev/dl/go$VERSION.linux-amd64.tar.gz &amp;amp;&amp;amp; \
tar -C /usr/local -xzf go$VERSION.linux-amd64.tar.gz &amp;amp;&amp;amp; rm go$VERSION.linux-amd64.tar.gz &amp;amp;&amp;amp; \
echo &amp;#39;export PATH=$PATH:/usr/local/go/bin&amp;#39; &amp;gt;&amp;gt; ~/.bashrc&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr/&gt;&lt;h3&gt;Step 3: Hardening the &lt;code&gt;wsl.conf&lt;/code&gt;&lt;/h3&gt;&lt;p&gt;Before snapshotting, we define the security boundaries. We want to disable Windows integration by default so that the sandbox is actually a sandbox.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Edit &lt;code&gt;/etc/wsl.conf&lt;/code&gt;:&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;enabled = false&lt;/code&gt;&lt;/strong&gt;: Stops the entire &lt;code&gt;C:&lt;/code&gt; drive from being mounted.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;appendWindowsPath = false&lt;/code&gt;&lt;/strong&gt;: Prevents Linux from seeing Windows &lt;code&gt;.exe&lt;/code&gt; files in the &lt;code&gt;$PATH&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;&lt;hr/&gt;&lt;h3&gt;Step 4: Snapshot to VHD Gold Master&lt;/h3&gt;&lt;p&gt;Now we save this “Clean State.” Using the &lt;code&gt;--vhd&lt;/code&gt; format is critical for 2026 performance; it allows for block-level imports later.&lt;/p&gt;&lt;p&gt;In PowerShell:&lt;/p&gt;&lt;div&gt;&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;wsl --terminate Debian-Master
wsl --export Debian-Master D:\WSL\Templates\Debian-Gold.vhdx --format vhd&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr/&gt;&lt;h3&gt;Step 5: Deploying a Project Sandbox (Example: OpenClaw)&lt;/h3&gt;&lt;p&gt;Imagine you are working on the &lt;strong&gt;OpenClaw&lt;/strong&gt; engine. You want this project completely isolated. You don’t need access to your Windows browser, and you certainly don’t want it accessing your Windows files.&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Clone the Instance:&lt;/strong&gt;&lt;/p&gt;
&lt;div&gt;&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;wsl --import OpenClaw C:\WSL\Instances\OpenClaw D:\WSL\Templates\Debian-Gold.vhdx --vhd&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Verify the Sandbox:&lt;/strong&gt;
Inside the &lt;code&gt;OpenClaw&lt;/code&gt; instance, run:&lt;/p&gt;
&lt;div&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# This should fail/return nothing because interop is disabled
cmd.exe /c &amp;quot;echo hello&amp;quot;

# This should be empty because automount is disabled
ls /mnt/c&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;hr/&gt;&lt;h3&gt;Why This Wins&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Speed:&lt;/strong&gt; Importing a VHD is near-instant. Base image is 100MB and Gold Master will full toolchain is 700MB&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Security:&lt;/strong&gt; By disabling &lt;code&gt;interop&lt;/code&gt; and &lt;code&gt;automount&lt;/code&gt; in the base image, every project you spawn is “Secure by Default.”&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Storage:&lt;/strong&gt; If you enable &lt;code&gt;sparseVhd=true&lt;/code&gt; in your global &lt;code&gt;.wslconfig&lt;/code&gt;, these snapshots only take up the space of the actual files inside them.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Consistency&lt;/strong&gt; : Every new instance is identical to the Gold Master. Recovering a
corrupted environment takes moments . Just export the code and reimport the Gold Master.&lt;/li&gt;
&lt;/ul&gt;&lt;h3&gt;Final Thought for the Go/Node Dev&lt;/h3&gt;&lt;p&gt;By treating your WSL distributions like &lt;strong&gt;cattle, not pets&lt;/strong&gt;, you can experiment with global npm packages or system-level Go binaries without fear. If the environment gets messy, &lt;code&gt;wsl --unregister&lt;/code&gt; and a 2-second &lt;code&gt;--import --vhd&lt;/code&gt; puts you right back at your clean “Gold Master” state.&lt;/p&gt;</content:encoded>
</item>
<item>
<title>Valve&#39;s big Steam Deck update makes old hardware feel new</title>
<link>https://boingboing.net/2026/04/21/valves-big-steam-deck-update-makes-old-hardware-feel-new.html</link>
<guid isPermaLink="false">IcqhiltdullXU7Ax7QQdFGBlZdEnz7e7NP3s2Q==</guid>
<pubDate>Wed, 22 Apr 2026 09:13:39 +0000</pubDate>
<description>Valve&#39;s Steam Deck has had a hell of a run. Except for adding an OLED display into the mix, the wildly popular handheld hasn&#39;t changed a smidge mechanically. But Valve is great about pushing regular updates to the handheld&#39;s operating system, Steam OS — new code that (usually) stabilizes gameplay and allows its aging hardware to run a little more smoothly. — Read the rest The post Valve&#39;s big Steam Deck update makes old hardware feel new appeared first on Boing Boing.</description>
<content:encoded>&lt;a href=&quot;https://boingboing.net/2026/04/21/valves-big-steam-deck-update-makes-old-hardware-feel-new.html&quot;&gt;&lt;img src=&quot;https://i0.wp.com/boingboing.net/wp-content/uploads/2024/09/image-112-e1727103720953.png?fit=861%2C385&amp;amp;quality=55&amp;amp;ssl=1&quot; alt=&quot;The Steam Deck (promo photo)&quot; title=&quot;&quot;/&gt;&lt;/a&gt;&lt;p&gt;Valve&amp;#39;s &lt;a href=&quot;https://boingboing.net/2021/07/16/steamdeck-a-giant-handheld-console-or-a-tiny-gaming-pc-depending-on-your-perspective.html&quot;&gt;Steam Deck&lt;/a&gt; has had a hell of a run. Except for adding an OLED display into the mix, the wildly popular handheld hasn&amp;#39;t changed a smidge mechanically. But Valve is great about pushing regular updates to the handheld&amp;#39;s operating system, &lt;a href=&quot;https://store.steampowered.com/steamos/download/?l=english&amp;amp;ver=steamdeck&quot;&gt;Steam OS&lt;/a&gt; — new code that (usually) stabilizes gameplay and allows its aging hardware to run a little more smoothly. — &lt;a href=&quot;https://boingboing.net/2026/04/21/valves-big-steam-deck-update-makes-old-hardware-feel-new.html&quot;&gt;Read the rest &lt;/a&gt;&lt;/p&gt;&lt;p&gt;The post &lt;a href=&quot;https://boingboing.net/2026/04/21/valves-big-steam-deck-update-makes-old-hardware-feel-new.html&quot;&gt;Valve&amp;#39;s big Steam Deck update makes old hardware feel new&lt;/a&gt; appeared first on &lt;a href=&quot;https://boingboing.net&quot;&gt;Boing Boing&lt;/a&gt;.&lt;/p&gt;</content:encoded>
</item>
<item>
<title>My new baby, Azusa</title>
<link>https://www.ajalapus.com/blog/2008/07/27/my-new-baby-azusa/</link>
<guid isPermaLink="false">YiSAHwI7PlGl-Ndl88hyop8Oc0wuXfRXyEQfkw==</guid>
<pubDate>Wed, 22 Apr 2026 07:53:01 +0000</pubDate>
<description>Ever since Asus&#39; announcement of the Eee PC, I was interested to buy one, since I really need a replacement notebook for my display-dead Compaq Presario v2000. After almost 4 months of waiting, I&#39;m just glad I&#39;ve finally gotten a hold of my new baby I named Azusa.</description>
<content:encoded>&lt;p&gt;Ever since Asus’ announcement of the &lt;strong&gt;Eee PC&lt;/strong&gt;, I was interested to buy one, since I really need a replacement notebook for my display-dead Compaq Presario v2000, which is now on &lt;em&gt;desktop mode&lt;/em&gt; connected to a much cheaper (PHP 10,000) external Samsung 19″ wide-screen &lt;acronym&gt;LCD&lt;/acronym&gt; than a replacement (PHP 13,000~20,000) 14″ built-in one.&lt;/p&gt;&lt;p&gt;I actually bought one the moment an 8G galaxy black model came out on the &lt;acronym&gt;US&lt;/acronym&gt;. That was early April this year, but my aunt who lives there had filled up the box meant to be sent here just about the end of May. Anyway, I’m just glad I’ve finally gotten a hold of my new baby I named &lt;cite&gt;Azusa&lt;/cite&gt; the 23&lt;sup&gt;rd&lt;/sup&gt; of July. That was almost 4 months of waiting. The Eee PC 90x is already out in some parts of the world. T_T&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/ajalapus/2695150359/&quot;&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;She was so named from being an Asus laptop and a certain fictional high school teacher from a 1998 Japanese television drama played by the beautiful &lt;cite&gt;Nanako Matsushima&lt;/cite&gt;.&lt;/p&gt;&lt;p&gt;I was planning to experiment which operating system I could use to replace its custom Xandros-based Linux distro that I find a little bit restrictive. I’m thinking &lt;a href=&quot;http://www.ubuntu-eee.com/&quot;&gt;Ubuntu Eee&lt;/a&gt;, but suggestions are very welcome.&lt;/p&gt;&lt;p&gt;Right now, I’m making this entry from Azusa herself. I hope, now that &lt;a href=&quot;http://www.ajalapus.com/blog/2008/07/25/matt-is-coming-to-town/#comment-30994&quot;&gt;I’m confirmed as a camper&lt;/a&gt; for the upcoming &lt;a href=&quot;http://philippines.wordcamp.org/&quot;&gt;WordCamp Philippines 2008&lt;/a&gt;, there would be free Internet access that I may enjoy on-site blogging.&lt;/p&gt;&lt;p&gt;&lt;em&gt;I guess I’d review my Eee PC experience during the past 3 ½ days:&lt;/em&gt;&lt;/p&gt;&lt;p&gt;I was actually surprised how well it receives Wi-Fi signals from my router about 15 meters away from our living room, even my uncle is having a hard time with Wi-Fi on his Toshiba Satellite.&lt;/p&gt;&lt;p&gt;It is actually not so hard to type on this little keyboard, I just hope I could find a way to convert the input method to Dvorak Simplified Keyboard layout (one thing that makes me want to get rid of its custom Xandros-based Linux). It just bothers me with the lack of independent &lt;kbd&gt;Home&lt;/kbd&gt;, &lt;kbd&gt;End&lt;/kbd&gt;, &lt;kbd&gt;PgUp&lt;/kbd&gt; and &lt;kbd&gt;PgDn&lt;/kbd&gt; buttons, which are mapped to &lt;kbd&gt;Fn&lt;/kbd&gt;+&lt;kbd&gt;←&lt;/kbd&gt;, &lt;kbd&gt;Fn&lt;/kbd&gt;+&lt;kbd&gt;→&lt;/kbd&gt;, &lt;kbd&gt;Fn&lt;/kbd&gt;+&lt;kbd&gt;↑&lt;/kbd&gt; and &lt;kbd&gt;Fn&lt;/kbd&gt;+&lt;kbd&gt;↓&lt;/kbd&gt;, respectively.&lt;/p&gt;&lt;p&gt;I couldn’t actually feel I’m on a sub-&lt;abbr&gt;GHz&lt;/abbr&gt; Celeron processor right now—it boots up really quickly. Probably, if I’ve loaded this with a Microsoft &lt;acronym&gt;OS&lt;/acronym&gt;, it would be a bit more sluggish.&lt;/p&gt;&lt;p&gt;Certain applications are somehow hidden from normal view, I wish I could create shortcuts for the text editor, terminal/console app, and a lot more customizations and settings.&lt;/p&gt;&lt;p&gt;Well, that’s it for now. More reviews later when I finally have time to experiment and do more stuff with my first ever product of blogging for money. Next stop? A digital single-lens reflex camera. &lt;img src=&quot;https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png&quot; alt=&quot;🙂&quot; title=&quot;&quot;/&gt;&lt;/p&gt;</content:encoded>
</item>
</channel>
</rss>
