Mach is a first-generation microkernel.

Mach's basic abstractions include virtual address spaces in the form of tasks, execution contexts in the form of threads, IPC, capabilities in the form of ports, and memory objects, which enable Mach's external pager mechanism.

Controlling tasks, their virtual address space, threads, and other system objects in Mach is implemented by using ports, as opposed to other kernels' system call interface: almost all of the Mach API is implemented by sending messages to ports. Device drivers that reside in kernel space are controlled by ports, too.

Mach's ?API is well-documented.

mach kernel principles: Mach 3 Kernel Principles. Open Software Foundation and Carnegie Mellon University. Keith Loepere. NORMA-MK12: July 15, 1992. Book [ps (HTTP)], [ps (FTP)].

In particular the [mach_kernel_principles] book further elaborates on Mach's concepts and principles.

IRC, freenode, #hurd, 2013-08-26

< stargater> then is mach not more microkernel 
< stargater> when it have driver inside 
< braunr> mach is a hybrid
< braunr> even without drivers
< stargater> in www i read mach is microkernel 
< stargater> not hybrid 
< braunr> the word microkernel usually includes hybrids
< braunr> true microkernels are also called nanokernels
< braunr> the word isn't that important, what matters is that mach does
  more in kernel than what the microkernel principle implies
< braunr> e.g. high level async IPC and high level virtual memory
< braunr> including physical memory management