System programs
시스템 프로그램
시스템 프로그램은 프로그램 개발과 실행을 편하게 할 수 있는 환경을 제공한다.
시스템 프로그램은 사용자 인터페이스부터 시스템 콜까지 다양하다.
어떤 것들은 매우 복잡하게 돌아갈 수도 있다.
-
파일 관리
- 생성, 삭제, 복사, 이름 바꾸기, 출력, 쓰기, 리스트
- 범용적으로 파일과 디렉토리를 조작하는 기능
- 예) Windows의 탐색기
-
상태 정보
- 날짜, 시간, 메모리 용량, 디스크 공간, 사용자의 수 등의 사용자 정보를 물을 수도 있다.
- 상세한 성능, 기록, 디버깅 정보 등을 제공할 수도 있다.
- 대체로 이런 프로그램은 출력을 형식화해서 터미널이나 다른 출력 장치에 출력한다.
- 몇몇 시스템(윈도우)은 설정 정보를 저장하고 찾을 때 레지스트리라는 걸 사용한다.
-
파일 수정
- 파일을 생성하고 수정할 수 있는 텍스트 에디터들이다.
- 파일의 내용을 찾아보거나 텍스트의 변환을 할 수 있는 특수 명령들이 있다.
- UNIX가 대표적이다. (grep, gedit 등…)
-
프로그래밍 언어 지원
- 컴파일러, 어셈블러, 디버거와 인터프리터를 지원하기도 한다.
-
프로그램 적재와 실행
-
폰 노이만 구조 상 모든 프로그램은 메인 메모리에 적재되고,
적재된 명령어 중 일부가 CPU로 올라가서 실행된다.
-
absolute loaders, relocatable loaders, linkage editors, overlay-loaders 가 있다.
-
고급 언어와 기계어를 위한 디버깅 시스템도 지원한다.
-
요즘은 사용하지 않는다.
-
-
통신
- 프로세스, 사용자, 컴퓨터 시스템들 간의 가상 연결을 생성하는 메커니즘을 제공한다.
- 다음과 같은 기능을 제공한다.
- 유저들이 서로의 스크린에 메시지를 전송할 수 있음
- 웹 페이지를 탐색할 수 있음
- 이메일을 주고 받을 수 있음
- 원격으로 로그인이 가능함
- 한 컴퓨터에서 다른 컴퓨터들로 파일들을 전송할 수 있음
- 특정 인터넷 서비스에 대한 client 역할을 한다.
-
백그라운드 서비스
-
부팅 시 켜진다. 어떤 건 시스템 시작 후 바로 꺼지거나
어떤 건 컴퓨터 종료 시까지 동작한다. (daemon)
모든 운영 체제는 부팅 후에 특정 시스템 프로그램을 자동으로 수행시키는 수단을 가지고 있다.
이들은 정해진 기능 후 종료될 수도 있고, 정지될 때까지 계속 있을 수도 있다.
-
디스크를 체크하고, 프로세스 스케쥴링하고, 에러를 기록하고, 출력하는 기능 제공한다.
-
커널이 아니라 사용자 맥락에서 작동한다.
-
services, subsystems, daemons 등이 있다.
특히 daemon은 시스템 시작 후 늘 동작하는 프로그램으로
네트워크 시스템에서 인터넷 요청을 받는 daemon,
일정에 따라서 프로그램을 실행시키는 scheduler daemon,
오류 발생시 로깅하는 daemon 등이 있다.
-
-
응용 프로그램
- 시스템에 항상 존재하지 않는다.
- 사용자가 실행시킨다.
- 보통 운영 체제의 일부분으로 취급되지 않는다.
- 커맨드 라인, 마우스 클릭, 손가락 터치로 실행된다.
- 일반적인 용도의 시스템 프로그램이다.