The vastness of the ecosystem built around Apple products cannot be understated. You can't just change the iPhone port every few years.
Ditching the 30-pin adapter created no small degree of controversy. Though the device itself got favorable reviews, the New York Times’ tech columnist at the time called it “not just a slap in the face to loyal customers” but a “jab in the eye.”
The Lightning connector was introduced on September 12, 2012, with iPhone 5. And there was so much controversy around it that they publicly committed to using it for at least 10 years.
The USB-C spec was not finalized until nearly two years later, in August 2014.
I can't fault a company for activity committing to a decade of compatibility with peripherals. And I certainly can't fault them for avoiding the disaster called Micro USB.
Programs should be using the system resolver, not parsing that file.
The system resolver should have predictable behavior. But if other programs are doing their own DNS resolution (or otherwise predicating their functionality) based directly on the contents of resolv.conf then their behavior will not always be consistent with the system resolver (or with how the sysadmin intended things to function).
And that can break things in subtle, unpredictable ways, which is always a headache.
Thus, on some modern systems, resolv.conf simply declares the local systemd-resolved instance (i.e. 127.0.0.1) and nothing else.
A single global resolv.conf file also will not let you configure different behavior based on interface or on network namespace. Want to ensure DNS lookups for specific apps occur only through your VPN-specific DNS servers but all other apps only use the normal system resolvers (i.e. no leaking from either side of the divide)? Want to also ensure DNS lookups for those specific apps fail when the VPN is down (again, as opposed to leaking)? systemd-resolved has your back.
And before anyone asks, yes, I am aware there are other, more crude and convoluted ways to do that with e.g. iptables (just like you can use crude, inconsistent init.d spaghetti scripts to manage services). It's just one single real-world example.
A single global resolv.conf file also will not let you configure different behavior based on interface or on network namespace.
The point is to configure everything using consistent, predictable configuration files and syntax, and to ensure consistent, predictable behavior.
But if you ultimately still want resolv.conf.d back, then your distro of choice undoubtedly provides a way to do so.
In a statement announcing his brother's death, brother Ray alluded to a familiar joke about the weekly puzzlers they always featured in the show.
"Turns out he wasn't kidding. He really couldn't remember last week's puzzler," Ray said. "We can be happy that he lived the life he wanted to live; goofing off a lot, talking to you guys every week and primarily laughing his ass off."
resolv.conf itself should be managed by systemd-resolved on any modern Ubuntu Server release. And that service will use the DNS settings provided by netplan.
With cloud-init disabled, you should have the freedom to create/edit configuration files in /etc/netplan and apply changes with netplan apply.
Clearly if you turn the image upside-down, it is a Whale-Gnome-Dustbuster-Pharaoh in the architectural style of the Goa'uld/Ancient Ancients with a blowhole-mouth surprise.
But I'm leaning toward Dustbuster, now that we know it's Hoovering up ships.
The vastness of the ecosystem built around Apple products cannot be understated. You can't just change the iPhone port every few years.
The Lightning connector was introduced on September 12, 2012, with iPhone 5. And there was so much controversy around it that they publicly committed to using it for at least 10 years.
The USB-C spec was not finalized until nearly two years later, in August 2014.
I can't fault a company for activity committing to a decade of compatibility with peripherals. And I certainly can't fault them for avoiding the disaster called Micro USB.