KR20060042093A - 공용 오퍼레이팅 시스템을 제공하기 위한 방법 및 시스템 - Google Patents

공용 오퍼레이팅 시스템을 제공하기 위한 방법 및 시스템 Download PDF

Info

Publication number
KR20060042093A
KR20060042093A KR1020050013723A KR20050013723A KR20060042093A KR 20060042093 A KR20060042093 A KR 20060042093A KR 1020050013723 A KR1020050013723 A KR 1020050013723A KR 20050013723 A KR20050013723 A KR 20050013723A KR 20060042093 A KR20060042093 A KR 20060042093A
Authority
KR
South Korea
Prior art keywords
operating system
component
common
common operating
dependency
Prior art date
Application number
KR1020050013723A
Other languages
English (en)
Other versions
KR101130370B1 (ko
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 KR20060042093A publication Critical patent/KR20060042093A/ko
Application granted granted Critical
Publication of KR101130370B1 publication Critical patent/KR101130370B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02GINSTALLATION OF ELECTRIC CABLES OR LINES, OR OF COMBINED OPTICAL AND ELECTRIC CABLES OR LINES
    • H02G7/00Overhead installations of electric lines or cables
    • H02G7/05Suspension arrangements or devices for electric cables or lines
    • H02G7/053Suspension clamps and clips for electric overhead lines not suspended to a supporting wire
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02GINSTALLATION OF ELECTRIC CABLES OR LINES, OR OF COMBINED OPTICAL AND ELECTRIC CABLES OR LINES
    • H02G7/00Overhead installations of electric lines or cables
    • H02G7/02Devices for adjusting or maintaining mechanical tension, e.g. take-up device

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • Programmable Controllers (AREA)

Abstract

다양한 오퍼레이팅 시스템 구성을 지원하기 위한 공용 오퍼레이팅 시스템 특징 집합을 제공하는 방법 및 시스템을 개시한다. 공용 오퍼레이팅 시스템 특징 집합은 다수의 장치 및 배치 방법에 적용할 수 있는 최소의 메모리 공간을 제공하도록 조직된다. 공용 오퍼레이팅 시스템은 신뢰도가 확인된 통합 컴포넌트들의 선택을 제공하는 오퍼레이팅 시스템 컴포넌트들 간의 종속성을 포함한다. 공용 오퍼레이팅 시스템은 다양한 오퍼레이팅 시스템 시나리오를 위한 기능성을 제공하는 어플리케이션 프로그램 인터페이스 집합을 포함한다.
오퍼레이팅 시스템, 공용 오퍼레이팅 시스템, 종속성 규칙

Description

공용 오퍼레이팅 시스템을 제공하기 위한 방법 및 시스템{METHOD AND SYSTEM FOR PROVIDING A COMMON OPERATING SYSTEM}
도 1은 본 발명이 구현될 수 있는 예시적인 컴퓨팅 환경을 도시.
도 2는 본 발명에 따른 공용 오퍼레이팅 시스템의 예시적인 기능적 블록도.
도 3은 본 발명에 따라 모놀리식 오퍼레이팅 시스템을 공용 오퍼레이팅 시스템으로 변형시키기 위한 프로세스를 도시하는 동작 흐름도.
<도면의 주요 부호에 대한 설명>
100 : 컴퓨팅 장치
104 : 프로세싱 유닛
106 : 시스템 메모리
108 : 오퍼레이팅 시스템
110 : 어플리케이션
112 : 프로그램 데이터
114 : 분리형 저장 장치
116 : 비분리형 저장 장치
118 : 입력 장치
120 : 출력 장치
122 : 통신 접속
124 : 다른 컴퓨팅 장치
202 : HAL
204 : 커널
212 : 서브시스템 DLL
214 : 네트워킹
252 : 쉘
컴퓨터 오퍼레이팅 시스템은 모놀리식이고, 컴포넌트와 모듈 간의 다수의 복잡한 종속성을 포함한다. 오퍼레이팅 시스템 컴포넌트들은 계층적 관계에 기초하여 서로 의존한다. 계층에서, 상위 계층의 컴포넌트는 하위 계층의 컴포넌트보다 많은 수의 컴포넌트에 의존한다. 계층에서, 하위 계층에 속하는 컴포넌트는 더 높은 계층의 컴포넌트에 의존하지 않는다. 결과적으로, 오퍼레이팅 시스템에서, 하위 계층의 컴포넌트일수록, 더 적은 수의 사용가능한 오퍼레이팅 시스템 서비스에 액세스할 수 있다.
오퍼레이팅 시스템의 크기가 증가함에 따라, 테스팅에 점점 비용이 많이 든다. 오퍼레이팅 시스템이 다수의 복잡한 종속성 컴포넌트를 포함하면, 컴포넌트를 제거 또는 수정시킨 결과를 추측하기가 곤란하다. 테스팅의 효율성은 컴포넌트들 간의 다수의 종속성이 감소될 때 개선된다.
다수의 복잡한 종속성은 오퍼레이팅 시스템 개발 주기 동안의 종속성 관리 부족의 결과이다. 따라서, 제한된 수의 종속성 컴포넌트를 갖는 공용 오퍼레이팅 시스템을 구축하는 방법이 요구된다.
다양한 오퍼레이팅 시스템 구성을 지원하기 위한 공용 오퍼레이팅 시스템 특징 집합을 제공하는 방법 및 시스템이 개시된다. 공용 오퍼레이팅 시스템 특징 집합은 다수의 장치 및 배치 방법에 적용할 수 있는 최소의 메모리 공간(footprint)을 제공하도록 조직된다. 공용 오퍼레이팅 시스템은 신뢰도가 확인된 통합 컴포넌트들의 선택을 제공하는 오퍼레이팅 시스템 컴포넌트들 간의 종속성을 포함한다. 공용 오퍼레이팅 시스템은 다양한 오퍼레이팅 시스템 시나리오를 위한 기능성을 제공하는 어플리케이션 프로그램 인터페이스(API) 집합을 포함한다.
본 방법은 오퍼레이팅 시스템 컴포넌트를 정의하는 단계; 오퍼레이팅 시스템 컴포넌트의 종속성을 식별하는 단계; 한 그룹 내의 컴포넌트들이 공통 종속성을 공유하도록 컴포넌트 그룹을 생성하는 단계; 컴포넌트 그룹들 간의 종속성 규칙을 확립하는 단계; 및 종속성 규칙을 시행하는 단계를 포함한다.
공용 오퍼레이팅 시스템을 제공하기 위한 예시적인 시스템은 하드웨어 추상 계층, 커널, 오퍼레이팅 시스템 동적 링크 라이브러리 계층, 서브시스템 동적 링크 라이브러리 계층 및 네트워킹 계층을 포함한다. 하드웨어 추상 계층은 하드웨어 장치와의 상호작용을 제공한다. 커널은 하드웨어 추상 계층에 의존적이고, 오퍼레이팅 시스템 컴포넌트에게 필수적인 서비스를 제공한다. 오퍼레이팅 시스템 동적 링크 라이브러리, 서브시스템 동적 링크 라이브러리 및 네트워킹 계층들은 모두 커널에 의존적이다. 오퍼레이팅 시스템 동적 링크 라이브러리 계층은 오퍼레이팅 시스템 어플리케이션을 실행하기 위한 함수의 라이브러리를 포함한다. 서브시스템 동적 링크 라이브러리 계층은 어플리케이션 프로그램 인터페이스가 기본 오퍼레이팅 시스템 컴포넌트로 한정되도록 어플리케이션 프로그램 인터페이스를 지원한다. 네트워킹 계층은 오퍼레이팅 시스템 어플리케이션의 네트워크 통신 기능성을 지원한다.
<바람직한 실시예의 상세한 설명>
요약하자면, 본 발명은 다양한 오퍼레이팅 시스템 구성을 지원하기 위한 공용 오퍼레이팅 시스템 특징 집합을 제공하는 방법 및 시스템에 관한 것이다. 공용 오퍼레이팅 시스템 특징 집합은 다수의 장치 및 배치 방법에 적용가능한 최소의 메모리 공간을 제공하도록 조직된다. 공용 오퍼레이팅 시스템은 신뢰도가 확인된 통합 컴포넌트들의 선택을 제공하는 오퍼레이팅 시스템 컴포넌트들 간의 종속성을 포함한다. 공용 오퍼레이팅 시스템은 다양한 오퍼레이팅 시스템 시나리오를 위한 기능성을 제공하는 어플리케이션 프로그램 인터페이스(API)를 포함한다.
예시적인 오퍼레이팅 환경
도 1를 참조하면, 본 발명을 구현하기 위한 하나의 예시적인 시스템은 컴퓨팅 장치(100)와 같은 컴퓨팅 장치를 포함한다. 기본 구성은 점선(102) 내의 컴포 넌트를 포함한다. 기본 구성에서, 컴퓨팅 장치(100)는 일반적으로 적어도 하나의 프로세싱 유닛(104)과 시스템 메모리(106)를 포함한다. 컴퓨팅 장치의 정확한 구성과 유형에 따라, 시스템 메모리(106)는 휘발성(예를 들어, RAM), 비휘발성(예를 들어, ROM, 플래시 메모리 등) 또는 이 둘의 임의의 조합 일 수 있다. 시스템 메모리(106)는 일반적으로 오퍼레이팅 시스템(108), 하나 이상의 어플리케이션(110)을 포함해서 프로그램 데이터(112)를 포함할 수 있다.
컴퓨팅 장치(100)는 추가적인 특징 또는 기능성을 가질 수 있다. 예를 들어, 컴퓨팅 장치(100)는 예를 들어, 자기 디스크, 광디스크 또는 분리형 플래시 메모리 모듈과 같은 추가적인(분리형 및/또는 비분리형) 데이터 저장 장치도 포함할 수 있다. 그러한 추가적인 저장 장치는 도 1에서 분리형 저장 장치(114) 및 비분리형 저장 장치(116)로 도시된다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조체, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 방법 또는 기법으로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 포함할 수 있다. 시스템 메모리(106), 분리형 저장 장치(114) 및 비분리형 저장 장치(116)는 모두 컴퓨터 저장 매체의 예다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기법, CD-ROM, DVD(digital versatile disk) 또는 다른 광 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 다른 자기 저장 장치, 또는 요구된 정보를 저장하는 데 사용될 수 있고 컴퓨팅 장치(100)에 의해 액세스될 수 있는 임의의 다른 매체를 포함하지만, 이것으로 제한되는 것은 아니다. 임의의 그러한 컴퓨터 저장 매체는 컴퓨팅 장치(100)의 일부일 수 있다. 컴퓨팅 장치(100)는 키보드, 마우스, 펜, 음성 입력 장치, 접촉식 입력 장치 등과 같은 입력 장치(들)(118)도 가질 수 있다. 디스플레이, 스피커, 프린터 등의 출력 장치(들)(120)도 포함될 수 있다. 이 장치들은 본 분야에 공지되어 있으며, 여기서 상세히 논의될 필요는 없다.
컴퓨팅 장치(100)는 그 장치에게 예를 들어, 네트워크를 통해 다른 컴퓨팅 장치(124)와 통신하게 하는 통신 접속(122)도 포함할 수 있다. 통신 접속(122)은 통신 매체의 일례이다. 통신 매체는 일반적으로 컴퓨터 판독가능 명령어, 데이터 구조체, 프로그램 모듈, 또는 반송파 또는 다른 전송 메커니즘과 같은 변조된 데이터 신호 내의 다른 데이터에 의해 구체화될 수 있으며, 임의의 정보 전달 매체를 포함한다. 예를 들어, 통신 매체는 유선 네트워크 또는 직접-유선 접속과 같은 유선 매체와, 초음파, RF, 적외선 및 기타 무선 매체와 같은 무선 매체를 포함하지만, 이것으로 제한되는 것은 아니다. 여기서 사용되는 용어 컴퓨터 판독가능 매체는 저장 매체와 통신 매체 양자를 포함한다.
공용 오퍼레이팅 시스템
공용 오퍼레이팅 시스템은 모든 오퍼레이팅 시스템 구성에서 사용되는 신뢰할 수 있는 기본 계층을 제공한다. 공용 오퍼레이팅 시스템은 최소의 기본 어플리케이션 프로그램 인터페이스(API) 집합을 나타낸다. API 집합에 기록된 임의의 소프트웨어는 또한 모든 오퍼레이팅 시스템 구성과 호환가능하다. 예를 들어, API 집합에 대해 기록된 테스트 코드는 모든 오퍼레이팅 시스템 조건 하에서 실행할 수 있다. 테스팅 프로시저는 오퍼레이팅 시스템 및 대상이 되는 다른 플랫폼에 대한 성능, 압박 및 완전한 API 범위를 검사하는 데 적용될 수 있다. 오퍼레이팅 시스템 컴포넌트를 테스트하는 데 사용된 코드는 공용 오퍼레이팅 시스템에 기초한 테스트 플랫폼에 의존한다. 따라서, 테스트 코드는 용이하게 개발될 수 있고, 오퍼레이팅 시스템의 신뢰도가 보장될 수 있다.
공용 오퍼레이팅 시스템은 모든 내장된 컴포넌트에 걸쳐 공유된 안정 플랫폼의 집중된 테스트를 통해 내장된 실행시간의 일반적인 신뢰도를 증가시킨다. 테스트 프로시저는 오퍼레이팅 시스템 컴포넌트들의 코어 집합이 테스트될 수 있도록 컴포넌트들로 나누어질 수 있다. 테스트는 더 많은 컴포넌트를 추가함으로써 확장될 수 있다. 예를 들어, 각각의 오퍼레이팅 시스템 컴포넌트는 개별적으로 테스트되어 각각의 컴포넌트가 코어와 동작가능한 지를 결정할 수 있다.
공용 오퍼레이팅 시스템은 컴포넌트-기반 엔지니어링 툴을 제공한다. 예를 들어, 공용 오퍼레이팅 시스템은 컴포넌트 목록(manitest)을 확인하는 것에 대한 최소의 가능한 구성(즉, 최소의 공간)을 구축하는 데 사용될 수 있다. 공용 오퍼레이팅 시스템은 급격한 공간 감소를 제공하여 내장된 OEM(original equipment manufacturer)에 대한 재료 비용을 줄이게 된다. 고정-기능 서버를 생성하는 데는 공용 오퍼레이팅 시스템의 신뢰도와 최소의 표면적이 가장 적합하다. 고정-기능 서버를 생성하는 주된 이익은 고객의 총 소유권 비용을 감소시키는 것이다. 공용 오퍼레이팅 시스템의 컴포넌트는 오퍼레이팅 시스템 구조에서 상위 계층 종속성을 갖는 컴포넌트에 의해 서비스(즉, 버그 고치기, 더 새로운 버전으로 대체되기 등)될 수 있다.
공용 오퍼레이팅 시스템은 공용 오퍼레이팅 시스템을 확인하기 위해 수행된 여러가지 분석에 기초하여 코어 오퍼레이팅 시스템(메모리, 부트 수행, 및 API 집합을 포함함)에 대한 문서화를 개선한다. 개선된 문서화는 오퍼레이팅 시스템 행위에 대한 OEM 및 독립적인 소프트웨어 벤더(vendor)의 이해를 증가시킨다.
공용 오퍼레이팅 시스템은 사전-부트 오퍼레이팅 시스템으로서 동작한다. 공용 오퍼레이팅 시스템은 오퍼레이팅 시스템의 사전-구축되고 개별화된 이미지를 타겟 하드웨어 상에 놓음으로써 설치된다. 공용 오퍼레이팅 시스템이 컴퓨팅 장치에 설치되면, 공용 오퍼레이팅 시스템 어플리케이션은 공용 오퍼레이팅 시스템 상에 층을 이루는 오퍼레이팅 시스템의 나머지를 설치할 수도 있고, 상이한 버전의 오퍼레이팅 시스템을 설치할 수도 있다.
공용 오퍼레이팅 시스템은 디지털 컴팩트 디스크(CD)와 같은 판독 전용 매체로부터 부팅할 수 있음으로써 시스템 복구를 보조한다. 오퍼레이팅 시스템 전체가 CD에 설치될 수 있다. 하드 디스크 상에 설치된 오퍼레이팅 시스템이 충돌하면, 오퍼레이팅 시스템은 CD로부터의 오퍼레이팅 시스템으로 기계를 재부팅함으로써 복구될 수 있다. 그러나, 시스템은 CD 상에 설치된 오퍼레이팅 시스템의 최소의 부분집합을 재부팅함으로써 보다 더 신속하게 복구될 수 있다. 공용 오퍼레이팅 시스템은 하드 디스크 상에 설치된 오퍼레이팅 시스템을 복구하기 위한 플랫폼을 제공한다. 한 실시예에서, 공용 오퍼레이팅 시스템은 USB(universal serial bus) 포트에 꽂혀진 분리형 플래시 메모리 모듈로부터 부팅될 수 있다.
도 2는 본 발명에 따른 공용 오퍼레이팅 시스템의 기능적 블록도를 도시한 다. 공용 오퍼레이팅 시스템(200)은 모든 오퍼레이팅 시스템 구성에 요구된 코어 오퍼레이팅 시스템 특징을 포함하는 구축 블록이다. 그러나, 공용 오퍼레이팅 시스템(200)은 오퍼레이팅 시스템의 임의의 하드웨어 아키텍처 특정 특징을 포함하지 않는다. 공용 오퍼레이팅 시스템(200)은 오퍼레이팅 시스템의 미래 버전이 구축될 수 있는 기본 계층을 나타낸다. 공용 오퍼레이팅 시스템(200)은 또한, 다른 오퍼레이팅 시스템 제품을 개발하기 위한 표준 구축 블록을 제공한다.
공용 오퍼레이팅 시스템(200)에 대한 코어 기능성은 하드웨어 추상 계층(HAL; 202) 및 커널(204)에 의해 제공된다. HAL(202)은 공용 오퍼레이팅 시스템(200)이 하드웨어 장치와 일반 또는 추상적 레벨로 상호작용하게 하는 프로그래밍 계층이다. HAL(202)은 커널(204) 또는 장치 드라이버로부터 호출될 수 있다.
커널(204)은 공용 오퍼레이팅 시스템(200)의 중앙 모듈이다. 공용 오퍼레이팅 시스템(200)이 부팅될 때, 커널(204)은 로딩되는 첫번째 컴포넌트이다. 로딩 후에, 커널(204)은 메인 메모리에 남아있는다. 커널(204)은 공용 오퍼레이팅 시스템(200) 내의 다른 컴포넌트에 의해 요구된 필수적인 서비스를 제공한다. 커널(204)은 HAL(202)에 의존적이다. 커널은 장치 드라이버(206)와 파일 시스템(208)을 포함하고 그것에 의존한다. 파일 시스템(208)은 다른 오퍼레이팅 시스템 컴포넌트 및 어플리케이션이 수집된 파일로서의 저장 파일들과 상호작용하게 하는 추상화를 제공한다. 커널(204)의 일부 및 다른 장치 드라이버는 파일 시스템(208)으로부터 로딩된다.
장치 드라이버(206)는 프린터, 디스크 드라이버 또는 키보드와 같은 장치를 제어하는 프로그램을 포함한다. 한 실시예에서, 장치 드라이버(206)는 공용 오퍼레이팅 시스템(200)을 포함하는 부팅가능한 시스템을 생성하는 것이 필요하다. 장치 드라이버의 특정 클래스는 공용 오퍼레이팅 시스템(200)의 부팅가능한 이미지를 생성하는 데 사용될 수 있다. 그러한 클래스는 시스템 장치, 저장 장치, 사용자 인터페이스 장치 및 네트워킹 장치를 위한 장치 드라이버를 포함한다. 그러나, 장치 드라이버의 클래스는 공용 오퍼레이팅 시스템 구축 블럭의 일부가 이나다. 장치 드라이버 클래스는 나중에 구축 프로세스를 통해 추가되어, 설치가능한 공용 오퍼레이팅 시스템을 생성한다.
커널(204) 상위의 프로그래밍 계층은 오퍼레이팅 시스템 동적 링크 라이브러리(DLL; 210), 서브시스템 DLL(212) 및 네트워킹 계층(214)을 포함한다. 오퍼레이팅 시스템 DLL(210)은 오퍼레이팅 시스템에 의해 지원된 어플리케이션에 의해 사용될 수 있는 실행가능한 함수의 라이브러리를 포함한다. 예를 들어, 윈도우® NT DLL은 윈도우® NT 어플리케이션에 의해 사용된 실행가능한 함수의 라이브러리이다. DLL은 동시에 몇몇 어플리케이션에 의해 사용될 수 있다. 몇몇 DLL은 오퍼레이팅 시스템을 구비하며 임의의 어플리케이션에 사용가능하다. 다른 DLL은 특정 어플리케이션을 위해 쓰여지고 그 어플리케이션과 함께 로딩된다.
서브시스템 DLL(212)은 어플리케이션에게 기능성을 제공하는 API에 대한 지원을 제공한다. 한 실시예에서, API는 WIN32일 수 있다. 공용 오퍼레이팅 시스템(200)은 API를 기본 컴포넌트로 제한한다. 공용 오퍼레이팅 시스템(200)에 의해 지원된 기본 API 집합은 메모리 관리(커널; 216), 그래픽 장치 인터페이스(GDI; 218), 사용자 인터페이스 요소(사용자; 220), 및 보안 및 암호화 어플리케이션(ADV API; 222)을 위한 DLL을 포함한다.
커널(216)은 원자 기능, 통신 포트 지원, 콘솔 지원, 디버깅 지원, 장치 I/O, DLL 기능, 에러 처리, 파일 I/O, 파일 매핑, 파일 시스템 기능, 핸들 및 오브젝트 기능, 메일 슬롯, 메모리 관리, 국제 언어 지원, 명명된 파이프, 프로세스 및 스레드, 자원 로딩, 스트링, 구조화된 예외 처리, 동기화, 시스템 정보, 시간 기능, 툴 도움 기능, 유니코드 및 문자 집합을 포함하는 다수의 상이한 메모리 관리 기능을 지원한다.
GDI(218)에 의해 지원된 기능은 비트맵, 브러쉬, 클리핑, 칼러, 장치 문맥, 채색된 모양, 폰트 및 텍스트, 선 및 곡선, 메타파일, 경로, 펜, 프린팅 및 영역과 같은 오퍼레이팅 시스템 특징을 포함한다.
사용자(220)는 버튼 기능 및 메시지, 캐럿 관리, 클립보드 지원, 콤보 상자 기능, 조정 공간 및 변형 기능, 커서 관리, 대화 상자 메시지, 동적 데이터 교환, 동적 데이터 교환 관리, 편집 제어, 후크, 아이콘 로딩, 키보드 가속기, 키보드 입력, 목록 상자 제어, 메뉴 제어, 윈도우 메시지 및 메시지 큐, 마우스 입력, 복수의 디스플레이 모니터 지원, 복수의 문서 인터페이스, 페인팅 및 그리기, 미가공 입력, 사각형 기능, (아이콘 등의) 자원 로딩, 스크롤 바, 스트링 기능, 시스템 정보 기능, 로그아웃, 타이머 기능, 원도우 관리, 윈도우 클래스 등록 및 윈도우 속성 기능과 같은 오퍼레이팅 시스템 특징을 지원한다.
ADV API(222)는 액세스 검사, 보안 설명자 관련 기능, 프로세스 관리 기능, 레지스트리 기능, 서비스 관리 기능, 시스템 셧다운 기능, 및 이벤트 추적 기능과 같은 기능들은 지원한다.
네트워킹 계층(214)은 서브시스템 DLL(212) 내의 어플리케이션이 네트워크와 통신할 수 있도록 네트워크 기능성을 제공한다. 네트워킹 계층(214)은 TCP/IP(transmission control protocol/internet protocol) 스택(224), DHCP(dynamic host configuration protocol) 클라이언트(226), AutoIP(automatic private IP) 주소 매김(228), DNS(domain name system) 클라이언트(230), 및 NetBT(network basic input output operating system over TCP/IP; 232)를 포함한다. 공용 오퍼레이팅 시스템(200)은 코어 컴포넌트의 네트워크 속성을 테스트하기 위해 네트워킹 계층(214)을 사용한다.
TCP/IP 스택(224)은 인터넷 상의 호스트들을 접속시키기 위한 통신 프로토콜을 포함하는 정상 TCP/IP 동작을 지원한다. TCP/IP는 네트워크를 통해 데이터를 전송하기 위한 표준이다. TCP/IP 스택(224)은 IP의 현재 버전(IPv4)과 Ipv6과 같은 미래 IP 생성을 구현한다. IP 보안(IPSec)은 TCP/IP 스택(224) 상으로 통합된다. IPSec은 IP 계층에서 패키지의 안전한 교환을 지원하는 프로토콜의 집합이다.
TCP/IP 스택(224)은 UDP(user datagram protocol), ICMP(internet control message protocol), 및 ARP(address resolution protocol)를 포함하는 몇몇 프로토콜을 구현한다. UDP는 IP 네트워크를 통해 데이터그램을 송신 및 수신하는 직접적인 방법을 제공한다. ICMP는 에러, 제어 및 정보성 메시지를 포함하는 패킷을 지원한다. ARP는 IP 주소를 물리적인 주소로 변환한다. TCP/IP 스택(224)은 또한 IP 멀티캐스팅도 지원한다.
DHCP 클라이언트(226)는 DHCP 서버로부터 네트워크 상의 장치들로 동적 IP 주소를 할당하기 위한 프로토콜을 제공한다. DHCP 클라이언트(226)는 멀티캐스트 그룹 주소 할당을 획득하기 위한 멀티캐스트 주소 동적 클라이언트 어플리케이션 프로토콜을 포함한다. AutoIP(228)는 DHCP 서버가 사용가능하지 않을 때 DHCP 클라이언트(226)가 IP 주소를 자동적으로 자체-구성할 수 있도록 기능성을 제공한다. DNS 클라이언트(230)는 도메인 이름을 IP 주소로 변환한다.
NetBT(232)는 근거리 네트워크(LAN)를 위한 특수 기능을 추가하는 API이다. DNS 서버가 네트워크 상에서 사용가능하지 않다면, 다른 컴퓨터들은 NetBT(232)를 통한 브로트캐스트 이름 분해를 통해 배치된다. NetBT(232)는 또한, NetBT 인터페이스와 이름 분해를 요구하는 레가시(legacy) 어플리케이션에 대한 지원을 가능하게 한다.
DLL(210 및 212) 및 네트워킹 계층(214) 상위의 공용 오퍼레이팅 시스템(200)의 계층들은 윈속(winsock; 234), 로그온(logon) 클라이언트(236), LSASS(local security authentication sever; 238), COM(component object medel; 240), RTL(runtime library; 242), SCM(service control manager) 모듈(244), SMSS(session management server; 246), PnP(plug and play) 관리자(248), 및 RPC(remote procedure call; 250)를 포함한다. 쉘(252)은 공용 오퍼레이팅 시스템(200)의 가장 바깥쪽의 계층이다. 쉘(252)은 어플리케이션이 그 자리에 대체될 수 있기 때문에 선택적이다.
윈속(234)은 TCP/IP 프로토콜을 통해 다른 컴퓨팅 장치들과 통신할 수 있는 프로그램을 개발하기 위한 API이다. 거의 모든 컴퓨팅 장치가 네트워크 인터페이스를 갖기 때문에, 윈속 기능성은 공용 오퍼레이팅 시스템(200) 내에 포함된다.
로그온 클라이언트(236)는 지역 사용자 또는 네트워크 사용자가 공용 오퍼레이팅 시스템(200)에 로그온할 수 있도록 기능성을 제공한다. 로그온 클라이언트(236)는 지역 SAM(security account manager)에 대향하여 사용자를 인증한 후에 사용자의 식별을 설립하는 데 요구되는 최소의 기능성을 포함한다. 모든 장치가 사용자가 로그온하기를 요구하지는 않기 때문에, 로그온 클라이언트(236)는 공용 오퍼레이팅 시스템(200)의 선택적인 컴포넌트이다.
LSASS(238)는 암호 기법 및 디지털 보증과 같은 보안 어플리케이션을 위한 기본 기능성을 제공한다. LSASS(238)는 SAM에 대향하여 인증하고, 지역 로그온 능력을 지원한다. LSASS(238)는 로그온 클라이언트(236)로부터 인증 요구를 수신하고, 계정 검증 및 확인을 수행하기 위해 적절한 인증 패키지를 호출한다. 로그온 클라이언트(236)와 관련된 UI(user interface)는 사용자를 로그인하기 위해 로그온 클라이언트/LSASS 프로세스와 상호작용한다. 공용 오퍼레이팅 시스템(200)은 지역 로그온에 요구된 최소 개수의 보안 패키지를 가지고 부팅할 수 있다.
COM(240)은 컴포넌트-기반의 어플리케이션을 구축하기 위한 소프트웨어 아키텍처이다. COM 오브젝트는 개별 컴포넌트이고, 그 각각은 유일한 식별을 가지며, 이 식별은 어플리케이션 및 다른 컴포넌트들이 그들의 특징에 액세스하게 하는 인터페이스를 노출시킨다. RTL(242)은 실행 동안 프로그램에 바인딩된 루틴의 라이 브러리를 포함한다. SCM 모듈(244)은 서비스의 시작과 종료를 제어한다. SCM 모듈(244)은 DHCP(226)와 DNS(230)가 서비스로서 동작하기 때문에 필요하다.
SMSS(246)는 복수의 서브시스템 세션과 사용자 세션을 관리하기 위한 세션 관리자이다. PnP 관리자(248)는 검출된 하드웨어를 제어하는 데 필요한 드라이버의 플러그 앤 플레이 설치를 지원한다. PnP 관리자(248)는 하드웨어-관련된 특징이지만, 아키텍처-특정은 아니다. 몇몇 장치는 PnP 호환가능하지 않기 때문에 PnP 관리자(248)는 선택적인 컴포넌트이다.
RPC(250)는 하나의 컴퓨터 상의 프로그램이 서버 컴퓨터 상의 또는 동일한 컴퓨터의 상이한 프로세스 내의 코드를 실행하게 하는 프로토콜이다. RPC(250)를 사용하면, 시스템 개발자는 서버에 대한 특정 프로시저를 개발할 필요가 없다. 클라이언트 프로그램은 적절한 아규먼트와 함께 메시지를 서버에게 송신하고, 서버는 실행된 코드의 결과를 포함하는 메시지를 리턴한다.
공용 오퍼레이팅 시스템(200)은 컴포넌트화 테스팅과 컴포넌트-기반의 유닛 테스팅을 위한 개발 툴로서 사용될 수 있다. 컴포넌트화는 오퍼레이팅 시스템을 덜 모놀리식하게 만들기 위해 컴포넌트들 간의 종속성을 이해하고 감소시키는 것을 포함한다. 컴포넌트 그룹핑은 오퍼레이팅 시스템을 모놀리식 시스템으로부터 컴포넌트화된 시스템으로 변형하는 것을 보조하는 프레임워크를 제공함으로써 오퍼레이팅 시스템 서비스 능력을 개선시킨다. 공용 오퍼레이팅 시스템(200)은 컴포넌트화된 시스템의 매우 신뢰할 수 있는 기본 오퍼레이팅 시스템 계층을 제공한다.
공용 오퍼레이팅 시스템(200)은 컴포넌트 그룹이 기초를 두는 기본 오퍼레이 팅 시스템 계층을 정의함으로써 컴포넌트 그룹을 생성한다. 컴포넌트의 그룹핑은 전통적인 오퍼레이팅 시스템의 모놀리식 구조를 제거한다. 오퍼레이팅 시스템에서 컴포넌트가 상주하는 계층에 의존하여, 컴포넌트가 상위 계층 내의 컴포넌트들에 의존하지 않도록 헤더들의 적절한 부분집합이 제공될 수 있다.
공용 오퍼레이팅 시스템을 생성하기 위한 프로세스는 도 3을 참조하여 설명된다. 공용 오퍼레이팅 시스템은 오퍼레이팅 시스템 컴포넌트들 간의 종속성을 관리함으로써 생성된다. 프로세스는 블록(300)에서 시작하는데, 이때 표준 오퍼레이팅 시스템은 다수의 상호-의존적인 컴포넌트를 갖는다. 블록(310)에서, 각각의 컴포넌트의 기능을 결정함으로써, 컴포넌트 정의를 제공한다. 프로세스는 블록(320)으로 이동한다.
블록(320)에서, 오퍼레이팅 시스템의 모놀리식 구조 내의 각각의 컴포넌트의 위치를 결정함으로써, 컴포넌트 간의 종속성을 식별한다. 프로세스는 블록(330)으로 간다.
블록(330)에서, 타겟 시나리오를 가능하게 하기 위한 의미있는 구축 블록을 나타내는 컴포넌트 그룹을 식별한다. 각각의 그룹 내의 컴포넌트들은 공통 종속성을 공유한다. 컴포넌트 그룹의 생성은 컴포넌트들 간의 종속성을 제거한다. 예를 들어, 사용자, GDI 및 커널 DLL 각각의 컴포넌트는 모두 쉘 내의 또 다른 컴포넌트에 의존할 수 있다. 이 예의 경우, 쉘에서 컴포넌트 그룹(예를 들어, 새로운 DLL)을 생성함으로써, 3개의 종속성을 제거한다. 새로운 DLL은 3개의 컴포넌트를 실행하는 데 요구된 최소 개수의 API를 포함한다. 따라서, 각각의 컴포넌트는 새로운 DLL 내의 API의 부분집합을 사용하여 실행된다. 또 다른 실시예에서는, 상위 레벨 종속성이 더 이상 존재하지 않도록 소스 코드를 수정함으로써, 컴포넌트 간의 종속성을 제거한다. 프로세스는 블록(340)으로 진행된다.
블록(340)에서, 컴포넌트 그룹들 간의 종속성 규칙을 설립한다. 종속성 규칙은 각각의 컴포넌트 및 컴포넌트 그룹에 대하여 어느 종속성이 적합한 지를 결정한다. 종속성 규칙은 오퍼레이팅 시스템 컴포넌트들 간에 존재하는 종속성의 개수를 최소화한다. 프로세스는 블록(350)으로 진행된다.
블록(350)에서, 컴포넌트 그룹들 간의 종속성 규칙을 시행한다. 종속성 규칙 시행은 컴포넌트가 바람직하지 못한 종속성을 갖지 못하게 한다. 종속성 규칙 시행은 DLL의 효율적인 사용을 보장한다. 프로세스는 블록(360)에서 종료한다.
상술한 명세, 예시 및 데이터는 본 발명의 구성의 제조 및 사용에 대한 완전한 설명을 제공한다. 본 발명의 취지 및 범주를 벗어나지 않고 본 발명의 다수의 실시예가 있을 수 있지만, 본 발명은 이하 첨부된 청구범위에 귀속된다.
본 발명의 공용 오퍼레이팅 시스템은 모든 오퍼레이팅 시스템 구성에서 사용되는 신뢰할 수 있는 기본 계층을 제공한다.

Claims (24)

  1. 공용 오퍼레이팅 시스템을 제공하기 위한 방법으로서,
    오퍼레이팅 시스템 컴포넌트를 정의하는 단계;
    상기 오퍼레이팅 시스템 컴포넌트의 종속성을 식별하는 단계;
    한 그룹 내의 상기 오퍼레이팅 시스템 컴포넌트가 공통 종속성을 공유하도록, 컴포넌트 그룹을 생성하는 단계;
    각각의 오퍼레이팅 시스템 컴포넌트가 최소 개수의 다른 오퍼레이팅 시스템 컴포넌트들에 의존하도록, 상기 컴포넌트 그룹들 간의 종속성 규칙을 확립하는 단계; 및
    오퍼레이팅 시스템 컴포넌트의 실행이 최소 개수의 다른 오퍼레이팅 시스템 컴포넌트의 실행을 포함하도록, 상기 종속성 규칙을 시행하는 단계
    를 포함하고,
    상기 공용 오퍼레이팅 시스템은 상기 오퍼레이팅 시스템 컴포넌트를 지원하도록 구성되는 기본 오퍼레이팅 시스템 계층을 제공하는 방법.
  2. 제1항에 있어서,
    상기 컴포넌트 그룹 생성 단계는 상기 오퍼레이팅 시스템 컴포넌트들 간의 종속성을 감소시키는 방법.
  3. 제1항에 있어서,
    상기 컴포넌트 그룹 생성 단계는 상기 오퍼레이팅 시스템을 모놀리식 시스템으로부터 컴포넌트화된 시스템으로 변형하는 것을 보조하는 프레임워크를 제공함으로써 오퍼레이팅 시스템 서비스 능력을 개선시키는 방법.
  4. 제1항에 있어서,
    상기 컴포넌트 그룹 생성 단계는 오퍼레이팅 시스템 컴포넌트들 간의 종속성이 감소되도록, 헤더의 부분집합을 제공하는 단계를 더 포함하는 방법.
  5. 제1항에 있어서,
    상기 종속성 식별 단계는 상기 오퍼레이팅 시스템 구조 내의 상기 오퍼레이팅 시스템 컴포넌트들의 위치를 결정하는 단계를 더 포함하는 방법.
  6. 종속성을 감소시키는 방법에 따라 구성되는 공용 오퍼레이팅 시스템을 포함하는 시스템으로서,
    상기 방법은,
    오퍼레이팅 시스템 컴포넌트를 정의하는 단계;
    상기 오퍼레이팅 시스템 컴포넌트의 종속성을 식별하는 단계;
    한 그룹 내의 상기 오퍼레이팅 시스템 컴포넌트가 공통 종속성을 공유하도록, 컴포넌트 그룹을 생성하는 단계;
    각각의 오퍼레이팅 시스템 컴포넌트가 최소 개수의 다른 오퍼레이팅 시스템 컴포넌트들에 의존하도록, 상기 컴포넌트 그룹들 간의 종속성 규칙을 확립하는 단계; 및
    오퍼레이팅 시스템 컴포넌트의 실행이 최소 개수의 다른 오퍼레이팅 시스템 컴포넌트의 실행을 포함하도록, 상기 종속성 규칙을 시행하는 단계
    를 포함하고,
    상기 공용 오퍼레이팅 시스템은 상기 오퍼레이팅 시스템 컴포넌트를 지원하도록 구성되는 기본 오퍼레이팅 시스템 계층을 제공하는 시스템.
  7. 제6항에 있어서,
    상기 오퍼레이팅 시스템 컴포넌트와 하드웨어 장치 간에 인터페이스를 제공하도록 구성되어 있는 하드웨어 추상 계층을 더 포함하는 시스템.
  8. 제6항에 있어서,
    상기 오퍼레이팅 시스템 컴포넌트에 서비스를 제공하도록 구성되어 있는 커널을 더 포함하는 시스템.
  9. 제6항에 있어서,
    오퍼레이팅 시스템 어플리케이션을 실행하기 위한 함수를 포함하는 오퍼레이팅 시스템 동적 링크 라이브러리를 더 포함하는 시스템.
  10. 제6항에 있어서,
    어플리케이션 프로그램 인터페이스가 기본 오퍼레이팅 시스템 컴포넌트로 제한되도록, 상기 어플리케이션 프로그램 인터페이스를 지원하도록 구성되어 있는 서브시스템 동적 링크 라이브러리 계층을 더 포함하는 시스템.
  11. 제6항에 있어서,
    오퍼레이팅 시스템 어플리케이션의 네트워크 통신 기능성을 지원하도록 구성되어 있고, 또한 상기 오퍼레이팅 시스템 컴포넌트의 네트워크 속성을 테스트하도록 구성되어 있는 네트워킹 계층을 더 포함하는 시스템.
  12. 공용 오퍼레이팅 시스템으로서,
    오퍼레이팅 시스템 컴포넌트와 하드웨어 장치 간에 인터페이스를 제공하도록 구성되어 있는 하드웨어 추상 계층;
    상기 하드웨어 추상 계층에 의존적이고, 상기 오퍼레이팅 시스템 컴포넌트에 서비스를 제공하도록 구성되어 있는 커널;
    상기 커널에 의존적이고, 오퍼레이팅 시스템 어플리케이션을 실행하기 위한 함수의 라이브러리를 포함하는 오퍼레이팅 시스템 동적 링크 라이브러리;
    상기 커널에 의존적이고, 어플리케이션 프로그램 인터페이스가 기본 오퍼레이팅 시스템 컴포넌트로 한정되도록 상기 어플리케이션 프로그램 인터페이스를 지 원하도록 구성되어 있는 서브시스템 동적 링크 라이브러리 계층; 및
    상기 커널에 의존적이고, 오퍼레이팅 시스템 어플리케이션의 네트워크 통신 기능성을 지원하도록 구성되어 있는 네트워킹 계층
    을 포함하고,
    상기 커널, 상기 오퍼레이팅 시스템 동적 링크 라이브러리, 상기 서브시스템 동적 링크 라이브러리 계층 및 상기 네트워킹 계층은 상기 오퍼레이팅 시스템 컴포넌트들 간의 종속성의 개수를 최소화하도록 구성되어 있는 공용 오퍼레이팅 시스템.
  13. 제12항에 있어서,
    상기 커널은,
    저장 매체로부터 데이터를 로딩하도록 구성되어 있는 파일 시스템; 및
    상기 하드웨어 장치를 제어하기 위한 장치 드라이버
    를 포함하는 공용 오퍼레이팅 시스템.
  14. 제12항에 있어서,
    상기 어플리케이션 프로그램 인터페이스는 메모리 관리를 위한 동적 링크 라이브러리, 그래픽 장치 인터페이스, 사용자 인터페이스 요소, 통신 프로그램, 및 보안 및 암호화 어플리케이션을 포함하는 공용 오퍼레이팅 시스템.
  15. 제12항에 있어서,
    상기 네트워킹 계층은 TCP/IP(transmission control protocol/internet protocol) 스택, 동적 호스트 구성 프로토콜 클라이언트, 자동 사설 인터넷 프로토콜 주소 매김, 도메인 이름 시스템 클라이언트 및 TCP/IP를 통한 네트워크 기본 입/출력 오퍼레이팅 시스템을 포함하는 공용 오퍼레이팅 시스템.
  16. 제12항에 있어서,
    상기 네트워킹 계층은 상기 오퍼레이팅 시스템 컴포넌트의 네트워크 속성을 테스트하는 공용 오퍼레이팅 시스템.
  17. 제12항에 있어서,
    사용자가 상기 공용 오퍼레이팅 시스템에 로그온하게 하기 위한 기능성을 제공하도록 구성되어 있는 로그온 클라이언트를 더 포함하는 공용 오퍼레이팅 시스템.
  18. 제12항에 있어서,
    보안 어플리케이션을 위한 기본 기능성을 제공하는 지역 보안 인증 서버를 더 포함하는 공용 오퍼레이팅 시스템.
  19. 제12항에 있어서,
    컴포넌트-기반 어플리케이션을 구축하기 위한 소프트웨어 아키텍처를 제공하도록 구성되어 있는 컴포넌트 오브젝트 모듈을 더 포함하는 공용 오퍼레이팅 시스템.
  20. 제12항에 있어서,
    실행 동안 프로그램에 바인딩되는 루틴의 라이브러리를 포함하는 실행시간 라이브러리를 더 포함하는 공용 오퍼레이팅 시스템.
  21. 제12항에 있어서,
    오퍼레이팅 시스템 서비스의 관리를 제공하도록 구성되어 있는 서비스 제어 관리자 모듈을 더 포함하는 공용 오퍼레이팅 시스템.
  22. 제12항에 있어서,
    복수의 사용자 세션을 관리하도록 구성되어 있는 세션 관리 서버를 더 포함하는 공용 오퍼레이팅 시스템.
  23. 제12항에 있어서,
    장치 드라이버의 플러그 앤 플레이(plug and play) 설치를 지원하도록 구성되어 있는 플러그 앤 플레이 관리자를 더 포함하는 공용 오퍼레이팅 시스템.
  24. 제12항에 있어서,
    프로세스가 개별 프로세스 내의 코드를 호출하게 하도록 구성되어 있는 원격 프로시저 호출 인프라구조를 더 포함하는 공용 오퍼레이팅 시스템.
KR1020050013723A 2004-02-20 2005-02-18 공용 오퍼레이팅 시스템을 제공하기 위한 방법 및 시스템 KR101130370B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/783,781 2004-02-20
US10/783,781 US7444621B2 (en) 2004-02-20 2004-02-20 Method and system for providing a common operating system

Publications (2)

Publication Number Publication Date
KR20060042093A true KR20060042093A (ko) 2006-05-12
KR101130370B1 KR101130370B1 (ko) 2012-03-27

Family

ID=34861332

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050013723A KR101130370B1 (ko) 2004-02-20 2005-02-18 공용 오퍼레이팅 시스템을 제공하기 위한 방법 및 시스템

Country Status (5)

Country Link
US (1) US7444621B2 (ko)
EP (1) EP1669858A3 (ko)
JP (2) JP2005235221A (ko)
KR (1) KR101130370B1 (ko)
CN (1) CN1673957B (ko)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8121338B2 (en) * 2004-07-07 2012-02-21 Directsmile Gmbh Process for generating images with realistic text insertion
US7739660B2 (en) * 2006-03-31 2010-06-15 Sap Ag Code management in a distributed software development environment
US8972532B2 (en) * 2006-06-30 2015-03-03 Ca, Inc. Providing hardware configuration management for heterogeneous computers
US7890724B2 (en) 2006-12-29 2011-02-15 Sandisk Corporation System for code execution
US7890723B2 (en) 2006-12-29 2011-02-15 Sandisk Corporation Method for code execution
US8578332B2 (en) * 2007-04-30 2013-11-05 Mark Murray Universal microcode image
US9454384B2 (en) * 2007-07-05 2016-09-27 Microsoft Technology Licensing, Llc Custom operating system via a web-service
KR100961451B1 (ko) * 2008-01-04 2010-06-09 (주)가민정보시스템 휴대용 저장장치 및 상기 휴대용 저장장치를 이용하는 응용프로그램 구동 방법
US20090217259A1 (en) * 2008-02-26 2009-08-27 Microsoft Corporation Building Operating System Images Based on Applications
US8191075B2 (en) 2008-03-06 2012-05-29 Microsoft Corporation State management of operating system and applications
US8468366B2 (en) 2008-03-24 2013-06-18 Qualcomm Incorporated Method for securely storing a programmable identifier in a communication station
US8171276B2 (en) * 2008-06-10 2012-05-01 International Business Machines Corporation Minimal startup mode for performing multiple-reboot configuration
JP5343489B2 (ja) * 2008-09-29 2013-11-13 日本電気株式会社 コンピュータシステム、およびレガシーアプリケーション実行方法、およびプログラム
US9588803B2 (en) 2009-05-11 2017-03-07 Microsoft Technology Licensing, Llc Executing native-code applications in a browser
US10089119B2 (en) * 2009-12-18 2018-10-02 Microsoft Technology Licensing, Llc API namespace virtualization
US8806190B1 (en) 2010-04-19 2014-08-12 Amaani Munshi Method of transmission of encrypted documents from an email application
US9323921B2 (en) 2010-07-13 2016-04-26 Microsoft Technology Licensing, Llc Ultra-low cost sandboxing for application appliances
US8903705B2 (en) 2010-12-17 2014-12-02 Microsoft Corporation Application compatibility shims for minimal client computers
US9495183B2 (en) 2011-05-16 2016-11-15 Microsoft Technology Licensing, Llc Instruction set emulation for guest operating systems
US8776094B2 (en) 2011-08-11 2014-07-08 Microsoft Corporation Runtime system
US8695021B2 (en) 2011-08-31 2014-04-08 Microsoft Corporation Projecting native application programming interfaces of an operating system into other programming languages
US9413538B2 (en) 2011-12-12 2016-08-09 Microsoft Technology Licensing, Llc Cryptographic certification of secure hosted execution environments
US9389933B2 (en) 2011-12-12 2016-07-12 Microsoft Technology Licensing, Llc Facilitating system service request interactions for hardware-protected applications
US20150033204A1 (en) * 2012-03-01 2015-01-29 Nec Corporation System-construction-procedure generating device, system-construction-procedure generating method, and program thereof
CN102662670B (zh) * 2012-04-05 2014-12-03 林添孝 一种场景式无核嵌入式实时操作系统的实现方法
CN103440337B (zh) * 2013-09-09 2017-01-11 百度在线网络技术(北京)有限公司 Api兼容性扫描方法和api兼容性扫描装置
US9148775B2 (en) 2013-09-27 2015-09-29 Microsoft Technology Licensing, Llc Multivariant mobile operating system configuration
US9185136B2 (en) 2013-11-28 2015-11-10 Cyber-Ark Software Ltd. Correlation based security risk identification
US20150186377A1 (en) * 2013-12-27 2015-07-02 Google Inc. Dynamically Sharing Intents
US10635504B2 (en) 2014-10-16 2020-04-28 Microsoft Technology Licensing, Llc API versioning independent of product releases
CN105657562A (zh) * 2014-11-10 2016-06-08 乐视致新电子科技(天津)有限公司 一种实现卡拉ok应用的系统和方法
US9948760B2 (en) 2015-06-26 2018-04-17 Honda Motor Co., Ltd. System and method for controlling vehicle network functions with version control
CN105610952A (zh) * 2015-12-31 2016-05-25 西安航天动力研究所 一种基于通用组件的远程应用程序调用系统及方法
US10637864B2 (en) * 2016-05-05 2020-04-28 Ca, Inc. Creation of fictitious identities to obfuscate hacking of internal networks
US10515187B2 (en) 2016-06-29 2019-12-24 Symantec Corporation Artificial intelligence (AI) techniques for learning and modeling internal networks
CN106250113A (zh) * 2016-07-18 2016-12-21 百富计算机技术(深圳)有限公司 一种应用开发平台
US20200356885A1 (en) * 2019-05-10 2020-11-12 International Business Machines Corporation Service management in a dbms
CN112083959A (zh) * 2019-06-13 2020-12-15 中兴通讯股份有限公司 服务配置管理方法、装置、终端和计算机可读存储介质
CN111240752B (zh) * 2019-12-31 2021-08-17 北京元心科技有限公司 操作系统自适配方法及系统
US11093221B1 (en) * 2020-02-14 2021-08-17 Red Hat, Inc. Automatic containerization of operating system distributions
US11816451B2 (en) 2021-02-16 2023-11-14 Hcl Technologies Limited Method and system for identifying common requirements from applications

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2131406C (en) * 1993-09-21 2002-11-12 David D'souza Preemptive multi-tasking with cooperative groups of tasks
US5854932A (en) * 1995-08-17 1998-12-29 Microsoft Corporation Compiler and method for avoiding unnecessary recompilation
US5867710A (en) * 1995-09-05 1999-02-02 Motorola, Inc. Portable microkernel operating system verification and testing
US6075939A (en) * 1997-09-27 2000-06-13 Lynx Real-Trime Systems, Inc. Tightly coupled, scalable module based micro-kernel operating system architecture
JP4562910B2 (ja) * 1998-03-23 2010-10-13 マイクロソフト コーポレーション オペレーティングシステムのアプリケーション・プログラム・インターフェース
US6275893B1 (en) * 1998-09-14 2001-08-14 Compaq Computer Corporation Method and apparatus for providing seamless hooking and intercepting of selected kernel and HAL exported entry points in an operating system
US7140015B1 (en) * 1999-09-29 2006-11-21 Network Appliance, Inc. Microkernel for real time applications
TW498228B (en) * 1999-11-24 2002-08-11 Elegent Technologies Inc Self-contained network browser with diagnostic abilities
WO2001093020A2 (en) * 2000-06-01 2001-12-06 Aduva Inc. Virtual system configurator server for linux
US20020087734A1 (en) * 2000-12-29 2002-07-04 Marshall Donald Brent System and method for managing dependencies in a component-based system
US6993642B2 (en) * 2001-07-24 2006-01-31 Microsoft Corporation Method and system for creating and employing an operating system having selected functionality
US7133874B2 (en) * 2001-12-13 2006-11-07 Microsoft Corporation Prototyping model for components of a software program
US6993746B2 (en) * 2002-04-19 2006-01-31 Wind River Systems, Inc. Configuration tool for building a user application for multiple operating systems
US7111279B2 (en) * 2002-10-30 2006-09-19 Hewlett-Packard Development Company, L.P. Intercepting calls to common dialog functions

Also Published As

Publication number Publication date
CN1673957A (zh) 2005-09-28
KR101130370B1 (ko) 2012-03-27
EP1669858A2 (en) 2006-06-14
US20050187894A1 (en) 2005-08-25
JP2011258242A (ja) 2011-12-22
JP2005235221A (ja) 2005-09-02
US7444621B2 (en) 2008-10-28
CN1673957B (zh) 2010-05-12
EP1669858A3 (en) 2007-08-29

Similar Documents

Publication Publication Date Title
KR101130370B1 (ko) 공용 오퍼레이팅 시스템을 제공하기 위한 방법 및 시스템
US6871221B1 (en) Method and apparatus to manage network client logon scripts using a graphical management and administration tool
KR100855853B1 (ko) 이미지-기반 소프트웨어 설치
US9164749B2 (en) Differential software provisioning on virtual machines having different configurations
US7774762B2 (en) System including run-time software to enable a software application to execute on an incompatible computer platform
US10275258B2 (en) Systems and methods for enhancing the availability of multi-tier applications on cloud computing platforms
EP2697714B1 (en) Deployment system for multi-node applications
TWI526931B (zh) 用於虛擬機器之繼承產品啟動
US6968307B1 (en) Creation and use of virtual device drivers on a serial bus
US8856294B2 (en) System and method for converting a Java application into a virtual server image for cloud deployment
EP1280058A2 (en) Method and system for creating and employing an operating system having selected functionality
KR20020035570A (ko) 자동적인 장치 드라이버 구성을 위한 방법, 시스템 및컴퓨터 판독 가능 저장 매체
US20090328030A1 (en) Installing a management agent with a virtual machine
JP2005149495A (ja) 非プラットフォーム固有の一意の識別子の生成
US8429717B2 (en) Method for activating virtual machine, apparatus for simulating computing device and supervising device
CN110928554A (zh) 一种部署方法、装置、设备及存储介质
WO2014188780A1 (ja) 情報処理装置及び特定方法
US5838911A (en) Method and apparatus for obtaining network information by using a dynamic link library
US11405277B2 (en) Information processing device, information processing system, and network communication confirmation method
Cisco Release Notes for CiscoWorks2000 CD One 3rd Edition on AIX
Cisco Release Notes for CiscoWorks2000 CD One 3rd Edition on HP-UX
US7350214B2 (en) Printer driver initialization
Thomas MCTS 70-680 Rapid Review: Configuring Windows 7
WO2010057526A1 (en) Virtualization mediated system and method
EP1720098A1 (en) System including run-time software to enable a software application to execute on an incompatible computer platform

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150217

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160218

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170220

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180219

Year of fee payment: 7