1일 1로그 100일 완성 IT지식 - Day 35

김정동·2023년 8월 2일
0

운영체제가 일하는 법

컴퓨터가 켜졌을 때 프로세서는 영구 기억 장치에 저장된 약간의 명령어를 실행해서 작동을 시작하도록 구성되어 있다. 그런 다음 이 명령어로 작은 플래시 메모리에서 명령어를 읽는데, 여기에는 디스크상의 알려진 위치, USB 메모리, 네트워크 연결을 통해 더 많은 명령어를 읽는 코드가 포함되어있다.

이런 컴퓨터가 작동을 시작하는 과정은 자력으로 해내다 라는 표현의 부트스트래핑(bootstrapping)이라고 불렸는데, 짧게 부팅(booting)이라고 하게 되었다. 이렇게 부팅이 끝나면 우리가 필요한 일에 컴퓨터를 사용할 수 있게 도와준다. 각 이벤트에 반응하는 식인데, 창의 x버튼을 누르면 파일을 저장하시겠습니까? 라고 묻게하고, 프로그램에게 할당된 자원을 회수하는 식이다.

시스템 콜

운영체제는 하드웨어와 다른 소프트웨어 간의 인터페이스를 제공한다. 운영체제는 하드웨어가 실제보다 상위 레벨의 서비스를 제공하는 것처럼 보이게 함으로써 프로그래밍을 더 쉽게할 수 있도록 한다. 파일로 데이터를 저장, 데이터 가져오기, 키보드 입력, 마우스 움직임, 디스플레이 그리기가 포함된다. 운영체제는 이런 서비스를 표준화된 방식으로 이용할 수 있게 하고, 애플리케이션은 운영체제의 특정 부분에 통제권을 넘겨주는 특별한 명령어를 실행한다. 운영체제에 서비스를 요청하는 이 진입점을 시스템 콜이라고 한다.

디바이스 드라이버

운영체제와 프린터나 마우스 같은 특정 종류의 하드웨어 장치 간에 가교 역할을 하는 코드다. 드라이버 코드는 특정 장치가 어떤 일을 하도록 하는 방법을 자세히 알고 있다. 특히 드라이버는 특정 장치의 특이한 속성과 시트렘의 나머지 부분을 분리한다. 키보드 처럼 종류는 다양하지만 동일한 역할을 하는 장치에는 운영체제가 필요로 하는 기본 속성과 동작이 있는데, 드라이버 인터페이스는 운영체제가 서로 다른 장치에 균일한 방식으로 접근하도록 해서 장치를 전환하기 쉽게 해준다.
우리가 사용하는 운영체제에는 많은 디바이스 드라이버가 이미 있으며 부팅 시에는 시스템에 필요한 드라이버를 불러오는 작업도 이루어진다.

다양한 디지털 장치와 운영체제

기술 발달 덕분에 장치들은 전반적으로 앞에서 살펴봤던 범용 컴퓨터와 비슷한 모습을 띠고 있다. 카메라, 컴퓨터, 요즘은 시계도 그러하다. 성능이 좋은 프로세서, 큰 메모리, 렌즈와 디스플레이같은 주변장치, 인터페이스, 네트워크를 갖추고 있다.
이런 추세가 계속되면서 각 장치 별로 운영체제를 만들기 보다는 범용 운영체제를 사용하는 방식이 더 타당하게 되었다. 사용 환경이 특수한 경우가 아니라면 전용 시스템을 개발하거나 값비싼 상용 제품의 라이선스를 얻는 것보다는 리눅스에서 불필요한 부분을 뺀 버전을 사용하는 편이 더 쉽고 저렴하다. 리눅스는 견고하고, 개조하기 용이하고, 이식 가능하고, 무료이기 때문이다. 단점은 GPL같은 라이선스에 따라 결과물 코드 일부를 공개해야 될 수도 있다는 점이다. 저작권 보호에 논쟁을 불어일으킬 수 있지만, 킨들과 티보를 비롯한 많은 장치의 사례를 보면 적절히 대처할 수 있는 것으로 보인다.

profile
개발자 새싹🌱 The only constant is change.

0개의 댓글