To be able to run free software you need compatible hardware. Sure you can use some of them on windows or macos but those OSes are not examples of free operating system, do not provide a healthy ecosystem for them to thrive and do not respect your freedom.
Easy and fast check
The fast and easy check if you already have access to the hardware is to run the OS and to see what is working or not.
I suggest you start with one of the GNU/Linux libre distribution since they are the most respecting of your freedom (i.e Trisquel for the more traditional approach or Guix my personal favorite, ...). Be aware than due to being 100% free, recent hardware and more specifically some sound cards, video cards (mainly AMD and Nvidia) and wifi cards are not likely to work.
The complete list of distros that follows the Guidelines for Free System Distributions can be found at https://www.gnu.org/distros/free-distros.en.html
GNU/Linux with blobs
If it works, great! Otherwise the next best thing is to choose among the multitude of GNU/Linux distributions (i.e Debian, Gentoo, NixOS, ...). Nowdays unless you have a really esoteric piece of hardware I assure you that you will be able run it.
You may even take a look at the BSD family of operating system (i.e OpenBSD, NetBSD, FreeBSD, DragonFly ...). They too have a decent hardware compatibility although not as good as GNU/Linux.
A more thorough analysis
Checking your hardware
lspci, lsusb are commands from pciutils and usbutils to inspect pci and usb devices.
Report info to h-node
If you run the following command using a fully free GNU/Linux distribution or Debian (includes only free software by default) do not forget to report it to h-node. H-node is a hardware database that report if a device works on a fully free system.
lspci -vmmnn # -v verbose # -mm machine readable output # -nn numbers and names for pci vendor and devices code
If something is missing add it otherwise do not forget to check the validity and accuracy of the others entries.
|Model Name||Intel Corporation HD Graphics 520|
|Year of commercialisation||2016|
|Works with Free Software||works with 3D acceleration|
|Free Driver used||i915|
lspci -nnpk -d 8086:1921
00:02.0 VGA compatible controller : Intel Corporation HD Graphics 520 [8086:1921] (rev 0a)
lspci -vnnmm -d 8086:1921
Slot: 00:02.0 Class: VGA compatible controller  Vendor: Intel Corporation  Device: HD Graphics 520  SVendor: Lenovo [17aa] SDevice: Device  Rev: 0a
lspci -v -d 8086:1921
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 520 (rev 0a) (prog-if 00 [VGA controller]) Subsystem: Lenovo Device 3802 Flags: bus master, fast devsel, latency 0, IRQ 125 Memory at d0000000 (64-bit, non-prefetchable) [size=16M] Memory at c0000000 (64-bit, prefetchable) [size=256M] I/O ports at e000 [size=64] Expansion ROM at 000c0000 [virtual] [disabled] [size=128K] Capabilities:  Vendor Specific Information: Len=0c <?> Capabilities:  Express Root Complex Integrated Endpoint, MSI 00 Capabilities: [ac] MSI: Enable+ Count=1/1 Maskable- 64bit- Capabilities: [d0] Power Management version 2 Capabilities:  Process Address Space ID (PASID) Capabilities:  Address Translation Service (ATS) Capabilities:  Page Request Interface (PRI) Kernel driver in use: i915
The previous commands lspci and lsusb also works on the BSDs but they are not included by default. The compatibility list can be found on their respective website.
Domain /dev/pci0: 0:0:0: Intel 82441FX 0:1:0: Intel 82371SB ISA 0:1:1: Intel 82371SB IDE 0:1:3: Intel 82371AB Power 0:2:0: Bochs VGA 0:3:0: Intel 82540EM
pcictl pci0 list
000:00:0: Intel 82441FX (PMC) PCI and Memory Controller (host bridge,revision 0x02) 000:01:0: Intel 82371SB (PIIX3) PCI-ISA Bridge (ISA bridge) 000:01:1: Intel 82371SB (PIIX3) IDE Interface (IDE mass storage, interface 0x80) 000:01:3: Intel 82371AB (PIIX4) Power Management Controller (miscellaneous bridge, revision0x03) 000:02:0: vendor 1234 product 1111 (VGA display, revision 0x02) 000:03:0: Intel i82540EM 1000baseT Ethernet (ethernet network, revision 0x03)
pciconf -l # -l list devices
hostb0@pci0:0:0:0: class=0x060000 card=0x11001af4 chip=0x12378086 rev=0x02 hdr=0x00 isab0@pci0:0:1:0: class=0x060100 card=0x11001af4 chip=0x70008086 rev=0x00 hdr=0x00 atapci0@pci0:0:1:1: class=0x010180 card=0x11001af4 chip=0x70108086 rev=0x00 hdr=0x00 intsmb0@pci0:0:1:3: class=0x068000 card=0x11001af4 chip=0x71138086 rev=0x03 hdr=0x00 vgapci0@pci0:0:2:0: class=0x030000 card=0x11001af4 chip=0x11111234 rev=0x02 hdr=0x00 em0@pci0:0:3:0: class=0x020000 card=0x11001af4 chip=0x100e8086 rev=0x03 hdr=0x00