>DriverKit is a new SDK with all new frameworks based on IOKit but updated and modernized, designed for building Driver Extensions in user space outside the kernel.
You can build and test certain types of drivers in Catalina, but they won't be required until the next version of the OS ships.
>In Catalina, you can control USB, Serial, Network Interface, and Human Interface devices.
They will announce support for more kinds of user space drivers over time.
If there is not an available user space option for a particular use case, the existing kernel space option will continue to work.
I definitely do not miss the kernel panics from unplugging an older FTDI based Arduino while it was sending serial data!
The USB consortium has set standards for VID/PID and how USB Device Descriptors work.
I've typically gone a different route and used an ATMega32U2 (or U4) with Dean Camera's LUFA code to create a CDC to custom hardware bridge. Then the baud rate is irrelevant (or you can use it to set modes). I did this because OpenOCD was taking many, many minutes to program a tiny XC95144 CPLD using an FTDI JTAG cable. Yeah, sorry, trying to do it the "cheap way". When I got it working, the ATMega32U2 "serial" solution could do it in 2.3 seconds. Admittedly this was a few years ago, so things have likely improved.
One funny thing I did find doing this; I have not checked recent macOS releases - I should, was that if "Camera" was in the USB Device Descriptor the device would get claimed as a "serially attached camera" and the "serial" port would not show up - doh.
Works fine with the FTDI driver and pre-Mavericks Apple drivers.
(I'd far rather use the Apple driver, which is much better at reliably detecting the device without needing to reinsert it, so this is a bit tiresome...)
But using Linux on a laptop sucks. Especially if your workplace uses Dell exclusively. :(