Both are OK. In linux, there is standardized interface so that a revolutionary idea coined somewhere in 1980's (or even earlier), called "drivers", exists. Therefore, application does not need to know what hardware the user has - application is always the same, only correct driver is installed, and then the app works with any hardware.
Microsoft has not heard about this concept still in 2020's, so if you need to support Windows, then every CAN application has to separately support every CAN adapter in existence; the Kvaser and Peak are probably the two most common, so it makes sense to write code to support both of them, plus maybe any third one specifically requested by your customers. I have done that in my CAN projects and luckily their interfaces are both pretty simple so you can write your own wrapper layer in matter of hours.