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를 메모리에 적재한 후 실행하는 것이다.