Operating System — 한국어로 읽기

이야기 제목은 아직 영어로 표시되지만, 본문은 한국어입니다.

Operating System — Wonder Inventions 이십 세기 중반, 최초의 전자 컴퓨터는 기념비적이고 방 하나를 가득 채우는 기계였으며, 공학의 승리였지만 치명적인 비효율성에 시달렸습니다.

이십 세기 중반, 최초의 전자 컴퓨터는 기념비적이고 방 하나를 가득 채우는 기계였으며, 공학의 승리였지만 치명적인 비효율성에 시달렸습니다. 각 계산, 각 프로그램은 고도로 숙련된 작업자가 세심하게 수동으로 설정해야 했습니다. 이 시대는 뛰어난 인재들이 복잡한 물류 문제와 씨름하며, 원시적인 하드웨어를 기능적인 도구로 변모시키는 것을 목격했습니다. "IBM 칠백사호에 대기 중인 또 다른 작업입니다." 선임 작업자 톰슨이 펀치 카드 더미를 가리키며 말했습니다. "다음 프로그램을 위해 테이프 드라이브를 교체하고 패치 패널을 재구성하는 데만 이십 분이 걸릴 겁니다." "그럼 이십 분 동안 CPU가 유휴 상태라는 거군요." 엔지니어 데이비스가 시스템 로그를 검토하며 한숨을 쉬었습니다. "우리가 실행하는 모든 작업마다 거의 십오 분이 걸리는 셈입니다. 이 기계는 경이롭지만, 계산하는 시간보다 우리를 기다리는 데 더 많은 시간을 보냅니다." 톰슨은 심각하게 고개를 끄덕였습니다. "우리의 소중한 계산 주기가 이러한 수동 전환 과정에서 사라지고 있습니다. 이러한 작업을 관리할 더 빠르고 통합된 방법이 필요합니다."

새로운 작업을 위해 컴퓨터를 준비하는 힘든 과정은 엄청난 기술적, 경제적 손실이었습니다. 복잡한 과학 계산이든 간단한 데이터 분류든, 모든…

새로운 작업을 위해 컴퓨터를 준비하는 힘든 과정은 엄청난 기술적, 경제적 손실이었습니다. 복잡한 과학 계산이든 간단한 데이터 분류든, 모든 프로그램은 기계를 완전히 수동으로 재초기화해야 했습니다. 이는 실제 계산이 시작되기 전에 올바른 컴파일러를 로드하고, 입출력 장치를 구성하고, 메모리 파티션을 설정하는 것을 의미했습니다. 이 '설정 시간'은 엄청나게 비싼 기계들이 종종 유휴 상태로 사람의 개입을 기다리며, 그 엄청난 처리 능력이 일시적으로 잠들어 있음을 의미했습니다. "이것 좀 보세요." 어둡고 뒤로 묶은 머리에 집중된 표정을 한 이십대 후반의 여성 기술자 아냐 샤르마가 실용적인 회색 작업복을 입고 기계 사용을 상세히 보여주는 큰 스케줄 보드를 가리키며 말했습니다. "작업 A가 끝나면 재보정을 위해 십오 분의 공백이 있고, 그 다음 작업 B, 또 다른 십 분의 공백이 있어요. 마치 모든 품목 사이에 조립 라인이 완전히 멈추는 공장을 운영하는 것 같아요." 안경을 고쳐 쓴 엔지니어 데이비스가 고개를 저었습니다. "정확해요. 우리는 매일 귀중한 계산 시간을 몇 시간씩 잃고 있어요. 프로세스 사이의 이 '데드 타임'은 엄청나요. 기계는 우리를 기다리고 있고, 우리가 병목 현상이에요." "이렇게 강력한 도구에게는 용납할 수 없는 일입니다." 톰슨이 천천히 걸으며 덧붙였습니다. "우리는 이러한 전환을 자동으로 관리하고, 작업을 대기열에 넣고, 이 비싼 다운타임을 줄일 수 있는 시스템이 필요합니다."

비효율적인 기계 활용의 냉혹한 현실은 컴퓨팅 개척자들 사이에서 급진적인 비전을 촉발했습니다. 만약 기계 자체가 자체 프로세스를 관리할 수 있다면…

비효율적인 기계 활용의 냉혹한 현실은 컴퓨팅 개척자들 사이에서 급진적인 비전을 촉발했습니다. 만약 기계 자체가 자체 프로세스를 관리할 수 있다면 어떨까? 그 아이디어는 컴퓨터 메모리에 상주하면서 다른 프로그램의 실행을 조율하고, 자원 할당을 처리하며, 인간의 개입을 최소화하는 '마스터 프로그램'을 만드는 것이었습니다. '감독' 또는 '모니터' 프로그램이라는 이 개념은 운영 체제의 지적 선구자였으며, 혼란스러운 수동 작업을 능률적이고 자동화된 워크플로우로 전환할 것을 약속했습니다. "우리는 기계 내부 작업의 교통 관제사 역할을 할 감독 프로그램이 필요합니다." 깔끔하게 손질된 갈색 머리에 세련된 천구백오십년대 비즈니스 정장을 입은 삼십대 후반의 뛰어난 컴퓨터 과학자 에블린 리드 박사가 제안했습니다. 그녀는 화이트보드의 복잡한 회로도를 가리켰습니다. "작업을 받고, 로드하고, 실행하고, 다음 작업을 위해 기계를 준비하는 상주 프로그램을 상상해 보세요. 이 모든 것이 작업 사이에 단 한 번의 인간의 손길도 없이 말이죠." 짧은 검은 머리와 안경을 쓰고 빳빳한 흰 셔츠를 입은 이십대 후반의 젊고 성실한 프로그래머 데이비드 김 엔지니어는 생각에 잠겼습니다. "다른 프로그램을 관리하는 프로그램이라. 마치 기계에 자체 업무를 관리할 뇌를 주는 것 같군요. 그 엄청난 복잡성... 메모리 보호, 입출력 처리, 오류 복구..." 리드 박사는 미소 지었습니다. "정확합니다. 레오나르도 다빈치가 한때 '단순함은 궁극의 정교함이다'라고 말했듯이, 우리의 과제는 단순히 자동화하는 것이 아니라, 기계의 본질적인 복잡성을 처리할 수 있는 근본적인 우아함을 가진 이 시스템을 설계하는 것입니다. 내부 작동이 복잡하더라도 프로그래머에게는 단순하게 보여야 합니다."

이론적인 아이디어들이 실제적인 해결책으로 합쳐지기 시작했습니다. 모니터 시스템의 가장 초기이자 가장 영향력 있는 구현 중 하나는 천구백오십육년에…

이론적인 아이디어들이 실제적인 해결책으로 합쳐지기 시작했습니다. 모니터 시스템의 가장 초기이자 가장 영향력 있는 구현 중 하나는 천구백오십육년에 제너럴 모터스와 노스 아메리칸 에비에이션의 로버트 패트릭이 아이비엠 칠백사(IBM 704)를 위해 개발한 지엠-엔에이에이 아이/오(GM-NAA I/O) 시스템이었습니다. 이 선구적인 시스템은 수동 설정을 자동화된 작업 순서 지정으로 대체하는 중요한 단계를 밟았습니다. 이는 값비싼 메인프레임의 작동을 수동으로 공급하는 과정에서 보다 연속적이고 배치 지향적인 워크플로우로 변화시킨 근본적인 도약이었습니다. "지엠-엔에이에이 아이/오 시스템은 아이비엠 칠백사(IBM 704)에서의 우리 작업을 진정으로 혁신했습니다." 짧고 실용적인 갈색 머리에 안경을 쓰고, 단정하게 넣어 입은 반소매 셔츠와 넥타이를 맨 삼십대 후반의 집중력 있는 엔지니어 로버트 패트릭이 분주한 실험실에서 방문한 동료에게 설명했습니다. "우리의 목표는 간단했습니다. 배치 작업 사이에 수동 개입을 없애는 것이었죠. 이전에는 각 프로그램 사이에 몇 분을 낭비했습니다." 짧은 검은 머리에 단정한 블라우스를 입은 삼십대 초반의 동료 사라 첸 엔지니어는 '상주 모니터(Resident Monitor)'를 보여주는 다이어그램을 가리키며 말했습니다. "그럼 이 '모니터'는 메모리에 계속 남아 있군요. 작업 제어 카드를 읽고, 사용자 프로그램을 로드한 다음, 작업이 끝나면 제어권을 반환하는 건가요?" "정확합니다." 패트릭이 확인했습니다. "그것은 연속적인 루프입니다. 모니터 자체는 프로그램이지만, 그 역할은 다른 프로그램의 실행을 관리하는 것입니다. 이는 유휴 시간을 극적으로 줄이고 처리량을 증가시킵니다. 더 이상 매 실행마다 테이프나 스위치를 더듬거릴 필요가 없습니다."

GM-NAA I/O 시스템은 단순하지만 심오한 원리인 배치 처리를 기반으로 작동했습니다. 작업자들은 한 번에 하나의 프로그램을 로드하는 대신…

GM-NAA I/O 시스템은 단순하지만 심오한 원리인 배치 처리를 기반으로 작동했습니다. 작업자들은 한 번에 하나의 프로그램을 로드하는 대신, 각각 특수 제어 카드가 앞에 오는 여러 작업을 하나의 '배치'로 묶었습니다. 그러면 상주 모니터 프로그램이 이 제어 카드를 순서대로 읽고, 올바른 사용자 프로그램을 자동으로 로드하고, 실행한 다음, 다음 배치 작업으로 넘어가기 전에 정리했습니다. 이 자동화된 시퀀싱은 초기 컴퓨팅을 괴롭혔던 값비싼 대기 시간을 최소화하여 CPU를 지속적으로 작동하게 함으로써 기념비적인 진전이었습니다. "작동 방식은 이렇습니다." 패트릭이 제어 콘솔에서 시연하며 설명했습니다. "우리는 이 특수 제어 카드로 명확하게 구분된 프로그램 배치를 준비합니다. 모니터 프로그램 자체는 작지만 강력합니다. 항상 기계 메모리의 작은 부분에서 실행되고 있습니다." 첸은 천공 카드 더미가 리더기에 공급되는 것을 지켜보았습니다. "그럼 모니터가 카드를 읽고, 프로그램을 식별하고, 리소스를 할당한 다음, 사용자 프로그램에 제어권을 넘겨주는 건가요?" "정확합니다." 패트릭이 확인했습니다. "사용자 프로그램이 작업을 완료하면, 제어권을 다시 우리 모니터로 넘겨주는 특정 명령을 실행합니다. 그러면 모니터는 다음 작업 카드를 확인하고, 다음 프로그램을 로드하며, 이 주기가 계속됩니다. 이 자동화된 핸드오프가 유휴 시간을 최소화하는 핵심입니다. 우리는 수동 정지 시퀀스를 흐르는 연속적인 컴퓨팅 스트림으로 바꾼 것입니다."

일괄 처리가 효율성을 크게 향상했지만, 컴퓨터는 여전히 한 번에 하나의 프로그램만 실행했습니다. 다음 논리적 도약은 다중 프로그래밍이었습니다.

일괄 처리가 효율성을 크게 향상했지만, 컴퓨터는 여전히 한 번에 하나의 프로그램만 실행했습니다. 다음 논리적 도약은 다중 프로그래밍이었습니다. 여러 프로그램이 동시에 메모리에 상주하도록 허용하고, CPU가 그들 사이를 빠르게 전환하는 것이었습니다. 이는 다중 사용자가 컴퓨터와 동시에 상호 작용할 수 있도록 다중 프로그래밍을 확장한 시분할과 결합하여, 컴퓨팅을 단일의 일괄 처리 지향 작업에서 강력하고 상호 작용적인 유틸리티로 극적으로 변화시켰습니다. 천구백육십일년 MIT의 CTSS(Compatible Time-Sharing System)와 같은 초기 노력은 단일 기계가 많은 사용자에게 효과적으로 서비스를 제공할 수 있음을 보여주며 중추적인 역할을 했습니다. "진정한 도전은 단순한 일괄 처리를 넘어 CPU 활용도를 극대화하는 것이었습니다." 짧고 곱슬거리는 회색 머리와 날카롭고 지적인 눈을 가진 사십대 초반의 선구적인 컴퓨터 과학자 앨리스 스털링 박사가 트위드 재킷을 입고 MIT 팀에게 설명했습니다. "왜 CPU는 한 프로그램의 I/O 작업이 완료되기를 기다리며 유휴 상태로 있어야 합니까? 다른 작업을 할 수 있는데 말입니다." 단정한 머리와 열정적인 표정을 가진 이십대 초반의 젊은 프로그래머 마이클 첸이 대학 스웨터를 입고 몸을 앞으로 기울였습니다. "그럼, 여러 프로그램을 한 번에 메모리에 로드하고, OS가 CPU를 그들 사이에서 빠르게 전환한다는 말씀이시죠? 하지만 메모리 충돌은 어떻게 하죠? 그리고 프로그램 간의 공정성은 어떻게 보장합니까?" 스털링 박사가 고개를 끄덕였습니다. "훌륭한 질문입니다. 이는 정교한 메모리 관리와 CPU 스케줄링을 필요로 합니다. OS는 심판이 되어 자원을 중재하고, 각 프로그램에 프로세서 시간의 공정한 몫을 제공합니다. 이는 커널의 핵심 책임이며, 프로그램들을 서로로부터 그리고 하드웨어의 복잡성으로부터 보호하는 중요한 추상화 계층입니다."

모든 운영 체제의 핵심에는 가장 기본적인 구성 요소인 커널이 있습니다. 커널은 CPU, 메모리, 입출력 장치와 같은 컴퓨터의 가장 중요한 자원을…

모든 운영 체제의 핵심에는 가장 기본적인 구성 요소인 커널이 있습니다. 커널은 CPU, 메모리, 입출력 장치와 같은 컴퓨터의 가장 중요한 자원을 관리합니다. 커널은 복잡한 하드웨어 세부 사항을 응용 프로그램에서 추상화하여 일관되고 안전한 환경을 제공하는 중간 계층 역할을 합니다. 주요 메커니즘으로는 어떤 프로그램이 프로세서를 얼마나 오래 사용할지 결정하는 CPU 스케줄링, 각 프로그램에 메모리 세그먼트를 할당하고 보호하는 메모리 관리, 키보드, 디스플레이, 저장 장치와 같은 주변 장치와의 통신을 제어하는 I/O 관리가 있습니다. "커널은 작업의 두뇌이자 가장 먼저 로드되고 가장 마지막으로 메모리를 떠나는 프로그램입니다." 백발이 섞인 머리를 뒤로 묶고 전문적이고 다소 엄격한 정장을 입은 사십대 후반의 여성인 수석 설계자 레나 페트로바 박사가 새로운 엔지니어링 신입사원에게 설명했습니다. "CPU에서 누구의 차례인지 결정하는 프로세스 스케줄링부터 모든 메모리 바이트와 모든 주변 장치 관리에 이르기까지 모든 것을 처리합니다." 두꺼운 매뉴얼을 들고 열정적이고 주의 깊게 경청하던 이십대 초반의 신입 엔지니어 알렉스 존슨이 대답했습니다. "그럼 프로그램이 파일을 요청하면 그 요청을 실제 디스크 작업으로 변환하는 것이 커널이라는 말씀이시죠? 그리고 한 프로그램이 다른 프로그램의 메모리를 덮어쓰는 것도 방지하고요?" "정확합니다, 알렉스." 페트로바 박사가 동심원을 보여주는 다이어그램을 가리키며 확인했습니다. "커널은 특권적인 '링 제로'에서 작동하여 절대적인 제어권을 가지며, 응용 프로그램은 '링 쓰리'에서 실행됩니다. 이 보호 메커니즘은 매우 중요합니다. 이는 결함 있는 응용 프로그램이 전체 시스템을 충돌시키지 못하게 한다는 것을 의미합니다. 이 추상화 계층이 현대 컴퓨팅을 안정적이고 효율적으로 만드는 요인입니다."

천구백육십년대 후반, 운영 체제의 발전은 벨 연구소에서 유닉스가 탄생하면서 전환점을 맞이했습니다. 주로 켄 톰슨과 데니스 리치가 개발한 유닉스는…

천구백육십년대 후반, 운영 체제의 발전은 벨 연구소에서 유닉스가 탄생하면서 전환점을 맞이했습니다. 주로 켄 톰슨과 데니스 리치가 개발한 유닉스는 이전 운영 체제보다 더 단순하고, 더 우아하며, 결정적으로 더 이식성이 뛰어난 운영 체제로 설계되었습니다. 특히 명령줄 인터페이스, 계층적 파일 시스템, 그리고 프로세스 간 통신을 위한 강력한 파이프 개념에 중점을 둔 혁신적인 디자인은 유닉스를 놀랍도록 유연하고 적응력 있게 만들었습니다. 유닉스의 효율성과 명확한 아키텍처는 초기 컴퓨팅에서 식별되었던 '유휴 시간'과 비효율성 문제를 직접적으로 해결하여 전례 없는 자원 활용을 가능하게 했습니다. "우리는 단순하고, 우아하며, 이식성이 뛰어난 것을 원했습니다." 짙고 헝클어진 머리에 안경을 쓰고 캐주얼한 버튼업 셔츠를 입은 이십대 후반의 집중력 있는 엔지니어 켄 톰슨이 데니스 리치에게 설명했습니다. 그들은 텔레타이프 단말기 앞에 웅크리고 앉아 있었고, 종이 출력물에는 코드가 스크롤되고 있었습니다. "멀틱스는 너무 야심 차고, 너무 복잡했습니다. 우리는 운영 체제 자체가 작고 집중된 도구들의 모음인 시스템이 필요했습니다." 특유의 수염과 사려 깊은 표정을 한 이십대 후반의 데니스 리치는 단순한 셔츠를 입고 명령어를 입력했습니다. "그리고 바로 그곳에서 파일 시스템과 파이프가 진정으로 빛을 발합니다. 배관처럼 프로그램을 연결하는 것, 즉 하나의 출력이 다른 하나의 입력이 되는 것입니다. 그것은 단순함에서 엄청난 힘을 만들어냅니다." "정확합니다." 톰슨은 화면에 시선을 고정한 채 확인했습니다. "강력한 커널과 쉽게 결합할 수 있는 유틸리티 세트를 설계함으로써 우리는 새로운 수준의 생산성을 열었습니다. 복잡한 설정으로 인한 낭비되는 주기는 더 이상 없습니다. 유닉스는 기계의 시간을 효과적으로 최적화하고, 프로세스를 원활하게 관리하며, 개발자들이 단순한 구성 요소로 복잡한 시스템을 구축할 수 있도록 합니다."

유닉스와 같은 선구적인 운영 체제가 확립한 원칙들은 다음 세대의 컴퓨팅에 지대한 영향을 미쳤습니다. 마이크로프로세서가 등장하여 더 작고 저렴한…

유닉스와 같은 선구적인 운영 체제가 확립한 원칙들은 다음 세대의 컴퓨팅에 지대한 영향을 미쳤습니다. 마이크로프로세서가 등장하여 더 작고 저렴한 컴퓨터가 가능해지면서, 강력하고 사용자 친화적인 운영 체제의 필요성이 가장 중요해졌습니다. CP/M, MS-DOS, 그리고 이후의 Apple DOS 및 Macintosh Operating System과 같은 시스템들은 개인용 컴퓨터에 정교한 자원 관리와 사용자 상호작용을 제공했습니다. 이러한 변화는 컴퓨팅 능력에 대한 접근을 민주화하여, 전문 연구실과 기업 데이터 센터에서 전 세계의 가정, 사무실, 대학으로 컴퓨팅을 확산시켰습니다. "이거 정말 대단해요! 직접 명령어를 입력하고 즉각적인 결과를 볼 수 있다니요!" 스무 살 초반의 곱슬거리는 검은 머리를 가진 마리아 로드리게스 학생이 캐주얼한 천구백팔십년대 스웨터를 입고 대학 연구실의 초기 Apple II 컴퓨터에 앉아 외쳤습니다. "교수님들이 설명하시는 배치 작업과는 달라요. 마치 컴퓨터와 대화하는 것 같아요." 스무 살 초반의 곧은 검은 머리와 사려 깊은 표정을 가진 그녀의 급우 데이비드 리가 데님 재킷을 입고 몸을 기울였습니다. "그게 바로 운영 체제의 힘이야, 마리아. 모든 것을 밑에서 관리해주니까 우리는 프로그램에만 집중할 수 있는 거지. IBM PC의 MS-DOS나 Macintosh의 그래픽 인터페이스는 훨씬 더 쉽게 만들어줘. 전문가들뿐만 아니라 모든 사람이 컴퓨팅에 접근할 수 있게 해주는 거야." "그렇습니다." 우아한 회색 머리와 아는 듯한 미소를 가진 쉰 살의 엘레노어 밴스 교수님이 블레이저를 입고 말했습니다. "OS는 우리와 하드웨어 사이에 직관적인 계층을 제공합니다. 그것은 전문가를 위한 도구를 대중을 위한 유틸리티로 변화시켰습니다. 이것은 단순히 더 빠른 계산에 관한 것이 아니라, 개인에게 힘을 실어주는 것에 관한 것입니다."

오늘날 운영체제는 우리 디지털 세상의 보이지 않는 설계자이자, 우리가 상호작용하는 거의 모든 기술을 지탱하는 필수적인 계층입니다.

오늘날 운영체제는 우리 디지털 세상의 보이지 않는 설계자이자, 우리가 상호작용하는 거의 모든 기술을 지탱하는 필수적인 계층입니다. 전 세계 네트워크를 구동하는 강력한 서버부터 우리 주머니 속 스마트폰에 이르기까지, 자동차와 의료 기기의 임베디드 시스템부터 클라우드 컴퓨팅의 복잡한 인프라에 이르기까지, 운영체제는 방대한 컴퓨팅 자원을 관리하고, 할당하며, 보호합니다. 운영체제는 혼란스러운 하드웨어를 조직적이고 지능적인 시스템으로 바꾸려 했던 선구적인 엔지니어들의 유산으로, 효율성, 안정성, 보안을 보장하는 조용하고 끊임없는 오케스트레이터입니다. "내레이션은 주로 시각적이며, 몽타주 장면에 짧고 통합된 라벨이 붙어 있습니다."