macOS 10.15 Catalina is expected to release to the public on October 4th, 2019. This post will briefly outline some of the major structural changes in Catalina, and we’ll have follow-up posts which cover how some specific Plugable products are affected by these changes.

The two changes we expect to have the highest user impact offer benefits while also posing challenges for developers: the requirement that all applications must be 64-bit (and as a result, the loss of legacy 32-bit application compatibility), and the requirement that drivers must utilize the new, more secure, DriverKit framework. While these changes are all-around positive for the future of macOS from performance, security, and stability standpoints, they affect millions of lines of code across the planet, fundamentally changing the way that software and drivers must be created in order to work on macOS.

macOS Catalina's default background image

Transition to 64-bit application requirements has been in the works for quite some time, as the sunset for 32-bit app support has been in the works for over a year. Beginning with the release of macOS 10.13.4 High Sierra in March 2018, macOS has been presenting warnings to users of 32-bit apps, encouraging users to contact to application developers concerning the app’s future. We’ve encountered this frequently while supporting our USB microscopes, as the software we provide to go along with those products has been 32-bit right up to the Catalina deadline. And though warnings have been present for some time, the applications in question could still be run. After installing Catalina, when you attempt to launch a 32-bit application, users will see a warning that “{Application Name} needs to be updated”, and the app will simply no longer run.

The move away from 32-bit is a good one, but it does create some roadblocks. Newer, more efficient APIs such as Metal are 64-bit only, and 32-bit apps by nature can’t leverage as much memory space as a 64-bit app. On the downside, many legacy apps that no longer have active development teams behind will be stuck on older versions of macOS eternally, forcing users to choose between keeping their system out-of-date to retain compatibility, or upgrading their OS and potentially having to purchase new software. In the not-so-distant future, this could mean keeping an insecure operating system on hand just to retain compatibility with a crucial piece of software.

Users run applications on their systems constantly, so the above changes will be quite noticeable for affected users. Drivers — small pieces of special software which enable hardware devices to work — are something users consciously interact with much less frequently. With Catalina, Apple is now requiring that these drivers use a framework called DriverKit, which represents a huge shift in how drivers interact with the core of the operating system (known as the kernel). Drivers developed with DriverKit run in user space, rather than as kernel extensions (.kext), which offers immensely improved security and stability.

What this has meant for developers is that legacy “kext” drivers have had to be re-written, and that can bring some challenges. As it currently stands, many devices on the market with legacy drivers simply won’t function on Catalina until newer drivers are released. Our USBC-E1000 and USB3-E1000 are two such devices; the chipset manufacturer for this device has only produced a beta driver to meet the deadline for Catalina release, which is more challenging to install than typical drivers. (We’ve got a blog post coming shortly after this one with instructions on how to install this new beta drivers for affected users.)

These changes are likely to signal the end for many legacy applications and devices that no longer have active developers behind them. Devices that rely on kernel extensions, and applications that were never updated to 64-bit before desertion will be forced off of macOS with these changes. In many cases, this will raise some difficult decisions for users and organizations who rely on specialized legacy applications or hardware.


Loading Comments

Article ID: 392010432677