사용자가 입력한 명령은 쉘과 커널을 거쳐 하드웨어를 제어하게 된다. 우리가 명령을 입력하면 컴퓨터 내부에서 쉘이 받아들이고, 커널이 해석하여 하드웨어를 조작하는 것이다.
운영체제가 유저와 하드웨어를 이어주는 인터페이스라고 한다면, 커널은 응용 소프트웨어와 하드웨어를 이어주는 인터페이스라고 할 수 있다.
커널은 운영체제의 핵심이라고 할 수 있다. 컴퓨터 부팅시 부트로더에 의해서 로드되어 항상 메모리에 상주하며, 응용 소프트웨어와 하드웨어 간의 커뮤니케이션을 관리한다. 운영체제에서 가장 중요한 구성요소로서 입출력을 관리하고 소프트웨어로 부터의 요청을 컴퓨터에 있는 하드웨어가 처리할 수 있도록 요청을 반환하는 역할을 하는 것이다.
쉘은 운영체제 가장 바깥에서 사용자와 운영체제간의 대화가 가능하도록 명령어 해석기 역할을 해준다.
사용자(명령) ➡️ 쉘(해석) ➡️ 커널(명령 수행 후 결과 반환) ➡️ 쉘(해석) ➡️ 사용자(결과 확인)
쉘 스크립트는 쉘 명령어들을 텍스트 파일에 모아두고 스크립트 언어처럼 컴파일 없이 위에서 한줄씩 실행하는 프로그래밍 언어이다.