운영 체제 - 위키백과, 우리 모두의 백과사전 운영 체제 위키백과, 우리 모두의 백과사전. ( 운영체제에서 넘어옴 ) 둘러보기로 가기 검색하러 가기 운영 체제 공통 기능 프로세스 관리 인터럽트 메모리 관리 파일 시스템 장치 드라이버 네트워킹 ( TCP / IP, UDP ) 보안 ( 프로세스 / 메모리 보호 ) 입출력 v. d. e. h 운영 체제 ( 運 [UNK] 體 制, 문화어 : 조작 체계 ) 또는 오퍼레이팅 시스템 ( 영어 : operating system, OS ) 은 시스템 하드웨어를 관리할 뿐 아니라 응용 소프트웨어를 실행하기 위하여 하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공하는 시스템 소프트웨어이다. 최근에는 가상화 기술의 발전에 힘입어 실제 하드웨어가 아닌 하이퍼바이저 위에서 실행되기도 한다. 입출력과 메모리 할당과 같은 하드웨어 기능의 경우 운영 체제는 응용 프로그램과 컴퓨터 하드웨어 사이의 중재 역할을 한다. [ 1 ] [ 2 ] 그러나 응용 프로그램 코드는 일반적으로 하드웨어에서 직접 실행된다. 운영 체제는 휴대 전화, 게임기에서부터 슈퍼컴퓨터, 웹 서버에 이르기까지 컴퓨터를 포함하는 거의 모든 장치에서 볼 수 있다. 운영 체제는 한 면으로는 소비자를, 다른 한 면으로는 프로그램 개발자를 함께 하나의 시장으로 데려다 놓을 수 있는 양면 플랫폼이다. 잘 알려진 현대의 PC 운영 체제에는 마이크로소프트 윈도우
운영 체제이다. 리눅스는 BSD 및 그 변종과 달리 실제 유닉스 코드 없이 개발된 유닉스 계열 운영 체제이다. 슈퍼컴퓨터에서부터 손목시계에 이르기까지 다양한 기기에 쓰인다. 리눅스 커널은 오픈 소스 라이선스로 배포되므로 누구나 코드를 읽고 수정할 수 있다. 리눅스는 다양한 전자 기기에서 동작하도록 수정되고 있다. GNU 프로젝트는 완전한 원래의 코드를 제외하고 유닉스와 비슷하게 완전하게 자유롭고 열려 있는 운영 체제를 만들고 싶어하는 프로그래머들의 협동적인 노고 그 자체이다. 이 프로젝트는 1983년에 리처드 스톨만이 시작하였고 대부분의 리눅스의 수많은 부분을 책임지고 있다. 이 까닭에 리눅스는 GNU / 리눅스로 불리기도 한다. 실질적으로 모든 운영 체제를 위한 수많은 소프트웨어가 GNU 일반 공중 사용 허가서 하에 배포된다. 이 가운데 리눅스 커널은 핀란드의 대학교 학생이었던 리누스 토르발스의 부차적인 프로젝트로 시작되었다. 1991년에 토르발스는 이 작업에 착수하여 프로젝트에 대한 정보를 컴퓨터 학생과 프로그래머를 위한 뉴스그룹에 게시하였다. 구글 크롬 OS [ 편집 ] 이 부분의 본문은 구글 크롬 OS입니다. 크롬은 구글이 리눅스 커널을 기반으로 설계한
는 것으로는 싱귤래리티가 있다. 구성 요소 [ 편집 ] 운영 체제를 이루는 요소는 컴퓨터의 다른 부분들과 함께 동작하게 만들기 위하여 존재한다. 금융 데이터베이스부터 영화 편집 프로그램에 이르기까지 소프트웨어는 모두 소프트웨어에 쓰이는 하드웨어가 단순히 마우스나 키보드만 이용하든지 아니면 인터넷 연결같이 복잡한 방식을 이용하든지 상관 없이 하드웨어를 이용하기 위하여 운영 체제로 말미암아 실행해야 한다. 커널 [ 편집 ] 이 부분의 본문은 커널 ( 컴퓨팅 ) 입니다. 커널이 응용 소프트웨어를 컴퓨터 하드웨어에 연결하고 있다. 펌웨어와 장치 드라이버의 도움을 받아 커널은 모든 컴퓨터 하드웨어 장치에 대한 가장 기초 수준의 제어권을 제공한다. 커널은 램을 통해 프로그램을 위한 메모리 접근을 관리하며 어느 프로그램이 어느 하드웨어 자원에 접근할지를 결정하며 CPU의 동작 상태를 늘 최적으로 설정 및 초기화하고 디스크, 테이프, 플래시 메모리와 같은 매체의 파일 시스템을 갖춘 장시간 비휘발성 기억 장치를 위한 데이터를 정리한다. 운영 체제 내에서의 커널의 영역과 그 구성에 따라 모노리딕 커널 ( monolithic kernel ), 마이크로 커널 ( micro kernel ) 등으로 분류한다. 프로그램 실행 [ 편집 ] 이 부분의 본문은 프로세스입니다. 운영 체제는 응용 프로그램과 하드웨어 사이의 인터페이스 역할을 한다
볼 수 있다. 운영 체제는 한 면으로는 소비자를, 다른 한 면으로는 프로그램 개발자를 함께 하나의 시장으로 데려다 놓을 수 있는 양면 플랫폼이다. 잘 알려진 현대의 PC 운영 체제에는 마이크로소프트 윈도우, 맥 OS X, 리눅스가 있다. [ 3 ] 이 밖에 BSD, 유닉스 등의 PC용 운영 체제도 존재한다. 운영 체제는 실행되는 응용 프로그램들이 메모리와 CPU, 입출력 장치 등의 자원들을 사용할 수 있도록 만들어 주고, 이들을 추상화하여 파일 시스템 등의 서비스를 제공한다. 또한 멀티태스킹을 지원하는 경우, 여러 개의 응용 프로그램을 실행하고 있는 동안, 운영 체제는 이러한 모든 프로세스들을 스케줄링하여 마치 그들이 동시에 수행되는 것처럼 보이는 효과를 낸다. 운영 체제는 컴퓨터 과학의 연구 분야이기도 하다. 목차 1 종류 1. 1 싱글태스킹 운영 체제 / 멀티태스킹 운영 체제 1. 2 단일 사용자 운영 체제 / 다중 사용자 운영 체제 1. 3 분산 운영 체제 1. 4 판형 운영 체제 1. 5 임베디드 운영 체제 1. 6 실시간 운영 체제 1. 7 라이브러리 2 운영 체제의 구성 3 목적 4 시스템 구성 5 역사 5. 1 메인프레임 5. 2 마이크로컴퓨터 6 운영 체제의 예 6. 1 유닉스 및 유닉스 계열 운영 체제 6
는 명령 줄 인터페이스와 일반적으로 창, 단추, 아이콘을 이루는 시각 환경이 존재하는 그래픽 사용자 인터페이스로 나뉜다. 그래픽 사용자 인터페이스 [ 편집 ] 이 부분의 본문은 그래픽 사용자 인터페이스입니다. 현대의 대부분의 컴퓨터 운영 체제는 그래픽 사용자 인터페이스 ( GUI ) 를 지원한다. 마이크로소프트 윈도우와 맥 OS와 같은 일부 컴퓨터 시스템에서 GUI는 커널에 통합되어 있다. 기술적으로 그래픽 사용자 인터페이스는 운영 체제의 서비스가 아니지만 운영 체제 커널에 통합하면 GUI가 출력 명령을 수행하는 데 필요한 수많은 문맥 교환을 없앰으로써 GUI를 더 반응적으로 만들 수 있다. 다른 운영 체제로는 그래픽 하부 시스템을 커널과 운영 체제로부터 분리시키는 모듈성이 있다. 1980년대 유닉스에서 VMS 등은 이러한 방식으로 만들어진 운영 체제였다. GNU / 리눅스 및 맥 OS X 또한 이러한 방식을 취한다. 윈도우 비스타와 같은 현대의 마이크로소프트 윈도우는 거의 사용자 공간에 위치한 그래픽 하부 시스템을 포함하고 있지만 윈도 NT 4. 0과 윈도우 서버 2003 버전 사이의 그래픽 구현 루틴은 거의 커널 공간에 존재한다. 윈도우 9x는 인터페이스와 커널 사이의 구별이 거의 없다. 수많은 컴퓨터 운영 체제는 사용자가 원하는 인터페이스를 만들어 설치할 수 있게 하고 있다.
트는 주변 환경에 반응하고 상호작용하는 데에 효율적인 방법을 운영 체제에 제공하므로 운영 체제에 핵심적인 역할을 한다고 할 수 있다. 동작을 요구하는 이벤트 ( 폴링 ) 를 위한 다양한 소스의 입력을 운영 체제가 감시할 수 있는 다른 대안은 스택이 매우 작은 구형 운영 체제에서 볼 수 있으나 스택이 큰 현대의 운영 체제에서는 드문 편이다. 인터럽트 기반의 프로그래밍은 현대의 대부분의 CPU에서 직접적으로 지원된다. 인터럽트는 자동으로 로컬 레지스터 컨텍스트를 저장하고 이벤트에 반응하는 특정 코드를 실행하는 방법을 컴퓨터에 제공한다. 매우 기초적인 컴퓨터들은 모두 하드웨어 인터럽트들을 지원하며 이벤트가 발생할 때 실행될 코드를 프로그래머가 지정할 수 있게 한다. 프로그램이 운영 체제에 인터럽트를 발생시키는 경우도 있다. 이를테면 프로그램이 하드웨어에 접근하고자 한다면 운영 체제의 커널을 가로막을 수 있으며, 이를 통해 제어권을 커널에 넘겨준다. 그 뒤 커널은 요청을 수행한다. 프로그램이 메모리 ( 또는 공유 자원 ) 와 같은 추가 자원이 필요하면 커널이 집중할 수 있게 인터럽트를 발생시킨다. 모드 [ 편집 ] 이 부분의 본문은 보호 모드 및 수퍼바이저 모드입니다. 보호 모드에서 사용할 수 있는 x
체들은 더 신뢰할만한, 더 나은 성능을 제공하기 위해 더 새로운 모델들을 출시하고 이러한 새로운 모델들은 다르게 동작하기도 한다. 컴퓨터들과 운영 체제들은 현재든 앞으로든 모든 장치를 어떻게 제어할 것인지 예측하는 것은 불가능하다. 이러한 문제를 해결하기 위해 운영 체제들은 반드시 어떠한 종류의 장치가 제어될 것인지를 지시하여야 한다. 그러면 장치 드라이버의 기능이 이러한 운영 체제의 함수 호출을 장치 특유의 호출로 번역하게 된다. 이론적으로 새로운 방식으로 제어되는 새로운 장치는 적절한 드라이버를 사용할 수 있는 상황이라면 올바르게 동작한다. 새로운 드라이버는 운영 체제의 관점에서 장치가 평소처럼 동작하과 있음을 보증하게 된다. 비스타 이전의 윈도우, 2. 6 미만의 리눅스 버전에서는 모든 드라이버 실행이 협동적이어서, 드라이버가 무한 루프에 진입하면 시스템이 정지하는 일이 발생한다. 더 최근에 나온 운영 체제들은 커널 선점을 사용한다. 이 경우 태스크 제공을 위해 커널이 드라이버를 간섭하며 장치 드라이버로부터 응답을 받을 때까지 자신을 프로세스로부터 분리시키며 더 많은 태스크를 부여할 수 있다. 네트워킹 [ 편집 ] 이 부분의 본문은 컴퓨터 네트워크입니다. 현재 대부분의 운영 체제는 다양한 통신
스킹은 여러 개의 독립적인 컴퓨터 프로그램을 하나의 컴퓨터에 실행시키는 것을 가리킨다. 마치 태스크들이 동시에 수행하는 것처럼 보여 준다. 대부분의 컴퓨터가 한 번에 최대 한 두개를 수행할 수 있고 이는 일반적으로 시분할을 통해 수행된다. 다시 말해 각 프로그램은 컴퓨터의 실행 시간의 일부를 사용한다. 운영 체제 커널은 스케줄러라는 프로그램이 포함되어 있는데 이 프로그램은 얼마나 많은 시간을 각 프로그램이 실행에 소비하게 할 것인지를 결정하며 여기서 실행 제어권이 프로그램에 넘어갈 수 있게 한다. 제어권은 프로그램이 CPU와 메모리에 접근할 수 있게 하는 커널로 말미암아 프로세스로 넘어간다. 나중에 다른 프로그램이 CPU를 사용할 수 있게 하기 위해 제어권은 같은 메커니즘을 통하여 커널로 반환된다. 커널과 응용 프로그램 간의 제어권 이동을 이른바 문맥 교환이라고 부른다. 디스크 접근 및 파일 시스템 [ 편집 ] 이 부분의 본문은 가상 파일 시스템입니다. 파일 시스템은 디렉터리 ( 폴더 ) 를 이용하면서 사용자와 프로그램이 컴퓨터 파일을 정리하고 정렬할 수 있게 해 준다. 디스크에 저장된 데이터로 접근하는 것은 모든 운영 체제의 기본 기능이다. 컴퓨터는 더 빠른 접근, 더 높은 신뢰성을 위해, 또 드라이브의 남은 공간을 더 잘 이용하기
다. ( 이를테면 32비트에서 16비트 프로세서를, 아니면 64비트에서 32비트 프로세서를 가상으로 구현할 때 ) 컴퓨터가 처음 시동할 때 자동으로 수퍼바이저 모드에서 실행된다. 컴퓨터를 켜자마다 먼저 실행되는 몇 안 되는 프로그램들이 바이오스와 부트로더이며 운영 체제는 하드웨어에 제한 없이 접근한다. 그리고 운영 체제가 다른 프로그램에 대한 제어권을 보낼 때 CPU를 보호 모드에 놓을 수 있다. 메모리 관리 [ 편집 ] 이 부분의 본문은 메모리 관리입니다. 멀티프로그래밍 운영 체제 커널은 현재 프로그램이 이용하는 모든 시스템 메모리를 관리해야 한다. 이로써 어느 특정한 프로그램이 다른 프로그램이 이미 사용하고 있는 메모리와 상호 작용하지 않게 한다. 프로그램이 시분할하므로 각 프로그램은 메모리에 독립적으로 접근해야 한다. 가상 메모리 [ 편집 ] 이 부분의 본문은 가상 메모리입니다. 수많은 운영 체제는 하드 디스크와 램에 분산된 메모리를 이용하여 마치 가상 메모리로 불리는 메모리 덩어리가 연속적인 것처럼 프로그램을 속일 수 있다. 페이징이나 세그먼테이션과 같은 가상 메모리 어드레싱을 이용하면 커널은 어느 메모리를 각 프로그램이 주어진 시간에 사용할 수 있게 할지 설정할 수 있다. 그러므로 운영 체제가 여러 개의 태스크에 같은 메모리 위치를 사용할 수 있게 한다.
클라우드 컴퓨팅 IaaS PaaS SaaS 소프트웨어 공학 요구 분석 소프트웨어 설계 컴퓨터 프로그래밍 정형 기법 소프트웨어 테스트 소프트웨어 개발 시스템 아키텍처 컴퓨터 아키텍처 마이크로아키텍처 운영 체제 통신 & 네트워크 컴퓨터 오디오 라우팅 네트워크 토폴로지 암호학 차세대 통신망 데이터베이스 데이터 마이닝 RDBMS SQL NoSQL 오라클 데이터베이스 인공 지능 자동추론 전산언어학 컴퓨터 비전 진화 연산 기계 학습 자연 언어 처리 로봇학 컴퓨터 그래픽 시각화 영상 처리 인간과 컴퓨터 상호 작용 컴퓨터 접근성 사용자 인터페이스 착용 컴퓨터 유비쿼터스 컴퓨팅 가상현실 계산과학 인공생명 생물정보학 인지과학 계산화학 계산론적 신경과학 계산물리학 수치해석학 기호계산 정보보호 암호학 물리 보안 애플리케이션 보안 인터넷 보안 네트워크 보안 해킹 크래킹 전거 통제 LCCN : sh85094982 GND : 4006216 - 8 BNF : cb119333481 ( 데이터 ) NDL : 00865121 NKC : ph115593 원본 주소 " " 분류 : 운영 체제숨은 분류 : 문화어 표기를 포함한 문서영어 표기를 포함한 문서한국어 위키백과의 링크가 위키데이터와 다른 위키공용분류LCCN 식별자를 포함한 위키백과 문서GND 식별자를 포함한 위키백과 문서BNF 식별자를 포함한 위키백과 문서 둘러보기 메뉴 개인 도구 로그인하지 않음토론기
운영체제(運營 體制, 문화어: 조작 체계) 또는 오퍼레이팅 시스템(operating system, 약칭: OS)은 사용자의 하드웨어, 시스템 리소스를 제어하고 프로그램에 대한 일반적 서비스를 지원하는 시스템 소프트웨어이다. 시스템 하드웨어를 관리할 뿐 아니라 응용 소프트웨어를 실행하기 위하여 하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공한다. 최근에는 가상화 기술의 발전에 힘입어 실제 하드웨어가 아닌 하이퍼바이저(가상 머신) 위에서 실행되기도 한다. 또한 입출력과 메모리 할당과 같은 하드웨어 기능의 경우 운영체제는 응용 프로그램과 컴퓨터 하드웨어 사이의 중재 역할을 한다. 그러나 응용 프로그램 코드는 일반적으로 하드웨어에서 직접 실행된다. 운영체제는 휴대 전화, 게임기에서부터 슈퍼컴퓨터, 웹 서버에 이르기까지 컴퓨터를 포함하는 거의 모든 장치에서 볼 수 있다. 운영체제는 한 면으로는 소비자를, 다른 한 면으로는 프로그램 개발자를 함께 하나의 시장으로 데려다 놓을 수 있는 양면 플랫폼이다. 잘 알려진 현대의 PC 운영체제에는 마이크로소프트 윈도우, 맥 OS X, 리눅스가 있다. 이 밖에 BSD, 유닉스 등의 PC용 운영체제도 존재한다. 운영체제는 실행되는 응용 프로그램들이 메모리와 CPU, 입출력 장치 등의 자원들을 사용할 수 있도록 만들어 준다. 더불어, 이들을 추상화하여 파일 시스템 등의 서비스를 제공한다. 또한 멀티태스킹을 지원하는 경우, 여러 개의 응용 프로그램을 실행하고 있는 동안, 운영체제는 이러한 모든 프로세스들을 스케줄링하여 마치 그들이 동시에 수행되는 것처럼 보이는 효과를 낸다. 또한 운영체제는 컴퓨터 과학의 연구 분야이기도 하다.