Shell

최준혁·2025년 6월 19일

Shell 이란 무엇일까??

  • 사용자가 운영체제와 대화할 수 있게 만들어주는 인터페이스
  • 명령어를 입력하면, 그걸 해석하고 실행해주는 인터페이스

    (출처: https://100100e.tistory.com/126)

그렇다면 왜 시스템과 직접 소통을 하지 못하고 shell이라는 것을 통해서 하드웨어와 통신을 해야할까??
그 이유는 운영체제는 기계가 이해할 수 있는 형태로만 명령을 받아들이기 때문이다.
예를 들어 종료를 의미하는 어셈블리 코드는 아래와 같다고 하면, 사용자가 쓰고 이해하기 힘들다

MOV AX, 4C00
INT 21h

그래서 우리는 쉘을 통해 아래와 같이 입력하면

exit

쉘이 알아서 이걸 번역한 후에, 시스템 호출을 진행하고 운영체제에 전달해주는 것이다.

즉 정리하자면, 운영체제는 사용자(개발자)가 사용하기 어려운 어셈블리어를 사용하기 때문에 쉘을 통해 이용을 편리하게 한다.


그렇다면 여기서 또 다른 하나의 의문점이 들게된다. 왜 운영체제는 이해하기 쉬운 언어가 아닌 어셈블리어로 개발이 됐을까??

그 이유는 운영체제는 컴퓨터 하드웨어와 가장 밀접하게 작동하기 때문이다. 운영체제는 CPU, 메모리, 디스크, 네트워크, 키보드 등과 직접 대화해야 하기 때문에 정밀하고 빠른 하드웨어 친화적인 언어가 필요하다. 그래서 어셈블리어나 C언어가 사용된다.

profile
Backend Developer

0개의 댓글