To add to this, the way Microsoft licensing works there’s a very strong push to Hyper-V.
As an enterprise - If you want to keep your Windows VMs patched, you more or less need a Windows license AND and SCCM license (or some other equivalent) for the VMs.
Windows server licenses are based on CPU cores, and a physical license includes a couple of VMs. You need to pay the physical CPU core license even if you’re running a VM instance on some other hypervisor.
Your system centre license includes SCVMM which is basically Microsoft’s product to compete with vSphere.
If you were to go VMware you need to pay most of the Microsoft licenses(which give you hyper-V plus SCVMM and a bunch of other stuff) anyway.
I’m looking to move our shit off vSphere to HyperV (Windows shop) for this reason. Another reason is hardware HCL support. I’m looking to run HyperV on hardware that isn’t on the VMware HCL. If I do that (ESXi on non-HCL hardware for small deployments where a full blown certified server isn’t appropriate/justified) and have hardware/software issues, I’m fucked. VMware will blame hardware not on HCL, hardware vendor won’t care/blame VMware. If its Windows, I call the hardware vendor/MS and get support.
And yes, for all the complaints people may have about Microsoft - Hyper-V is solid. Guest drivers for it are even included in the linux kernel. Linux runs great on Hyper-V. The reverse - Windows on KVM - is more of a pain in the ass in my experience.
As to Samba? In the real world you need to ask this question: If I’m unable to fix it, who do I call? The cost of a windows sever to do file/print vs. the risk if something goes wrong with Samba for say, Windows 10 build 2104 (for example0 is just not worth it.
Companies will spend multiple zeros worth of money to avoid/attempt to mitigate risk. Anyone who signs off on saving a thousand bucks for windows server and ends up bringing the 30+ person office down for a day (e.g., 30+ people at say $30-100+ per hr for 12 hours) because of some incompatibility with samba and a future windows patch is screw-in themselves. The lost productivity costs add up fast. Same applies to other free/non-MS software in an MS environment.
The same thing might happen (well… DOES happen) with Windows client to Windows server. But at least then you can point the finger at Microsoft and have a single entity to blame/chase for a fix. And you can say “everyone else in the world does it this way, it’s not due to a decision we made”.
edit:
All that said - I may seem quite pro Microsoft here, which may be a surprise to some who have seen my previous vitriol spewed over Windows 10 in a personal use environment. But there’s battles you can fight and there’s battles where it is just not worth the hassle.
Putting your own balls on the line to go against the grain and run non-MS software in an MS environment is taking on a whole heap of personal risk (e.g., “the company is down because samba broke!” - never mind any potential flow on effects) for very little potential personal gain (“You saved us $1k!”).
So most people won’t do it. Which means you’ll see a lot of Windows servers out there, thus learning Windows will serve you well for most environments. Learn Linux by all means (definitely recommend), but I’d suggest that for after you’ve got a handle on Windows server admin stuff first - at least the basics.
This alone makes samba instead of a Windows domain controller a non-starter in a corp environment. Group policy is IMHO essential once you get over more than a handful of Windows machines to administer.
And again all it takes is MS to “fix a security bug” with something that breaks it (samba) and you’re between a rock and a hard place.