Sorry for the long response, but I think the information below will help you with your research. There are 3 primary ways to connect a CNC control board to a computer. USB, Ethernet, and Parallel port
I am not a fan of the GRBL/Arduino (and a couple Raspberry PI options) which covers most (but not all) USB options. I feel that GRBL it is a bit of a limiting platform. It is good for a very basic 3 Axis setup, but you will find limiting as you try to expand the capabilities of your machine.
I went with an Ethernet option for my build, and I am using Raspberry PI as the controller computer. The software I am running on it is LinuxCNC, which is free, well developed, and has a strong community behind it. The control board I am using is a MESA 7i96 board, that connects to the PI via Ethernet. MESA does make boards that attach directly to the GPIO of the PI. I chose to not go with one of those boards as I wanted to be able to move to a more robust computer if needed. Because it used TCP/IP over Ethernet, no special drivers are needed at the OS level, and LinuxCNC supports the board I used natively. So far, I do like the software/controller combination for my CNC.
LinuxCNC is typically used on Intel based PCs running Linux, using a real time kernel. A few years ago the option to compile a real time kernel for the Raspberry PI became available, so that is why it works on that platform. When I started my CNC build 4 years ago (long story, see my MikeMa's CNC thread on that) that was not an option!
There is a PC option for Ethernet as well. This is the Ethernet Smooth Stepper, and runs with Mach 3 and Mach 4. There is also a USB Smooth Stepper, but the company recommends the Ethernet option over the USB. This is a more expensive option, as both versions of Mach have licensing fees. The biggest reason I did not go with this is Mach 3 is no longer being updated, and Mach 4 doesn't support all the hardware that Mach 3 (like MPCs) does. This made me feel like Mach 4 is still a work in progress. That said, both Mach 3 and 4 are widely used.
Parallel port is the original method for running a CNC. For a little background, to make the stopper move on unit, a pulse is sent to it. A real parallel port is able to send pulses in real time. You connect a break out board (or BOB) to the parallel port that allows you to wire in the stepper drivers, as well as inputs for limit switches and e-stops. The computer itself IS the controller for the CNC, the BOB just breaks out the signals and wiring. Both LinuxCNC and Mach 3 support using a BOB via a parallel port. A single parallel port can cover most functions of a 3 or 4 Axis CNC, but you can use multiple parallel ports to add more Axis or input/outputs. The main issue is getting a computer that has a real parallel port is getting more and more difficult to find, and those that do are older machines that do not support current versions of Windows. That said the smooth steppers and some MESA boards actually give you up to 3 or 4 parallel ports, you attach the BOB directly to them. the MESA board I have has the connectors on board for the equivalent of two BOBs but has a parallel port on it as well that I can connect an external BOB.
My preference, and recommendation, is a using an Ethernet based controller card with an OS that is currently maintained (Windows or Linux).
I did choose the Linux option over Windows, not so much with cost, but I felt like LinuxCNC was better maintained than Mach 3 or 4, with a stronger user community. That said, it is a matter of preference, as I said before, there are folks who are very happy with their Mach 3/4 setups.