shopkeeper/korean_wiki_content_only_120125 huggingface dataset:
일반 사전과 전문 사전은 크게 구분된다. 전문 사전에는 해당 언어의 포괄적인 단어가 아닌 전문 분야의 단어가 포함되어 있다. 특정 분야의 개념을 설명하는 어휘 항목은 일반적으로 단어 대신 용어라고 부르지만, 어휘학과 용어가 두 가지 다른 연구 분야인지에 대한 합의는 없다. 이론적으로 일반 사전은 단어를 정의에 매핑하는 의미론적이어야 하는 반면, 전문 사전은 먼저 개념을 식별한 다음 이를 지정하는 데 사용되는 용어를 설정하는 의성어적이어야 한다. 실제로 두 가지 접근 방식은 두 가지 유형 모두에 사용된다. 위의 구분에 딱 들어맞지 않는 다른 유형의 사전도 있다. 예를 들어 이중 언어(번역) 사전, 동의어 사전(유의어 사전), 운율 사전이 있다. 사전(한정되지 않음)이라는 단어는 일반적으로 범용 단일 언어 사전을 나타내는 것으로 이해된다.
규정 사전과 설명 사전 사이에도 대조가 있다. 전자는 언어의 올바른 사용으로 간주되는 것을 반영하고 후자는 기록된 실제 사용을 반영한다. 많은 현대 사전의 문체 표시(예: "비공식적" 또는 "저속한" 표시)도 일부에서는 객관적인 설명이 부족한 것으로 간주된다.
최초로 기록된 사전은 이중 언어 사전의 형태로 기원전 2300년경 수메르 시대로 거슬러 올라가며, 가장 오래 살아남은 단일 언어 사전은 기원전 3세기의 중국어 사전이다. 최초의 순수 영어 알파벳 사전은 1604년에 작성된 어 테이블 알파베티컬(A Table Alphabetical) 사전이었고, 이 무렵 유럽에서는 다른 언어로 된 단일어 사전도 등장하기 시작했다. 과학적 관심의 대상인 사전에 대한 체계적 연구는 사전 편찬이라 불리는 20세기 사업으로 시작되었으며 주로 라디슬라프 즈구스타(Ladislav Zgusta)에 의해 시작되었다. 새로운 학문의 탄생은 논쟁이 없지 않았는데, 실용적인 사전 제작자들은 때때로 다른 사람들로부터 방법론과 비판적 자기 성찰이 "놀라울 정도로" 부족하다는 비난을 받았다.
사전의 역사.
발견된 가장 오랜 사전은 기원전 2300년경 쓰인 아카드 제국의 쐐기문자 조각으로, 수메르어와 아카드어의 대역쌍 목록이다. 우라 후불루 용어집(Urra=hubullu glossary)이라 불리는 이 사전의 이름은 용어집의 첫머리에 나오는 '이자가 붙는 채무'라는 단어에서 유래했다.
근대 유럽의 사전들은 이중언어 사전으로 시작했다. 1502년에 나온 언어학자이자 수사인 암브로조 깔레피노(Ambrogio Calepino)의 코르누코파이아(Cornucopia)가 그것인데 이중언어사전이라기 보다는 다국어사전이다. 라틴어를 라틴어, 이탈리아어, 영어, 불어, 독어로 설명하는 구성을 가지고 있다.
사뮤엘 존슨(Samuel Johnson)의 영어사전(A Dictionary of the English Language, 1755)은 영어사전의 역사에서 한 이정표였다. 이전까지의 사전은 대부분 유사 어휘들을 분류해서 기술하는, 기린 옆에 사자를 나열하는 그런 방식이었는데 존슨은 그 모든 어휘를 예외 없이 알파벳 순으로 나열하여 첫 번째 근대적인 사전을 완성했다.
사전의 구조.
사전은 해당 항목의 대표형을 보여주는 표제어 아래 크게보아 뜻풀이와 예문 그리고 기타정보로 이루어져있다. 뜻풀이는 해당 의미를 대상언어로 해설한 것이고 예문은 그 의미로 사용된 문장의 사례이다. 기타정보에는 발음, 품사, 통사구조, 형태정보, 관련어 등 해당 항목을 잘 이해하도록 돕는 문법적 해설이나 부가적인 해설을 말한다.
사전의 분류.
사전은 크게 어학사전(辭典, dictionary, 말모이)과 백과사전(百科事典, encyclopedia)으로 나뉘는데 이 둘 사이에는 단어에 대한 설명을 담는 책이라는 공통점과 언어학적인 접근을 하느냐 마느냐라는 차이점이 있다. 기존에 종이책으로만 출간이 가능했을 때에는 이러한 구분이 비교적 엄격했으나 인터넷 사전의 경우 사람들이 양자를 구분하지 않고 찾는 경향을 보인다. 그 이전부터 한국어의 표준국어대사전이나 일본어의 코지엔과 같은 어학사전들은 백과사전다운 면을 많이 갖추고 있었다.
어학사전.
어학사전에도 여러 가지가 있다. 먼저 뜻풀이 대상언어에 따라 일국어사전과 이중언어사전이 있다. 일국어사전은 한국어사전, 영영사전과 같은 표제어와 뜻풀이가 같은 언어로 된 사전이다. 이것도 모국어 화자를 대상으로 하느냐 아니면 외국인 학습자를 대상으로 하느냐에 따라 나뉜다. 외국인 학습자를 대상으로 한 사전이 더 자상한 뜻풀이를 담고있다. 이중언어사전은 영한사전, 한영사전과 같은 표제어와 뜻풀이가 다른 언어로 된 사전이다. 이국어사전이라고도 한다. 같은 영한사전이라고 해도 영어화자를 대상으로 하느냐 아니면 한국어화자를 대상으로 하느냐에 따라 편집 체제가 많이 다르다.
사전의 기술 태도에 따라서 어휘를 규정(prescription)하는 사전이 있고 기술(description)하는 사전이 있다. 규정하는 것은 정의를 적고 이후 해당 정의에 해당되는 예문을 찾거나 추가설명하는 방식이고 기술하는 것은 말뭉치언어학의 방법론을 사용하여 해당 어휘의 사용빈도와 사용분포를 살펴 현상을 있는 그대로 적어넣는 방식이다. 이 구분은 상대적일 뿐 기술사전도 규정하는 면이 있고 또 규정사전도 기술하는 면이 있다.
범용 사전(general dictionary)은 흔히 국어사전이나 영어사전이라 부르는 언어사전을 말한다. 한 단어에 여러 의미가 담길 수 있다. 구분된 의미는 많이 사용되는 순서로 나열될 수도 있고, 오래된 용법 순서대로 나열될 수도 있다. 일상어를 대상으로 한다. 특수 사전(specialized dictionary)은 한정적인 분야를 다룬 사전이다. 제주어 사전이라거나 윤동주 시어사전처럼 특정 범위를 가지고 특화된 목적으로 만들어진 사전이다.
좀 더 특화된 사전들도 있다. 유의어사전(thesaurus)은 유의어, 반의어 등을 모아놓은 사전으로 글쓰기 할 때 유용하게 사용된다. 유사한 형태로 단어의 계통을 정리해놓은 사전인 갈래사전이 있다. 자전(字典)은 한자사전을 말하는데, 한자문명권에서는 개별 한자가 특별한 형태소 역할을 해왔기 때문에 한자어 말고도 개별 한자에 대한 의미를 정리할 필요가 있었다.
다른 형태로도 분류가 가능하다. 듣기, 읽기에 적합한 수동사전(passive dictionary)이 있고 말하기, 쓰기에 적합한 능동사전(active dictionary)이 있다. 이 외에도 외국어 학습에 대한 관심이 증가하면서 다양한 종류의 특수 사전이 나오고 있다. 연어사전, 구동사사전, 관용구사전 등이 그것이다.
백과사전.
용어사전(specialized dictionary 혹은 glossary)은 해당 분야의 전문용어만을 모아놓은 용어집이다. 용어사전이 많이 모이면 백과사전이 된다고도 볼 수 있다. 백과라는 말 자체가 수많은 분야라는 의미를 가진다. 백과사전은 인간 지식중에서 기본으로 생각되는 것들을 균형있게 골라 서술한 책이다. 백과사전이 넓고 평평한 범위를 다루는 사전이고 용어사전은 좁고 깊은 범위를 다룬다고 보면 크게 틀리지 않다. 백과사전과 어학사전의 가장 큰 차이라면 백과사전은 일상적인 의미를 잘 다루지 않고 개별 영역의 전문적인 의미를 다룬다는 점이다. 어학사전이 기능어를 많이 다룬다면 백과사전은 고유명사를 주로 다룬다고 해도 된다.
자료(資料, , 데이터, )는 정보를 전달하는 불연속 또는 연속적인 값의 모음으로, 양, 질, 사실, 통계, 기타 기본적인 의미 단위 또는 단순히 추가적으로 형식적으로 해석될 수 있는 기호의 시퀀스를 설명한다. 데이텀(datum)은 자료 모음의 개별적인 값이다. 자료는 일반적으로 추가적인 맥락과 의미를 제공하는 표와 같은 구조로 조직되며, 더 큰 구조에서 자료로 사용될 수 있다. 자료는 컴퓨팅 프로세스의 변수로 사용될 수 있다. 자료는 추상적인 아이디어 또는 구체적인 측정값을 나타낼 수 있다.
자료는 일반적으로 과학 연구, 경제학 및 거의 모든 형태의 인간 조직 활동에 사용된다. 자료 집합의 예시로는 소비자 물가지수와 같은 물가 지수, 실업률, 문해율 및 인구 조사 자료 등이 있다. 이러한 맥락에서 자료는 유용한 정보를 추출할 수 있는 원시적인 사실과 수치를 나타낸다.
자료는 측정, 관측, 정보 검색, 또는 분석과 같은 기술을 사용하여 수집되며, 일반적으로 숫자 또는 문자로 표현되며 추가적으로 처리될 수 있다. 현장 자료는 통제되지 않은 현장 환경에서 수집된 자료이다. 실험 자료는 통제된 과학 실험 과정에서 생성된 자료이다. 자료는 계산, 이성, 토론, 프레젠테이션, 시각화 또는 기타 형태의 사후 분석과 같은 기술을 사용하여 분석된다. 분석 전에 원시 자료 (또는 미처리 자료)는 일반적으로 정제된다. 즉, 이상치가 제거되고 명백한 기기 또는 자료 입력 오류가 수정된다.
자료는 계산, 추론 또는 토론의 기초로 사용될 수 있는 가장 작은 단위의 사실적 정보로 볼 수 있다. 자료는 추상적인 아이디어에서 구체적인 측정값에 이르기까지 다양하며, 통계를 포함하지만 이에 국한되지 않는다. 관련 맥락에서 제시된 주제적으로 연결된 자료는 정보로 볼 수 있다. 맥락적으로 연결된 정보 조각들은 자료 통찰력 또는 지능으로 설명될 수 있다. 자료를 정보로 종합하여 시간이 지남에 따라 축적되는 통찰력과 지능의 재고는 지식으로 설명될 수 있다. 자료는 "디지털 경제의 새로운 석유"로 묘사되어 왔다. 일반적인 개념으로서 자료는 기존의 정보 또는 지식이 더 나은 사용 또는 처리에 적합한 형태로 표현되거나 부호화된다는 사실을 나타낸다.
컴퓨팅 기술의 발전은 일반적으로 페타바이트 규모의 매우 많은 양의 자료를 의미하는 빅 데이터의 출현으로 이어졌다. 전통적인 자료 분석 방법과 컴퓨팅으로는 이러한 거대한 (그리고 성장하는) 자료 집합을 다루는 것이 어렵거나 심지어 불가능하다. (이론적으로 말하면, 무한한 자료는 무한한 정보를 산출하며, 이는 통찰력이나 지능을 추출하는 것을 불가능하게 만든다.) 이에 대응하여, 비교적 새로운 분야인 데이터 과학은 기계 학습 (및 기타 인공지능) 방법을 사용하여 빅 데이터에 분석 방법을 효율적으로 적용할 수 있도록 한다.
어원 및 용어.
라틴어 단어 는 , 즉 "(주어진) 것"의 복수형이며, "주다"를 뜻하는 의 중성 과거분사이다. "data"라는 단어가 영어에서 처음 사용된 것은 1640년대이다. "data"라는 단어는 1946년에 "전송 가능하고 저장 가능한 컴퓨터 정보"를 의미하는 데 처음 사용되었다. "data processing"이라는 표현은 1954년에 처음 사용되었다.
"data"가 "정보"의 동의어로 더 일반적으로 사용될 때는 단수 형태로 불가산 명사로 취급된다. 이러한 용법은 일상어와 소프트웨어 개발 및 컴퓨터 과학과 같은 기술 및 과학 분야에서 흔하다. 이러한 용법의 한 예시는 "빅 데이터"라는 용어이다. 자료 집합의 처리 및 분석을 더 구체적으로 지칭하는 데 사용될 때는 이 용어가 복수형을 유지한다. 이러한 용법은 자연 과학, 생명 과학, 사회 과학, 소프트웨어 개발 및 컴퓨터 과학에서 흔하며, 20세기와 21세기에 인기가 증가했다. 일부 스타일 가이드는 이 용어의 다른 의미를 인식하지 못하고 단순히 가이드의 대상 독자에게 가장 적합한 형태를 권장한다. 예를 들어, 7판 기준의 APA 스타일은 "data"를 복수형으로 취급하도록 요구한다.
의미.
자료, 정보, 지식, 지혜는 밀접하게 관련된 개념이지만, 각각은 다른 개념에 대한 고유한 역할을 가지며 각 용어는 고유한 의미를 가진다. 일반적인 관점에 따르면 자료는 수집되고 분석된다. 자료는 어떤 방식으로든 분석되어야만 의사 결정을 위한 적절한 정보가 된다. 자료 집합이 어떤 사람에게 얼마나 유용한지는 그 사람이 그것을 얼마나 예상하지 못했는지에 달려 있다고 말할 수 있다. 자료 스트림에 포함된 정보의 양은 섀넌 엔트로피로 특징지어질 수 있다.
지식은 어떤 실체가 자신의 환경에 대해 가지고 있는 인식이지만, 자료는 단순히 그 지식을 전달한다. 예를 들어, 에베레스트산의 높이를 지정하는 데이터베이스의 항목은 정확하게 측정된 값을 전달하는 자료이다. 이 측정값은 에베레스트산에 대한 다른 자료와 함께 책에 포함되어 산을 오르는 최선의 방법을 결정하려는 사람들에게 유용한 방식으로 산을 설명할 수 있다. 이 자료로 표현된 특성에 대한 인식은 지식이다.
자료는 종종 가장 추상성이 적은 개념으로, 정보는 그 다음으로, 지식은 가장 추상적인 개념으로 간주된다. 이러한 관점에서 자료는 해석을 통해 정보가 된다. 예를 들어, 에베레스트산의 높이는 일반적으로 "자료"로 간주되고, 에베레스트산의 지질학적 특성에 대한 책은 "정보"로 간주될 수 있으며, 에베레스트산 정상에 도달하는 최선의 방법에 대한 실용적인 정보를 포함하는 등반가 가이드북은 "지식"으로 간주될 수 있다. "정보"는 일상적인 용법에서 기술적인 용법에 이르기까지 다양한 의미를 지닌다. 그러나 이러한 관점은 자료가 정보에서, 정보가 지식에서 어떻게 출현하는지를 역전시킨다는 주장도 제기되었다. 일반적으로 정보의 개념은 제약, 통신, 통제, 자료, 형식, 지시, 지식, 의미, 정신적 자극, 패턴, 지각 및 표현의 개념과 밀접하게 관련되어 있다. 베이논-데이비스는 기호의 개념을 사용하여 자료와 정보를 구별한다. 자료는 일련의 기호이며, 정보는 기호가 어떤 것을 지칭하는 데 사용될 때 발생한다.
컴퓨팅 장치와 기계가 개발되기 전에는 사람들이 자료를 수동으로 수집하고 패턴을 부여해야 했다. 컴퓨팅 장치와 기계가 개발되면서 이러한 장치도 자료를 수집할 수 있게 되었다. 2010년대에는 마케팅, 시민의 사회 복지 사용 분석에서 과학 연구에 이르는 다양한 분야에서 자료를 수집하고 분류하거나 처리하기 위해 컴퓨터가 널리 사용되었다. 자료의 이러한 패턴은 지식을 향상시키는 데 사용될 수 있는 정보로 간주된다. 이러한 패턴은 "진리"로 해석될 수 있으며 (비록 "진리"는 주관적인 개념일 수 있지만) 일부 분야 또는 문화에서는 미학적 및 윤리적 기준으로 권한을 부여받을 수 있다. 지각할 수 있는 물리적 또는 가상적 흔적을 남기는 사건은 자료를 통해 추적될 수 있다. 흔적과 관측 사이의 연결이 끊어지면 흔적은 더 이상 자료로 간주되지 않는다.
기계적 컴퓨팅 장치는 자료를 표현하는 방식에 따라 분류된다. 아날로그 컴퓨터는 자료를 전압, 거리, 위치 또는 기타 물리량으로 나타낸다. 디지털 컴퓨터는 고정된 알파벳에서 추출된 일련의 기호로 자료를 나타낸다. 가장 일반적인 디지털 컴퓨터는 이진 알파벳, 즉 일반적으로 "0"과 "1"로 표시되는 두 문자로 된 알파벳을 사용한다. 숫자나 문자처럼 더 친숙한 표현은 이진 알파벳에서 구성된다. 일부 특수한 형태의 자료는 구별된다. 컴퓨터 프로그램은 지침으로 해석될 수 있는 자료의 모음이다. 대부분의 컴퓨터 언어는 프로그램과 프로그램이 작동하는 다른 자료를 구별하지만, 특히 리스프와 유사한 언어와 같은 일부 언어에서는 프로그램이 다른 자료와 본질적으로 구별되지 않는다. 메타데이터, 즉 다른 자료에 대한 설명을 구별하는 것도 유용하다. 메타데이터에 대한 유사하지만 더 이른 용어는 "보조 자료"이다. 메타데이터의 전형적인 예는 도서 내용에 대한 설명인 도서관 목록이다.
자료 출처.
마케팅 또는 기타 기업 수집 과정에서 수집된 자료의 소유권과 관련하여, 자료는 원본에 얼마나 가까운지 또는 추가 처리를 통해 생성되었는지에 따라 "당사자"에 따라 분류되었다. "제로 파티 데이터"는 고객이 "의도적으로 그리고 적극적으로 공유하는" 자료를 의미한다. 이러한 종류의 자료는 구독, 선호도 센터, 퀴즈, 설문조사, 팝업 양식 및 인터랙티브 디지털 경험을 포함한 다양한 출처에서 나올 수 있다. "퍼스트 파티 데이터"는 기업이 고객으로부터 직접 수집할 수 있다. 기업 간의 퍼스트 파티 데이터의 안전한 교환은 데이터 클린 룸을 사용하여 수행될 수 있다. "세컨드 파티 데이터"는 다른 조직이나 파트너로부터 구매 또는 기타 수단을 통해 얻은 자료를 의미하며, "다른 조직의 퍼스트 파티 데이터"로 묘사되어 왔다. "서드 파티 데이터"는 다른 조직에 의해 수집되고 이후 다양한 출처, 웹사이트 및 플랫폼에서 집계된 자료이다.
"노 파티" 데이터는 때때로 원본 데이터의 패턴을 기반으로 생성된 합성 데이터를 의미할 수 있다.
자료 문서.
자료가 등록되어야 할 때마다 자료는 자료 문서의 형태로 존재한다. 자료 문서의 종류는 다음과 같다.
이러한 자료 문서 중 일부(자료 저장소, 자료 연구, 자료 집합, 소프트웨어)는 자료 인용 색인에 색인되어 있는 반면, 자료 논문은 전통적인 서지 데이터베이스(예: 과학 인용 색인)에 색인되어 있다.
자료 수집.
자료 수집은 1차 출처(연구자가 자료를 처음으로 얻는 사람) 또는 2차 출처(연구자가 과학 저널에 배포된 자료와 같이 다른 출처에서 이미 수집된 자료를 얻는 사람)를 통해 이루어질 수 있다. 자료 분석 방법론은 다양하며 자료 삼각측량 및 자료 여과를 포함한다. 후자는 연구의 객관성을 극대화하고 조사 중인 현상에 대한 가능한 한 완전한 이해를 허용하기 위해 다섯 가지 가능한 분석 각도(최소 세 가지)를 사용하여 자료를 수집, 분류 및 분석하는 명확한 방법을 제공한다. 이는 질적 및 양적 방법, 문헌 검토(학술 기사 포함), 전문가 인터뷰 및 컴퓨터 시뮬레이션을 포함한다. 이후 자료는 가장 관련성이 높은 정보를 추출하기 위해 일련의 사전 결정된 단계를 사용하여 "여과"된다.
자료 수명 및 접근성.
컴퓨터 과학, 기술 및 문헌정보학에서 중요한 분야는 자료의 수명이다. 과학 연구는 특히 유전체학 및 천문학뿐만 아니라 의료 과학, 예를 들어 의학촬영에서도 엄청난 양의 자료를 생성한다. 과거에는 과학 자료가 논문과 책으로 출판되어 도서관에 저장되었지만, 최근에는 거의 모든 자료가 하드 드라이브나 광 디스크에 저장된다. 그러나 종이와 달리 이러한 저장 장치는 수십 년 후에 읽을 수 없게 될 수 있다. 과학 출판사 및 도서관은 수십 년 동안 이 문제로 고심해 왔으며, 수세기 또는 심지어 영원히 자료를 장기 보관하는 만족스러운 해결책은 아직 없다.
자료 접근성. 또 다른 문제는 많은 과학 자료가 데이터베이스와 같은 자료 저장소에 출판되거나 예치되지 않는다는 것이다. 최근 설문 조사에서 2년에서 22년 전에 출판된 516개 연구에 자료를 요청했지만, 이들 연구 중 요청된 자료를 제공할 수 있거나 제공할 의향이 있는 연구는 5개 중 1개 미만이었다. 전반적으로 자료를 검색할 가능성은 출판 후 매년 17%씩 감소했다. 마찬가지로, 드라이어드의 100개 자료 집합에 대한 설문 조사에서는 절반 이상이 연구 결과를 재현하기 위한 세부 정보가 부족한 것으로 나타났다. 이는 출판되지 않았거나 재현할 충분한 세부 정보가 없는 과학 자료에 대한 접근의 심각한 상황을 보여준다.
재현성 문제에 대한 해결책은 FAIR 자료를 요구하려는 시도이다. 즉, 찾을 수 있고(Findable), 접근할 수 있고(Accessible), 상호 운용할 수 있으며(Interoperable), 재사용할 수 있는(Reusable) 자료이다. 이러한 요구 사항을 충족하는 자료는 후속 연구에 사용될 수 있으며 따라서 과학 및 기술을 발전시킨다.
다른 분야에서.
자료는 다른 분야에서도 점점 더 많이 사용되고 있지만, 자료의 고도로 해석적인 성격이 "주어진 것"으로서의 자료의 정신과 상충될 수 있다는 의견도 있다. 피터 체크랜드는 수많은 가능한 자료와 그 중 주의를 기울이는 하위 집합을 구별하기 위해 캡타(라틴어 capere, "취하다"에서 유래)라는 용어를 도입했다. 요한나 드러커는 인문학이 지식 생산을 "상황에 따른, 부분적인, 구성적인" 것으로 단언하기 때문에 자료를 사용하는 것이 현상이 불연속적이거나 관찰자 독립적이라는 것과 같이 역효과를 낼 수 있는 가정을 도입할 수 있다고 주장했다. 관찰 행위를 구성적인 것으로 강조하는 캡타라는 용어는 인문학의 시각적 표현을 위한 자료의 대안으로 제시된다.
데이터 기반이라는 용어는 다른 모든 요소보다 자료에 의해 주로 강제되는 활동에 적용되는 신조어이다. 데이터 기반 응용 프로그램에는 데이터 기반 프로그래밍 및 데이터 기반 저널리즘이 포함된다.
운영체제(運營 體制, ) 또는 오퍼레이팅 시스템(, )은 사용자의 하드웨어, 시스템 리소스를 제어하고 프로그램에 대한 일반적 서비스를 지원하는 시스템 소프트웨어이다. 컴퓨터 하드웨어를 관리할 뿐 아니라 응용 소프트웨어를 실행하기 위하여 하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공한다. 최근에는 가상화 기술의 발전에 힘입어 실제 하드웨어가 아닌 하이퍼바이저(가상 머신) 위에서 실행되기도 한다.
또한 입출력과 메모리 할당과 같은 하드웨어 기능의 경우 운영체제는 응용 프로그램과 컴퓨터 하드웨어 사이의 인터페이스(중재) 역할을 한다. 그러나 응용 프로그램 코드는 일반적으로 하드웨어에서 직접 실행된다. 운영체제는 휴대 전화, 게임기에서부터 슈퍼컴퓨터, 웹 서버에 이르기까지 컴퓨터를 포함하는 거의 모든 장치에서 볼 수 있다. 운영체제는 한 면으로는 소비자를, 다른 한 면으로는 프로그램 개발자를 함께 하나의 시장으로 데려다 놓을 수 있는 양면 플랫폼이다. 잘 알려진 현대의 PC 운영체제에는 마이크로소프트 윈도우, 맥 OS X, 리눅스가 있다. 이 밖에 BSD, 유닉스 등의 PC용 운영체제도 존재한다.
운영체제는 실행되는 응용 프로그램들이 메모리와 CPU, 입출력 장치 등의 자원들을 사용할 수 있도록 만들어 준다. 더불어, 이들을 추상화하여 파일 시스템 등의 서비스를 제공한다. 또한 멀티태스킹을 지원하는 경우, 여러 개의 응용 프로그램을 실행하고 있는 동안, 운영체제는 이러한 모든 프로세스들을 스케줄링하여 마치 그들이 동시에 수행되는 것처럼 보이는 효과를 낸다.
싱글 태스킹 운영체제는 한번에 오직 하나의 프로그램만 실행할 수 있으나 멀티태스킹 운영체제는 하나 이상의 프로그램이 동시에 실행할 수 있게 한다. 이는 운영체제의 작업 스케줄링 하부 시스템에 의해 제각기 반복적으로 인터럽트 처리되는 여러 프로세스 사이에서 이용 가능한 프로세서 시간을 쪼개는 시분할을 통해 이루어진다. 멀티태스킹의 경우 선점형과 협동형(비선점형)이 있다. 선점형 멀티태스킹의 경우 운영체제는 CPU 시간을 쪼개어 프로그램들 각각에 슬롯을 할당해준다. 솔라리스, 리눅스, 아미가OS와 같은 유닉스 계열 운영체제들은 선점형 멀티태스킹을 지원한다. 협동형 멀티태스킹은 정해진 방식에 따라 다른 프로세스들에 시간을 제공하기 위해 각 프로세스에 의존함으로써 수행된다. 16비트 버전의 마이크로소프트 윈도우는 협동형 멀티태스킹을 사용하였다. 32비트 버전의 윈도우 NT, 윈도우 9x의 경우 선점형 멀티태스킹을 사용하였다.
단일 사용자 운영체제는 사용자 구별이 없으나 여러 프로그램이 나란히 실행하는 것은 허용한다. 다중 사용자 운영체제는 디스크 공간과 같은 리소스와 프로세스를 식별하는 기능을 갖춘 멀티태스킹의 기본 개념을 확장하며, 여러 사용자에 속해 있으면서 여러 사용자가 동시에 시스템과 상호 작용할 수 있게 한다. 시분할 운영체제들은 시스템의 효율적인 이용을 위해 태스크를 스케줄링하며, 프로세서 시간, 기억 공간, 인쇄, 기타 자원을 여러 사용자에게 비용적으로 할당하기 위한 회계 소프트웨어를 포함할 수 있다.
분산 운영체제.
분산 운영체제는 구별된 컴퓨터 그룹을 관리하고 이들이 마치 하나의 컴퓨터인 것처럼 보이게 만들어 준다. 서로 연결되어 통신하는 네트워크화된 컴퓨터들이 개발되면서 분산 컴퓨팅이 활성화되었다. 분산되는 연산들은 하나 이상의 컴퓨터에서 수행된다. 하나의 그룹에 속하는 컴퓨터들이 협업을 할 때 분산 시스템을 형성하게 된다.
판형 운영체제.
운영체제에서, 배포 형식 및 클라우드 컴퓨팅 환경에서 판형은 하나의 가상 머신 이미지를 게스트 운영체제로 만드는 것을 가리키며, 실행 중인 여러 개의 가상 머신을 위한 도구로 이를 저장한다. 이 기법은 가상화와 클라우드 컴퓨팅 관리에 둘 다 사용되며, 대형 서버 웨어하우스 환경에서 흔히 볼 수 있다.
임베디드 운영체제.
임베디드 운영체제는 임베디드 컴퓨터 시스템에서 사용할 수 있게 설계되어 있다. PDA처럼 조그마한 기계에 동작하도록 설계되어 있으며 ,제한된 수의 자원으로 동작한다. 매우 크기가 작고 극히 효율적으로 설계되어 있다. 임베디드 운영체제의 예로 윈도우 CE와 미닉스 3이 있다.
실시간 운영체제.
실시간 운영체제는 특정한 짧은 시간 내에 이벤트나 데이터의 처리를 보증하는 운영체제이다. 실시간 운영체제는 싱글태스킹일 수도 있고, 멀티태스킹일 수도 있으며 멀티태스킹의 경우 특수한 스케줄링 알고리즘을 사용한다.
라이브러리.
운영체제의 구성.
운영체제는 많은 부분을 이룬다. 가장 중요한 요소 가운데 하나가 커널인데, 커널은 일반인이 일반적으로 보지 못하는 낮은 수준의 프로세스를 제어한다. 얼마나 메모리를 읽고 쓸 것인지, 어느 프로세스를 실행할 것인지, 모니터, 키보드, 마우스와 같은 장치를 통해 어떠한 정보를 주고받을 것인지, 네트워크를 통해 받은 정보를 어떻게 해석할 것인지를 제어한다.
사용자 인터페이스는 컴퓨터 사용자가 직접 프로그램을 제어하고 사용할 수 있게 하는 운영체제의 기능이다. 사용자 인터페이스는 아이콘과 바탕 화면을 지닌 그래픽이나 명령 줄을 지닌 문자를 이룰 수 있다.
운영체제에 따라 이러한 구성 요소들 가운데 다수가 실질적인 부분으로 취급되지 않을 수도 있다. 이를테면 윈도우는 사용자 인터페이스를 운영체제의 일부로 여기는데 반해 수많은 버전의 리눅스는 그렇지 않다.
시스템 구성.
일반적인 응용 프로그램들을 제외한 컴퓨터 시스템은 개념적으로 세 개의 구성 요소로 구분하기도 한다. 그 세 부분은 운영체제, 셸, 그리고 (낮은 수준의) 필수 유틸리티들이다. 셸은 사용자가 시스템을 운용할 수 있게끔 해주는 기본적인 응용 프로그램이다. 이런 셸의 행동들은 결국 운영체제에 명령을 내리는 일이 된다. bash 등의 이러한 셸은 그러나 엄밀히 운영체제의 일부가 아니며 운영체제 입장에서는 셸이나 필수 유틸리티들이나 모두 응용 프로그램일뿐 구별하지 않는다. 다만 이러한 구분은 사용자의 입장에서 필수적인 응용 프로그램이라는 뜻이다.
초기의 컴퓨터들은 계산기처럼 일련의 단일 작업들을 수행하기 위하여 만들어졌다. 여러 프로그램들을 연속으로 자동 실행하여 처리 속도를 높일 수 있었던 레지던트 모니터와 같이, 1950년대에는 기본적인 운영체제의 기능들이 개발되었다. 운영체제는 1960년대 초까지만 하여도 현대의 운영체제와 같이 더 복잡한 형태로 존재하지 않았다. 하드웨어 기능에 런타임 라이브러리, 인터럽트, 병렬 처리가 추가되었다. 개인용 컴퓨터가 애플, 아타리, IBM, 아미가와 같은 기업 덕택에 1980년대에 유명해졌다. 이 업체들은 한때 메인프레임과 미니 컴퓨터에 널리 쓰였던 운영체제 기능을 추가하였다. 나중에 그래픽 사용자 인터페이스와 같은 수많은 기능들이 개인용 컴퓨터 운영체제를 위해 개별적으로 개발되었다.
1950년대 초에 컴퓨터는 한 번에 하나의 프로그램만 실행할 수 있었다. 각 사용자는 컴퓨터만을 사용하여 예약된 시간에 천공 카드와 테이프의 프로그램과 데이터에 접근하여야 했다. 프로그램이 컴퓨터에 적재되면 컴퓨터는 프로그램이 끝나거나 충돌을 일으킬 때까지 계속 동작하였다. 토글 스위치와 패널 불빛을 이용하여 앞면 패널을 통해 프로그램을 디버깅할 수 있었다.
그 뒤에 나온 컴퓨터는 인간이 알아들을 수 있는 어셈블리어로부터의 기계어 발생이나 입출력과 같은 기능을 도와주기 위하여 사용자 프로그램을 연결해 놓은 소프트웨어 라이브러리와 함께 등장하였다. 이것이 현대의 운영체제의 시발점이다. 그러나 여전히 컴퓨터는 한 번에 하나의 일만 할 수 있었다.
메인프레임.
1950년대를 통해 일괄 처리, 입출력 인터럽트, 버퍼링, 멀티태스킹, 스풀링, 런타임 라이브러리, 파일 정렬을 위한 프로그램을 포함한 수많은 주요 기능들이 운영체제 분야에 포함되었다. 이러한 기능들은 프로그래머의 취향에 따라 응용 소프트웨어에 포함되어 있기도 했고 포함되지 않기도 했다. 1959년에 IBM 704, 709, 7090 메인프레임 컴퓨터를 위한 셰어 운영체제(SHARE)가 통합 유틸리티로 출시되었다.
마이크로컴퓨터.
최초의 마이크로컴퓨터는 메인프레임과 미니컴퓨터를 위해 개발해 둔 운영체제에 대한 필요성도 그만한 용량도 없었다. 모니터스("Monitors")라는 이름의 매우 작은 운영체제가 개발되었으며 롬에서 불러들였다. 눈에 띄는 초기의 디스크 기반 운영체제로 CP/M이 있었는데 수많은 초기 마이크로컴퓨터에서 지원되었으며 IBM PC에 널리 쓰였던 MS-DOS(IBM 버전의 것은 IBM DOS, 곧 PC-DOS로 불렸다)와 매우 비슷하였다. 1980년대에 애플 컴퓨터사(지금의 애플사)가 애플 II 시리즈의 마이크로컴퓨터를 버리고, 혁신적인 그래픽 사용자 인터페이스를 맥 OS 운영체제에 갖춘 애플 매킨토시 컴퓨터를 도입하였다.
32비트 아키텍처에 페이징 기능을 갖춘 인텔 80386 CPU 칩이 도입되면서 개인용 컴퓨터가 초기의 미니컴퓨터와 메인프레임 컴퓨터에서 실행할 수 있었던 멀티태스킹 운영체제를 사용할 수 있게 되었다. 마이크로소프트는 DEC용 VMS 운영체제를 개발하였던 데이비드 커틀러를 해고함으로써 이러한 진행에 응하였다. 그는 마이크로소프트의 운영체제 기반을 다룰 윈도우 NT 운영체제 개발을 이끌었다. 애플의 공동 창립자 스티브 잡스는 NeXT 컴퓨터사를 차렸고 유닉스 계열 넥스트스텝 운영체제를 개발하였다. 넥스트스텝은 훗날 애플에 인수되었으며 FreeBSD 코드가 맥 OS X의 중심이 되었다.
프로그래머 리처드 스톨만이 사유 유닉스 운영체제를 대체하는 자유 소프트웨어를 목표로 GNU 프로젝트를 시작하였다. 이 프로젝트가 유닉스 여러 곳의 기능을 복제하는 데 큰 성공을 이루자 GNU 허드 커널 개발은 비생산적인 것으로 입증되었다. 1991년 핀란드 컴퓨터 과학부 학생인 리누스 토르발스는 최초의 리눅스 커널 버전을 출시하였다. 곧 GNU 유저랜드와 시스템 소프트웨어에 병합되면서 컴퓨터 운영체제를 이루게 되었다. BSD는 유닉스 계열로서 1970년대에 시작하여 수많은 미니컴퓨터에 포팅되었으며 마침내 FreeBSD, NetBSD, OpenBSD와 같이 개인용 컴퓨터에도 쓰이게 되었다.
운영체제의 예.
유닉스는 처음에는 어셈블리어로 작성되었다. 켄 톰프슨은 BCPL에 기반을 둔 B를 작성하였다. 이것으로 말미암아 그는 유닉스를 작성하기도 하였는데, 이는 멀틱스 프로젝트에서의 경험을 바탕으로 한다. C는 B를 대체하였으며 유닉스는 현대의 모든 운영체제에 영향을 미쳤던 크고 복잡한 계열의 상호 관련 운영체제로 발전하였다. (역사 참조) 유닉스 계열 운영체제는 유닉스에서 파생한 계열이며 시스템 V, BSD, GNU/리눅스,와 같은 주된 하부 분류가 몇 가지 있다. 유닉스라는 이름은 어느 운영체제와도 사용할 수 있게 한다는 것을 표명한 오픈 그룹의 상표이다. 유닉스 계열은 원래의 유닉스를 닮은 커다란 집합의 운영체제들을 가리키는 데 흔히 쓰인다.
유닉스 계열 운영체제는 다양한 컴퓨터 아키텍처에서 돌아간다. 이들은 비즈니스 분야의 서버와 학술 및 공학 환경에서의 워크스테이션에서도 쓰인다. GNU/리눅스와 BSD와 같은 자유 유닉스들은 이러한 분야에서 널리 쓰인다.
HP의 HP-UX와 IBM의 AIX는 제조업체의 하드웨어에만 동작하도록 설계되어 있다. 솔라리스와 같은 것들은 x86 서버와 PC를 포함한 여러 종류의 하드웨어에서 돌아간다. 넥스트스텝, 마하, FreeBSD에서 파생한 하이브리드 커널 기반의 BSD류인 애플의 맥 OS X은 유닉스 계열이 아니었던 애플의 초기 맥 OS를 대체하였다. 유닉스의 정보 처리 상호 운용성은 POSIX 표준을 확립함으로써 드러난다. POSIX 표준은 이것이 비록 다양한 유닉스 계열을 위해서 만들어지기는 하였으나 다른 어떠한 운영체제에라도 적용할 수 있다.
BSD 및 BSD 계열.
유닉스 계열의 하부 집합 가운데 하나로 BSD 계열이 있다. 여기에는 FreeBSD, NetBSD, OpenBSD를 포함한다. 이러한 운영체제들은 웹 서버에서 가장 쉽게 찾을 수 있지만 개인용 컴퓨터 운영체제로의 역할도 한다. 인터넷은 BSD와도 많은 관련이 있는데, 네트워크에 연결하여 데이터를 주고 받는 데 흔히 쓰이는 현재의 프로토콜들 가운데 다수가 BSD에서 정의하여 널리 쓰이게 된 것이다. 또, 월드 와이드 웹은 넥스트스텝이라는 BSD 기반 운영체제를 실행하는 수많은 컴퓨터에서 처음 입증되었다.
BSD는 유닉스에 뿌리를 두고 있다. 1974년에 캘리포니아 대학교 버클리는 최초의 유닉스 시스템을 설치하였다. 시간이 지나 컴퓨터 과학부의 학생들과 직원들은 그곳에서 문서 편집기와 같은 새로운 프로그램을 이러한 것들에 일찍이 추가하기 시작하였다. 버클리 대학교가 최초의 유닉스 시스템이 설치된 새로운 VAX 컴퓨터를 1978년에 도입하였을 때 대학생들은 컴퓨터 하드웨어의 가능성을 이용하기 위하여 유닉스를 수정하였다. 미국 국방부의 방위고등연구계획국이 이에 관심을 가져 프로젝트에 투자하기로 결정하였다. 수많은 학교와 회사, 정부 단체들은 이를 알아채고 AT&amp;T에서 제공하는 공식적인 것이 아닌 버클리 버전의 유닉스를 사용하기 시작하였다. 1985년에 애플을 떠났던 스티브 잡스는 넥스트스텝이라 불리는 BSD류를 실행하는 고성능 컴퓨터를 제조하였던 기업 NeXT사를 세웠다. 이러한 컴퓨터들 가운데 하나는 팀 버너스 리가 최초의 웹 서버로 월드 와이드 웹을 만드는 데 사용하였다.
OS X.
맥 OS X은 매킨토시 컴퓨터에 미리 최신으로 설치되어 있으면서도 애플이 개발하여 판매한 사유 그래픽 운영체제이다. 맥 OS X은 1984년 이후로 애플의 사유 운영체제였던 원래의 맥 OS의 뒤를 잇는 것이다. 전작과 달리 맥 OS X은 1980년대 2/4 분기부터 애플이 1987년 초에 이 회사를 사들일 때까지 NeXT에서 개발한 기술로 만든 유닉스 운영체제이다.
이 운영체제는 1999년에 맥 OS X 서버 1.0이라는 이름으로 처음 출시하였으며 그 뒤 2001년 3월에 데스크톱 지향 버전인 맥 OS X v10.0을 출시하였다. 그 뒤로 맥 OS X의 "클라이언트", "서버" 에디션 여섯 가지가 공개되었으며, 최신 제품은 2020년에 출시된 OS X 빅서이다.
서버 에디션인 맥 OS X 서버는 구조적으로 데스크톱의 것과 비슷하지만 일반적으로 애플의 매킨토시 서버 하드웨어에서 돌아간다. 맥 OS X은 메일 전송 에이전트, 삼바, LDAP 서버, DNS 등을 비롯한 네트워크 서비스에 접근할 수 있게 하는 워크 그룹 관리 및 관리 소프트웨어 도구를 포함하고 있다.
플랜 9.
켄 톰프슨, 데니스 리치, 더글라스 맥길로이는 벨 연구소에서 유닉스 운영체제를 개발하기 위하여 C 프로그래밍 언어를 설계하고 개발하였다. 벨 연구소의 프로그래머들은 현대의 배포 환경을 위해 계획된, 플랜 9와 인페르노를 개발하기 시작하였다. 플랜 9는 네트워킹 운영체제로 발돋움하기 위하여 계획된 것이었으며 당시 그래픽이 제공되지 않았던 유닉스와 달리 그래픽을 내장하였다. 하에 출시되었다. 인페르노는 Vita Nuova Holdings에 팔려 GPL/MIT 라이선스로 배포되고 있다.
리눅스와 GNU.
리눅스는 BSD 및 그 변종과 달리 실제 유닉스 코드 없이 개발된 유닉스 계열 운영체제이다. 슈퍼컴퓨터에서부터 손목시계에 이르기까지 다양한 기기에 쓰인다. 리눅스 커널은 오픈 소스 라이선스로 배포되므로 누구나 코드를 읽고 수정할 수 있다. 리눅스는 다양한 전자 기기에서 동작하도록 수정되고 있다.
GNU 프로젝트는 완전한 원래의 코드를 제외하고 유닉스와 비슷하게 완전하게 자유롭고 열려 있는 운영체제를 만들고 싶어하는 프로그래머들의 협동적인 노고 그 자체이다. 이 프로젝트는 1983년에 리처드 스톨만이 시작하였고 대부분의 리눅스의 수많은 부분을 책임지고 있다. 이 까닭에 리눅스는 GNU/리눅스로 불리기도 한다. 실질적으로 모든 운영체제를 위한 수많은 소프트웨어가 GNU 일반 공중 사용 허가서 하에 배포된다. 이 가운데 리눅스 커널은 핀란드의 대학교 학생이었던 리누스 토르발스의 부차적인 프로젝트로 시작되었다. 1991년에 토르발스는 이 작업에 착수하여 프로젝트에 대한 정보를 컴퓨터 학생과 프로그래머를 위한 뉴스그룹에 게시하였다.
구글 크롬 OS.
크롬은 구글이 리눅스 커널을 기반으로 설계한 운영체제이다. 크롬은 대부분의 시간을 인터넷으로 보내는 이용자들을 대상으로 한다. 기술적으로는 어떠한 응용 프로그램도 없는 웹 브라우저만을 이용하며 문서 작성이나 미디어 보기와 같은 작업을 위해 웹 브라우저에 쓰이는 인터넷 애플리케이션에 의존한다.
마이크로소프트 윈도우는 개인용 컴퓨터에 가장 흔히 쓰이는 사유 운영체제 계열이다. 개인용 컴퓨터를 위한 가장 흔한 운영체제이며 약 90%의 시장 점유율을 차지하고 있다. 최신 버전은 개인용 컴퓨터의 경우 윈도우 11이, 서버의 경우 윈도우 서버 2019이다.
1981년에 IBM PC용의 오래된 MS-DOS 운영체제에 추가 기능으로 나온 것이 기원이다. 1985년에 마이크로소프트는 개인용 컴퓨터의 비즈니스 분야를 지배하기 시작하여 수많은 산업 표준을 정립하기에 이르렀다. 윈도우 XP를 시작으로 현대의 모든 윈도우 버전은 윈도우 NT 커널을 기반으로 하고 있다. 현재 나오는 윈도우 버전은 IA-32와 x86-64 프로세서에서 동작하지만 그 이전에 나왔던 버전들은 다른 아키텍처를 지원하기도 하였다.
틈새 시장에 존재하는 오래된 운영체제로는 IBM과 마이크로소프트의 OS/2, 애플 맥 OS X의 유닉스를 이용하지 않는 이전작 맥 OS, 또 BeOS와 XTS-300이 있다. RISC OS, MorphOS, 아미가OS 4도 열성적인 커뮤니티와 전문 분야를 위한 소수 플랫폼으로 개발이 이어지고 있다. DEC의 OpenVMS도 휴렛 패커드가 계속 개발하고 있다. 도스 등의 운영체제도 FreeDOS와 같은 프로젝트를 통해 명맥을 이어가고 있다. 그 밖의 운영체제는 운영체제 교육용이나 학술용, 또는 운영체제 개념의 연구 등을 위해 예외적으로 쓰인다. 학술과 연구 역할을 모두 수행하는 시스템의 전형적인 예로 미닉스가 있다. 반면 순수 연구 목적으로 쓰이는 것으로는 싱귤래러티가 있다.
운영체제를 이루는 요소는 컴퓨터의 다른 부분들과 함께 동작하게 만들기 위하여 존재한다. 금융 데이터베이스부터 영화 편집 프로그램에 이르기까지 소프트웨어는 모두 소프트웨어에 쓰이는 하드웨어가 단순히 마우스나 키보드만 이용하든지 아니면 인터넷 연결같이 복잡한 방식을 이용하든지 상관 없이 하드웨어를 이용하기 위하여 운영체제로 말미암아 실행해야 한다.
커널.
펌웨어와 장치 드라이버의 도움을 받아 커널은 모든 컴퓨터 하드웨어 장치에 대한 가장 기초 수준의 제어권을 제공한다. 커널은 램을 통해 프로그램을 위한 메모리 접근을 관리하며 어느 프로그램이 어느 하드웨어 자원에 접근할지를 결정하며 CPU의 동작 상태를 늘 최적으로 설정 및 초기화하고 디스크, 테이프, 플래시 메모리와 같은 매체의 파일 시스템을 갖춘 장시간 비휘발성 기억 장치를 위한 데이터를 정리한다. 운영체제 내에서의 커널의 영역과 그 구성에 따라 모노리딕 커널(monolithic kernel), 마이크로 커널(micro kernel) 등으로 분류한다.
프로그램 실행.
운영체제는 응용 프로그램과 하드웨어 사이의 인터페이스 역할을 한다. 운영체제는 응용 프로그램 개발을 단순하게 하는 서비스의 집합이다. 프로그램을 실행하면 운영체제가 프로세스를 만든다. 커널은 메모리와 다른 자원을 할당하여 프로세스를 만들며, 이로써 멀티태스킹 환경에서 프로세스에 대한 우선 순위를 확립하고, 메모리에 프로그램 코드를 적재하며 프로그램을 실행한다. 그 뒤 프로그램은 사용자 및 장치와 상호작용한 다음 원하는 명령을 수행하게 된다.
운영체제는 프로세스 들을 생성하거나 삭제하고, 중단시키거나 재개시킨다. 프로세스 간의 동기화와 통신, 교착상태 처리에 관한 메커니즘을 제공한다.
인터럽트.
인터럽트는 주변 환경에 반응하고 상호작용하는 데에 효율적인 방법을 운영체제에 제공하므로 운영체제에 핵심적인 역할을 한다고 할 수 있다. 동작을 요구하는 이벤트(폴링)를 위한 다양한 소스의 입력을 운영체제가 감시할 수 있는 다른 대안은 스택이 매우 작은 구형 운영체제에서 볼 수 있으나 스택이 큰 현대의 운영체제에서는 드문 편이다. 인터럽트 기반의 프로그래밍은 현대의 대부분의 CPU에서 직접적으로 지원된다. 인터럽트는 자동으로 로컬 레지스터 컨텍스트를 저장하고 이벤트에 반응하는 특정 코드를 실행하는 방법을 컴퓨터에 제공한다. 매우 기초적인 컴퓨터들은 모두 하드웨어 인터럽트들을 지원하며 이벤트가 발생할 때 실행될 코드를 프로그래머가 지정할 수 있게 한다.
프로그램이 운영체제에 인터럽트를 발생시키는 경우도 있다. 이를테면 프로그램이 하드웨어에 접근하고자 한다면 운영체제의 커널을 가로막을 수 있으며, 이를 통해 제어권을 커널에 넘겨준다. 그 뒤 커널은 요청을 수행한다. 프로그램이 메모리(또는 공유 자원)와 같은 추가 자원이 필요하면 커널이 집중할 수 있게 인터럽트를 발생시킨다.
현대의 CPU는 여러 모드의 명령을 지원한다. 이러한 기능을 지원하는 CPU에는 두 가지 모드가 있다: 보호 모드, 수퍼바이저 모드. 수퍼바이저 모드는 메모리의 기록 및 삭제 방식을 제어하는 것과 그래픽 카드와 같은 장치와 통신하는 것과 같이 운영체제의 커널이 하드웨어에 제한 없이 액세스해야 하는 낮은 수준의 태스크를 위해 사용한다. 반대로 보호 모드는 그 밖의 거의 모든 용도로 사용된다. 응용 프로그램들은 보호 모드 안에서 동작하며, 수퍼바이저 모드의 모든 것을 제어하는 커널과 통신해야만 하드웨어를 이용할 수 있다. CPU는 오래된 프로세서를 가상으로 구현하기 위한 가상 모드와 같이 보호 모드와 비슷한 다른 모드들을 지니고 있을 수도 있다. (이를테면 32비트에서 16비트 프로세서를, 아니면 64비트에서 32비트 프로세서를 가상으로 구현할 때)
컴퓨터가 처음 시동할 때 자동으로 수퍼바이저 모드에서 실행된다. 컴퓨터를 켜자마다 먼저 실행되는 몇 안 되는 프로그램들이 바이오스와 부트로더이며 운영체제는 하드웨어에 제한 없이 접근한다. 그리고 운영체제가 다른 프로그램에 대한 제어권을 보낼 때 CPU를 보호 모드에 놓을 수 있다.
멀티프로그래밍 운영체제 커널은 현재 프로그램이 이용하는 모든 시스템 메모리를 관리해야 한다. 이로써 어느 특정한 프로그램이 다른 프로그램이 이미 사용하고 있는 메모리와 상호 작용하지 않게 한다. 프로그램이 시분할하므로 각 프로그램은 메모리에 독립적으로 접근해야 한다.
가상 메모리.
페이징이나 세그먼테이션과 같은 가상 메모리 어드레싱을 이용하면 커널은 어느 메모리를 각 프로그램이 주어진 시간에 사용할 수 있게 할지 설정할 수 있다. 그러므로 운영체제가 여러 개의 태스크에 같은 메모리 위치를 사용할 수 있게 한다.
프로그램이 접근할 수 있는 메모리 범위에 없는 메모리에 접근하려고 하지만 그곳에 할당되면 커널은 프로그램이 마치 할당된 메모리를 초과 사용한 것과 같은 방식으로 인터럽트 처리한다. 유닉스에서 이러한 종류의 인터럽트를 페이지 실패라고 부른다. 커널이 페이지 실패를 감지하면 이러한 문제를 일으킨 프로그램의 가상 메모리 영역을 수정하는 것이 일반적이다. 이로써 요청된 메모리에 프로그램이 접근할 수 있게 한다.
현대의 운영체제에서 자주 접근하지 않는 메모리는 일시적으로 디스크나 다른 매체에 저장하여 다른 프로그램에게 사용할 수 있는 공간을 제공해 준다. 이를 스왑 처리(swapping)라고 하며 이를 통해 여러 개의 프로그램이 특정한 메모리 영역을 차지할 수 있다.
멀티태스킹.
멀티태스킹은 여러 개의 독립적인 컴퓨터 프로그램을 하나의 컴퓨터에 실행시키는 것을 가리킨다. 마치 태스크들이 동시에 수행하는 것처럼 보여 준다. 대부분의 컴퓨터가 한 번에 최대 한 두개를 수행할 수 있고 이는 일반적으로 시분할을 통해 수행된다. 다시 말해 각 프로그램은 컴퓨터의 실행 시간의 일부를 사용한다.
운영체제 커널은 스케줄러라는 프로그램이 포함되어 있는데 이 프로그램은 얼마나 많은 시간을 각 프로그램이 실행에 소비하게 할 것인지를 결정하며 여기서 실행 제어권이 프로그램에 넘어갈 수 있게 한다. 제어권은 프로그램이 CPU와 메모리에 접근할 수 있게 하는 커널로 말미암아 프로세스로 넘어간다. 나중에 다른 프로그램이 CPU를 사용할 수 있게 하기 위해 제어권은 같은 메커니즘을 통하여 커널로 반환된다. 커널과 응용 프로그램 간의 제어권 이동을 이른바 문맥 교환이라고 부른다.
디스크에 저장된 데이터로 접근하는 것은 모든 운영체제의 기본 기능이다. 컴퓨터는 더 빠른 접근, 더 높은 신뢰성을 위해, 또 드라이브의 남은 공간을 더 잘 이용하기 위한 특정한 방식으로 구조화된 파일을 이용하여 디스크에 데이터를 저장한다. 파일을 디스크에 저장하는 이러한 방식을 파일 시스템이라고 부르며 파일이 이름과 특성을 가질 수 있게 한다. 또, 이러한 파일들을 디렉터리 트리로 정렬되는 특정 계급의 디렉터리와 폴더에 저장하게 한다.
초기의 운영체제는 일반적으로 한 종류의 디스크 드라이브와 한 종류의 파일 시스템을 지원하였다. 초기의 파일 시스템들은 용량, 속도, 또 파일 이름과 디렉터리 구조의 종류에 제한이 있었다. 이러한 제한은 설계된 운영체제의 제한에 반영되므로 특정한 운영체제가 하나 이상의 파일 시스템을 지원하는 것을 매우 어렵게 만들었다.
더 단순한 수많은 운영체제들은 기억 장치의 시스템에 접근하기 위한 제한된 옵션들을 지원하였는데, 유닉스와 GNU/리눅스와 같은 운영체제들은 가상 파일 시스템(VFS)이라는 기술을 지원한다. 유닉스와 같은 운영체제는 공통 API를 통해 접근하는 파일 시스템이나 디자인에 관계 없이 다양한 기억 장치를 지원한다. 그러므로 프로그램을 개발할 때 장치 접근에 대한 정보를 공부하지 않아도 되게 한다. VFS는 다양한 파일 시스템에, 특정한 장치 드라이버와 파일 시스템 드라이버를 사용하여 프로그램들이 무제한의 장치에 접근할 수 있는 기능을 운영체제에 제공한다.
연결된 하드 드라이브와 같은 기억 장치들은 장치 드라이버를 통해 접근한다. 장치 드라이버는 드라이브의 특정한 언어를 이해하고 이 언어를 운영체제가 모든 디스크 드라이브에 접근할 때 사용하는 표준 언어로 번역할 수 있다. 유닉스에서 이를 블록 장치의 언어라고 한다.
장치 드라이버.
장치 드라이버의 주된 설계 목적은 추상화이다. 하드웨어의 모델은, 특히 같은 종류의 장치라 하더라도 각기 다르다. 제조업체들은 더 신뢰할만한, 더 나은 성능을 제공하기 위해 더 새로운 모델들을 출시하고 이러한 새로운 모델들은 다르게 동작하기도 한다. 컴퓨터들과 운영체제들은 현재든 앞으로든 모든 장치를 어떻게 제어할 것인지 예측하는 것은 불가능하다. 이러한 문제를 해결하기 위해 운영체제들은 반드시 어떠한 종류의 장치가 제어될 것인지를 지시하여야 한다. 그러면 장치 드라이버의 기능이 이러한 운영체제의 함수 호출을 장치 특유의 호출로 번역하게 된다. 이론적으로 새로운 방식으로 제어되는 새로운 장치는 적절한 드라이버를 사용할 수 있는 상황이라면 올바르게 동작한다. 새로운 드라이버는 운영체제의 관점에서 장치가 평소처럼 동작하고 있음을 보증하게 된다.
비스타 이전의 윈도우, 2.6 미만의 리눅스 버전에서는 모든 드라이버 실행이 협동적이어서, 드라이버가 무한 루프에 진입하면 시스템이 정지하는 일이 발생한다. 더 최근에 나온 운영체제들은 커널 선점을 사용한다. 이 경우 태스크 제공을 위해 커널이 드라이버를 간섭하며 장치 드라이버로부터 응답을 받을 때까지 자신을 프로세스로부터 분리시키며 더 많은 태스크를 부여할 수 있다.
네트워킹.
현재 대부분의 운영체제는 다양한 통신 프로토콜, 하드웨어, 응용 프로그램을 지원한다. 다시 말해, 서로 비슷하지 않은 운영체제를 실행하는 컴퓨터가 자원(유무선 연결을 이용한 연산, 파일, 프린터, 스캐너)을 공유하기 위해 같은 망에 참여할 수 있다. 네트워크는 컴퓨터의 운영체제가 원격 컴퓨터의 자원에 접근하는 데 필수적이다. 마치 리소스가 로컬 컴퓨터에 바로 연결되어 있는 것처럼 보이게 만들어 준다. 여기에는 컴퓨터의 그래픽, 사운드 하드웨어를 공유하거나 네트워킹 파일 시스템을 이용하는 등 단순한 통신에서 나오는 모든 것을 포함한다. 일부 네트워크 서비스는 컴퓨터의 자원을 투명하게 접근할 수 있게 한다. 이를테면 SSH는 네트워크로 이어진 사용자들이 컴퓨터의 명령 줄 인터페이스에 직접 접근할 수 있게 한다.
컴퓨터의 보안은 수많은 기술이 올바르게 동작하고 있는 지에 달려 있다. 또, 운영체제는 보안을 위하여 특정 환경에 대한 권한을 사용자나 프로그램에 개별적으로 설정하고 인증 프로세스를 제공한다. 인터넷 보안은 특히 여러 사용자가 사용하는 시스템에 적절하다. 시스템을 사용하는 각 사용자는 개인 파일을 다른 사용자가 읽을 수 없게 할 수 있다.
어떠한 종류의 입력을 받는 모든 컴퓨터는 사람이 컴퓨터와 소통할 수 있게 하는 사용자 인터페이스가 필요하다. 키보드, 마우스와 같은 장치들이 이러한 역할을 하지만 사용자 인터페이스는 이를 위한 소프트웨어로 이루어진다. 사용자 인터페이스는 역사적으로 컴퓨터 명령어를 한 줄씩 입력해 나가는 명령 줄 인터페이스와 일반적으로 창, 단추, 아이콘을 이루는 시각 환경이 존재하는 그래픽 사용자 인터페이스로 나뉜다.
현대의 대부분의 컴퓨터 운영체제는 그래픽 사용자 인터페이스(GUI)를 지원한다. 마이크로소프트 윈도우와 맥 OS와 같은 일부 컴퓨터 시스템에서 GUI는 커널에 통합되어 있다.