MacInTouch Amazon link...

macOS 10.15 Catalina

Channels
Apple, News
Apple has switched from BASH to ZSH as the default shell in Terminal.app for new user accounts…
I guessed this was due to licensing issues, and a web search shows,
The Next Web said:
Why does macOS Catalina use Zsh instead of Bash? Licensing
Newer versions of Bash are licensed under the GNU General Public License version 3 – or GPLv3 for short. This comes with several restrictions which could potentially have caused a few headaches for Apple further down the line.
Caveat Casual Catalina User:
Catalina's bash is probably version 3.2.57 or so, if that matters to you. The current version is 5.0.
 



Apple has switched from BASH to ZSH as the default shell in Terminal.app for new user accounts, but it does not appear to force the switch for existing accounts. Instead, if a user is not using ZSH, a banner message appears at the top of new Terminal sessions explaining how to switch to ZSH manually. This is much better than the last time Apple switched default shells. When Apple moved from Jaguar to Panther, it switched all users from TCSH to BASH without warning users. Maybe Apple is recognizing that there are a lot more developers using the macOS command line today than in the past.
On a similar note, Apple is now including Python 3 in addition to Python 2.7. Considering Python 2.7 is going end of life in 2020, Apple is really late to the game. It is going to take time for admins to move their scripts to Python 3. There are probably tons of legacy scripts that will never be updated.
 


On a similar note, Apple is now including Python 3 in addition to Python 2.7.
But not for long! Per the Catalina release notes:
Apple said:
Scripting language runtimes such as Python, Ruby, and Perl are included in macOS for compatibility with legacy software. Future versions of macOS won’t include scripting language runtimes by default, and might require you to install additional packages. If your software depends on scripting languages, it’s recommended that you bundle the runtime within the app.
What this means is developers won't be able to assume the existence of any version of a scripting language other than the shell and AppleScript.

Think about how today some installations are started by running a script. It is a chicken-and-egg problem: how does a script download the runtime if the script requires the runtime to run?

Maybe we'll be lucky and Apple will include stubs for the scripting runtimes, that will trigger a prompt to download an installer package, such as how, when you try to use something that needs Java 6, it triggers the Legacy Java 6 installation. (I ran into that recently when using an old version of TurboTax.)
 


I know the Back to My Mac service was often hinky, but it worked well for me. I can also use my work TeamViewer account, but I found the BTMM interface much superior - for example, being able to scroll through the window in zoomed-in view mode. Any ideas why Apple is completely pulling the plug on this?
 


But not for long! Per the Catalina release notes:
Apple said:
Scripting language runtimes such as Python, Ruby, and Perl are included in macOS for compatibility with legacy software. Future versions of macOS won’t include scripting language runtimes by default, and might require you to install additional packages. If your software depends on scripting languages, it’s recommended that you bundle the runtime within the app.
What this means is developers won't be able to assume the existence of any version of a scripting language other than the shell and AppleScript.

Think about how today some installations are started by running a script. It is a chicken-and-egg problem: how does a script download the runtime if the script requires the runtime to run?

Maybe we'll be lucky and Apple will include stubs for the scripting runtimes, that will trigger a prompt to download an installer package, such as how, when you try to use something that needs Java 6, it triggers the Legacy Java 6 installation. (I ran into that recently when using an old version of TurboTax.)
I really have a hard time believing that Apple can remove scripting languages from installs. Mac admins in both enterprise and education live by Python, Perl, and Bash scripts to do their jobs. Heck, Jamf teaches scripting as a key part of Mac management.

But, this is Apple, let's see what they do.
 


Ric Ford

MacInTouch
macOS 10.15 Catalina is bringing radical APFS/file system/installer changes, taking the SIP concept to a whole new level with new mechanisms1 that allow Apple to move system files (/usr/bin) to a hidden, read-only volume, which is stitched together behind the scenes with the writable volume to present what appears to be a single volume but isn't2.

See the WWDC19 presentation by Max Matveev, What's New in Apple File Systems, for more details.

These huge changes impact backup and restore, so Apple has created "APFS Volume Replication with ASR" (Apple Software Restore).3 And macOS Catalina gains the ability to restore from an APFS snapshot (using a delta mechanism to copy only the differences between the snapshot and target volume).

1Including invisible "firmlinks" created by the installer, new filesystem objects that function as a "bi-directional wormhole in path traversal" (different from traditional symlinks).

2Instead, it's an APFS "Volume Group."

3This process defragments the volume, too.
 


Ric Ford

MacInTouch
More major changes and compatibility/deprecation issues, starting with macOS 10.15... kernel extensions (kexts) are being deprecated (with security/reliability justification).
Apple WWDC19 videos said:
System Extensions and DriverKit
One of the next steps in modernizing and improving the security and reliability of macOS is to provide a better architecture for kernel extensions and drivers. Learn how to make this transition with System Extensions and DriverKit.
 


This article clears up some of the confusion over the change from iTunes to individual apps. I am curious what this means for the ability to rip (and burn) audio CD's, for those of us of a certain age who still like to do that. The document does mention that already ripped content will remain accessible, but that's all it says. Does anyone know the answer?
 


This article clears up some of the confusion over the change from iTunes to individual apps. I am curious what this means for the ability to rip (and burn) audio CD's, for those of us of a certain age who still like to do that. The document does mention that already ripped content will remain accessible, but that's all it says. Does anyone know the answer?
We went through some of this over on the WWDC thread. However, the ability to still burn an audio CD from the new Music app is a very good question. Perhaps JoseHill can provide an answer?
 


More major changes and compatibility/deprecation issues, starting with macOS 10.15... kernel extensions (kexts) are being deprecated (with security/reliability justification).
Apple released new driver kits for USB drivers, HID drivers (input devices like keyboards and mice) and some Network devices (VPNs, etc.). Those new driver kits move device drivers for those areas out of the kernel and into "user space". If they crash or are found to have security problems, they will cause fewer problems. It's kexts for those areas that are being deprecated. The next version of macOS will move other driver types out of the kernel and then those will be deprecated. They clearly want all drivers out of the kernel. Keep in mind that drivers are in the kernel because of speed, so it's an open question whether low-level networking card drivers and graphics drivers can be moved.
 


... The next version of macOS will move other driver types out of the kernel and then those will be deprecated. They clearly want all drivers out of the kernel. Keep in mind that drivers are in the kernel because of speed, so it's an open question whether low-level networking card drivers and graphics drivers can be moved.
Kernel extensions (kext) are being replaced by System Extensions. While System Extensions are moved to "user space", they are not normal programs/applications. They are restricted in what they can actually call/invoke, which libraries are included, and some other constraints. As a trade-off, they can request capabilities ["entitlements"] for access to certain parts of the kernel and run at different priority levels then normal apps.

The core of macOS is built around Mach. Mach started off as microkernel operating system back in the mid 80s and refined through the 90s. So it isn't a totally "open question", since this has been researched and implemented for decades. Earlier versions of Mach took Inter-process communication (IPC) a bit to the extreme. The quick fix generally applied to also get better BSD Unix compatibilty was to weave bigger chunks back into the kernel (making it is not so 'micro' anymore). What Apple appears to be doing is a bit of a prune (going back to smaller). There are new mechanisms that support virtualization of IO (e.g. leveraging the IOMMU capabilities of modern x86 CPUs) that could cut way down on IPC overhead. Plus, CPUs are generally much faster than they were in the 90's now.

System extensions can get a capability to get "raw" access to the hardware they are a 'driver' for. So, if you have USB driver capability, then you get low-level access to a USB hardware but only to USB hardware (can't access resources of a GPU or general kernel buffers, but they should not need those). The notion is to give "just enough" access to get the specific task done and no more.

Extreme low-latency Remote Direct Memory Access (RDMA) networking would probably be a problem, but macOS doesn't really support very many 50+ GbE or Infniband networking cards now. General mainstream networking shouldn't be a problem (the kernel needs to provide some efficient copying mechanisms but that shouldn't be a big problem).

Graphics is going to be an issue because it is really the shape and scope of the interface that is both 'below' and 'above' the GPU driver. There is likely a non-trivial interaction with Metal (Apple's GPU interface API) there.

So the "need for speed" isn't really a good enough reason in many cases. Being in the kernel is also a dual-edge sword, because drivers can't do too much. Other parts of the kernel, like the scheduler and general system admin, need resources at a higher priority (if in charge of implementing priority, that trumps everyone else's priority). That means that kexts were limited in how much 'work' they could do, because they needed to 'get out' quickly.

System extensions get higher priority than normal apps, so they are going to get first access to time on CPU after the core kernel gets its stuff done. When the kernel is trimmed down, the resources for "speed" will be there for all but ultra-razor-thin latencies at the ultimate limits of the CPU.
 


So the "need for speed" isn't really a good enough reason in many cases. Being in the kernel is also a dual-edge sword, because drivers can't do too much. Other parts of the kernel, like the scheduler and general system admin, need resources at a higher priority (if in charge of implementing priority, that trumps everyone else's priority). That means that kexts were limited in how much 'work' they could do, because they needed to 'get out' quickly.
User space graphics drivers have been tried in the past (Windows NT 3.x) and performance issues required them to move into the kernel. Context-switching is a killer.
 



I don't know if anyone here is beta testing 10.15, but one thing I haven't read is whether or not the new Apple Music app will have the ability to rip CDs anymore.

Some of the broadcast radio stations I work with use Macs in their production studios and often still rip discs to ingest into their automation systems, and while there are plenty of apps out there that can do this, some preferred the simplicity of iTunes. I wonder if this will be their push to have to lean toward something else, such as XLD.
 


I don't know if anyone here is beta testing 10.15, but one thing I haven't read is whether or not the new Apple Music app will have the ability to rip CDs anymore. Some of the broadcast radio stations I work with use Macs in their production studios and often still rip discs to ingest into their automation systems, and while there are plenty of apps out there that can do this, some preferred the simplicity of iTunes. I wonder if this will be their push to have to lean toward something else, such as XLD.
The forum member here, JoseHill, confirmed that you can still rip CDs as normal. It's now also documented in my MacStrategy article, along with lots of other useful questions and answers:
macOS 10.15 Catalina Frequently Asked Questions
Q. If iTunes is discontinued/gone can I still "rip" a physical CD?
A. Yes. The process is exactly the same as before, but now done by the new Music application - inserting a CD launches the Music applications, looks up the Gracenote/CDDB metadata, and offers to import the CD.
 


User space graphics drivers have been tried in the past (Windows NT 3.x) and performance issues required them to move into the kernel. Context-switching is a killer.
Yeah; but, as noted, processors are quicker these days, and we have many cores to hand. It should work well enough, and probably a lot better.
 


User space graphics drivers have been tried in the past (Windows NT 3.x) and performance issues required them to move into the kernel. Context-switching is a killer.
Windows NT 3.x is the same mid-1990s context that Mach 2.0-3.0 was in. The amount of hardware in the CPU to support rapid virtualized contest switching was relatively non-existent. The huge push over the last 10 years in x86 (and other instruction sets) to support the massive amount of deployed virtualization is very substantial.

Folks today are running cloud gaming services where multiple gamers are logged into the same GPU running different games at the same time. With the hardware from the 90's, that wasn't practical. It is now.

Apple pruning off systems with relatively slow (or no) IOMMU capabilities opens windows of new possibilities.
 


Given that I would have to pay thousands of dollars to replace my 32-bit software, I, for one, would be willing to pay $200 for continued 32-bit support...
It is not just software that you might have to replace but hardware that has 32-bit drivers. I love my Canoscan scanner. Their driver is 32-bit. As they no longer sell it, they seem to have no interest in providing a 64-bit driver. Yes, there are programs like Vuescan, but try to use it with OCR programs!

I think many users will be surprised about the number of 32-bit software programs on their computer. Even though I update all my programs on a regular basis, many are still 32-bit.
 


It is not just software that you might have to replace but hardware that has 32-bit drivers. I love my Canoscan scanner. Their driver is 32-bit. As they no longer sell it, they seem to have no interest in providing a 64-bit driver. Yes, there are programs like Vuescan, but try to use it with OCR programs! I think many users will be surprised about the number of 32-bit software programs on their computer. Even though I update all my programs on a regular basis, many are still 32-bit.
The one thing I won't be is surprised. macOS keeps reminding me, quite frequently.
 




I wonder if you get reminders about hardware drivers or only about software.
With an iMac with only external storage (via Thunderbolt) and a scanner, there aren't (m)any hardware drivers to worry about — I only use the scanner with Image Capture.

Come to think of it, most of the rat's nest of thin cables on my desk are for charging and/or communicating with iOS devices and third-party cameras, battery packs, &c.
 


The forum member here, JoseHill, confirmed that you can still rip CDs as normal. It's now also documented in my MacStrategy article, along with lots of other useful questions and answers:
How does macOS 10.15 deal with audiobooks, such as those downloaded from audible.com and loaded onto an iPod Nano?
 


I know that Apple periodically announces updated printer drivers. I suspect they are given to Apple by the manufacturers.
In my (several) discussions with various people at Canon regarding printer drivers, I was told that Apple no longer gets the drivers from the printer company. They (Apple) wants to control everything and that is why I couldn't download a driver for my Pixma TS9120 from Canon for OS X 10.9.6 (Mavericks). As it turned out, I was able to use the printer with Mavericks through Bonjour and, it fact, it worked better than with El Capitan. It would not scan in El Capitan, but would in Mavericks. And Apple used to be the company with the "It just works" philosophy. Not so much now.
 


How does macOS 10.15 deal with audiobooks, such as those downloaded from audible.com and loaded onto an iPod Nano?
Audiobooks are now handled by the Books application in macOS 10.15. It has not yet been confirmed (here) that this will work with audiobooks other than those from the iTunes Store. If they don't work, then you'll need to use a different app and a manual file transfer method similar to this, but it will be done via the Finder rather than iTunes in macOS 10.15.
 


In my (several) discussions with various people at Canon regarding printer drivers, I was told that Apple no longer gets the drivers from the printer company. They (Apple) wants to control everything and that is why I couldn't download a driver for my Pixma TS9120 from Canon for OS X 10.9.6 (Mavericks). ...
Apple is changing how drivers are being done in the future. All drivers will be a subtype of something called a System Extension. However, it looks like all System Extensions are apps (special kinds of applications with non-normal capabilities but probably generally classified as an app). It wouldn't be a huge leap if eventually Apple opens a "system extension" section of the App Store. If distributing drivers was more like distributing apps, then Apple may jump back into the game.

I suspect Apple didn't like distributing something that needed something like the system installer to work - and, also, coupling new drivers to new OS update releases - an even bigger bundle with even bigger logistics.

Hardware vendors will still be free to build their own "System Extension" app and have users download it (or make awkward DVD/CD installers), Their app could percolate notifications (Nikon has a crufty "Nikon Software update' app that works along those lines). Most printers have some sort of "control center" app. They may need to trigger a new app bundle (something that has a consistent signature).

Starting with macOS 10.16, many of these hardware vendors are going to have to do something new anyway. Certain classes of current kernel extension (kext) drivers are going to just completely stop working and won't be loaded at all. They are going to have to build something that is new just to be on the contemporary macOS. Some bundle of apps will need to be put together.

It is going to be interesting to see what happens for "race to the bottom" hardware devices that put the absolute minimal budget on software development. (Similarly for high-end stuff with comatose software resources allocation.)
 



Amazon disclaimer:
As an Amazon Associate I earn from qualifying purchases.

Latest posts