유닉스 시스템의 구조
- 하드웨어 : 변경 불가
- 소프트웨어 : 변경 가능
- 펌웨어 : 변경 가능하나 어려움
커널 (Kernel)
- 유닉스 운영체제의 핵심으로 컴퓨터의 모든 자원을 초기화 하고 제어하는 기능
- 프로세스 관리 : 여러 개의 응용 프로그램들이 동시에 수행되는 것처럼 실행 될 수 있도록 프로세스 스케줄링
- 파일 관리 : 디스크 상에 파일 시스템을 구성하여 파일을 관리
- 메모리 관리 : 메인 메모리가 효과적으로 사용 될 수 있도록 관리
- 통신 관리 : 네트워크를 통해 정보를 주고 받을 수 있도록 관리
- 주변장치 관리 : 모니터 , 키보드 , 마우스와 같은 주변 장치를 사용 할 수 있도록 관리
시스템 호출 (System Call)
- 커널이 제공하는 서비스에 대한 프로그래밍 인터페이스 역할
- 시스템 호출에 기반하여 공통적인 함수들의 모임인 라이브러리가 존재
- 응용 프로그램은 필요 시 시스템 호출과 라이브러리를 자유롭게 사용
쉘 (Shell)
사용자와 커널 사이의 중간자 역할을 담당하는 특별한 프로그램
사용자가 입력한 명령을 해석하여 커널이 넘겨준다 -> 커널이 명령의 수행 결과를 돌려준다 -> 쉘은 사용자가 이해할수 있는 형태로 바뀌어 출력된다.
예 : 본쉘(sh, Borune Shell), C쉘(csh, C Shell) , 콘쉘(ksh , Korn Shell), 베쉬 쉘(Bash , Borune Again Shell) 등
본쉘 : 기본 쉘이며 대부분의 시스템 환경 설정을 위한 쉘
콘쉘/배쉬쉘 : 시스템 관리에 적합하다.
쉘의 기능
명령어 해석 기능
- 사용자와 커널 사이에서 명령을 해석하여 전달
- 사용자가 입력한 명령이나 파일에서 읽어들인 명령을 해석하고 프로그램 실행
프로그래밍 기능
쉘은 자체 내에 프로그래밍 기능이 있어 프로그램 작성 가능하며 여러 명령을 사용해 반복적으로 수행하는 작업을 하나의 프로그램 제작가능
쉘 프로그램을 쉘 스크립트라고 부름.
예 : 주기적으로 백업 하는 프로그램
쉘 종류
본쉘(Bourne Shell, sh)
- 최초의 본격적인 쉘로 유닉스 V7에 처음 등장
- 스티븐 본이 개발하였으며 현재도 모든 유닉스 시스템에 기본적으로 설치된다.
- 시스템 관리 작업을 수행하는 많은 쉘 스크립트들은 본쉘을 기반.
- 히스토리 기능 , 앨리어스 기능 , 작업 제어등 사용자의 편의를 위한 기능을 다양하게 제공하지않음
콘쉘(Korn Shell , ksh)
- 1980년대 중반 AT&T 벨 연구소의 데이비스 콘이 개발하였으며
- 유닉스 SVR4에 포함되어 발표되었는데 본쉘과의 호환성을 유지하고
- 히스토리 기능 앨리어스 기능등 C쉘의 특징들도 모두 제공하며 처리 속도도 빠르다는 장점을 가지고 있음
C쉘(C shell, csh)
- 캘리포니아(버클리) 대학교에서 빌 조이가 개발
- 2BSD 유닉스에 포함되어 발표하였고
- 본쉘의 기능을 확장한 것으로 앨리어스나 히스토리 같은 사용자 편의 기능을 포함함
- 쉘 스크립트 작성을 위한 구문 형식이 C언어와 같아 C쉘이라 불림
- 크기가 커지고 처리 속도도 느려졌다는 단점이 있으나 편리한 기능 때문에 사용자들이 즐겨 사용함
배쉬쉘(Bourne Again Shell, bash)
- 본쉘을 기반으로 1988년 브라이언 폭스가 개발
- 본쉘과 호환성을 유지하면서 C쉘, 콘쉘의 편리한 기능을 포함함
- GNU를 따르는 공개 소프트웨어로 리눅스의 기본쉘로 동작하고 있어 리눅스 쉘로 알려짐
기타 쉘
TC 쉘(tcsh)
C 쉘의 기능 확장
명령행 편집, 명령어 완성 기능, 히스토리 목록에서의 시간 표시 등
데스크탑 콘쉘(dtksh)
X 윈도우의 기능을 지원할수있도록 콘쉘을 기능을 확장
Z쉘(zsh)
TC쉘과 콘쉘의 기능을 함께 가지고 있는 쉘
쉘의 변경
- 기본 쉘 : 사용자 등록시 시스템 관리가 지정(/etc/passwd에 저장)
- 사용자의 기본 쉘 변경은 시스템 관리자만 가능
- 일반 사용자는 현재 실행중인 쉘을 임시로 바꿀 수 있음
- 해당 쉘을 실행하면 된다.
'서버 자료 > 유닉스' 카테고리의 다른 글
유닉스의 활용 분야 (0) | 2019.01.22 |
---|---|
유닉스의 특징 (0) | 2019.01.22 |