An operating system kernel provides a framework for programs to share a computer's hardware resources securely and efficiently. This requires that the programs are separated and protected from each other. To make running multiple programs in parallel useful, there also needs to be a facility for programs to exchange information by communication.
The Mach microkernel provides abstractions of the underlying hardware resources like devices and memory. It organizes the running programs into tasks and threads (points of execution in the tasks). In addition, Mach provides a rich interface for inter-process communication.
What Mach does not provide is a POSIX compatible programming interface. In fact, it has no understanding of file systems, POSIX process semantics, network protocols and many more. All this is implemented in tasks running on top of the microkernel. In the GNU operating system, the Hurd servers and the C library share the responsibility to implement the POSIX interface, and the additional interfaces which are specific to the GNU system.