java

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ java ] in KIDS
글 쓴 이(By): hell (나누구야)
날 짜 (Date): 1997년10월25일(토) 21시56분56초 ROK
제 목(Title): 뜨거운 감자 '자바OS' 그정체를 밝힌다 (2)




 ------------------------------------------------------------------------------
 뉴스제공시각 : 08/01 00:00                   출처 : 마이크로 
 제목 : 뜨거운 감자 '자바OS' 그정체를 밝힌다 (2)
 -----------------------------------------------------------------------------
NC에서 실행하는 자바 애플리케이션과 애플릿
자바OS를 사용하는 NC는 바이트 코드 수준에서 자바 애플
리케이션과 애플릿을 실행한다.  따라서 프로그래머는  서로 
다른 운영체제와 컴퓨터 플랫폼에 대해 다른 버전의 패키지
를 작성할 필요가 없다.  또한 애플리케이션을 사용하는  각 
컴퓨터에 복사본을 저장할 필요없이  중앙에 저장된 애플리
케이션을 NC를 통해 다운로드할 수  있기 때문에 네트웍을 
통해 애플리케이션과 배포하는 것이  보다 간단하고 안전하
다. 바이트 코드의 이식성은 동일한 자바 소프트웨어를 네트
웍에 연결된 일반적인 데스크탑 컴퓨터  뿐만 아니라 NC에
서도 실행할 수 있다.
NC의 등장으로 소프트웨어  산업은 재미있는 양상을  띤다. 
프로그래머는 NC에 적합한 자바 버전의 애플리케이션을 출
시하고 있다. 예를  들면 코렐(Corel)은 자바OS를  사용하는 
네트웍에서부터 자바가 탑재된 컴퓨터에까지 이전에 작성한 
오피스 슈트 애플리케이션을 자바로 다시 작성하고 있다. 그
러나 자바OS를 사용하는 NC의 단점은 자바로 작성된 애플
리케이션만을 실행할 수 있다는 것이다.  즉, NC는 자바 애
플리케이션이 아닌 어떤 것도 실행할 수 없다는  뜻이다. 따
라서 자바OS의 사용자는 이전 제품과 소프트웨어를 사용할 
수 없다.
그러나 PC 운영체제를 사용하는 컴퓨터에서는 일반적인  운
영체제용으로 만든 애플리케이션을 실행할 수 있을 뿐만 아
니라, 자바 인터프리터를 사용해 자바 프로그램을 실행할 수 
있다. PC는 확장성이 뛰어나지만 비용이  많이 들며 유지하
기가 어렵다는 단점도 있다.
자바OS에서 실행할 수 있는 NC 애플리케이션은 많다. 이런 
일반적인 애플리케이션에는 전자우편,  스케줄링, 문서 편집
기, 스프레드시트 및 데이터베이스 액세스들이 있다. 자바는 
이들 애플리케이션을 모두 지원하며, 자바OS  기반의 NC는 
비용 측면에서도 매우 효과적이다. 그러나 자바가 모든 것을 
해결하지는 않는다. 
예를 들면 엔지니어링 설계, 영상 처리, 데스크탑 출판용 애
플리케이션은 전용 웍스테이션이나 일반 PC보다 높은  효율
을 얻을 수 없다. 다시 말해,  자바를 사용해 이런 애플리케
이션을 수행할 경우 성능과 처리  속도가 느리기 때문에 적
합하지 않은 것이다. 또한 NC에는 외부 장치, 큰 메모리 사
용 및 특별한 처리기 등도 필요하지 않기 때문에 자바 언어
나 자바OS는 이런 장치를 제공하지 않는다.

자바OS 아키텍처
자바OS는 커널, 가상기계, 디바이스 드라이버 및 그래픽 유
닛의 소프트웨어 계층으로 이루어진다. 이들 계층은  네트웍 
지원 패키지(java.net  패키지), 자바  윈도우 루틴  및 표준 
API를 구성하는 자바 클래스 계층의 아래에 위치한다. 그리
고 핫자바와 같은 사용자  인터페이스나 다른 애플리케이션
은 API 위에 있다. <그림  2>는 자바OS 계층의 구조와 상
호 연관성을 설명하고 있다. 

<그림 2> 자바OS의 계층 
자바 애플릿 및 애플리케이션
자바 클래스 자바 API 자바OS 
자바 클래스 자바 가상기계
자바 커널
하드웨어

자바OS 커널
커널은 자바OS의 핵심이며,  자바 가상기계에  많은 기능과 
루틴을 제공한다. 커널은 프로세서와 직접 연결되지만  자바 
가상기계를 사용할 수 없기  때문에 기계 코드만  포함하며, 
어셈블러나 C/C++와 같은  언어로 작성한  후 기계 코드로 
컴파일된다.
커널의 기능은 프로세서나 컴퓨터  하드웨어와 직접 작용한
다. 자바 가상기계는 하드웨어를 제어하기 위해 커널과 연결
하며 API 클래스, 드라이버 및 애플리케이션을 처리한다. 그
리고 커널은 운영체제의 다음 사항을  처리할 수 있도록 여
러 함수와 컴포넌트를 제공하고 있다.

■ 부팅 : 전원을  켜거나 리셋하는 경우의  시작 프로세스. 
대부분 부트  프로세스는 하드웨어를  테스트하고 메모리와 
장치를 초기화한다. 이  작업은 NC에서 제한된  하드웨어와 
소프트웨어 때문에 상당히 빠르게 수행한다. 부트  프로세스
는 네트웍에서 메모리로 운영체제를 로드한다. 또는  운영체
제는 롬에 탑재한 경우  네트웍에서 램으로 자바OS를 로드
할 필요가 없기 때문에 부트 프로세스는 빠르게 수행된다.
■ 인터럽트 : 어떤 하드웨어에 주의가 요구된다는 것을  프
로세서에 알리는 신호. 프로세서는 커널에서 각  인터럽트에 
대한 특정 루틴을 실행한다. 인터럽트가 발생하는 예는 사용
자가 키보드를 누를 때 신호가 컴퓨터로 전송되며, 프로세스
는 키보드 이벤트를 처리하기 위해 인터럽트된다.
■ 직접 메모리 액세스(DMA)  : 속도가 빠른 주변기기,  즉 
네트웍 인터페이스와 메모리 간의  데이터를 이동하는 하드
웨어. 커널은 이런 컴퓨터 하드웨어의 부분을 초기화해야 한
다. DMA를 사용해 메모리와 주변기기 간의  데이터를 이동
하는 루틴은 커널에 포함한다.
■ 메모리 관리 : 메모리는 객체와 변수가 선언될 때 할당되
고 더이상 필요없거나  해제되는 경우에는 다시  사용할 수 
있다. 커널의 루틴은 자바 가상기계를 위해 메모리 관리, 할
당 및 복구를 처리한다. 자바 가상기계는 이들  루틴을 사용
해 객체 생성과 가베지 컬렉션을 수행한다.
■ 쓰레드 : 자바 프로그램은 동시에 여러 개의  프로세스를 
실행할 수 있다. 커널은 프로세스가 올바른 순서로 쓰레드를 
실행하는가와 쓰레드가 올바로 시작하고 종료하는가를 확인
한다.
■ 예외처리 : 자바의 기본 에러 처리 메카니즘은  예외처리
로 커널에 있는 운영체제의 다른 부분으로 프로세스가 특별
한 처리를 수행한다.
■ 파일 시스템 : 데이터  블럭을 읽고 쓰거나 장치를  열고 
닫는 것과 같은 파일 시스템의 하위 레벨 코드는 커널에 포
함한다. 표준 API의  클래스와 메쏘드는 파일  처리를 위해 
이들 루틴을 사용한다.
[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.