728x90
반응형
SMALL

가상 운영체제에 앞서 가상 메모리 다시 짚어보기

메모리(RAM)에 필요한 것들만 가져다 놓고 곧 사용이 필요할 것 같은것들은 보조기억장치(하드디스크)에 어디있는지 주소만 대기 시킨다.

ex) 게임을 하던 도중 1번 던전을 해야해서 1번 던전에 대한 내용이 RAM에 있다. 이것을 깨면 2번 던전으로 넘어가게 될 것이다. 하지만 RAM에 굳이 2번 던전까지 가져다 놓을 필요없이 로딩하면서 2번 던전을 메모리로 불러온다. >> 틀린거 같으면 태클좀

운영체제의 발전

  1. 처리 역량
    1. 초장기 운영체제는 메모리도 작고, 작업도 단순하여 스와핑이 제한적으로 이루어짐
    2. 요즘에는 정교하고 더 복잡한 환경에서 더 많은 장치를 다룬다.
  2. 개발의 어려움과 코드 수
    1. 1975년 유닉스 운영체제 6판은 C와 어셈블리 언어 9000행으로 이루어짐
    2. 오늘날 리눅스는 1천만행이 훨씬 넘고, 수십 수년간 수천 명이 작업한 결과물
  3. 리눅스 운영체제의 기원
    1. 리누스 토르발스가 1991년 유닉스의 자신만의 버전을 새로 만들며 10000행 정도의 초안을 인터넷에 올리고 다른 사람들에게 사용하고 피드백을 요청하며 다수가 사용 시작

가상운영 체제

  1. 하드워에 개발 시 다른 운영체제 사용 가능
    1. 디크스에 여러 운영체제를 저장해 두고 컴퓨터를 컬때마다 어느 것을 실행할 지 결정할 수 있다. 이것을 ‘멀티 부트’라고 하며 애플은 ‘부트 캠프’ 라고도 한다.

  1. 그림과 같이 다른 운영체제 위에서 다른 운영체제를 실행하여 그 운영체제로 앱을 실행시킬 수 있다.
    1. 가상 운영체제 프로그램(VM웨어, 버주얼박스, 젠 등)은 게스트 운영체제로 실행할 수 있게 도와준다.
    2. 호스트는 게스트가 생성하는 요청 중 파일 시스템 접근이나 네트워크 접근 등 운영체제 권한이 필요한 요청을 가로챈다.
    3. 호스트는 작업을 수행한 다음 게스트로 되돌아간다.
    4. 호스트와 게스트가 둘다 같은 하드웨어에 맞게 컴파일되면 게스트 운영체제는 대개 하드웨어가 낼 수 있는 최고 속도로 실행되고, 거의 실체 컴퓨터상에서 직접 실행되듯 반응하는 것 처럼 느껴진다.
  2. 특이사항
    1. 그렇다면 하나의 윈도우를 구매해서 가상으로 여려대로 돌려도 될까?
    2. 돈 많은 사람은 멍청하지 않다 : 합법적으로 실행할 수 있는 가상 인스턴스 사본의 개수를 제한하고 있다.

가상 머신

  1. 진짜 컴퓨터든 모형 컴퓨터 같은 상상의 컴퓨터든, 컴퓨터인 것처럼 작동하는 프로그램을 가상 머신이라고 한다.
  2. 스프트웨어만 존재하지만 하드웨어인 것처럼 그 작동 방식을 모방한다.
  3. ex) 우리가 컴퓨터로 포켓몬스터 골드버전을 하면 TGB 애뮬레이터를 킨다. 우리는 컴퓨터안에 가짜 게임보이 게임기를 만들어 놓고 거기에다가 가짜 게임칩을 넣어서 플레이 하는 것이다.
    1. 더 나아가면 NOX도 있다. 컴퓨터에 가짜 휴대폰 깔아서 그 휴대폰에서 휴대폰 전용 앱을 구동시키는 것이다.
  4. 위 예시처럼 물리적인 장비가 필요없이 사용할 프로그램을 더 쉽고 유연하게 사용 가능하다.
  5. 클라우드 컴퓨팅은 가상 머신에 의존한다. 고객들이 사용하는 가상 머신은 그보다 더 적은 수의
  6. 물리적 컴퓨터의 지원을 받으며, 멀티코어 프로세서가 이런 종류의 작업에 적합하다.
  7. AWS는 최대 클라우드 컴퓨팅 제공 업체이다. AWS의 이익의 절반 이상이 여기서 나오며, 고객들의 작업량 변화에 맞게 서비스의 성능과 용량을 늘리거나 줄여 제공한다. (우리 프로젝트 비용이 AWS의 밥줄인 것이다.)

반대로 물리적인 컴퓨터가 아니기 때문에 기업입장에서는 필요한 만큼만 제공하여 불필요한 리소스를 낭비하지 않을 수 있고, 고객은 필요한 만큼의 서버나 저장공간만 빌리면 된다.

 


가상 머신과 가상 운영체제

출처 : https://dmsitter.tistory.com/70 : 가상 머신에 대한 사용 예시를 잘 설명해줌

결론 : 가상 머신은 물리적인 컴퓨터에서 소프트웨어로 구현된 가상의 컴퓨터이며, 가상 운영체제는 가상 머신 내에서 작동하는 가상 환경에서의 운영체제를 의미한다. 가상 머신은 가상 소프트웨어를 통해 호스트의 컴퓨터의 리소스를 가상화하고, 가상 운영체제는 가상 머신 내에서 실행되는 운영체제로써 가상 머신 내의 다른 소프트웨어와 리소스를 관리한다.

728x90
반응형
LIST
728x90
반응형
SMALL

운영체제

운영체제(Operating System, OS)는 컴퓨터 시스템의 핵심 소프트웨어로, 하드웨어와 소프트웨어 리소스를 관리하고, 사용자와 컴퓨터 사이의 인터페이스 역할을 수행한다. 이는 컴퓨터가 작동하고 사용자가 프로그램을 실행하는 데 필수적인 요소이다.

애플리케이션

운영체제(Operating System, OS) 위에서 실행되는 프로그램인 '애플리케이션'은 컴퓨터나 모바일 기기에서 사용자가 원하는 작업을 수행하기 위한 소프트웨어이다.


1. 운영체제의 시작

  • 1950년대 초에는 애플리케이션과 운영체제 간에 구별이 없었다. 컴퓨터는 한 번에 한 개의 프로그램만 실행할 수 있을 정도로 성능이 제한적이었고, 그 프로그램이 컴퓨터 전체를 점유했다.
  • 실제로 프로그래머들은 자신이 짠 프로그램 한 개를 실행하기 위해 시간대별로 컴퓨터 사용 예약을 해야만 했다. 컴퓨터가 더 복잡해짐에 따라, 비전문가가 프로그램을 실행하는 일이 너무 비효율적이라고 느껴져서 전문 운영자에게 맡겨졌고, 운영자는 프로그램을 컴퓨터에 입력하고 결과를 배부했다. 운영체제는 운영자가 이런 작업을 자동화 할 수 있도록 돕는 프로그램에서 시작되었다.
  • 운영체제는 자신이 제어하는 하드웨어가 발전됨에 따라 꾸준히 더 정교해졌다. 하드웨어 성능이 더 좋아지고 복잡해지면서, 운영체제가 하드웨어를 제어하는 데 더 많은 자원을 투입할 수 있게 되었다.

2. 운영체제의 작동 방식

이미지 출처 : https://velog.io/@underlier12/OS-01-운영체제의-역할

운영체제는 컴퓨터의 자원을 제어하고 할당한다.

  1. 프로세서를 관리하면서 현재 사용 중인 프로그램을 스케줄링하고 프로그램 간의 좐계를 조정한다.
    • 바이러스 검사나등 백그라운드 프로세스도 포함된다.
    • 일반적인 운영체제에서는 프로세스 수백 개가 동시에 실행된다.
    • 일부는 사용자가 실행한 프로그램이지만, 대부분은 일반 사용자에게는 보이지 않는 시스템 작업이다.
    • 확인을 하고 싶으면 맥OS는 활성 상태 보기, 윈도우에서는 작업관리자에 나온다.
  2. 운영체제는 주기억 장치를 관리한다.
    • 우선 메모리에 프로그램을 로드해서 프로그램이 명령어 실행을 시작 할 수 있게 해준다.
    • 동시에 벌어지는 모든일을 감당하기에 메모리 용량이 충분하지 않다면 프로그램을 일시적으로 디스크로 복사했다가, 다시 메모리에 공간이 생기면 도로 옮겨준다.
  3. 운영체제는 보조 기억 장치에 저장된 정보를 관리한다.
    • 파일 시스템이라는 운영체제의 주요 구성 요서가 우리가 컴퓨터를 사용 할 때 보는 폴더와 파일의 익숙한 계층구조를 제공한다.
  4. 운영체제는 컴퓨터에 연결된 장치들의 활동을 관리하고 조정한다.
    • 키보드와 마우스를 통해 들어오는 입력이 그 정보를 기다리고 있는 프로그램으로 전달되도록 도와준다.
    • 또한 유무선 네트워크 연결로 주고받는 통신을 처리한다. 프린터로 데이터를 보내고 스캐너에서 데이터를 가져오기도한다.

 

[CS]컴퓨터를 작동하게 만드는 운영체제

 

[CS]컴퓨터를 작동하게 만드는 운영체제

컴퓨터 시스템의 하드웨어, 소프트웨어적인 자원들을 효율적으로 운영 및 관리함으로써 사용자가 컴퓨터를 편리하고, 효과적으로 사용할 수 있도록 하는 시스템 소프트웨어입니다.컴퓨터 하드

velog.io

 

728x90
반응형
LIST
728x90
반응형
SMALL

오픈소스 출현 과정

  1. 과거에는 대부분의 소스 코드가 회사의 영업 비밀이었음.
  2. MIT의 리처드 스톨만이 GNU라는 프로젝트를 시작했다.
  3. 오픈소스를 지원하기 위해 자유 소프트웨어 재단(Free Software Foundation)이라는 비영리 단체를 만들었다.
  4. GNU에서는 *GPL이라는 저작권 라이선스에 따라 오픈소스를 배포했다.

*GPL : GPL 라이선스가 적용된 소프트웨어는 자유롭게 사용 할 수 있다. 배포된다면 배포판도 GPL의 적용을 받는다. 위반하면 법의 처벌을 받는다.(배포 중단, GPL 라이선스 강제 등)

유명한 오픈소스 프로젝트(LAMP 스택)

  1. Linux : 세계 최대 규모의 오픈소스 프로젝트
  2. Apache : 아파치 HTTP 서버, 아파치 하둡, 아파치 톰캣 등 350여 오픈소스 프로젝트
  3. MySQL : 썬마이크로시스템즈에 인수됐으나 다시 오라클에 인수되면서 오라클 자산이 됨.
  4. PHP : 오픈 소스 스크립트 언어

**MariaDB : MySQL에서 나온 것으로 몬티 와이드니어스가 썬이 오라클에 인수될 때 의견차이가 생겨 회사를 나와 개발했다. 마리아DB는 5.5버전까지는 MySQL 번호를 따랐지만 이후에는 10.x로 넘버링하여 MySQL과 차별성을 띌 것을 보여준다.

오픈소스로 돈 버는 법

EX) 레드햇

2019년 IBM에 340억 달러에 인수됨

기술 지원, 교육, 품질 보증, 시스템 통합 등 기타 서비스 이용에 요금을 청구하여 수익을 얻음

용어 정리

  1. 소스 코드 : 프로그래머가 작성하는 코드(어셈블리 언어든 고수준 언어등 상관없음)
  2. 오브젝트 코드 : 소스 코드를 프로세서에서 실행하기 적합한 형태로 컴파일한 결과
728x90
반응형
LIST

+ Recent posts