Can the kernel, or code running in it, access hardware directly?
kernelspace lives in RAM (or memory) (1). Code that is processing in kernelspace can fully access other processes in memory or fully access hardware directly (1).
The kernel governs hardware utilization via drivers, memory, disk space, memory and CPU (1).
In RedHat distributions of Linux (including CentOS and Fedora) userspace exists in RAM (or memory) (2). Running applications live in userspace (2). "Code running in userspace cannot access hardware directly and cannot access memory allocated to other applications." (2)
Here is the guide:
(1) Page 1257 of 7th Edition of A Practical Guide to Fedora and RedHat Enterprise Linux by Mark G. Sobell
(2) Page 1279 of 7th Edition of A Practical Guide to Fedora and RedHat Enterprise Linux by Mark G. Sobell