극초단파

Microwindows

컴퓨팅에서 나노-XPC, 임베디드 시스템[1][2] 또는 PDA에서 사용할 수 있을 만큼 충분한 기능을 갖춘 윈도우 시스템이다.[3][4]그것은 현대적인 그래픽 윈도우 설정 환경의 특징을 더 작은 장치와 플랫폼에 도입하는 것을 목표로 하는 오픈 소스 프로젝트다.윈도우 상표에 대한 마이크로소프트의 법적 위협 때문에 이 프로젝트는 마이크로파인도우즈에서 이름을 바꾸었다.

개요

나노-X 윈도우 시스템은 휴대성이 뛰어나고, C로 완전히 쓰여져 있다.인텔 16, 32, 64비트 CPU, 브로드컴 BCM2837 ARM Cortex-A53, MIPS R4000(NEC Vr41xx) StrongARM 및 Power에 포팅되었다.휴대용 PC와 포켓 PC에서 발견된 PC 칩.

나노-X 윈도 시스템은 현재 커널 프레임 버퍼를 지원하는 Linux 시스템에서 실행되거나 X 윈도 데스크톱 위에서 마이크로파인도스 애플리케이션을 실행할 수 있는 X11 드라이버를 사용하고 있다.이 드라이버는 데스크탑 디스플레이 특성과 무관하게 데스크탑 디스플레이에서 직접 대상 시스템의 디스플레이 특성을 사용하여 응용 프로그램을 미리 볼 수 있도록 모든 전자레인지의 트루컬러와 팔레트 모드를 에뮬레이션한다.또한 Windows, Emscripten, Android(Allegro 라이브러리 기반), MS-DOS에 포팅되어 있으며, Elegidows 화면 드라이버는 SDL1 SDL2 라이브러리와 AllegroSVGAlib 라이브러리를 기반으로 작성되었다.VESAVGA 16 컬러 4 비행기 드라이버도 있다.

건축

레이어드 디자인

마이크로파인도스 건축

마이크로파인도스는 본질적으로 구현의 필요에 맞게 다른 레이어를 사용하거나 다시 쓸 수 있도록 하는 레이어드 디자인이다.[5]가장 낮은 수준에서 화면, 마우스/터치패드키보드 드라이버는 실제 디스플레이 및 기타 사용자 입력 하드웨어에 대한 액세스를 제공한다.중간 단계에서는 라인 드로잉, 영역 채우기, 다각형, 클리핑, 컬러 모델 등을 지원하는 휴대용 그래픽 엔진이 구현된다.상위 레벨에서는 그래픽 애플리케이션 프로그래머에 대한 액세스를 제공하는 3개의 API가 구현된다.현재 마이크로파인도스는 Xlib, Nano-X, Windows Win32/WinCE GDI API를 지원한다.그러나 이러한 API는 기능이 축소되어 Win32 및 X Window 시스템과의 긴밀한 호환성을 제공한다.이러한 API는 프로그램을 다른 시스템에서 쉽게 포팅할 수 있게 해준다.

장치 드라이버

장치 드라이버 인터페이스는 device.h에 정의되어 있다.마이크로파인도우의 주어진 구현은 적어도 하나의 화면, 마우스, 키보드 드라이버를 시스템에 연결시킬 것이다.그런 다음 장치 독립적인 그래픽 엔진 코어의 중간 레벨 루틴은 장치 드라이버를 직접 호출하여 하드웨어별 작업을 수행한다.이 설정은 전체 시스템의 작동 방식에 영향을 주지 않고 다양한 하드웨어 장치를 마이크로파인도스 시스템에 추가할 수 있게 한다.

응용 프로그램 프로그래머 인터페이스

마이크로파인도스는 현재 세 가지 다른 API를 지원한다.이 루틴 집합은 클라이언트-서버 활동, 제목 표시줄 그리기, 닫기 상자 등과 같은 윈도우 관리자 활동과 그래픽 출력에 대한 프로그래머의 요청을 처리한다.이러한 API는 핵심 그래픽 엔진 루틴과 장치 드라이버 위에서 실행된다.

NX11 API

NX11 API는 X Window API와 호환된다.Nano-X API를 기반으로 Nano-X API에서 이용할 수 있는 기능을 이용한 Xlib 기능을 제공한다.별도의 라이브러리로 컴파일하거나 나노-X 라이브러리와 함께 libPX11이라는 단일 라이브러리로 컴파일할 수 있다.모두 180개의 Xlib 기능과 구현되지 않은 추가 기능에 대한 스텁을 제공한다.

NX11 API를 기반으로 FLTK 그래픽 사용자 인터페이스 라이브러리를 사용하여 응용 프로그램에 대한 GUI를 제공할 수 있다.나노리눅스 배포는 NX11 API와 FLTK를 활용해 19MB의 디스크 공간을 활용해 리눅스 운영체제를 구현한다.

나노-X API

나노-X API는 처음에 데이비드 벨이 작성한 미니-x 서버를 본떠 만든 것으로, MINIX 운영체제에 X를 재구성한 것이다.X Window System Xlib API를 느슨하게 따르고 있지만, 이름은 모두 X...()가 아닌 GrXX()와 함께 한다.마이크로파인도스 위에 있는 API의 기본 모델은 화면, 키보드, 마우스 드라이버를 초기화한 다음 이벤트를 기다리는 선택() 루프에 매달려 있는 것이다.이벤트가 발생했을 때, 키보드나 마우스 활동과 같은 시스템 이벤트인 경우, 이 정보는 노출 이벤트, 페인트 메시지 등으로 변환된 사용자 프로그램으로 전달된다.사용자가 그래픽 작동을 요청하는 경우 매개변수가 디코딩되어 적절한 GdXXX 엔진 루틴으로 전달된다.창 대 원시 그래픽 작업의 개념은 이 API 수준에서 처리된다는 점에 유의하십시오.즉, API는 창이 무엇인지, 좌표계가 무엇인지 등에 대한 개념을 정의한 다음 좌표를 모두 "화면 좌표"로 변환하여 핵심 GdXX 엔진 루틴으로 전달하여 실제 작업을 한다.또한 이 레벨은 그래픽 또는 디스플레이 컨텍스트를 정의하고 클리핑 정보를 포함한 정보를 핵심 엔진 루틴으로 전달한다.

마이크로파인도스 API

마이크로소프트 Win32와 WinCE GDI 표준을 준수하고자 하는 API는 마이크로파인도스 API이다.[6]현재 대부분의 그래픽 그리기와 클리핑 루틴은 물론 자동 창 제목 표시줄 그리기와 창 끌기 동작이 지원되고 있다.마이크로파인도스 API는 메시지 기반이며, 시스템이 시행하는 최종적인 윈도우 관리 정책과 무관하게 프로그램이 작성될 수 있도록 한다.Microidows API는 현재 클라이언트/서버가 아니다.

Microidows API의 기본적인 통신 메커니즘은 메시지 이다.메시지는 잘 알려진 메시지 번호와 wParam과 lParam으로 알려진 두 개의 매개변수로 구성된다.메시지는 애플리케이션의 메시지 큐에 저장되며, GetMessage 기능을 통해 검색된다.메시지를 기다리는 동안 응용 프로그램이 차단됨키보드 입력의 경우 WM_CAR, 마우스 버튼 다운의 경우 WM_LBTONTDOWN과 같이 하드웨어 이벤트에 해당하는 메시지가 있다.또한 WM_CREATE 및 WM_DESTROY의 창 생성 및 파괴 신호를 보내는 이벤트도 전송된다.대부분의 경우 메시지는 HWND로 식별되는 창과 연관된다.메시지를 검색한 후 응용프로그램은 DispatchMessage를 사용하여 메시지를 관련 창의 처리 절차로 전송한다.창 클래스가 생성되면 관련 메시지 처리 절차가 지정되어 시스템이 메시지를 보낼 위치를 알 수 있다.

메시지 패스싱 아키텍처는 코어 API가 창 생성, 필요한 도장, 이동 등 모든 종류의 이벤트에 메시지를 전송함으로써 많은 시스템 기능을 관리할 수 있도록 한다.기본적으로 관련 창 처리 기능은 메시지에서 "첫 번째 패스"를 받은 다음 모든 메시지에 대한 기본 액션을 처리하는 DefWindowProc 함수를 호출한다.이러한 방식으로 모든 창은 사용자가 특별히 오버라이드하지 않는 한 끌 때 등 동일한 방식으로 동작할 수 있다.주요 창 관리 정책은 시스템 전체에 걸쳐 변경하기보다는 DefWindowProc를 재실행하는 것만으로 재정의할 수 있다.

Microidows API에서 스크린 조직의 기본 단위는 창이다.윈도우는 이 윈도우로 예정된 메시지를 처리하기 위한 관련 "윈도우 프로시저"뿐만 아니라 끌어 당길 화면의 영역을 설명한다.응용 프로그램 프로그래머는 버튼, 편집 상자 등과 같은 미리 정의된 클래스에서 창을 만들거나 자신의 창 클래스를 정의할 수 있다.두 경우 모두 창문을 만들고 소통하는 방법은 그대로 유지된다.

역사

나노X의 원산지는 나노GUI이다.나노GUI는 데이비드 벨의 미니X 서버와 앨런 콕스의 수정을 받아 클라이언트/서버 네트워킹을 추가함으로써 알렉스 홀든이 만들었다.그레고리 하어는 그 후 나노GUI 프로젝트에 관심을 갖고 나노GUI에 대한 광범위한 개선과 수정을 하기 시작했다.버전 0.5를 전후해 그레고리 해어는 다중 API에 대한 지원을 추가했고, 마이크로파인도우즈 배포를 시작했다.마이크로파인도우즈 0.84에서는 이전의 모든 나노GUI 변경사항이 통합되었고 그 이후 나노GUI/마이크로인도우즈 결합분포가 되었다.2005년 1월, Nano-X 윈도 시스템으로 명칭을 변경하였다.Nano-X는 X Window System Xlib API를 느슨하게 따르기 때문에 Nano-X 기반의 Xlib 호환 API를 제공하는 NXlib라는 추가 인터페이스가 개발되었다.

참조

  1. ^ S. 웰호퍼, 임베디드 리눅스 Mit 나노-X
  2. ^ ARM Linux에서 마이크로파인도우 0.9
  3. ^ "Installing Microwindows on the iPAQ". Archived from the original on 2007-04-16. Retrieved 2007-04-16.
  4. ^ "Royal Lin@x PDA". Archived from the original on 2007-05-22. Retrieved 2007-05-22.
  5. ^ P. Raghavan, 임베디드 리눅스 시스템 설계 및 개발
  6. ^ Linux + Microindows: WinCE에 도전하는 사람

외부 링크