////
Search
Duplicate
🌙

Chapter 07. 프로그램은 어떤 환경에서 살아가는가?

01. OS와 하드웨어가 프로그램의 작동 환경을 결정한다!

운영 체제와 하드웨어가 프로그램이 작동하기 위해 필요한 환경을 결정한다.

02. 하드웨어의 차이를 뛰어넘은 윈도우

기종마다 다르게 구성된 하드웨어를 윈도우가 어플리케이션을 대신해서 조작해주기 때문이다.
그러나 이런 혜택을 보기 위해선 자신이 사용하는 기종에 따라 전용 윈도우를 설치해야 한다.

03. API는 OS마다 다르다!

어플리케이션에서 OS로 명령어를 내리는 방법을 규정한 것을 API라고 부른다.
보통 API는 키보드 입력, 마우스 입력, 화면 출력, 파일 입출력 등과 같이 주변 기기와 입출력을 감지 및 제어하는 기능을 제공한다.

04. CPU의 차이까지도 극복한 Ports

UNIX 계열 OS인 FreeBSD에는 Ports라는 것이 있는데, 이를 이용하면 어플리케이션의소스 코드를 현재의 하드웨어에 맞게 컴파일해서 실행할 수 있는 네이티브 코드를 얻을 수 있다.
필요로 하는 어플리케이션의 소스 코드가 하드 디스크에 없다면 Ports는 자동으로 FTP를 이용해서 인터넷에 연결된 FTP 사이트로부터 소스 코드를 다운로드하게 되어 있다.

05. 에뮬레이터로 다른 OS용 프로그램을 즐겨 보자!

이식(porting)을 하지 않고 다른 OS용 프로그램을 사용할 수 있는 방법도 있는데, 이는 바로 에뮬레이터라는 소프트웨어를 이용하는 것이다.

06. Java가 어떤 OS와 하드웨어도 두렵지 않은 이유

Java는 프로그래밍 언어로서의 Java와 프로그램의 실행 환경으로서의 Java라는 두 가지 의미를 가진다.
Java는 소스 코드를 컴파일해서 바이트 코드로 만드는데, 이 바이트 코드는 특정 마이크로프로세서에서만 사용 가능한 네이티브 코드가 아닌 폭넓게 사용될 수 있는 코드다.
이때 생성되는 바이트 코드의 실행 환경을 JVM이라고 한다.

07. OS를 실행시켜주는 부트 스트랩

프로그램이 작동되는 환경에는 보통 하드웨어와 OS 외에도 BIOS라고 부르는 요소가 포함되어 있는데, 이는 ROM 등에 기록되어 컴퓨터 본체에 내장된 프로그램이다.
키보드와 디스크, 그래픽 카드 등을 제어하면서 부트 스트랩 로더라는 기능을 가지고 있다.
CPU와 메모리, 그리고 디스크 등을 간단히 진단한 후 부트 스트랩 로더가 실행되는데, 이는 하드 디스크 등에 기록된 OS를 메모리에 적재한 후 실행하는 것이다.