It's GNU/Linux. Linux is just a kernel, and not even a particularly good one.
Linux is the Operating System. GNU is the Operating Environment. The OS-kernel distinction only makes sense with microkernels. For example, GNU Hurd is often called a "kernel." This is false. Hurd is an operating system, Mach is the kernel. Specifically, it is a collection of microkernel servers and the kernel, which is GNU Mach (a really shitty kernel at that). On Operating Systems like NT the Kernel-OS distinction is greater as it is split into Subsystems ("personalities"), the Kernel (Ke), HAL (Hal), Executive (Ob, Mm, Reg, Io, etc.) (which while included in ntoskrnl.exe is considered separate from the kernel because of VMS/MICA heritage) and the drivers. With monolithic systems like Linux, everything is baked into the kernel (except for ld-linux which I consider part of the operating system).
This is why you will often hear that Windows 1.0 was not an operating system but was actually an operating environment or "shell." This is correct. Windows 1.0 is a collection of dynamic libraries that get linked against real mode executables. All the operating system functionality is handled by DOS. In the same way that GEM for DOS isn't an operating system.
Advocates of the OE as OS definition (which is limited to mainly Richard Stallman) will say that the operating system cannot do anything by itself. This is correct. Operating systems cannot do anything by themselves, that is the point. If you try to start up the MS-DOS OS without a command line interpreter, it will ask for the path of a command line interpreter, typically COMMAND.COM, but you can swap COMMAND.COM out for 4DOS. This is because the MS-DOS OS is contained in IO.SYS (the drivers) and MSDOS.SYS (the kernel), not COMMAND.COM, which is just a shell, like GNU Bash is for the Linux Operating System.
I use this definition because it is the most commonly used on in academia and in books. For example, The XINU Approach by Bell Labs defines what an operating system is not:
First, an operating system is not a language or a compiler. An operating system does not depend on an integrated language facility Second, an operating system is not a windowing system or a browser. Although windowing mechanisms rely on an operating system, a windowing system can be replaced without replacing the operating system. Third, an operating system is not a command interpreter. In a modern operating system, the command interpreter operates as an application program, and the interpreter can be changed without modifying the underlying system. Fourth, an operating system is not a library of functions or methods. Despite the close relationship, library software remains independent of the underlying operating system .
I consider coreutils to be a combination of methods packaged as programs due to the UNIX software tools philosophy. The book goes on goes on to define an operating system:
The essence of an operating system lies in the services it provides to applications. An application accesses operating system services by making system calls. In source code, a system call appears to be a conventional function invocation. At runtime, however, a system call and a conventional function call differ. Instead of transferring control to another function, a system call transfers control to the operating system, which performs the requested service for the application. Taken as a set, system calls establish a well-defined boundary between applications and the underlying operating system that is known as an Application Program Interface (API). The API defines the services that the system provides as well as the details of how an application uses the services.
Of course with Microkernels this definition gets washy because the microkernel's job is to provide IPC between servers that implement drivers from userspace. So In the case of microkernels we can go look at Andy Christmasstree's MINIX Book's definition of operating system:
If you go to a library and look at the selection of books about Operating System Development, they all discuss implementing operating systems, not operating environments like GNU. None of them discuss writing a windowing system, a stream editor, a shell, or a text editor.
Based on this, I take the view that the software that runs on a computer, can be split into four parts: the bootloader (GRUB, NTLDR, Syslinux, Limine), the operating system (NT, Linux, MINIX, BSD, GNU Hurd, VMS, OS/2), the operating environment (Win32, System V, GNU, BSD, OS/2), and add-on software (Microsoft Word, GIMP, Firefox, GTA V).