...
터미널이란?
유닉스 기반의 대형 컴퓨터에서 사용자들이 컴퓨터에 접속하기 위해 사용했던 단말기로 개인용 컴퓨터가 보급된 요즘에는 '컴퓨터를 직접 제어하기 위해 사용하는 소프트웨어'를 뜻한다.
우리가 익숙한 그래픽으로 이루어진 GUI보다 텍스트 기반의 CLI(명령어로 컴퓨터를 조작하는 방식)를 통해 터미널을 사용하는 이유는 일부 작업을 완료하는 것이 훨씬 빠르고, 더많은 명령과 스크립트에 접근할 수 있기 때문이다.
사용자가 컴퓨터를 조작하기 위해 명령어를 터미널에 입력하면, 쉘(보통은 Bash)이 해당 명령어를 해석하고 커널이 이를 실행하는 구조.
위에서 언급한 것처럼 터미널은 CLI 방식으로 사용하고자 하는 기능의 명령어를 입력해야 한다.
그러나 윈도우와 유닉스의 명령어는 서로 다르기 때문에 각 OS의 맞는 명령어를 사용해야 한다.
쉘
쉘은 조개 껍데기의 의미로 '터미널을 사용하기 위한 소프트웨어 환경'을 뜻한다.
키보드 입력과 명령을 실행할 수 있고 디렉토리와 파일 관리 기능을 지원해준다.
쉘은 커널과 사용자의 사이에 존재한다.
사용자가 커널을 사용하기 위해 명령어를 입력하면 커널이 읽을 수 있는 이진코드로 해석해 준다.
유닉스 쉘 종류
- sh : 초기의 유닉스 쉘(Bourne shell), 1977년에 발표
- ksh : 콘 쉘이라고도 불리며 1983년 데이비드 콘이 개발했으며 sh를 확장하여 만듬.
- csh : 1978년 버클리 대학에서 C언어를 기반으로 만든 쉘.
- bash : 1987년 브라이언 폭스에 의해 만들어진 쉘로 sh와 대부분 호환.
※ 리눅스와 Mac OS는 유닉스 커널을 사용해서 유닉스 쉘과 일치
윈도우즈 쉘 종류
- cmd : cmd는 Command의 준말로 절차지향적 성격을 가지고 있으며 윈도우 NT 계열에서 만듬.
- Power shell : Power shell은 .NET FrameWork라는 객체를 사용하며(객체지형적) 모든 결과들이 객체로 표현된다.
커널(kernel)
모든 OS들은 커널을 가지고 있다.
커널은 OS계층이며 HW와 컴퓨터에서 돌아가는 프로그램들을 연결해주는 역할을 한다.
커널은 OS의 핵심이며 컴퓨터를 부팅시키면 가장먼저 메모리에 올라오고 그리고는 컴퓨터가 꺼질때 까지 내내 메모리에 상주하게 된다.
커널은 모든 어플리케이션에게 인터페이스를 제공하며 HW를 컨트롤하고 프로세스들이 서로 정보를 주고 받는것을 허락해준다.
| Reference
https://sosobaba.tistory.com/194
https://velog.io/@gimseonjin/%ED%84%B0%EB%AF%B8%EB%84%90-%EC%82%AC%EC%9A%A9%EB%B0%A9%EB%B2%95
이 글이 좋으셨다면 구독 & 좋아요
여러분의 구독과 좋아요는
저자에게 큰 힘이 됩니다.