Skip to content
난이도 문제은행 5

운영체제·UNIX·Android ​

운영체제(operating system, OS)는 사용자와 하드웨어 사이에서 자원을 관리하고 프로그램이 돌아갈 환경을 만들어 주는 시스템 소프트웨어다. 실기 시험에서는 운영체제의 정의 문장, UNIX의 구성 요소인 커널(kernel)과 셸(shell)의 역할, Android가 무엇을 바탕으로 만들어졌는지, 환경 변수(environment variable)를 보는 명령을 단답형으로 묻는다. 커널 구조와 시스템 콜의 원리는 CS 카테고리의 운영체제 문서에서 더 깊게 다룬다.

운영체제가 하는 일 ​

컴퓨터에는 CPU 하나를 여러 프로그램이 번갈아 쓰고, 기억장치를 나눠 쓰고, 같은 프린터에 동시에 인쇄를 보내는 일이 끊임없이 생긴다. 각 프로그램이 이것을 직접 조율하면 서로 부딪히므로, 운영체제가 중간에서 자원을 효율적으로 배분하고 사용자가 편하게 쓰도록 인터페이스를 제공한다. 그래서 응용 프로그램은 하드웨어의 세부를 몰라도 파일을 열고 화면에 출력할 수 있다.

운영체제가 관리하는 자원은 프로세서, 기억장치, 입출력 장치, 파일과 정보다.

UNIX의 탄생과 특징 ​

UNIX는 1969년 AT&T 벨 연구소(Bell Labs)에서 켄 톰프슨(Ken Thompson)과 데니스 리치(Dennis Ritchie) 등이 만들기 시작한 운영체제다. 그보다 앞서 MIT·벨 연구소·GE가 함께 만들던 멀틱스(Multics)가 너무 복잡해지자, 벨 연구소 연구자들이 빠져나와 더 단순한 시스템을 만든 것이 출발점이다.1

특징뜻
대화식·시분할(time-sharing)여러 사용자가 단말에서 동시에 명령을 주고받는다
다중 사용자·다중 작업여러 사람이 여러 프로그램을 함께 실행한다
높은 이식성1973년 대부분을 C 언어로 다시 써서 다른 기계로 옮기기 쉽다
트리 구조 파일 시스템디렉터리 안에 디렉터리를 계속 넣는 계층 구조

UNIX 시스템의 구성 ​

UNIX는 크게 커널, 셸, 유틸리티 프로그램으로 나뉜다. 역할이 섞여 나오기 쉬우니 "누가 하드웨어 가까이 있고 누가 사용자 가까이 있는가"로 구분한다.

  • 커널(kernel): 응용 프로그램이 시스템 호출(system call)로 "파일을 열어 달라", "메모리를 더 달라"고 부탁하면 실제 장치와 메모리를 다루는 부분이다. 그래서 프로그램이 하드웨어를 직접 건드리지 못해 하드웨어가 보호된다. 부팅 때 올라와 끝날 때까지 기억장치에 머물며, CPU를 누구에게 줄지 정하는 프로세스 관리, 기억장치·파일·입출력 관리, 프로세스 간 통신을 맡는다.
  • 셸(shell): 사용자가 친 명령줄을 읽어 어떤 프로그램을 실행할지 알아내고 커널에 실행을 부탁하는 명령어 해석기다. 사용자가 시스템을 만나는 창구이며, bash·sh·csh처럼 종류가 여럿이라 골라 쓸 수 있다.
  • 유틸리티(utility): 편집기·컴파일러 같은 도구 프로그램이다.

Android ​

Android는 구글(Google)이 개발을 이끄는 모바일 운영체제로, 수정한 리눅스 커널(Linux kernel) 위에 만들어졌다. 소스는 AOSP(Android Open Source Project, 안드로이드 오픈소스 프로젝트)로 공개되는 개방형 소프트웨어다. 앱은 주로 코틀린(Kotlin)과 자바(Java)로 작성한다.

환경 변수 ​

환경 변수(environment variable)는 프로그램이 실행될 때 넘겨받는 이름=값 쌍으로, 실행 경로(PATH)나 홈 디렉터리(HOME)처럼 시스템 소프트웨어의 동작에 영향을 주는 값이다. 프로그램마다 설정을 코드에 박아 두지 않고 환경에서 읽으므로, 같은 프로그램이 환경에 따라 다르게 동작할 수 있다.

운영체제전체 환경 변수를 보는 명령
Windowsset
UNIX·LINUXenv, printenv, set, setenv(csh 계열)

시험 포인트 ​

  • "사용자 명령을 해석해 커널에 전달하는 명령어 해석기" → 셸. "프로세스·기억장치·입출력 관리, 부팅 뒤 상주" → 커널.
  • UNIX 특징 키워드: 벨 연구소, 대화식 시분할, C 언어로 작성해 이식성이 높다, 트리 구조 파일 시스템.
  • 모바일 운영체제 + 리눅스 커널을 고쳐 씀 + 소스 공개(AOSP) + 앱은 코틀린·자바 → Android.
  • 환경 변수 전체 출력: Windows는 set, UNIX는 env·printenv.

참고

  1. 일부 수험 자료는 UNIX를 "벨 연구소·MIT·GE 공동 개발"로 적는데, 세 기관이 공동으로 만든 것은 멀틱스다. UNIX 자체는 벨 연구소에서 시작했다. ↩︎

관련 문서