We had one called "Systems Programming" that was a whirlwind intro to everything Unix (6 weeks on bash, 6 weeks on C, 6 weeks on Perl, a mishmash of SSH and everything-is-a-file and Unix-philosophy, etc)
We had another called "Operating Systems" that focused on things like concurrency, building a really basic memory pager, etc (mix of C and Java I think)
And we had one other called "Networking" that was sort of along the same lines as "Operating Systems" but focused on, well, networking. Mostly Java; we wrote our own application-layer protocols, that sort of thing
But yeah pretty much everything else - including the more "concrete" programming courses like Data Structures and Algorithms - was fairly abstracted away from any specific system
My undergrad CS degree I don't think contained any sort of OS course, other than maybe a survey of them but there was a graduate level class that was required for any higher degree. I took it before I graduated with an undergrad because it was interesting, and it was quite extensive as I recall. That was well over 20 years ago, however.
We had another called "Operating Systems" that focused on things like concurrency, building a really basic memory pager, etc (mix of C and Java I think)
And we had one other called "Networking" that was sort of along the same lines as "Operating Systems" but focused on, well, networking. Mostly Java; we wrote our own application-layer protocols, that sort of thing
But yeah pretty much everything else - including the more "concrete" programming courses like Data Structures and Algorithms - was fairly abstracted away from any specific system