運營體制

위키百科, 우리 모두의 百科事典.
( 運營 體制 에서 넘어옴)

運營體制 (運營 體制, 文化語 : 造作 體系) 또는 오퍼레이팅 시스템 ( operating system , 略稱 : OS)은 使用者의 하드웨어 , 시스템 리소스 를 制御하고 프로그램 에 對한 一般的 서비스를 支援하는 시스템 소프트웨어 이다. 시스템 하드웨어를 管理할 뿐 아니라 應用 소프트웨어 를 實行하기 위하여 하드웨어 抽象化 플랫폼과 共通 시스템 서비스를 提供한다. 最近에는 가상화 技術의 發展에 힘입어 實際 하드웨어가 아닌 하이퍼바이저 (假想 머신) 위에서 實行되기도 한다.

또한 入出力과 메모리 割當 과 같은 하드웨어 機能의 境遇 運營體制는 應用 프로그램과 컴퓨터 하드웨어 사이의 仲裁 役割을 한다. [1] [2] 그러나 應用 프로그램 코드는 一般的으로 하드웨어에서 直接 實行된다. 運營體制는 携帶 電話 , 게임機 에서부터 슈퍼컴퓨터 , 웹 서버 에 이르기까지 컴퓨터를 包含하는 거의 모든 裝置에서 볼 수 있다. 運營體制는 한 面으로는 消費者를, 다른 한 面으로는 프로그램 開發者 를 함께 하나의 市場으로 데려다 놓을 수 있는 兩面 플랫폼 이다. 잘 알려진 現代의 PC 運營體制에는 마이크로소프트 윈도우 , 맥 OS X , 리눅스 가 있다. [3] 이 밖에 BSD , 유닉스 等의 PC用 運營體制도 存在한다.

運營體制는 實行되는 應用 프로그램들이 메모리와 CPU , 入出力 裝置 等의 資源들을 使用할 수 있도록 만들어 준다. 더불어, 이들을 抽象畫 하여 파일 시스템 等의 서비스를 提供한다. 또한 멀티태스킹 을 支援하는 境遇, 여러 個의 應用 프로그램을 實行하고 있는 동안, 運營體制는 이러한 모든 프로세스들을 스케줄링하여 마치 그들이 同時에 遂行되는 것처럼 보이는 效果를 낸다.

또한 運營體制는 컴퓨터 科學 의 硏究 分野이기도 하다.

種類 [ 編輯 ]

싱글태스킹 運營體制 / 멀티태스킹 運營體制 [ 編輯 ]

싱글 태스킹 運營體制는 한番에 오직 하나의 프로그램만 實行할 수 있으나 멀티태스킹 運營體制는 하나 以上의 프로그램이 同時에 實行할 수 있게 한다. 이는 運營體制의 作業 스케줄링 下部 시스템에 依해 제各其 反復的으로 인터럽트 處理되는 여러 프로세스 사이에서 利用 可能한 프로세서 時間을 쪼개는 時分割 을 통해 이루어진다. 멀티태스킹의 境遇 先占型과 協同型(非先占型)이 있다. 先占型 멀티태스킹의 境遇 運營體制는 CPU 時間을 쪼개어 프로그램들 各各에 슬롯을 割當해준다. 솔라리스, 리눅스 , 아미가OS 와 같은 유닉스 系列 運營體制들은 先占型 멀티태스킹을 支援한다. 協同型 멀티태스킹은 定해진 方式에 따라 다른 프로세스들에 時間을 提供하기 위해 各 프로세스에 依存함으로써 遂行된다. 16비트 버전의 마이크로소프트 윈도우는 協同型 멀티태스킹을 使用하였다. 32비트 버전의 윈도우 NT, 윈도우 9x의 境遇 先占型 멀티태스킹을 使用하였다.

單一 使用者 運營體制 / 多重 使用者 運營體制 [ 編輯 ]

單一 使用者 運營體制는 使用者 區別이 없으나 여러 프로그램이 나란히 實行하는 것은 許容한다. [4] 多重 使用者 運營體制는 디스크 空間과 같은 리소스와 프로세스를 識別하는 機能을 갖춘 멀티태스킹의 基本 槪念을 擴張하며, 여러 使用者에 屬해 있으면서 여러 使用者가 同時에 시스템과 相互 作用할 수 있게 한다. 時分割 運營體制들은 시스템의 效率的인 利用을 위해 태스크를 스케줄링하며, 프로세서 時間, 記憶 空間, 印刷, 其他 資源을 여러 使用者에게 費用敵으로 割當하기 위한 會計 소프트웨어를 包含할 수 있다.

分散 運營體制 [ 編輯 ]

分散 運營體制 는 區別된 컴퓨터 그룹을 管理하고 이들이 마치 하나의 컴퓨터인 것처럼 보이게 만들어 준다. 서로 連結되어 通信하는 네트워크화된 컴퓨터들이 開發되면서 分散 컴퓨팅이 活性化되었다. 分散되는 演算들은 하나 以上의 컴퓨터에서 遂行된다. 하나의 그룹에 屬하는 컴퓨터들이 協業을 할 때 分散 시스템을 形成하게 된다. [5]

板形 運營體制 [ 編輯 ]

運營體制에서, 配布 形式 및 클라우드 컴퓨팅 環境에서 判型은 하나의 假想 머신 이미지를 게스트 運營體制로 만드는 것을 가리키며, 實行 中인 여러 個의 假想 머신을 위한 道具로 이를 貯藏한다. 이 技法은 가상화 와 클라우드 컴퓨팅 管理에 둘 다 使用되며, 大型 서버 웨어하우스 環境에서 흔히 볼 수 있다. [6]

임베디드 運營體制 [ 編輯 ]

임베디드 運營體制 임베디드 컴퓨터 시스템 에서 使用할 수 있게 設計되어 있다. PDA처럼 조그마한 機械에 動作하도록 設計되어 있으며 ,制限된 數의 資源으로 動作한다. 매우 크기가 작고 極히 效率的으로 設計되어 있다. 임베디드 運營體制의 例로 윈도우 CE와 미닉스 3이 있다.

實時間 運營體制 [ 編輯 ]

實時間 運營體制 는 特定한 짧은 時間 內에 이벤트나 데이터의 處理를 保證하는 運營體制이다. 實時間 運營體制는 싱글태스킹日 수도 있고, 멀티태스킹日 수도 있으며 멀티태스킹의 境遇 特殊한 스케줄링 알고리즘을 使用한다.

라이브러리 [ 編輯 ]

라이브러리 運營體制는 네트워크 等 一般的인 運營體制가 提供하는 서비스들이 라이브러리 形態로 提供되는 것을 意味한다.

運營體制의 構成 [ 編輯 ]

運營體制는 많은 部分을 이룬다. 가장 重要한 要素 가운데 하나가 커널 인데, 커널은 一般人이 一般的으로 보지 못하는 낮은 水準의 프로세스를 制御한다. 얼마나 메모리를 읽고 쓸 것인지, 어느 프로세스를 實行할 것인지, 모니터, 키보드, 마우스와 같은 裝置를 통해 어떠한 情報를 주고받을 것인지, 네트워크를 통해 받은 情報를 어떻게 解釋할 것인지를 制御한다.

使用者 인터페이스 는 컴퓨터 使用者가 直接 프로그램을 制御하고 使用할 수 있게 하는 運營體制의 機能이다. 使用者 인터페이스는 아이콘과 바탕 畵面을 지닌 그래픽 이나 命令 줄을 지닌 文字 를 이룰 수 있다.

이와 비슷한 機能으로 API 가 있는데 이것은 應用 프로그램이 다른 프로그램과 相互 作用할 수 있게 하는 서비스와 코드 라이브러리가 한데 모여 있으며 運營體制 그 自體라고 할 수도 있다.

運營體制에 따라 이러한 構成 要素들 가운데 多數가 實質的인 部分으로 取扱되지 않을 수도 있다. 이를테면 윈도우는 使用者 인터페이스를 運營體制의 一部로 여기는데 反해 수많은 버전의 리눅스는 그렇지 않다.

目的 [ 編輯 ]

運營體制의 重要한 目的은 이를테면 다음과 같다.

  • 使用者에게 컴퓨터의 프로그램을 쉽고 效率的으로 實行할 수 있는 環境을 提供한다.
  • 컴퓨터 시스템 하드웨어 및 소프트웨어 資源을 여러 使用者 間에 效率的 割當, 管理, 保護하는 것
  • 運營體制는 制御 프로그램으로서 使用者 프로그램의 誤謬나 잘못된 自願 使用을 監視하는 것과 入出力 裝置 等의 資源에 對한 演算과 制御를 管理한다.

시스템 構成 [ 編輯 ]

一般的인 應用 프로그램들을 除外한 컴퓨터 시스템은 槪念的으로 세 個의 構成 要素로 區分하기도 한다. 그 세 部分은 運營體制, , 그리고 (낮은 水準의) 必須 유틸리티들이다. 셸은 使用者가 시스템을 運用할 수 있게끔 해주는 基本的인 應用 프로그램이다. 이런 셸의 行動들은 結局 運營體制에 命令을 내리는 일이 된다. bash 等의 이러한 셸은 그러나 嚴密히 運營體制의 一部가 아니며 運營體制 立場에서는 셸이나 必須 유틸리티들이나 모두 應用 프로그램일뿐 區別하지 않는다. 다만 이러한 區分은 使用者의 立場에서 必須的인 應用 프로그램이라는 뜻이다.

하드웨어 運營體制 셸 / 應用 프로그램 使用者

歷史 [ 編輯 ]

螺絲가 달에 사람을 着陸시키는 데 도움을 준 컴퓨터를 包含하여 OS/360 은 1966年부터 大部分의 IBM 메인프레임 컴퓨터에 쓰였다.

初期의 컴퓨터들은 計算器처럼 一連의 單一 作業들을 遂行하기 위하여 만들어졌다. 여러 프로그램들을 連續으로 自動 實行하여 處理 速度를 높일 수 있었던 레지던트 모니터 와 같이, 1950年代에는 基本的인 運營體制의 機能들이 開發되었다. 運營體制는 1960年代 初까지만 하여도 現代의 運營體制와 같이 더 複雜한 形態로 存在하지 않았다. [7] 하드웨어 機能에 런타임 라이브러리 , 인터럽트 , 竝列 處理 가 追加되었다. 個人用 컴퓨터가 애플 , 아타리 , IBM , 아미가 와 같은 企業 德澤에 1980年代에 有名해졌다. 이 業體들은 한때 메인프레임과 미니 컴퓨터에 널리 쓰였던 運營體制 機能을 追加하였다. 나중에 그래픽 使用者 인터페이스 와 같은 수많은 機能들이 個人用 컴퓨터 運營體制를 위해 個別的으로 開發되었다.

1950年代 初에 컴퓨터는 한 番에 하나의 프로그램만 實行할 수 있었다. 各 使用者는 컴퓨터만을 使用하여 豫約된 時間에 穿孔 카드와 테이프의 프로그램과 데이터에 接近하여야 했다. 프로그램이 컴퓨터에 積載되면 컴퓨터는 프로그램이 끝나거나 衝突을 일으킬 때까지 繼續 動作하였다. 토글 스위치와 패널 불빛을 利用하여 앞面 패널을 통해 프로그램을 디버깅할 수 있었다.

그 뒤에 나온 컴퓨터는 人間이 알아들을 수 있는 어셈블리어 로부터의 機械語 發生이나 入出力과 같은 機能을 도와주기 위하여 使用者 프로그램을 連結해 놓은 소프트웨어 라이브러리와 함께 登場하였다. 이것이 現代의 運營體制의 始發點이다. 그러나 如前히 컴퓨터는 한 番에 하나의 일만 할 수 있었다.

메인프레임 [ 編輯 ]

1950年代를 통해 一括 處理 , 入出力 인터럽트 , 버퍼링 , 멀티태스킹 , 스풀링 , 런타임 라이브러리 , 파일 整列 을 위한 프로그램을 包含한 수많은 主要 機能들이 運營體制 分野에 包含되었다. 이러한 機能들은 프로그래머의 趣向에 따라 應用 소프트웨어에 包含되어 있기도 했고 包含되지 않기도 했다. 1959年에 IBM 704 , 709 , 7090 메인프레임 컴퓨터를 위한 셰어 運營體制 (SHARE)가 統合 유틸리티로 出市되었다.

마이크로컴퓨터 [ 編輯 ]

PC-DOS는 命令 줄 인터페이스 機能을 提供하였던 初期의 個人用 컴퓨터 運營體制였다.

最初의 마이크로컴퓨터 는 메인프레임과 미니컴퓨터를 위해 開發해 둔 運營體制에 對한 必要性도 그만한 容量도 없었다. 모니터스( 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 와 같이 個人用 컴퓨터에도 쓰이게 되었다.

運營體制의 예 [ 編輯 ]

유닉스 및 유닉스 系列 運營體制 [ 編輯 ]

유닉스 系列의 歷史

유닉스는 처음에는 어셈블리어 로 作成되었다. [8] 켄 톰프슨 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 基盤의 넥스트스텝에서 實行하였다.

유닉스 系列의 下部 集合 가운데 하나로 BSD 系列이 있다. 여기에는 FreeBSD , NetBSD , OpenBSD 를 包含한다. 이러한 運營體制들은 웹 서버 에서 가장 쉽게 찾을 수 있지만 個人用 컴퓨터 運營體制로의 役割도 한다. 인터넷은 BSD와도 많은 關聯이 있는데, 네트워크에 連結하여 데이터를 주고 받는 데 흔히 쓰이는 現在의 프로토콜들 가운데 多數가 BSD에서 定義하여 널리 쓰이게 된 것이다. 또, 월드 와이드 웹 넥스트스텝 이라는 BSD 基盤 運營體制를 實行하는 수많은 컴퓨터에서 처음 立證되었다.

BSD는 유닉스에 뿌리를 두고 있다. 1974年에 캘리포니아 大學校 버클리 는 最初의 유닉스 시스템을 設置하였다. 時間이 지나 컴퓨터 科學部의 學生들과 職員들은 그곳에서 文書 編輯機와 같은 새로운 프로그램을 이러한 것들에 일찍이 追加하기 始作하였다. 버클리 大學校가 最初의 유닉스 시스템이 設置된 새로운 VAX 컴퓨터를 1978年에 導入하였을 때 大學生들은 컴퓨터 하드웨어의 可能性을 利用하기 위하여 유닉스를 修正하였다. 美國 國防部 防衛高等硏究計劃局 이 이에 關心을 가져 프로젝트에 投資하기로 決定하였다. 수많은 學校와 會社, 政府 團體들은 이를 알아채고 AT&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는 네트워킹 運營體制로 발돋움하기 위하여 計劃된 것이었으며 當時 그래픽이 提供되지 않았던 유닉스와 달리 그래픽을 內藏하였다. Lucent 空中 許可 使用 許可書 下에 出市되었다. 人페르盧는 Vita Nuova Holdings 에 팔려 GPL/MIT 라이선스로 配布되고 있다.

리눅스와 GNU [ 編輯 ]

리눅스의 데스크톱 配布版人 우분투 .

리눅스는 BSD 및 그 變種과 달리 實際 유닉스 코드 없이 開發된 유닉스 系列 運營體制이다. 슈퍼컴퓨터에서부터 손목時計에 이르기까지 다양한 機器에 쓰인다. 리눅스 커널 은 오픈 소스 라이선스로 配布되므로 누구나 코드를 읽고 修正할 수 있다. 리눅스는 다양한 電子 機器에서 動作하도록 修正되고 있다.

GNU 프로젝트는 完全한 元來의 코드를 除外하고 유닉스와 비슷하게 完全하게 자유롭고 열려 있는 運營體制를 만들고 싶어하는 프로그래머들의 協同的인 勞苦 그 自體이다. 이 프로젝트는 1983年에 리처드 스톨만 이 始作하였고 大部分의 리눅스의 수많은 部分을 책임지고 있다. 이 까닭에 리눅스는 GNU / 리눅스 로 불리기도 한다. 實質的으로 모든 運營體制를 위한 수많은 소프트웨어가 GNU 一般 空中 使用 許可書 下에 配布된다. 이 가운데 리눅스 커널은 핀란드의 大學校 學生이었던 리누스 토르발스 의 副次的인 프로젝트로 始作되었다. 1991年에 토르발스는 이 作業에 着手하여 프로젝트에 對한 情報를 컴퓨터 學生과 프로그래머를 위한 뉴스그룹에 揭示하였다.

구글 크롬 OS [ 編輯 ]

크롬은 구글 이 리눅스 커널을 基盤으로 設計한 運營體制이다. 크롬은 大部分의 時間을 인터넷으로 보내는 利用者들을 對象으로 한다. 技術的으로는 어떠한 應用 프로그램도 없는 웹 브라우저만을 利用하며 文書 作成이나 미디어 보기와 같은 作業을 위해 웹 브라우저에 쓰이는 인터넷 애플리케이션 에 依存한다.

마이크로소프트 윈도우 [ 編輯 ]

마이크로소프트 윈도우 는 個人用 컴퓨터에 가장 흔히 쓰이는 事由 運營體制 系列이다. 個人用 컴퓨터를 위한 가장 흔한 運營體制이며 約 90%의 市場 占有率을 차지하고 있다. [9] [10] [11] 最新 버전은 個人用 컴퓨터의 境遇 윈도우 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) 等으로 分類한다.

프로그램 實行 [ 編輯 ]

運營體制는 應用 프로그램과 하드웨어 사이의 인터페이스 役割을 한다. 運營體制는 應用 프로그램 開發을 單純하게 하는 서비스의 集合이다. 프로그램을 實行하면 運營體制가 프로세스를 만든다. 커널 은 메모리와 다른 資源을 割當하여 프로세스를 만들며, 이로써 멀티태스킹 環境에서 프로세스에 對한 優先 順位를 確立하고, 메모리에 프로그램 코드를 摘載하며 프로그램을 實行한다. 그 뒤 프로그램은 使用者 및 裝置와 相互作用한 다음 願하는 命令을 遂行하게 된다.

運營體制는 프로세스 [12] 들을 生成하거나 削除하고, 中斷시키거나 再開시킨다. 프로세스 間의 同期化와 通信, 膠着狀態 處理에 關한 메커니즘을 提供한다.

  1. 使用者 및 시스템 프로세스의 生成과 終了 管理
  2. 프로세스의 一時 中止와 續開
  3. 프로세스 同期化를 위한 手段의 提供
  4. 프로세스間 通信을 위한 手段의 提供
  5. 膠着 狀態 處理를 위한 手段의 提供

인터럽트 [ 編輯 ]

인터럽트 는 周邊 環境에 反應하고 相互作用하는 데에 效率的인 方法을 運營體制에 提供하므로 運營體制에 核心的인 役割을 한다고 할 수 있다. 動作을 要求하는 이벤트(폴링)를 위한 다양한 소스의 入力을 運營體制가 監視할 수 있는 다른 代案은 스택 이 매우 작은 求刑 運營體制에서 볼 수 있으나 스택이 큰 현대의 運營體制에서는 드문 便이다. 인터럽트 基盤의 프로그래밍은 現代의 大部分의 CPU에서 直接的으로 支援된다. 인터럽트는 自動으로 로컬 레지스터 컨텍스트를 貯藏하고 이벤트에 反應하는 特定 코드를 實行하는 方法을 컴퓨터에 提供한다. 매우 기초적인 컴퓨터들은 모두 하드웨어 인터럽트들을 支援하며 이벤트가 發生할 때 實行될 코드를 프로그래머가 指定할 수 있게 한다.

프로그램이 運營體制에 인터럽트를 發生시키는 境遇도 있다. 이를테면 프로그램이 하드웨어에 接近하고자 한다면 運營體制의 커널을 가로막을 수 있으며, 이를 통해 制御權을 커널에 넘겨준다. 그 뒤 커널은 要請을 遂行한다. 프로그램이 메모리(또는 共有 自願)와 같은 追加 資源이 必要하면 커널이 集中할 수 있게 인터럽트를 發生시킨다.

모드 [ 編輯 ]

保護 모드 에서 使用할 수 있는 x86 龍 權限 링. 運營體制는 어느 프로세스가 個別 모드에서 實行할 것인지 決定한다.

現代의 CPU는 여러 모드의 命令을 支援한다. 이러한 機能을 支援하는 CPU 에는 두 가지 모드가 있다: 保護 모드 , 수퍼바이저 모드 . 수퍼바이저 모드는 메모리의 記錄 및 削除 方式을 制御하는 것과 그래픽 카드와 같은 裝置와 通信하는 것과 같이 運營體制의 커널이 하드웨어에 制限 없이 액세스해야 하는 낮은 水準의 태스크를 위해 使用한다. 反對로 保護 모드는 그 밖의 거의 모든 用途로 使用된다. 應用 프로그램들은 保護 모드 안에서 動作하며, 수퍼바이저 모드의 모든 것을 制御하는 커널과 通信해야만 하드웨어를 利用할 수 있다. CPU는 오래된 프로세서를 假想으로 具現하기 위한 假想 모드와 같이 保護 모드와 비슷한 다른 모드들을 지니고 있을 수도 있다. (이를테면 32비트에서 16비트 프로세서를, 아니면 64비트에서 32비트 프로세서를 假想으로 具現할 때)

컴퓨터가 처음 始動할 때 自動으로 수퍼바이저 모드 에서 實行된다. 컴퓨터를 켜자마다 먼저 實行되는 몇 안 되는 프로그램들이 바이오스 부트로더 이며 運營體制는 하드웨어에 制限 없이 接近한다. 그리고 運營體制가 다른 프로그램에 對한 制御權을 보낼 때 CPU를 保護 모드 에 놓을 수 있다.

메모리 管理 [ 編輯 ]

멀티프로그래밍 運營體制 커널 은 現在 프로그램이 利用하는 모든 시스템 메모리를 管理해야 한다. 이로써 어느 특정한 프로그램이 다른 프로그램이 이미 使用하고 있는 메모리와 相互 作用하지 않게 한다. 프로그램이 時分割하므로 各 프로그램은 메모리에 獨立的으로 接近해야 한다.

假想 메모리 [ 編輯 ]

수많은 運營體制는 하드 디스크와 램에 分散된 메모리를 利用하여 마치 假想 메모리로 불리는 메모리 덩어리가 連續的인 것처럼 프로그램을 속일 수 있다.

페이징이나 세그먼테이션과 같은 假想 메모리 魚드레싱을 利用하면 커널은 어느 메모리를 各 프로그램이 주어진 時間에 使用할 수 있게 할지 設定할 수 있다. 그러므로 運營體制가 여러 個의 태스크에 같은 메모리 位置를 使用할 수 있게 한다.

프로그램이 接近할 수 있는 메모리 範圍에 없는 메모리에 接近하려고 하지만 그곳에 割當되면 커널은 프로그램이 마치 割當된 메모리를 超過 使用한 것과 같은 方式으로 인터럽트 處理한다. 유닉스에서 이러한 種類의 인터럽트를 페이지 失敗 라고 부른다. 커널이 페이지 失敗를 感知하면 이러한 問題를 일으킨 프로그램의 假想 메모리 領域을 修正하는 것이 一般的이다. 이로써 要請된 메모리에 프로그램이 接近할 수 있게 한다.

現代의 運營體制에서 자주 接近하지 않는 메모리는 一時的으로 디스크나 다른 媒體에 貯藏하여 다른 프로그램에게 使用할 수 있는 空間을 提供해 준다. 이를 스왑 處理 (swapping)라고 하며 이를 통해 여러 個의 프로그램이 特定한 메모리 領域을 차지할 수 있다.

멀티태스킹 [ 編輯 ]

멀티태스킹 은 여러 個의 獨立的인 컴퓨터 프로그램을 하나의 컴퓨터에 實行시키는 것을 가리킨다. 마치 태스크들이 同時에 遂行하는 것처럼 보여 준다. 大部分의 컴퓨터가 한 番에 最大 한 두個를 遂行할 수 있고 이는 一般的으로 時分割을 통해 遂行된다. 다시 말해 各 프로그램은 컴퓨터의 實行 時間의 一部를 使用한다.

運營體制 커널 스케줄러 라는 프로그램이 包含되어 있는데 이 프로그램은 얼마나 많은 時間을 各 프로그램이 實行에 消費하게 할 것인지를 決定하며 여기서 實行 制御權이 프로그램에 넘어갈 수 있게 한다. 制御權은 프로그램이 CPU 와 메모리에 接近할 수 있게 하는 커널로 말미암아 프로세스로 넘어간다. 나중에 다른 프로그램이 CPU를 使用할 수 있게 하기 위해 制御權은 같은 메커니즘을 통하여 커널로 返還된다. 커널과 應用 프로그램 間의 制御權 移動을 이른바 文脈 交換 이라고 부른다.

디스크 接近 및 파일 시스템 [ 編輯 ]

파일 시스템은 디렉터리(폴더)를 利用하면서 使用者와 프로그램이 컴퓨터 파일을 整理하고 整列할 수 있게 해 준다.

디스크에 貯藏된 데이터로 接近하는 것은 모든 運營體制의 基本 機能이다. 컴퓨터는 더 빠른 接近, 더 높은 信賴性을 위해, 또 드라이브의 남은 空間을 더 잘 利用하기 위한 특정한 方式으로 構造化된 파일 을 利用하여 디스크 에 데이터를 貯藏한다. 파일을 디스크에 貯藏하는 이러한 方式을 파일 시스템 이라고 부르며 파일이 이름과 特性을 가질 수 있게 한다. 또, 이러한 파일들을 디렉터리 트리 로 整列되는 特定 階級의 디렉터리와 폴더에 貯藏하게 한다.

初期의 運營體制는 一般的으로 한 種類의 디스크 드라이브와 한 種類의 파일 시스템을 支援하였다. 初期의 파일 시스템들은 容量, 速度, 또 파일 이름과 디렉터리 構造의 種類에 制限이 있었다. 이러한 制限은 設計된 運營體制의 制限에 反映되므로 特定한 運營體制가 하나 以上의 파일 시스템을 支援하는 것을 매우 어렵게 만들었다.

더 單純한 수많은 運營體制들은 記憶 裝置의 시스템에 接近하기 위한 制限된 옵션들을 支援하였는데, 유닉스 GNU / 리눅스 와 같은 運營體制들은 假想 파일 시스템 (VFS)이라는 技術을 支援한다. 유닉스와 같은 運營體制는 共通 API 를 통해 接近하는 파일 시스템 이나 디자인에 關係 없이 다양한 記憶 裝置를 支援한다. 그러므로 프로그램을 開發할 때 裝置 接近에 對한 情報를 工夫하지 않아도 되게 한다. VFS는 다양한 파일 시스템에, 特定한 裝置 드라이버 와 파일 시스템 드라이버를 使用하여 프로그램들이 無制限의 裝置에 接近할 수 있는 機能을 運營體制에 提供한다.

連結된 하드 드라이브 와 같은 記憶 裝置 들은 裝置 드라이버 를 통해 接近한다. 裝置 드라이버는 드라이브의 특정한 言語를 理解하고 이 言語를 運營體制가 모든 디스크 드라이브에 接近할 때 使用하는 標準 言語로 飜譯할 수 있다. 유닉스에서 이를 블록 裝置 의 言語라고 한다.

裝置 드라이버 [ 編輯 ]

裝置 드라이버 는 하드웨어 裝置들과 相互 作用할 수 있도록 開發된 특정한 種類의 컴퓨터 소프트웨어이다.

裝置 드라이버의 주된 設計 目的은 抽象畫 이다. 하드웨어의 모델은, 特히 같은 種類의 裝置라 하더라도 各其 다르다. 製造業體들은 더 信賴할만한, 더 나은 性能을 提供하기 爲해 더 새로운 모델들을 出市하고 이러한 새로운 모델들은 다르게 動作하기도 한다. 컴퓨터들과 運營體制들은 現在든 앞으로든 모든 裝置를 어떻게 制御할 것인지 豫測하는 것은 不可能하다. 이러한 問題를 解決하기 위해 運營體制들은 반드시 어떠한 種類의 裝置가 制御될 것인지를 指示하여야 한다. 그러면 裝置 드라이버의 機能이 이러한 運營體制의 函數 呼出을 裝置 特有의 呼出로 飜譯하게 된다. 理論的으로 새로운 方式으로 制御되는 새로운 裝置는 適切한 드라이버를 使用할 수 있는 狀況이라면 올바르게 動作한다. 새로운 드라이버는 運營體制의 觀點에서 裝置가 平素처럼 動作하고 있음을 保證하게 된다.

비스타 以前의 윈도우, 2.6 未滿의 리눅스 버전에서는 모든 드라이버 實行이 協同的이어서, 드라이버가 無限 루프에 進入하면 시스템이 停止하는 일이 發生한다. 더 最近에 나온 運營體制들은 커널 先占을 使用한다. 이 境遇 태스크 提供을 위해 커널이 드라이버를 干涉하며 裝置 드라이버로부터 應答을 받을 때까지 自身을 프로세스로부터 分離시키며 더 많은 태스크를 附與할 수 있다.

네트워킹 [ 編輯 ]

現在 大部分의 運營體制는 다양한 通信 프로토콜, 하드웨어, 應用 프로그램을 支援한다. 다시 말해, 서로 비슷하지 않은 運營體制를 實行하는 컴퓨터가 自願(有無線 連結을 利用한 演算 , 파일, 프린터, 스캐너)을 共有하기 위해 같은 에 參與할 수 있다. 네트워크는 컴퓨터의 運營體制가 遠隔 컴퓨터의 資源에 接近하는 데 必須的이다. 마치 리소스가 로컬 컴퓨터에 바로 連結되어 있는 것처럼 보이게 만들어 준다. 여기에는 컴퓨터의 그래픽, 사운드 하드웨어를 共有하거나 네트워킹 파일 시스템을 利用하는 等 單純한 通信에서 나오는 모든 것을 包含한다. 一部 네트워크 서비스는 컴퓨터의 資源을 透明하게 接近할 수 있게 한다. 이를테면 SSH 는 네트워크로 이어진 使用者들이 컴퓨터의 命令 줄 인터페이스에 直接 接近할 수 있게 한다.

保安 [ 編輯 ]

컴퓨터의 保安은 수많은 技術이 올바르게 動作하고 있는 지에 달려 있다. 또, 運營體制는 保安을 위하여 特定 環境에 對한 權限을 使用者나 프로그램에 個別的으로 設定하고 引證 프로세스를 提供한다. 인터넷 保安은 特히 여러 使用者가 使用하는 시스템에 適切하다. 시스템을 使用하는 各 使用者는 個人 파일을 다른 使用者가 읽을 수 없게 할 수 있다.

使用者 인터페이스 [ 編輯 ]

命令 줄의 한 例. 各 命令語는 프롬프트 뒤에서 入力하면 되며 이에 對한 出力은 아래에 나타난다. 現在의 命令 프롬프트가 아래에 있다.
그래픽 使用者 인터페이스의 한 例. 프로그램들은 畵面 위에 그림의 모습을 띠고 있으며 파일, 폴더, 應用 프로그램들은 아이콘과 記號의 모습을 띤다. 마우스는 컴퓨터를 探索하는 데 쓰인다.

어떠한 種類의 入力을 받는 모든 컴퓨터는 사람이 컴퓨터와 疏通할 수 있게 하는 使用者 인터페이스가 必要하다. 키보드, 마우스와 같은 裝置들이 이러한 役割을 하지만 使用者 인터페이스는 이를 위한 소프트웨어로 이루어진다. 使用者 인터페이스는 歷史的으로 컴퓨터 命令語를 한 줄씩 入力해 나가는 命令 줄 인터페이스 와 一般的으로 窓, 단추, 아이콘을 이루는 視角 環境이 存在하는 그래픽 使用者 인터페이스 로 나뉜다.

그래픽 使用者 인터페이스 [ 編輯 ]

現代의 大部分의 컴퓨터 運營體制는 그래픽 使用者 인터페이스 (GUI)를 支援한다. 마이크로소프트 윈도우 맥 OS 와 같은 一部 컴퓨터 시스템에서 GUI는 커널 에 統合되어 있다.

技術的으로 그래픽 使用者 인터페이스는 運營體制의 서비스가 아니지만 運營體制 커널에 統合하면 GUI가 出力 命令을 遂行하는 데 必要한 수많은 文脈 交換 을 없앰으로써 GUI를 더 反應的으로 만들 수 있다. 다른 運營體制로는 그래픽 下部 시스템을 커널과 運營體制로부터 分離시키는 모듈性 이 있다. 1980年代 유닉스에서 VMS 等은 이러한 方式으로 만들어진 運營體制였다. GNU/리눅스 및 맥 OS X 또한 이러한 方式을 取한다. 윈도우 비스타 와 같은 現代의 마이크로소프트 윈도우는 거의 使用者 空間에 位置한 그래픽 下部 시스템을 包含하고 있지만 윈도우 NT 4.0 윈도우 서버 2003 버전 사이의 그래픽 具現 루틴은 거의 커널 空間에 存在한다. 윈도우 9x 는 인터페이스와 커널 사이의 區別이 거의 없다.

수많은 컴퓨터 運營體制는 使用者가 願하는 인터페이스를 만들어 設置할 수 있게 하고 있다. X 윈도 시스템 GNOME 이나 KDE 와 함께 쓰면 유닉스 및 유닉스 系列 시스템에서 이러한 設定을 할 수 있다. 수많은 윈도우 셸 置換 을 통해 마이크로소프트 윈도우에서도 이러한 作業을 遂行할 수 있는데, 윈도우 셸 을 交替하는 方式을 쓰지만 윈도우로부터 셸 自體를 分離할 수는 없다.

實時間 運營體制 [ 編輯 ]

實時間 運營體制 (RTOS)는 定해진 期間 안에 修行이 끝나야 하는 應用 프로그램을 위하여 만들어진 멀티태스킹 運營體制이다. ( 實時間 演算 ) 이러한 應用 프로그램들에는 조그마한 임베디드 시스템 , 自動車 엔진 制御 裝置, 産業 로봇, 宇宙船, 産業 制御 裝置, 一部 大型 컴퓨터 시스템 等이 있다.

初期의 大型 實時間 運營體制는 이를테면 아메리칸 航空 IBM 사브레 航空 豫約 시스템 을 위하여 開發한 트랜잭션 프로세싱 퍼실리티 (TPF)가 있다.

一部 임베디드 시스템은 實時間 演算을 支援하지 않더라도 심비안 OS , 팜 OS , BSD , GNU/리눅스 와 같은 運營體制를 利用한다.

趣味 活動을 통한 運營體制 開發 [ 編輯 ]

運營體制 開發은 컴퓨팅에 趣味를 둔 사람들이 關與하는 가장 複雜한 活動들 가운데 하나이다. 趣味로 만드는 運營體制는 旣存의 運營體制로부터 直接的으로 코드를 가져오지 않은 것으로 分類될 수 있으므로, 使用者들과 活動 開發者 들의 數는 적은 便이다. [13]

趣味 活動으로 開發된 運營體制의 例로는 ReactOS Syllable 等이 있다.

市場 占有率 [ 編輯 ]

2013年 運營體制別 全 世界 機器 船積量 [14]
運營體制 2012年 (單位: 100萬 機器) 2013年 (單位: 100萬 機器)
안드로이드 504 878
윈도우 346 328
iOS/맥 OS 214 267
블랙베리 35 24
기타 1,117 803
全體 2,216 2,300

出處: 가트너

리눅스 財團 에 따르면 퍼블릭 클라우드 워크로드의 90%, 世界 스마트폰 의 82%, 임베디드 機器의 62%, 슈퍼 컴퓨터 市場의 99%가 리눅스 로 作動한다. [15]

範圍 및 論難 [ 編輯 ]

運營體制는 잘 定義된 인터페이스를 가지므로 運營體制와 應用 프로그램 間의 區分은 明確하지만, 어느 程度의 서비스를 運營體制 안에 包含시켜야 하는가에 對한 問題는 技術的인 問題일뿐만 아니라 事業的인 問題이기도 하다. 이 問題는 다음의 境遇에 分明히 드러난다. 1998年 美國 法務部 마이크로소프트 에 對해 訴訟을 提起하였는데, 要點은 마이크로소프트가 運營體制에 너무 많은 機能을 包含시켜 應用 프로그램 製作業體들에게 被害를 주었다는 것이다.

같이 보기 [ 編輯 ]

各州 [ 編輯 ]

  1. Stallings, p. 6.
  2. Dhotre, p. 1
  3. Operating system market share
  4. Lorch, Jacob R., and Alan Jay Smith. "Reducing processor power consumption by improving processor time management in a single-user operating system." Proceedings of the 2nd annual international conference on Mobile computing and networking. ACM, 1996.
  5. Mishra, B.; Singh, N.; Singh, R. (2014). 〈Master-slave group based model for co-ordinator selection, an improvement of bully algorithm〉. 《International Conference on Parallel, Distributed and Grid Computing (PDGC)》. 457?460쪽. doi : 10.1109/PDGC.2014.7030789 . ISBN   978-1-4799-7682-9 .  
  6. Gagne, Silberschatz Galvin (2012). 《Operating Systems Concepts》. New York: Wiley. 716쪽. ISBN   978-1118063330 .  
  7. Hansen, pp. 4-7
  8. Ritchie, Dennis. “Unix Manual, first edition” . Lucent Technologies. 2008年 5月 18日에 原本 文書 에서 保存된 文書 . 2012年 11月 22日에 確認함 .  
  9. W3Counter - Global Web Stats
  10. Operating system market share
  11. http://gs.statcounter.com/#os-ww-monthly-200910-200910-bar
  12. 어떠한 프로그램 파일들이 準備 狀態나 待機 狀態 로 實行되기 前에 積載되는 것
  13. “My OS is less hobby than yours” . 《Osnews》. 2009年 12月 21日 . 2009年 12月 21日에 確認함 .  
  14. Lance Whitney (2014年 1月 7日). “Android device shipments to top 1 billion this year -- Gartner” .  
  15. 컴퓨팅世界 平定한 '리눅스'...커뮤니티도 살아있네 2017.10.30 http://m.zdnet.co.kr/news_view.asp?article_id=20171030170645

參考 文獻 [ 編輯 ]

外部 링크 [ 編輯 ]