KR20020073481A - 다른 운영체제 플랫폼에 걸친 장치 드라이버의 이식성을위한 추상 장치 드라이버 모델 - Google Patents

다른 운영체제 플랫폼에 걸친 장치 드라이버의 이식성을위한 추상 장치 드라이버 모델 Download PDF

Info

Publication number
KR20020073481A
KR20020073481A KR1020027007954A KR20027007954A KR20020073481A KR 20020073481 A KR20020073481 A KR 20020073481A KR 1020027007954 A KR1020027007954 A KR 1020027007954A KR 20027007954 A KR20027007954 A KR 20027007954A KR 20020073481 A KR20020073481 A KR 20020073481A
Authority
KR
South Korea
Prior art keywords
device driver
interface
client
operating system
abstract
Prior art date
Application number
KR1020027007954A
Other languages
English (en)
Inventor
로버트가즈다
크리스델소도
데이비드에이.프레쥐
잭엠.버른밤
Original Assignee
제너럴 인스트루먼트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 제너럴 인스트루먼트 코포레이션 filed Critical 제너럴 인스트루먼트 코포레이션
Publication of KR20020073481A publication Critical patent/KR20020073481A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)
  • Telephone Function (AREA)

Abstract

본 발명은 케이블 또는 위성텔레비전 가입자 네트워크 등에 이용하기 위한 셋톱 단말에서의 장치 드라이버를 위한 추상 인터페이스에 관한 것이다. 계층화된 소프트웨어 아키텍처에 있어서, 장치 드라이버 추상 인터페이스 모델은 장치 드라이버의 동작하에 운영체제(Operating System: OS)와 관계없이 클라이언트(112, 212)와 장치 드라이버(154, 254)간의 통신을 허용한다. 제1의 실시예에서는, 아키텍처는 전용(OS-특정)의 장치 드라이버 인터페이스(132), 및 클라이언트(112)로부터의 인터페이스 서비스 요구를 장치 드라이버(154)로의 OS-특정의 호출로 변환하기 위해 제1의 추상 인터페이스(122)를 사용하는 프록시를 포함하고 있다. 전용(OS-특정)의 장치 드라이버 인터페이스(132)를 직접 억세스하는 클라이언트에 대해서는, 상기 인터페이스 서비스 요구를 장치 드라이버(154)로의 OS-특정의 호출로 변환하기 위해 제2의 추상 인터페이스(152)가 사용된다. 따라서, OS-특정의 장치 드라이버 인터페이스(132)로의 직접 억세스가 유지된다. 두 번째의 경우, 아키텍처는 전용(OS-특정)의 장치 드라이버 인터페이스를 포함하지 않는다. 그 때는, 장치 드라이버 코어 제어(254)는 클라이언트(212)로부터의 인터페이스 서비스 요구를 장치 드라이버로의 OS-특정의 호출로 변환하기 위해 제1의 추상 인터페이스(252)만을 사용하고, 그에 따라 클라이언트가 장치 드라이버 코어 제어(254)와 직접 인터페이스하는 것처럼 나타나게 된다.

Description

다른 운영체제 플랫폼에 걸친 장치 드라이버의 이식성을 위한 추상 장치 드라이버 모델 {ABSTRACT DEVICE DRIVER MODEL FOR THE PORTABILITY OF DEVICE DRIVERS ACROSS DIFFERENT OPERATING SYSTEM PLATFORMS}
디지털 셋톱 단말의 최근의 출현은 케이블/위성텔레비전 네트워크 등의 가입자 텔레비전 네트워크의 성장을 자극하고 있다. 그러한 단말은 향상된 수준의 프로그래밍 서비스 및 전자적인 프로그램 안내, 주식 또는 날씨 배너, 가정에서의 상점 및 은행 서비스, 게임 등과 같은 각종의 소프트웨어에 기초를 둔 응용 및 기능을 지원할 수 있다. 게다가, 이러한 추세는 전화, 텔레비전 및 컴퓨터 네트워크의 수렴(convergence) 및 집에서의 컴퓨터 네트워크의 증가에 따라 계속되리라고 기대되고 있다.
각 단말은, 각각의 드라이버에 의해 제어되는 예컨대 튜너(tuner), 복조기(demodulator), MPEG-2 디코더(예컨대, 오디오, 비디오 및 데이터), 비디오 엔코더, 오디오 믹서 등의 다른 하드웨어 장치를 포함하고 있다.
게다가, 각 단말은 단말의 기능을 제어하기 위한 운영체제(operating system: OS) 플랫폼을 사용한다. OS는 추상(abstraction)의 레벨에 따라 기능이 분리되는 계층적인 구조를 갖는다. 이 구조의 밑바닥에서, 가장 낮은 추상 레벨 또는 층이 하드웨어 장치 레벨이다. 다음으로 높은 레벨은 장치 드라이버 레벨이다. 이 구조의 꼭대기에서, 가장 높은 추상 레벨은 전형적으로 클라이언트(client) 레벨이다. 부가적으로, 각 레벨은 하드웨어 또는 소프트웨어 객체(object)일 수 있는 객체의 세트를 관리하고, 객체에서 수행될 수 있는 연산을 규정한다.
그렇지만, 인습적으로는 각 운영체제 플랫폼에 대해, 예컨대 다른 셋톱 제조업자 또는 동일 제조업자로부터의 다른 셋톱 모델에 대해 따로따로 실행되는 장치 드라이버가 필요하게 된다. 게다가, 다른 OS 플랫폼을 지원하기 위해 단일의 하드웨어 플랫폼이 필요할 수도 있다. 동일 네트워크의 다른 단말에 대해서조차도 다른 운영체제를 갖도록 하는 것이 가능하다.
일반적으로, 셋톱 단말에서 자주 일어나는 운영체제 변화는 개량의 결과, 비용절감, 새로운 컴포넌트 및 제2의 소스 제조업자(second source manufacturer)이다. 이것은, 각 네트워크가 일반적으로 단일의 OS 플랫폼을 사용하더라도, 단말 제조업자가 다른 네트워크의 다른 운영체제를 위해 다른 장치 드라이버를 만들지 않으면 안되기 때문에, 문제이다. 하나의 네트워크의 OS에 대한 장치 드라이버는 다른 네트워크의 다른 OS로 쉽게 이주될 수 없다.
갱신된 장치 드라이버 소프트웨어/펌웨어를 개발하여 단말에 제공하는 필요는 단말 제조업자 및 네트워크 공급자에게 부가적인 비용을 부담하게 한다.
특히, 특별한 OS에 대한 장치 드라이버는 그 드라이버의 실행동안 OS-특정의 상세(OS-specific detail)를 함유하고 있는 각 드라이버를 의미하는 OS에 단단히 묶여 있고, 따라서 각 OS 플랫폼에 대한 드라이버를 개발하는데 충분한 개발 사이클이 필요했다.
이들 문제는 기술 향상에 따라 네트워크의 단말의 계속적인 갱신 및 대체에 의해 혼합된다.
따라서, 장치 드라이버 코드의 단일 세트의 개발을 허용하는 장치 드라이버 추상 인터페이스 모델과, 다른 셋톱 운영체제하에 컴파일 및 실행될 수 있는 장치 사용자 코드를 제공하는 것이 바람직하다. 인터페이스는 장치 드라이버가 수개의 운영체제 및 셋톱 플랫폼하에 이용할 수 있는 동안 한번만 실행되도록 해야 한다. 하나의 그러한 적당한 플랫폼의 예로서는 이 발명의 양수인인 제너럴 인스트루먼트 코포레이션에 의해 제조된 DCT5000 시리즈 단말이 있다.
인터페이스는 장치 드라이버와 클라이언트간의 2방향 통신을 허용하지 않으면 안된다.
인터페이스는 하드웨어 장치가 하드웨어 장치의 동작하에 OS와 관계없이 (예컨대, 응용 프로그램 또는 다른 엔티티(entity)가 그 장치와 통신하고 있더라도) 단말의 클라이언트에게 동일하게 나타나는 것을 확실하게 하지 않으면 안된다. 마찬가지로, 클라이언트는 운영체제에 관계없이 실제의 장치 드라이버에 동일하게 나타나야 한다.
인터페이스는 OS 플랫폼과 하드웨어 플랫폼의 양자에 걸친 아키텍처와 코드의 공유를 허용하지 않으면 안된다.
인터페이스는 전용(운영체제-특정)의 장치 드라이버 인터페이스를 갖거나, 혹은 갖지 않는 운영체제와 함께 이용할 수 있어야 한다.
인터페이스는 객체지향(object-oriented) 또는 절차지향(procedure-oriented)의 프로그래밍 언어를 이용하여 실행할 수 있어야 한다.
본 발명은 상기의 이점 및 다른 이점을 갖는 장치 드라이버 추상 인터페이스 모델(device driver abstract interface model)을 제공한다.
본 발명은, 예컨대 케이블 또는 위성텔레비전 가입자 네트워크에 이용하기 위한 디지털 셋톱 소프트웨어/펌웨어의 분야에 관한 것이다. 특히, 추상 인터페이스 모델이 셋톱 단말의 장치 드라이버에 제공된다.
도 1은 본 발명에 따라 전용의 장치 드라이버 인터페이스를 갖는 운영체제와 함께 사용하기 위한 장치 드라이버 추상 인터페이스 모델을 나타낸 도면,
도 2는 본 발명에 따라 전용의 장치 드라이버 인터페이스를 갖지 않는 운영체제와 함께 사용하기 위한 장치 드라이버 추상 인터페이스 모델을 나타낸 도면이다.
본 발명은 셋톱 단말의 장치 드라이버를 위한 추상 인터페이스 모델에 관한 것이다.
본 발명은 드라이버 코어 로직의 개발을 한번만 허용한다. 코어는 아직 각 OS 플랫폼에 대해 따로따로 컴파일될 필요가 있다.
특별한 실시예에서는, 클라이언트와 장치 드라이버의 동작하에 관련된 특정의 운영체제를 갖는 단말의 장치 드라이버간의 통신을 허용하기 위한 방법이 제공된다. 이 방법은, 운영체제와 무관계한 포맷을 갖는 클라이언트로부터의 서비스 요구를 특정의 운영체제와 호환성이 있는 포맷을 갖는 장치 드라이버로의 호출로 변환하기 위해 제1의 추상 인터페이스를 제공하는 단계를 포함하고 있다.
특히, 상기 제1의 추상 인터페이스는, 대응하는 복수의 다른 운영체제와 호환성이 있는 복수의 다른 포맷의 어느 하나의 장치 드라이버로 호출을 제공하도록되어 있다.
전용(OS-특정)의 장치 드라이버 인터페이스가 존재할 때, 장치 드라이버 인터페이스는 특정의 운영체제와 호환성이 있는 포맷을 갖는 다른 클라이언트로부터 직접 제2의 호출을 받도록 되어 있다. 이 제2의 호출은 상기 제1의 추상 인터페이스를 통과하지 못한다. 게다가, 장치 드라이버 인터페이스는 제2의 추상 인터페이스를 매개해서 장치 드라이버로 제2의 호출을 제공한다.
클라이언트와 장치 드라이버의 동작하에 관련된 특정의 운영체제를 갖는 단말의 장치 드라이버간의 통신을 허용하기 위한 관련 방법은, 특정의 운영체제의 포맷으로 되어 있는 장치 드라이버로부터의 메시지를 클라이언트에 의해 사용되는 운영체제와 무관계한 포맷의 대응하는 메시지로 변환하기 위해 제1의 추상 인터페이스를 제공하는 단계를 포함하고 있다.
상기 제1의 추상 인터페이스는, 상기 메시지를 대응하는 복수의 다른 운영체제와 호환성이 있는 복수의 다른 포맷의 어느 하나로부터 클라이언트에 의해 사용되는 운영체제와 무관계한 포맷으로 변환하도록 되어 있다.
또한, 대응하는 장치도 소개되어 있다.
본 발명은 셋톱 단말의 장치 드라이버를 위한 추상 인터페이스 모델에 관한 것이다.
주지의 객체지향의 설계기술은 객체를 추상적으로 만들기 위한 방법을 제공한다. 주로, 설계자는 객체의 실증의 상세(details)를 직접 아는 일없이 추상 인터페이스를 제공하는 객체를 만들 수 있다. 이것은, 소프트웨어의 실행시간에 다이내믹하게 일어난다.
본 발명은 이 아이디어를 다음과 같이 확장 및 변경한다. 모든 운영체제를 위해 하나의 드라이버 인터페이스만이 만들어진다. 이것은 소스 코드가 컴파일될 때 행해지고, (스태틱하게) 한번만 일어난다.
따라서, 새로운 OS 플랫폼이 개발될 때, 많아야 프록시(proxy), OS-특정의 드라이버 및 OS-특정의 드라이버 지원도 개발을 필요로 한다. 전형적으로, 이것은 드라이버 개발 사이클의 약 10% 이하만을 나타내고, 그 때문에 충분한 비용 및 시간 절약으로 끝난다.
특히, 모든 장치 드라이버 로직은 장치 드라이버 코어 제어(core control)에 위치되거나 실행되고 있다. 이 모듈 또는 서브시스템은 하드웨어 장치 레벨의 바로 위에 존재하고, 직접 또는 OS-특정의 드라이버 지원 서브시스템의 도움으로 하드웨어 장치와 통신한다. 주의해야 할 것은, 코어 제어는 이 아키텍처의 모든 코드의 대부분을 포함하고 있다는 점이다.
장치 드라이버 코어 제어는 장치 드라이버 추상 인터페이스내에 규정된 로직을 실행한다. 이 인터페이스는 드라이버가 제공해야 하는 서비스가 무슨 서비스인지를 정의한다. 코어 제어는 그들 서비스를 제공하는데 필요한 모든 코드를 포함하고 있다.
도 1은 본 발명에 따라 전용의 장치 드라이버 인터페이스를 갖는 운영체제와 함께 사용하기 위한 장치 드라이버 추상 인터페이스 모델을 나타내고 있다. 전용의 장치 드라이버 인터페이스(130)는, 예컨대 마이크로소프트(Microsoft)로부터의 윈도우즈 CE일 수 있다.
계층화된 장치 드라이버 모델(100)은 다수의 레벨(110, 120, 130, 140, 150, 160)을 포함하고 있다. 전형적으로, OS는 하나의 레벨에서 그 인터페이스에 대해 실행되는 드라이버를 꼭 필요로 한다. 가장 낮은 추상 레벨인 밑바닥 레벨(160)은 셋톱 단말의 하드웨어 장치 자신(162)을 포함하고 있다.
다음의 추상 레벨(150)은 제2의 장치 드라이버 추상 인터페이스(152), 장치 드라이버 코어 제어(154) 및 OS-특정의 드라이버 지원(156)을 포함하고 있다. 다음의 추상 레벨(140)은 OS-특정의 장치 드라이버 실행(142)을 포함하고 있다. 다음의 추상 레벨(130)은 OS 장치 드라이버 인터페이스(132)를 포함하고 있다.
다음의 추상 레벨(120)은 제1의 장치 드라이버 추상 인터페이스(122) 및 장치 드라이버 프록시(124)를 포함하고 있다.
가장 높은 레벨인 다음의 추상 레벨(110)은 장치 드라이버 추상 인터페이스(122)를 이용하는 클라이언트(112) 및 OS 장치 드라이버인터페이스(132)를 이용하는 클라이언트(114)를 포함하고 있다.
주의해야 할 것은, 하나의 장치만을 나타냈지만, 본 발명은 셋톱에서 임의의 수의 장치와 함께 사용하기에 적당하다는 점이다.
도 1의 아키텍처에 있어서, OS-특정의 장치 드라이버(142)는 제2의 장치 드라이버 추상 인터페이스(152)를 이용하여 장치 드라이버 코어 제어(154)를 제어하거나 구동한다. 특히, OS-특정의 장치 드라이버(142)를 갖는 이 레벨(140)은 OS-특정의 장치 드라이버 호출(call)(OS에 특별히 묶여 있음)을 장치 드라이버 추상 인터페이스(152)에 의해 규정되는 추상 장치 드라이버 호출로 변환하거나 혹은 변형한다.
OS 자신은 운영체제의 규정된 드라이버 인터페이스(132)를 통해 OS-특정의 장치 드라이버(142)내의 서비스를 발동한다. OS는 예컨대 마이크로소프트의 윈도우즈 CE일 수 있다. 이 OS는 윈도우즈 CE 장치 드라이버내의 포맷 "xxx_IOCTL"을 갖는 호출을 발동한다. 여기서, "xxx"는 장치의 윈도우즈 CE 이름을 나타낸다.
드라이버 호출에 관해서는, 윈도우즈 CE는 프록시가 "DeviceIoControl" 호출을 장치의 윈도우즈 CE 이름을 통과하는 것으로 발동하는 경우의 예를 나타낸다.
장치 드라이버 프록시(124)는 장치 드라이버 코어 제어(154)에 의해 실행되는 장치 드라이버 추상 인터페이스(152)와 기능적으로 동일한 추상 인터페이스(122)를 이용하여 장치 드라이버(154)를 클라이언트(112)에 나타낸다. 이들 클라이언트는 예컨대 미들웨어(middleware) 및 응용프로그램을 포함할 수 있다. 그러므로, 이것은 클라이언트가 드라이버 코어 자신과 인터페이스하고 있는것처럼 나타난다. 게다가, 프록시는 클라이언트(112)로부터의 인터페이스 서비스 요구를 그들의 관련된 OS-특정의 시스템 장치로 변환하거나 변형한다.
부가적으로, 추상 인터페이스(122, 152)는 동기 또는 비동기일 수 있는 드라이버로부터 클라이언트로 통신되는 데이터를 처리한다. 동기 통신의 경우, 드라이버(154)는 요구가 있을 때만 데이터를 클라이언트(110)에게 공급한다. 데이터는 클라이언트와 드라이버의 통신과 관련하여 전술한 바와 같이 OS 드라이버 경계에 걸쳐 전송된다.
비동기 통신은 드라이버가 클라이언트의 요구 없이 클라이언트 데이터(예컨대, 메시지)를 전송하기를 바랄 때 발생한다. 주의해야 할 것은, 드라이버는 이것이 데이터를 갖고 있다는 것을 클라이언트에게 알릴 수 있을 뿐이고, 그 후 클라이언트가 그 데이터를 동기적으로 검색하지 않으면 안된다는 점이다. 이것은, 다음의 단계에 의해 요약된다.
1. 드라이버가 클라이언트에게 데이터를 전송하기를 바란다.
2. 드라이버가 사건(event)을 통해 비동기적으로 클라이언트에게 신호를 보낸다.
3. 클라이언트가 데이터를 검색 또는 독출하기 위해 동기 연산을 수행하게 한다.
요약하기 위해, 장치 드라이버 프록시(124)는 클라이언트(110)로부터의 추상 인터페이스 요구를 OS-특정의 장치 드라이버 시스템 호출로 변환한다. OS는 OS-특정의 드라이버 엔트리 포인트를 교대로 발동한다. OS-특정의 드라이버(142)는 그요구를 클라이언트가 처음부터 수행한 인터페이스 호출과 동일한 드라이버 추상 인터페이스 요구로 역으로 변환한다. 이 요구는 장치 드라이버 코어(154)에서 실행된다.
최후로, 외부 클라이언트는 드라이버를 억세스할 때 2개의 인터페이스 경로를 선택할 수 있다. 첫째로, 추상 인터페이스(122, 152)는 클라이언트(112)가 도 1에서 행하고 있는 것처럼 내부 클라이언트(예컨대, 셋톱 제조업자에 의해 개발된 클라이언트)가 이것을 사용하는 식으로 사용될 수 있다. 둘째로, 클라이언트(114)가 도 1에서 행하고 있는 것처럼 OS 드라이버 인터페이스가 직접 사용될 수 있다.
외부 클라이언트는 셋톱 제조업자에 대해 외부에 있다.
외부 클라이언트는 예컨대 미국 캘리포니아 산 카를로스의 리브레이트 테크놀로지스(Liberate Technologies) 등의 미들웨어 개발자 또는 마이크로소프트 등의 OS 개발자를 포함하는 제조업자의 드라이버를 사용할 필요가 있는 임의의 엔티티를 포함한다.
도 2는 본 발명에 따라 전용의 장치 드라이버 인터페이스를 갖지 않는 운영체제와 함께 사용하기 위한 장치 드라이버 추상 인터페이스 모델을 나타내고 있다.
계층적인 모델(200)은 레벨(210, 250, 260)을 포함하고 있다. 밑바닥 레벨(260)은 하드웨어 장치(262)를 포함하고 있다. 다음의 추상 레벨(250)은 장치 드라이버 추상 인터페이스(252), 장치 드라이버 코어 제어(254) 및 OS-특정의 드라이버 지원(256)을 포함하고 있다.
다음의 추상 레벨(210)은 추상 인터페이스(252)를 이용하는 클라이언트(212)를 포함하고 있다.
특히, 도 2는 장치 드라이버 인터페이스가 없는 OS를 함유하고 있는 셋톱 시스템을 인용하고 있다. 그러한 OS의 예로서는, 미국 오레곤 윌슨빌의 멘터 그래픽스 코포레이션(Mentor Graphics Corporation)으로부터의 VRTX를 들 수 있다.
이 계층화된 아키텍처는 OS가 전용의 OS-특정의 인터페이스를 필요로 하지 않을 때 압축된다(예컨대, 더 적은 층이 필요하게 된다). 여기에서, 클라이언트(212)는 장치 드라이버 추상 인터페이스(252)를 이용하여 장치 드라이버(254)를 조사한다. 그러나, 클라이언트는 드라이버 코어(254)에 직접 접속한다. 추상 인터페이스(252)는 전용의 장치 인터페이스가 없는 OS하에서만 이용할 수 있다.
마찬가지로, 장치 드라이버(254)는 2방향 통신을 허용하기 위해 인터페이스(252)를 매개해서 클라이언트를 조사한다.
따라서, 본 발명은 셋톱 단말의 장치 드라이버에 추상 인터페이스 모델을 제공함을 알 수 있다.
본 발명의 이점은 다음과 같다. 추상 인터페이스를 이용하는 클라이언트에 대해, 장치 드라이버가 항상 동일하게 나타난다. 클라이언트는 각 운영체제를 위해 재개발할 필요가 없다. 또한, 클라이언트는 2개의 아주 다른 OS 실행(도 1 및 도 2 참조)간의 차이를 말하거나 볼 수 없다. 드라이버는 동일하게 나타난다. 키 포인트는, 클라이언트가 한번 개발되고 운영체제에 걸쳐 사용되도록 허용하는 추상 인터페이스를 장치 드라이버가 지원한다는 점이다.
부가적으로, 드라이버 코어 제어를 위해 클라이언트는 항상 동일하게 나타난다. 코어 로직은 추상 인터페이스/프록시를 사용하는 클라이언트, 추상 인터페이스/프록시 없이 OS 드라이버 인터페이스를 사용하는 클라이언트, 또는 도 2에 나타낸 바와 같이 코어를 직접 억세스하는 클라이언트간의 차이를 말할 수 없다.
드라이버 코어 제어 서브시스템은 OS와 독립적으로 실행된다. 전형적으로, 이 서브시스템은 개발에 많은 양의 노력(예컨대, 모든 드라이버 개발 연 취업시간(man-hour)의 90%까지)을 필요로 한다. 그렇지만, 본 발명의 드라이버 코어 제어 서브시스템은 한번만 개발할 필요가 있고, 그때 다른 OS 플랫폼에 걸쳐 사용될 수 있기 때문에, 추상 장치 드라이버 모델은 새로운 셋톱 제품을 위한 매매에 대한 시간을 훨씬 향상시킬 수 있다.
게다가, 본 발명은 대체 장치 드라이버 사용자 인터페이스의 사용을 허용한다.
본 발명은 각종의 특정 실시예와 관련하여 설명했지만, 청구범위에 기재된 발명의 정신 및 범위를 이탈하지 않는 범위내에서 이 기술분야에 정통한 자에 의해 수많은 개조 및 변형이 가능함은 물론이다.
예컨대, 본 발명은 케이블 또는 위성텔레비전 광대역 통신네트워크와 관련하여 설명했지만, LAN(local area network), MAN(metropolitan area network), WAN(wide area network), 인터넷(internets), 인트라넷(intranets) 및 Internet 또는 그 조합 등과 같은 다른 네트워크를 사용해도 좋다.
게다가, 본 발명은 어떤 주지의 하드웨어, 펌웨어 및/또는 소프트웨어 기술을 이용하여 실현해도 좋다.

Claims (15)

  1. 클라이언트와 장치 드라이버의 동작하에 관련된 특정의 운영체제를 갖는 단말의 장치 드라이버간의 통신을 허용하기 위한 방법에 있어서,
    운영체제와 무관계한 포맷을 갖는 클라이언트로부터의 서비스 요구를 특정의 운영체제와 호환성이 있는 포맷을 갖는 장치 드라이버로의 호출로 변환하기 위해 제1의 추상 인터페이스를 제공하는 단계를 구비한 것을 특징으로 하는 방법.
  2. 제1항에 있어서, 특정의 운영체제의 포맷으로 되어 있는 장치 드라이버로부터의 메시지를 클라이언트에 의해 사용되는 운영체제와 무관계한 포맷의 대응하는 메시지로 변환하기 위해 상기 제1의 추상 인터페이스를 사용하는 단계를 더 구비한 것을 특징으로 하는 방법.
  3. 제1항에 있어서, 상기 단말이 네트워크에서의 가입자 텔레비전 단말인 것을 특징으로 하는 방법.
  4. 제1항에 있어서, 상기 단말이 광대역 통신 네트워크의 것인 것을 특징으로 하는 방법.
  5. 제1항에 있어서, 상기 제1의 추상 인터페이스는, 대응하는 복수의 다른 운영체제와 호환성이 있는 복수의 다른 포맷의 어느 하나의 장치 드라이버로 호출을 제공하도록 되어 있는 것을 특징으로 하는 방법.
  6. 제1항에 있어서, 특정의 운영체제에 따라 동작하는 장치 드라이버 인터페이스를 매개해서 상기 장치 드라이버로 호출을 제공하는 단계를 더 구비한 것을 특징으로 하는 방법.
  7. 제6항에 있어서, 상기 장치 드라이버 인터페이스는 특정의 운영체제와 호환성이 있는 포맷을 갖는 다른 클라이언트로부터 직접 제2의 호출을 받도록 되어 있고,
    상기 장치 드라이버 인터페이스는 제2의 추상 인터페이스를 매개해서 상기 장치 드라이버로 제2의 호출을 제공하는 것을 특징으로 하는 방법.
  8. 제6항에 있어서, 상기 제1의 추상 인터페이스는, 대응하는 복수의 다른 운영체제와 호환성이 있는 복수의 다른 포맷의 어느 하나의 상기 장치 드라이버를 매개해서 상기 장치 드라이버로 호출을 제공하도록 되어 있는 것을 특징으로 하는 방법.
  9. 제6항에 있어서, 호환성이 있는 포맷으로 되어 있는 장치 드라이버로부터의 메시지를 클라이언트에 의해 사용되는 운영체제와 무관계한 포맷의 대응하는 메시지로 변환하기 위해 제2의 추상 인터페이스를 제공하는 단계를 더 구비한 것을 특징으로 하는 방법.
  10. 제9항에 있어서, 상기 클라이언트에 의해 사용되는 운영체제와 무관계한 포맷의 메시지를 상기 제1의 추상 인터페이스를 매개해서 제공하는 단계를 더 구비한 것을 특징으로 하는 방법.
  11. 제9항에 있어서, 상기 제2의 추상 인터페이스는, 클라이언트로의 메시지를 대응하는 복수의 다른 운영체제와 호환성이 있는 복수의 다른 포맷의 어느 하나로부터 클라이언트의 운영체제와 무관계한 포맷으로 변환하도록 되어 있는 것을 특징으로 하는 방법.
  12. 클라이언트와 장치 드라이버의 동작하에 관련된 특정의 운영체제를 갖는 단말의 장치 드라이버간의 통신을 허용하기 위한 장치에 있어서,
    운영체제와 무관계한 포맷을 갖는 클라이언트로부터의 서비스 요구를 특정의 운영체제와 호환성이 있는 포맷을 갖는 장치 드라이버로의 호출로 변환하기 위해 제1의 추상 인터페이스를 제공하는 수단을 구비한 것을 특징으로 하는 장치.
  13. 클라이언트와 장치 드라이버의 동작하에 관련된 특정의 운영체제를 갖는 단말의 장치 드라이버간의 통신을 허용하기 위한 방법에 있어서,
    특정의 운영체제의 포맷으로 되어 있는 장치 드라이버로부터의 메시지를 클라이언트에 의해 사용되는 운영체제와 무관계한 포맷의 대응하는 메시지로 변환하기 위해 제1의 추상 인터페이스를 제공하는 단계를 구비한 것을 특징으로 하는 방법.
  14. 제13항에 있어서, 상기 제1의 추상 인터페이스는, 상기 메시지를 대응하는 복수의 다른 운영체제와 호환성이 있는 복수의 다른 포맷의 어느 하나로부터 클라이언트에 의해 사용되는 운영체제와 무관계한 포맷으로 변환하도록 되어 있는 것을 특징으로 하는 방법.
  15. 클라이언트와 장치 드라이버의 동작하에 관련된 특정의 운영체제를 갖는 단말의 장치 드라이버간의 통신을 허용하기 위한 장치에 있어서,
    특정의 운영체제의 포맷으로 되어 있는 장치 드라이버로부터의 메시지를 클라이언트에 의해 사용되는 운영체제와 무관계한 포맷의 대응하는 메시지로 변환하기 위해 제1의 추상 인터페이스를 제공하는 수단을 구비한 것을 특징으로 하는 장치.
KR1020027007954A 1999-12-21 2000-12-06 다른 운영체제 플랫폼에 걸친 장치 드라이버의 이식성을위한 추상 장치 드라이버 모델 KR20020073481A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US46804799A 1999-12-21 1999-12-21
US09/468,047 1999-12-21
PCT/US2000/042614 WO2001046819A2 (en) 1999-12-21 2000-12-06 Abstract device driver model for the portability of device drivers across different operating system platforms

Publications (1)

Publication Number Publication Date
KR20020073481A true KR20020073481A (ko) 2002-09-26

Family

ID=23858234

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020027007954A KR20020073481A (ko) 1999-12-21 2000-12-06 다른 운영체제 플랫폼에 걸친 장치 드라이버의 이식성을위한 추상 장치 드라이버 모델

Country Status (7)

Country Link
EP (1) EP1287436A2 (ko)
JP (1) JP2003521027A (ko)
KR (1) KR20020073481A (ko)
CN (1) CN1434942A (ko)
AU (1) AU4310001A (ko)
CA (1) CA2395468A1 (ko)
WO (1) WO2001046819A2 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6139603A (en) * 1989-02-22 2000-10-31 L'air Liquide, Societe Anonyme Pour L'etude Et L'exploitation Des Procedes Georges Claude Process for recovering oxygen
US7676814B2 (en) 2004-03-25 2010-03-09 Globalfoundries Inc. Four layer architecture for network device drivers
CN100343803C (zh) * 2004-07-26 2007-10-17 国际商业机器公司 将个性化计算环境从源平台移植到目标平台的方法和系统
CN100454238C (zh) * 2005-04-28 2009-01-21 上海贝尔阿尔卡特股份有限公司 一种实现与设备对象无关的dohm软件接口
CN100351788C (zh) * 2005-05-18 2007-11-28 大唐移动通信设备有限公司 嵌入式设备的驱动方法
US20070067499A1 (en) * 2005-09-08 2007-03-22 Honeywell International Inc. Systems and methods for satellite payload application development
US8046570B2 (en) * 2007-02-06 2011-10-25 Microsoft Corporation Supporting multiple operating systems in media devices
US20080222659A1 (en) * 2007-03-09 2008-09-11 Microsoft Corporation Abstracting operating environment from operating system
CN101163074B (zh) * 2007-11-12 2010-12-08 中兴通讯股份有限公司 一种WiMAX终端设备主机驱动方法
FR2930058B1 (fr) * 2008-04-14 2010-06-11 Bull Sas Dispositif portable et procede de demarrage externe d'une installation informatique
CN101615125B (zh) * 2008-06-24 2012-09-19 纬创资通股份有限公司 视频装置代理驱动方法以及其模块
CN102467381A (zh) * 2010-11-16 2012-05-23 北京中电华大电子设计有限责任公司 一种wlan驱动实现方法
US8683428B2 (en) * 2011-03-23 2014-03-25 Microsoft Corporation Automated generation of client/driver communication interfaces
CN103164207B (zh) * 2011-12-16 2016-09-07 深圳市快播科技有限公司 基于安卓系统的跨硬件平台的应用程序开发方法和系统
CN106878467B (zh) * 2017-04-07 2023-06-16 同方威视技术股份有限公司 远程控制设备的方法及远程控制系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5878237A (en) * 1997-07-11 1999-03-02 Compaq Computer Corp. Apparatus, method and system for a comuter CPU and memory to PCI bridge having a pluarlity of physical PCI buses

Also Published As

Publication number Publication date
JP2003521027A (ja) 2003-07-08
AU4310001A (en) 2001-07-03
CA2395468A1 (en) 2001-06-28
WO2001046819A3 (en) 2002-11-28
EP1287436A2 (en) 2003-03-05
WO2001046819A2 (en) 2001-06-28
CN1434942A (zh) 2003-08-06

Similar Documents

Publication Publication Date Title
KR20020073481A (ko) 다른 운영체제 플랫폼에 걸친 장치 드라이버의 이식성을위한 추상 장치 드라이버 모델
US6343312B1 (en) Data processing method and device
KR101026110B1 (ko) 미들웨어 서비스 계층을 포함하는 이동 단말기용 플랫폼 시스템
US6529936B1 (en) Object-oriented web server architecture suitable for various types of devices
AU763158B2 (en) Method and apparatus for providing a virtual desktop system architecture
KR100940130B1 (ko) 바이트 코드를 네이티브 코드로 컴파일하는 방법, 서버 및수신 터미널
CN111625293B (zh) 一种基于linux内核的终端双系统及其硬件访问管理方法
JP4567115B2 (ja) 条件付きアクセスモジュールへの直接アクセスによってデジタルビデオ放送共通インタフェース機能を拡張する方法及び装置
CN105549821A (zh) 移动设备与车机的互联方法、装置和系统
KR102426381B1 (ko) Api 요청 처리 시스템
KR20050059185A (ko) 플러그인 소프트웨어를 사용하는 모바일 플랫폼의 기능성확장에 대한 방법과 시스템
WO2000072583A1 (en) Software architecture for a television set-top terminal providing compatibility with multiple operating environments
US20030097490A1 (en) Mechanism for encoding and decoding upgradeable RPC/XDR structures
US6941559B2 (en) Software bus and interface for digital television application software environments
US6721949B1 (en) Kernel abstraction layer for digital television set-top box firmware
EP2321732B1 (en) Modular flexible software architecture for tv
US8464218B2 (en) Method port arrangement and configuration method thereof for robot software component
CA2563431A1 (en) Asn.1 protocol processor and method for asn.1 protocol processing
KR100544151B1 (ko) 디지털 텔레비젼의 임베디드 오에스 소프트웨어 통합 시스템
CN101478655A (zh) 数字电视接收终端界面开发显示方法、系统及网络服务器
Jaeger Set-top box software architectures for digital video broadcast and interactive services
CN115168007A (zh) 用于跨平台的应用程序迁移的方法、设备和程序载体
CN117992160A (zh) 一种显示方法及装置
CN118200303A (zh) 一种微客户端的部署方法、装置、设备及介质
CN114816456A (zh) 软件启动方法、装置和设备

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid