

이때 System Software는 컴퓨터 시스템의 개별 하드웨어(HW) 요소들을 직접 제어, 통합, 관리하는 소프트웨어로서 사용자가 컴퓨터 하드웨어의 물리적인 특성이나 구조를 전부 알지 못하더라도 컴퓨터 시스템을 사용할 수 있게 도와주는 역할을 하는 소프트웨어를 말한다. (Machine Dependent: Instruction Set Architecture (ISA)에 의존적)
(System Software 구성 요소 참고: https://devpad.tistory.com/119)
System Software에는 운영체제 (Operating System, 좁은 의미의 System Software)가 포함되는데, 커널 (Kernel)은 이러한 운영체제의 핵심적인 역할을 담당한다.

운영체제에는 User Mode와 Kernel Mode가 있다. 사용자 모드는 응용프로그램이 사용하는 영역이고, 커널 모드는 운영체제가 사용하는 영역으로 특정 권한이 필요한 명령어 수행이 가능하다. 이렇게 영역이 나뉜 이유는 보안을 위해서 중요 데이터에 영향을 끼칠 수 있는 명령어는 커널 모드에서만 수행되도록 하기 위함이다.
(운영체제와 커널의 역할 참고: https://smallrich.tistory.com/77)
BUT kernel은 사용자와 직접 상호작용하지 않음!
-> 운영체제와 사용자 간의 인터페이스, Shell로 운영체제와 사용자가 상호 작용함!
(Unix 및 Unix-like 운영 체제의 터미널에서 사용하는 Shell 종류 참고: https://blog.naver.com/jdockko1/222968207191)