History로 이해하는 운영체제
이해하기 쉽고, 장황하지 않은 자료를 기반으로 강의를 진행합니다.
잔재미코딩 소식 공유
좀더 제약없이, IT 컨텐츠를 공유하고자, 자체 온라인 강의 사이트와 유투브 채널을
오픈하였습니다
응원해주시면, 곧 좋은 컨텐츠를 만들어서 공유하겠습니다
응원해주시면, 곧 좋은 컨텐츠를 만들어서 공유하겠습니다
● 잔재미코딩 유투브 오픈
[구독해보기]
2. History로 이해하는 운영체제¶
1950년대¶
ENIAC: 첫 번째 컴퓨터¶
운영체제가 없었습니다.¶
- 1개의 응용 프로그램만 실행
- 응용 프로그램이 시스템 자원을 직접 제어
1960년대 초기¶
- 실행할 프로그램이 많아짐
- 배치 처리 시스템(batch processing system) 출현
배치 처리 시스템 (batch processing system)¶
- 여러 응용 프로그램을 등록시켜놓으면, 순차적으로 실행하는 시스템
- 배치 처리 시스템을 기반으로 운영체제가 출현
1960년대 후반¶
- 새로운 개념이 제안됨
- 시분할 시스템 (Time Sharing System)
- 멀티 태스킹 (Multi Tasking)
실제 구현은 1970년대에 진행됨
시분할 시스템과 멀티 태스킹¶
- 응용 프로그램이 CPU를 사용하는 시간을 잘개 쪼개서, 여러 개의 응용 프로그램을 동시에 실행하는 기법
- 시분할 시스템: 다중 사용자를 지원하고, 컴퓨터 응답 시간을 최소화하는 시스템
- 멀티 태스킹: 단일 CPU에서, 여러 응용 프로그램의 병렬 실행을 가능케 하는 시스템
- 보통은 시분할 시스템 = 멀티 태스킹
멀티 프로그래밍: 최대한 CPU를 많이 활용하도록 하는 시스템 (이후 강의에서 설명)
배치 처리 시스템의 단점¶
- 컴퓨터 응답 시간 (response time)이 오래 걸릴 수 있다. (앞단에 실행시간이 많이 필요로 하는 응용 프로그램이 실행될 경우)
- 실행 시간도 오래걸릴 수 있습니다. (CPU가 필요없음에도 응용 프로그램이 CPU를 점유할 수 있기 때문입니다.)
시분할 시스템과 배치 처리 시스템¶
- 시분할 시스템/멀티 태스킹
- 핵심 기술: 시간을 잘게 쪼개서, 여러 응용 프로그램을 실행
- 컴퓨터 응답 시간을 줄일 수 있음 (시분할 시스템, 다중 사용자를 지원)
- 결과적으로, 사용자가 느낄 때에는, 여러 응용 프로그램이 동시에 실행되는 것처럼 보인다. (멀티 태스킹)
- 핵심 기술: 시간을 잘게 쪼개서, 여러 응용 프로그램을 실행
1970년대¶
제대로된 운영체제가 나왔다
UNIX (유닉스) OS¶
- 미국 AT&T 사의 벨 연구소
- 켄톰슨, 데니스 리치
- 데니스 리치: C언어를 개발
데니스 리치 출처: https://youtu.be/H4YRPdRXKFs
쉬어가기: 운영체제 개발에 C 언어가 필요했던 이유¶
1970년대 이전: Assembly 언어로 소프트웨어 개발
- CPU(명령어), Memory(주소)
- 컴퓨터마다 각각 다시 개발해줘야 하는 단점
- 프로그래밍 복잡도가 높음
1970년대 C언어가 개발된 후:
- 컴파일러: 다시 작성할 필요가 없음
- 프로그래밍 복잡도는 낮음
C 언어를 기반으로 운영체제를 개발했다
UNIX 특징¶
- 현대 운영체제의 기본 기술을 모두 포함한 최초의 운영체제
- 멀티 태스킹, 시분할 시스템, 멀티 프로그래밍
- 다중 사용자 지원
- 멀티 태스킹, 시분할 시스템, 멀티 프로그래밍
UNIX는 어떻게 생겼나? 출처: https://youtu.be/Aj1n2_qEq5k
1980년대 - 개인용 컴퓨터¶
- 개인용 컴퓨터 시대
- 1980년대 이전: 대형 컴퓨터를 여러 명이 접속해서 사용 (UNIX)
- 1980년대 ~: Personal Computer (PC)
1980년대¶
- 용어 이해: CLI와 GUI
- CLI (Command Line Interface): 터미널 환경
- GUI (Graphical User Interface): GUI 환경
CLI vs GUI¶
- CLI: 키보드, 검은 화면
- GUI: 마우스
1980년대: CLI --> GUI¶
- 1980년대 초반: 아직 터미널 환경
Apple VS Microsoft OS 출처: https://youtu.be/f_Q0XPher3o
- 1980년대 중후반: GUI 환경 (마우스)
Macintosh: 마우스를 사용한 OS 출처: https://www.youtube.com/watch?v=cvjLc24VbI8
Apple Macintosh Commercials 출처: https://www.youtube.com/watch?v=I1YTahnDy1Y
1990년대¶
- 응용 프로그램 시대 by GUI 환경, 개인용 컴퓨터 (사용자 증대)
- 엑셀, 워드 프로세서 등등
- Windows OS 대중화
Windows 95 Commercials 출처: https://www.youtube.com/watch?v=lAkuJXGldrM
네트워크 기술 발전 - 월드와이드웹(WWW) 인터넷 대중화
오픈 소스 운동 활성화 시작
- UNIX 계열 OS + 응용 프로그램 자체 개발, 소스 오픈
- LINUX (리눅스) 운영체제, 소스 오픈, 무료
쉬어가기: Killer Application¶
- 위닝(축구 게임) 게임 프로그램을 위해 플레이스테이션 기기를 구매했습니다.
- 엑셀 프로그램을 사용하기 위해서, Windows 컴퓨터를 구매했습니다.
2000년대 이후¶
오픈 소스 활성화
- LINUX (리눅스) 운영체제
- Apache (아파치, 웹서버)
- MySQL (데이터베이스)
- 요즘... 안드로이드, 딥러닝, 데이터사이언스, IoT 관련
가상 머신, 대용량 병렬 처리 등 활성화
정리1¶
- 1950년대: 운영체제 없음 (프로그램이 시스템 자원 직접 제어)
- 1960년대: 배치 처리 시스템
- 1970년대: 시분할 시스템/멀티 태스킹 시스템 - UNIX OS (C 언어)
- 1980년대: GUI, 개인용 컴퓨터
- 1990년대: 다양한 응용 프로그램, 인터넷 발달, 오픈 소스 운동 활성화
- 2000년대: 오픈 소스 활성화, 가상 머신, 대용량 병렬 처리 등
정리2¶
- 운영체제는 응용 프로그램과 시스템 자원을 제어하고, 관리한다.
- 응용 프로그램(Application) 용어 이해
- 배치 처리 시스템, 시분할 시스템, 멀티 태스킹 개념
- CLI(터미널) vs GUI 환경 용어 이해
- History 전반은 가볍게만 알아두기