Shell - The user interface that allows users to request specific tasks from the computer. These requests can be made either through the CLI or GUI interfaces.
Kernel - Communicates between the hardware and software of a computer and manages how hardware resources are used to meet software requirements.
Hardware - The physical part of a computer including underlying electronics.