KR100513093B1 - 씨.엠.엘.투를 기반으로한 리눅스 커널, 응용 소프트웨어패키지의 통합 설정과 파일목록 생성방법 - Google Patents

씨.엠.엘.투를 기반으로한 리눅스 커널, 응용 소프트웨어패키지의 통합 설정과 파일목록 생성방법 Download PDF

Info

Publication number
KR100513093B1
KR100513093B1 KR10-2002-0082339A KR20020082339A KR100513093B1 KR 100513093 B1 KR100513093 B1 KR 100513093B1 KR 20020082339 A KR20020082339 A KR 20020082339A KR 100513093 B1 KR100513093 B1 KR 100513093B1
Authority
KR
South Korea
Prior art keywords
cml2
file
option
name
list
Prior art date
Application number
KR10-2002-0082339A
Other languages
English (en)
Other versions
KR20040055892A (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 한국전자통신연구원
Priority to KR10-2002-0082339A priority Critical patent/KR100513093B1/ko
Priority to US10/445,824 priority patent/US7367013B2/en
Publication of KR20040055892A publication Critical patent/KR20040055892A/ko
Application granted granted Critical
Publication of KR100513093B1 publication Critical patent/KR100513093B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 컴퓨터 언어인 CML2를 기반으로 하여 컴퓨터 운영체제인 리눅스의 커널과 응용 소프트웨어 패키지들을 통합하여 설정하고, 설정의 결과에 따라 목적 컴퓨터에 설치될 파일 목록을 생성하는 방법에 관한 것이다. 즉, 본 발명은 옵션 정보 파일을 통해 목적 컴퓨터에 설치하고자 하는 응용 프로그램 패키지들의 설정 가능 사항들을 기술 할 수 있게 하며, 이들을 CML2 규칙 파일로 변환 시키고 리눅스 커널의 CML2 규칙 파일과 통합함으로써 커널과 응용 프로그램들을 함께 설정 할 수 있게 한다. 이에 따라 커널과 응용 프로그램들간의 의존성 규칙들을 기술 할 수 있는 환경을 제공할 수 있는 이점이 있다. 또한 옵션 정보 파일에 옵션별로 파일 목록 속성을 갖을 수 있게 하고, 이를 파일 목록 테이블에 저장했다가 설정 결과에 따라 설치 파일 목록을 생성함으로써 목적 시스템에 설치될 파일들의 목록을 사용자의 설정에 따라 쉽게 얻을 수 있게 하는 이점이 있다.

Description

씨.엠.엘.투를 기반으로한 리눅스 커널, 응용 소프트웨어 패키지의 통합 설정과 파일목록 생성방법{INTEGRATED CONFIGURATION OF LINUX KERNEL AND SOFTWARE PACKAGES AND GENERATION OF INSTALLATION FILE LIST BASED ON CML2 COMPUTER LANGUAGE}
본 발명은 CML2 컴퓨터 언어를 이용한 응용 소프트웨어 패키지 통합 방법에 관한 것으로, 특히 컴퓨터 언어인 CML2를 기반으로 하여 컴퓨터 운영체제인 리눅스의 커널과 응용 소프트웨어 패키지들을 통합하여 설정하고, 설정의 결과에 따라 목적 컴퓨터에 설치될 파일 목록을 생성하는 방법에 관한 것이다.
내장형 시스템(Embedded System)은 전용 동작을 수행하거나 또는 특정 응용 소프트웨어와 함께 사용되도록 디자인된 마이크로 프로세서를 기반으로 하는 컴퓨터 시스템 또는 컴퓨팅 장치를 말한다. 휴대용 개인단말기(PDA), 휴대폰, 디지털 TV, 게임기 등은 대표적인 내장형 시스템이다. 이러한 시스템들은 전통적으로 운영체제 없이 전용 프로그램을 이용해서 동작하거나 간단한 운영체제와 응용 프로그램을 이용해 동작한다.
그러나 최근의 내장형 시스템이 점점 더 복잡한 기능을 요구함에 따라 기존의 단순한 운영체제가 아닌 최신의 기술들을 제공할 수 있는 운영체제를 점점 더 요구하게 되었다. 이러한 최신 기술들은 TCP/IP 통신 규약, 플래시 메모리 관리 기능, 32비트의 고속 중앙처리 장치의 지원 등이다. 이러한 요구는 내장형 시스템 개발자들로 하여금 리눅스 운영체제를 경제적이고 사용하기 쉬운 내장형 운영체제로 채택하게 했다. 리눅스 운영체제는 GPL(GNU Public License)에 따라 자유롭게 수정, 배포가 가능하며 현대적인 운영체제가 가져야 하는 기능들을 포함하기 때문이다.
상기 내장형 시스템은 일반적인 개인용 컴퓨터(Personal Computer)와 달리 시스템 마다 각기 다른 중앙 처리장치, 메모리, 주변기기 등으로 구성되어 있는데, 대부분의 내장형 시스템은 적은 양의 메모리와 빠르지 않은 중앙처리 장치를 가지고 있다. 따라서 리눅스를 내장형 시스템에 적재시키기 위해서는 리눅스 커널을 내장형 시스템의 사양에 따라 적절히 설정해 주어야 한다. 또한 목적 시스템에 설치될 응용 프로그램들도 선택적으로 선택하여 설치 될 수 있어야 하며, 응용 프로그램 내의 여러 파일 중 사용자가 원하는 것만 선택적으로 설치할 수 있는 개발 환경이 필요하다.
리눅스 커널과 응용 프로그램들 간에는 서로 의존 관계를 가지고 있는 경우 가 많은데, 이는 목적 컴퓨터에 적합하게 리눅스 커널과 응용 프로그램을 설정하는 것을 어렵게 한다. 예를 들어 X 윈도우 응용 프로그램의 경우 리눅스 커널의 unix domain socket 이라는 옵션이 선택되는 경우에만 제대로 동작이 가능하다. 이러한 것이 설정 과정 중에 검사되어 사용자에게 알려주거나 자동으로 설정되기 위해서는 리눅스 커널과 응용 프로그램이 함께 설정되어야만 한다.
일반적인 상황에서는 리눅스 커널과 응용 프로그램이 설정되는 방식은 상이하다. 리눅스 커널은 BASH 쉘 스크립트 컴퓨터 언어와 TK스크립트 컴퓨터 언어 등을 이용해 설정되게 되며, 응용 프로그램들은 설정을 위한 특별한 방법이 없이 각 프로그램들 마다의 방식을 사용하게 된다. 이렇게 리눅스 커널과 각 응용 프로그램들은 각각 따로 설정하게 되므로 서로간의 상관 관계를 기술할 방법은 없다. 이를 해결하기 위해 Lineo Embedix의 경우 리눅스 커널과 응용의 설정 가능한 사항을 함께 기술하는 ECD(Embedix Component Descriptor)라는 파일을 사용한다. 커널과 각 응용들은 자신의 ECD파일을 가지며 이들에는 설정 가능한 사항을 기입하게 된다. ECD 파일의 각 옵션은 자신이 요구하는 의존성 규칙을 가질 수 있게 함으로써 커널과 응용간의 의존성 기술을 비롯한 통합 설정이 가능하다.
그러나 ECD 파일은 일반적으로 사용되는 것이 아닌 Lineo Embedix 만이 사용하는 포맷이다. 리눅스 커널 같은 경우 약 2000개 정도의 설정 가능한 옵션이 있다. 이를 ECD 파일로 변환하는 경우 수 메가 바이트에 해당하는 양의 ECD 파일을 만들어야 하며, 커널의 설정파일을 ECD 파일로 자동으로 변환하는 것은 어려운 문제점이 있다.
CML2(Configuration Menu Language)는 현재 리눅스 커널이 사용하는 설정 방식의 복잡성을 개선하기 위해 Eric Raymond에 의해 개발된 커널 설정을 위한 컴퓨터 언어이다. CML2는 원래 커널 설정의 복잡성을 개선하기 위해서 개발된 언어이지만 설정을 위한 모든 경우에 적용이 가능한 확장성 있는 언어이다. CML2 는 설정 가능한 사항을 표시하는 심벌들과 심벌간의 계층구조를 표현하기 위한 메뉴들 심벌간의 의존성 관계를 나타내기 위한 의존성 규칙들로 구성된다. 또한 CML2는 규칙을 기반으로 하는 언어이다. 심벌들의 값을 설정 중 규칙을 어긋나게 설정하는 경우 이를 자동으로 검사하여 사용자에게 알려주게 된다. 리눅스 커널 2.4.x 이후 버전부터는 CML2는 리눅스 커널설정의 기본 방식으로 채택될 것이다. CML2 규칙은 CML2 컴파일러에 의해 컴파일되고, CML2 프론트 엔드에 의해 사용자에게 설정 할 수 있는 형태로 보여주게 된다. 이때 보여지는 방식은 다양한데, 텍스트를 이용해서 보여줄 수도 있고, 그래픽 화면을 통해 좀더 보기 쉽게 보여주기도 한다. 사용자는 CML2 프론트 엔드에 나타난 설정 사항들을 자신이 원하는 목적 시스템의 필요에 따라 설정하게 되며, 설정의 최종결과는 사용자가 선택한 심볼들이다.
전술한 바와 같이, 리눅스 커널과 응용 프로그램들을 통합해서 설정하기 위해서는 커널과 응용 프로그램들이 한가지 방식으로 기술되어야 하며, 이를 위해 종래 Lineo Embedix는 자신들만의 특별한 기술 방식인 ECD파일 포맷을 통해 이를 구현한다. 그러나 이는 리눅스 커널이 바뀔 경우 수 메가 바이트에 해당하는 ECD파일을 매번 새로 수작업으로 만들어 주어야 하는 문제점이 있다. 또한 리눅스 커널은 오픈 소스의 특성상 수정이 매우 빈번하다는 것을 고려할 때 상기 ECD 파일을 매번 새로 수작업으로 생성하는 것은 효율적이지 못한 문제점이 있다.
따라서, 본 발명의 목적은 이러한 문제점을 제거 하기 위해 2.4.x 버전대의 커널이 사용하는 설정 방식인 CML2를 통합설정방식으로 사용하여 응용프로그램들과 리눅스 커널을 통합 설정하며, 또한 응용프로그램의 옵션 정보 파일에 설치 될 파일 목록을 첨가함으로써 상기 통합 설정 결과에 따라 목적 시스템에 설치될 파일의 목록을 생성하는 방법을 제공함에 있다.
상술한 목적을 달성하기 위한 본 발명은 CML2 컴퓨터 언어를 기반으로 리눅스 커널과 응용 소프트웨어 패키지를 통합 설정하며, 설치 파일 목록을 생성하는 방법에 있어서, (a)각 응용 프로그램에 대해 옵션 정보 파일을 만들며, 이에 설정 가능한 옵션들의 리스트를 기록한 후, 각 옵션에 맞는 속성을 할당하는 단계와; (b)각 응용 패키지의 옵션 정보 파일을 CML2 규칙 파일로 변환해서 저장하는 단계와; (c)상기 변환 과정 중 각 옵션을 CML2 규칙 파일의 'symbols', 'menus', 'menu', 의존성 섹션에 추가하는 단계와; (d)상기 변환 과정 중 옵션이 의존성 속성을 가지고 있는 경우 옵션의 의존성을 CML2 규칙 파일에 추가하는 단계와; (e)상기 변환 과정 중 각 옵션의 파일 목록을 파일 목록 테이블에 저장하는 단계와; (f)상기 변환된 응용 패키지들의 CML2 규칙 파일들과 리눅스 커널의 CML2규칙 파일을 통합하여 통합 규칙 파일로 저장하는 단계와; (g)사용자의 설정 결과에 따라 목적 시스템에 설치된 파일의 목록을 생성하는 단계;를 포함하는 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시 예의 동작을 상세하게 설명한다.
도 1은 본 발명의 실시 예에 따른 CML2 컴퓨터 언어를 기반으로 한 리눅스 커널, 응용 소프트웨어 패키지의 통합 설정과 설치 파일 목록을 생성을 위한 소프트웨어 모듈 구성을 도시한 것이다. 상기 도 1을 참조하면, 목적 컴퓨터에 설치하고자 하는 소프트웨어 응용 프로그램들의 설정 가능한 사항들을 옵션화하여 기록하는 옵션 정보 파일 생성부(100)와, 옵션 정보 파일을 CML2 언어의 규칙 파일로 변환하는 CML2변환부(200)와, 상기 변환된 CML2 규칙 파일들과 리눅스 커널의 CML2 규칙 파일을 통합하는 CML2 통합부(300)와, 옵션 정보 파일에 기록된 파일목록을 사용자의 설정 결과에 따라 설치 파일 목록을 생성하는 파일목록 생성부(400) 등으로 구성되는 본 발명의 응용 소프트웨어 패키지의 통합설정과 설치 파일 목록 생성을 위한 소프트웨어 모듈은 즉, 옵션 정보파일에 S/W 응용 패키지의 설정 가능한 사항을 기록하고, 이를 커널의 설정 방식인 CML2로 자동 변환하여 통합된 환경에서 리눅스 커널과 응용 프로그램을 설정하고 설정결과에 따라 각 응용 패키지에서 설치된 파일리스트를 생성하게 된다.
도 2는 본 발명의 실시 예에 따른 CML2 컴퓨터 언어를 기반으로 한 리눅스 커널, 응용 소프트웨어 패키지의 통합 설정과 설치 파일 목록을 생성하는 처리 흐름을 도시한 것이다.
각 응용 프로그램은 설정 가능한 사항들에 대한 정보를 가지는 옵션 정보 파일을 가져야 한다(S10). 옵션 정보 파일은 S/W응용 패키지의 설정 가능한 사항을 기술한 파일이다. 옵션 정보 파일은 소프트웨어 개발 엔지니어나 배포자가 작성한다. 옵션 정보 파일들은 도 3에 도시된 바와 같이 다수의 옵션들로 구성되며(25,26,27,28) 각 옵션은 자신을 다른 옵션으로부터 구별할 수 있는 이름(20)과 옵션에 대한 짧은 도움말(21), 옵션에 대한 긴 도움말(22), 옵션이 선택될 경우 목적 컴퓨터에 설치되어야 할 파일 목록(23), 다른 옵션이나 리눅스 커널의 옵션과의 관계를 나타내는 의존성(24), 옵션이 하위 옵션을 포함하는 그룹인지를 표시하는 그룹 속성표시(29)를 갖는다. 옵션이름, 짧은 도움말, 긴 도움말은 각 옵션이 반드시 가져야 하는 속성이며, 나머지 속성들은 갖지 않아도 된다. 옵션간에는 계층구조를 줄 수 있는데, 하나의 옵션은 여러 개의 하위 옵션을 가질 수 있다. 옵션간의 계층구조의 표시는 여러 가지 방법이 가능하며 본 발명은 계층구조 표시의 방법은 제한하지 않는다. 한 예로 상기 도 3에서와 같이 들여쓰기를 통해 계층구조를 표시할 수 있다. 상기 도 3에서 (25)는 최상위 옵션이며 (26),(28)은 직계 하위 옵션이다. 또한 (27)은 (26)의 직계하위 옵션이다. 그룹 속성을 가지는 옵션(29)은 옵션이름, 짧은 도움말, 긴 도움말만을 가지고 있으며 하위 옵션을 반드시 가져야 한다. 모든 S/W응용 패키지는 각자 자신의 옵션 정보파일을 가져야 한다.
앞서 기술된 방식에 따라 작성된 각 응용 패키지의 옵션 정보 파일들은 본 발명에 따라 CML2 규칙 파일로 변환되어야 한다(S11). CML2 규칙파일은 도 5에서 보여지는 바와 같은 정형화된 형태를 가진다. 각 응용 패키지의 CML2 규칙파일은 symbols 섹션(58), menus섹션(67), menu들(72,74)과 의존성 규칙들(75)로 구성된다. symbols 섹션은 한 개 이상의 심벌들(56,57)로 구성된다. 하나의 심벌은 CML2 설정에 있어서 설정 가능한 하나의 아이템이다. 이들은 심볼 이름, 짧은 도움말, 긴도움말로 구성된다. Menus섹션은 메뉴들(65,66)을 열거하는 섹션이다. menu항목들(72,74)은 심볼과 심볼, 메뉴와 심볼, 메뉴와 메뉴간의 계층구조를 나타내는 항목들이다. 하나의 menu항목은 자신이 포함하는 심볼과 메뉴들을 갖는다. 상기 도 5의 메뉴 항목인 (72)는 두개의 하위 심벌(70,71)을 가지고 있음을 보이는 예이다. CML2 규칙파일 내에서 각 섹션간의 상대적인 위치는 바뀔 수 있다. 각 응용 패키지의 옵션 정보 파일은 CML2 규칙 파일로 변환되어야 한다.
도 4는 본 발명의 실시 예에 따른 응용 패키지의 CML2 규칙파일로의 변환 과정을 도시한 것이다. 먼저 하나의 S/W응용 패키지를 선택하고 그에 해당하는 옵션 정보 파일과, 변환 결과를 저장할 CML2규칙 파일을 연다(S30). 옵션 정보파일에 나열된 옵션들을 하나씩 읽어 이를 CML2의 심볼이나, 메뉴로 변환하게 된다(S31∼S42). 옵션 하나를 옵션 정보파일에서 가져와서(S31) 먼저 이 옵션이 그룹속성을 가지는 옵션인지를 검사한다(S32). 상기 옵션이 그룹 속성을 가지는 경우 심볼로 변환하지 않고 메뉴로만 추가되게 된다(S35). 그러나 그룹 속성을 가지지 않는 경우 심볼과 메뉴 두 섹션에 모두 추가가 이루어 져야 한다(33,35).
도 6은 본 발명의 실시 예에 따라 옵션 아이템을 심볼로 바꾸는 과정을 도시한 것이다. CML2 규칙 파일에 심볼 섹션이 없는 경우 symbols 문을 CML2 규칙 파일에 추가하여야 한다(S81). 이는 심벌 섹션을 표시하는 것으로 상기 도 5의 (51)에서 보여진다. 그 후 패키지 정보파일내의 옵션을 심벌로 변환해서 CML2 규칙파일의 심볼 섹션에 추가해야 한다(S81∼S87). 이를 위해 (S31)에서 가져온 옵션 아이템의 옵션 이름(20)을 유일한 CML2 심벌이름(50)으로 변환한다(S82). 상기 변환에 있어서 제약은 없으며, 단지 유일해야 하면 된다. 변환된 심벌이름을 심벌 섹션(58)에 추가한다(S83). 옵션아이템의 짧은 도움말(21)을 심볼이름 옆(51)에 추가하고(S84) text(53)라는 문장을 추가한다(S85). 옵션 아이템의 긴 도움말(22)을 심볼 이름 다음에(54)에 추가하고(S86) 그 다음에 "." (55)을 추가하면(S87) 하나의 옵션 아이템에 대한 심볼 아이템으로의 변환은 끝나는 것이다.
한 옵션 아이템에 대해 CML2규칙파일에 심벌추가가 끝나면 계층구조상 하위 옵션이 존재하는지의 여부(S34)에 따라 메뉴항목을 추가해야 한다(S35,S36). 하위 옵션이 있는 경우 menus항목에 옵션아이템을 메뉴로 변환하여 추가해야 한다.
도 7은 본 발명에서 옵션 아이템을 menus섹션(67)에 추가하는 과정을 보인다. CML2 규칙파일에 menus 섹션이 없는 경우 menus 문장을 CML2 규칙 파일에 추가하여야 한다(S91). 이는 menus 섹션을 표시하는 것으로 상기 도 5의 (59)가 이것이다. 그 후 패키지 정보파일내의 옵션을 menus섹션의 아이템으로 변환해서 CML2 규칙파일의 menus 섹션에 추가해야 한다(S91∼S97). 이를 위해 상기 도 4의 (S31)단계에서 가져온 옵션 아이템의 옵션 이름(20)을 유일한 CML2 메뉴이름(60)으로 변환한다(S92). 상기 변환에 있어서 제약은 없으며, 단지 유일한 메뉴 이름이면 된다. 변환된 메뉴이름을 menus 섹션(67)에 추가한다(S93). 옵션아이템의 짧은 도움말(21)을 심볼이름 옆(61)에 추가하고(S94) text(62)라는 문장을 추가한다(S95). 옵션 아이템의 긴 도움말(22)을 심볼이름 다음 라인(63)에 추가하고(S96), 그 다음 라인에 "."(64)를 추가하면(S97) 하나의 옵션 아이템에 대한 메뉴 아이템으로의 변환은 끝나는 것이다. menus섹션에 변환된 메뉴항목을 추가한 뒤(S35), menu항목(72,73)을 추가한다(S36). 추가는 간단히 menu 문장을 추가하고, 상기 (S92)단계에서 변환된 메뉴이름을 옆에 적는다.
이때 상위 옵션이 존재하는 경우(S37) menu섹션에 변환된 심볼과 메뉴를 등록해야 하는데 그 과정(S38)은 도 8에서와 같다.
먼저 자신이 속하는 상위 옵션의 menu항목을 찾는다(S100). 그룹속성을 가지는 경우 상술된 과정을(S92,S93) 통해 변환된 메뉴이름(60)을 menu섹션의 상위 옵션의 menu항목에 추가한다. 그룹 속성을 가지지 않는 경우 (S82,S83)과정을 통해 변환된 심볼 이름을 기록하고 그 옆에 "{" 문자, (S92,S93)과정을 통해 변환된 메뉴이름, "}"문자를 차례로 menu섹션의 상위 옵션의 menu항목에 기록한다. 옵션의 심볼로의 변환과 메뉴로의 변환이 끝나면 옵션이 가지는 의존성 속성을 CML2규칙 파일(75)에 추가한다(S40). CML2 규칙파일 내에서의 위치는 어디든 상관없다. 또한 변환 과정 중 옵션 파일 목록 테이블을 생성한다(S39).
도 11은 본 발명의 실시 예에 따라 파일 목록 테이블을 작성하는 과정을 도시한 것이다. 옵션이 파일 목록을 갖는 경우(S140) 옵션의 CML2 심벌이름과 파일 목록을 파일 목록 테이블에 기록한다(S141).
전술한 바와 같이 하나의 옵션에 대한 변환 과정이 끝난 경우 해당 패키지의 옵션 정보 파일에서 새로운 옵션을 다시 읽어서 위의 과정(S31∼S40)을 반복한다. 모든 옵션에 대한 변환이 끝나면 응용 패키지의 옵션 정보파일을 닫고, CML2 규칙 파일을 닫는다.
본 발명에서 앞서 상술한 응용 패키지 옵션 정보 파일의 CML2 규칙 파일로의 변환 과정(S30∼S42)은 모든 응용 패키지에 대해 처리가 끝날 때까지(S43) 반복한다. 본 발명이 제시하는 바에 따라 모든 응용 패키지에 대한 CML2 규칙 파일로의 변환이 끝나면 이를 리눅스 커널의 CML2 규칙 파일과 통합하게 된다(S12).
도 9는 본 발명의 실시 예에 따라 생성된 응용 패키지들의 CML2 규칙 파일들과 리눅스 커널의 통합 방법을 도시한 것이다. 통합 과정은 도 10a에 도시된 템플릿 파일에 상기 도 9에서 제시한 방법에 따라 내용을 채워 넣는 과정이다.
먼저 리눅스 커널의 CML2 규칙 파일의 main 이라는 심벌을 유일한 다른 이름으로 바꾼다(S110). 이는 CML2 규칙 파일 내에서 이름이 동일한 심벌이 존재해서는 않되는 규칙 때문이다. 통합 규칙 템플릿 파일을 열고(S111) source 문장과 커널의 CML2 규칙파일 이름을 차례로 (124) 부분에 추가하고(S112) 커널의 main심벌의 변환된 심벌이름을 (123)부분에 추가한다. 그 후 각 응용 패키지에 대해 source 문장과 상기 (S11)단계에서 생성된 응용 패키지의 CML2 규칙 파일의 이름을 (124)부분에 추가하고 (S114) ,템플릿 파일의 (123) 부분에 해당 응용 패키지의 옵션중 계층 구조상 최상위 옵션의 CML2 규칙 파일로의 변환 시 변환된 심벌이름(51)을 추가한다. 상술한 (S114),(S115)단계는 모든 응용 패키지의 CML2 규칙 파일이 다 처리 될 때까지 수행한다(S116). 이 과정이 모두 끝나면 통합 규칙 템플릿 파일을 통합 CML2 규칙 파일로 저장한다(S117). 도 10b는 최종 생성된 통합 CML2 규칙 파일의 한 예이다.
통합된 CML2 규칙 파일은 CML2 컴파일러에 의해 컴파일되고, 컴파일된 결과는 사용자에게 CML2 프론트 엔드에 의해 보여진다(S13). 본 발명에서는 어떻게 컴파일 하고 이를 사용자에게 보여주는지는 규정하지 않으며, 이는 CML2 컴파일러와 프론트 엔드가 사용하는 방식에 따라 의존적이다. 사용자의 설정이 끝나면 최종적으로 생성되는 것은 사용자가 선택한 CML2 심벌들의 목록이다. 이렇게 선택된CML2 심벌들에 대해서 설치될 파일 목록을 생성한다(S15).
도 12는 본 발명의 실시 예에 따른 설치 파일 목록의 생성 과정을 보인다. (S39)단계를 통해 파일 목록 테이블에는 옵션의 변환된 CML2 심벌과 해당되는 파일 목록이 기록되어 있다. 먼저 선택된 심볼 목록을 연다(S150). 여기서 선택된 각각의 심벌들에 대해 파일 목록 테이블에서 심볼 값을 키(key)값으로 하여 파일 목록을 가져와서 설치 파일 목록에 추가한다(S153) 이러한 과정은 모든 선택된 CML2 심벌에 대해서 수행된다(S154).
이러한 과정을 통해 생성된 설치 파일 목록은 최종적으로 목적 컴퓨터에 설치될 파일 들의 목록이며, 응용 패키지를 목적 컴퓨터에 설치할 경우 설치 파일 목록에 존재하는 파일들만 선택적으로 설치하면 되며, 나머지는 설치되지 않아도 되는 파일들이다(S16).
한편 상술한 본 발명의 설명에서는 구체적인 실시 예에 관해 설명하였으나, 여러 가지 변형이 본 발명의 범위에서 벗어나지 않고 실시될 수 있다. 따라서 발명의 범위는 설명된 실시 예에 의하여 정할 것이 아니고 특허청구범위에 의해 정하여져야 한다.
이상에서 설명한 바와 같이, 본 발명은 옵션 정보 파일을 통해 목적 컴퓨터에 설치하고자 하는 응용 프로그램 패키지들의 설정 가능 사항들을 기술 할 수 있게 하며, 이들을 CML2 규칙 파일로 변환 시키고 리눅스 커널의 CML2 규칙 파일과 통합함으로써 커널과 응용 프로그램들을 함께 설정 할 수 있게 한다. 이에 따라 커널과 응용 프로그램들간의 의존성 규칙들을 기술 할 수 있는 환경을 제공할 수 있는 이점이 있다. 또한 옵션 정보 파일에 옵션별로 파일 목록 속성을 갖을 수 있게 하고, 이를 파일 목록 테이블에 저장했다가 설정 결과에 따라 설치 파일 목록을 생성함으로써 목적 시스템에 설치될 파일들의 목록을 사용자의 설정에 따라 쉽게 얻을 수 있게 하는 이점이 있다.
도 1은 본 발명의 실시 예에 따른 CML2 컴퓨터 언어를 기반으로한 소프트웨어 패키지들의 통합 설정과 설치 파일 목록 생성을 위한 소프트웨어 모듈 구성도.
도 2는 본 발명의 실시 예에 따른 전체적인 동작 순서를 보여주는 흐름도.
도 3은 본 발명의 실시 예에 따른 소프트웨어 응용 패키지들의 옵션 정보파일의 구성을 보여주는 일 실시예 구성도.
도 4는 본 발명의 실시 예에 따른 소프트웨어 응용 패키지들의 옵션 정보파일을 CML2 규칙 파일로 변환하는 순서를 보여주는 흐름도.
도 5는 본 발명의 실시 예에 따른 소프트웨어 응용 패키지의 옵션 정보파일이 변환 과정을 거쳐 생성된 CML2 규칙 파일의 일 실시예 구성도.
도 6은 본 발명의 실시 예에 따른 소프트웨어 응용 패키지의 옵션 정보파일이 변환 과정 중 옵션을 심벌 섹션에 추가하는 순서를 보여주는 흐름도.
도 7은 본 발명의 실시 예에 따른 소프트웨어 응용 패키지의 옵션 정보파일이 변환 과정 중 옵션을 메뉴 섹션에 추가하는 순서를 보여주는 흐름도.
도 8은 본 발명의 실시 예에 따른 소프트웨어 응용 패키지의 옵션 정보파일이 변환 과정 중 메뉴 항목을 추가하는 순서를 보여주는 흐름도.
도 9는 본 발명의 실시 예에 따른 CML2 규칙 파일들과 리눅스 커널의 CML2 규칙 파일을 통합하는 순서를 보여주는 흐름도.
도 10a는 본 발명의 실시 예에 따른 통합 규칙 파일 템플릿의 일 실시예 구성도.
도 10b는 본 발명의 실시 예에 따라 생성된 통합 규칙 파일의 일 실시예 구성도.
도 11은 본 발명의 실시 예에 따른 파일 목록 테이블에 옵션의 심벌이름과 파일 목록을 기입하는 순서를 보여주는 흐름도.
도 12는 본 발명의 실시 예에 따른 선택된 옵션의 목록에 따라 설치 파일 목록을 만드는 순서를 보여주는 흐름도.

Claims (13)

  1. CML2 컴퓨터 언어를 기반으로 리눅스 커널과 응용 소프트웨어 패키지를 통합 설정하며, 설치 파일 목록을 생성하는 방법에 있어서,
    (a)각 응용 프로그램에 대해 옵션 정보 파일을 만들며, 이에 설정 가능한 옵션들의 리스트를 기록한 후, 각 옵션에 맞는 속성을 할당하는 단계와;
    (b)각 응용 패키지의 옵션 정보 파일을 CML2 규칙 파일로 변환해서 저장하는 단계와;
    (c)상기 변환 과정 중 각 옵션을 CML2 규칙 파일의 'symbols', 'menus', 'menu'의 의존성 섹션에 추가하는 단계와;
    (d)상기 변환 과정 주 옵션이 의존성 속성을 가지고 있는 경우 옵션의 의존성을 CML2 규칙 파일에 추가하는 단계와;
    (e)상기 변환 과정 중 각 응용 패키지의 옵션 정보파일에 대해 하나의 CML2 규칙 파일을 생성시 옵션이 파일 목록 속성을 가지는지를 비교하는 단계와;
    (f)상기 파일 목록 속성을 가지는 경우 파일 목록 테이블에 옵션의 변환된 CML2심벌 이름과 파일 목록을 저장하는 단계;
    (g)상기 변환된 응용 패키지들의 CML2 규칙 파일들과 리눅스 커널의 CML2규칙 파일을 통합하여 통합 규칙 파일로 저장하는 단계와;
    (h)사용자의 설정 결과에 따라 목적 시스템에 설치된 파일의 목록을 생성하는 단계;를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 (a)단계에서, 상기 응용 프로그램에 대한 각 옵션은, '짧은 도움말', '긴 도움말', '파일 목록', '의존성', '그룹속성'의 속성을 가지는 것을 특징으로 하는 방법.
  3. 제2항에 있어서,
    상기 각 옵션은, '짧은 도움말', '긴 도움말' 옵션속성은 항상 구비하며, '파일목록', '의존성', '그룹속성'의 옵션속성은 선택적으로 구비하는 것을 특징으로 하는 방법.
  4. 제1항에 있어서,
    상기 (b)단계는, (b1)상기 변환 과정 중 옵션의 이름과 속성들을 CML2 규칙 파일의 'symbols'섹션에 추가하는 단계;인 것을 특징으로 하는 방법.
  5. 제1항에 있어서,
    상기 (b)단계는, (b2)상기 변환 과정 중 옵션의 이름과 속성들을 CML2 규칙 파일의 'menus'섹션에 추가하는 단계;인 것을 특징으로 하는 방법.
  6. 제1항에 있어서,
    상기 (b)단계는, (b3)상기 변환 과정 중 변환된 심볼과 메뉴는 CML2규칙 파일의 'menu'항목에 추가하는 단계;인 것을 특징으로 하는 방법.
  7. 제4항에 있어서,
    상기 (b1)단계는, (b11)상기 CML2규칙 파일을 생성시 하나의 옵션 이름을 CML2 규칙파일의 유일한 심볼 이름으로 변환하여 'sysmbols' 섹션에 추가하고, 옵션의 짧은 도움말 속성을 심볼 이름 옆에 '짧은 도움말'로 추가하는 단계와;
    (b12)심볼 이름의 '짧은 도움말' 앞에 'text'문을 추가하는 단계와;
    (b13)옵션의 '긴 도움말' 속성을 심볼 이름의 다음 라인에 추가하는 단계;를 포함하는 것을 특징으로 하는 방법.
  8. 제5항에 있어서,
    상기 (b2)단계는, (b21)상기 CML2규칙 파일을 생성시 하나의 옵션 이름을 CML2 규칙파일의 유일한 심볼 이름으로 변환하여 'menus' 섹션에 추가하고, 옵션의 짧은 도움말 속성을 메뉴 이름 옆에 '짧은 도움말'로 추가하는 단계와;
    (b22)상기 메뉴 이름의 '짧은 도움말' 옆에 'text'문을 추가하는 단계와;
    (b23)상기 옵션의 '긴 도움말' 속성을 메뉴 이름의 다음 라인에 추가하는 단계;를 포함하는 것을 특징으로 하는 방법.
  9. 제6항에 있어서,
    상기 (b3)단계는, (b31)상기 CML2규칙 파일을 생성시 옵션이 직계 상위 옵션을 가지는 경우 상위 옵션의 CML2 메뉴이름을 검색하는 단계와;
    (b32)상기 옵션이 그룹 속성을 가지는지 여부를 비교하는 단계와;
    (b33)상기 그룹 속성을 가지는 경우 자신의 변환된 심볼 이름과 심볼 이름 및 메뉴이름 옆에 각각 '{', '}'를 추가하는 단계;를 포함하는 것을 특징으로 하는 방법.
  10. 제1항에 있어서,
    상기 (d)단계는, 각 응용 패키지의 옵션 정보파일에 대해 하나의 CML2 규칙 파일을 생성시 옵션이 의존성 속성을 가지는 경우, CML2 규칙 파일의 의존성 세션에 추가하는 단계;인 것을 특징으로 하는 방법.
  11. 삭제
  12. 제1항에 있어서,
    상기 (g)단계는, (g1)리눅스 커널 CML2 규칙 파일의 최상위 메뉴 이름인 'main'이라는 메뉴이름을 다른 메뉴 이름과 중복되지 않게 수정하는 단계와;
    (g2)통합 CML2규칙 파일의 템플릿 파일을 여는 단계와;
    (g3)커널의 CML2 규칙 파일을 템플릿 파일에 'source 커널의 CML2 규칙 파일이름'의 형식으로 통합 CML2 규칙 파일에 삽입하는 단계와;
    (g4)'main' 메뉴이름이 변환된 커널의 최상위 메뉴이름을 통합 CML2규칙 템플릿 파일에 삽입하는 단계와;
    (g5)각 응용 패키지에 대해서 CML2규칙 파일의 이름을 'source 응용 패키지의 CML2 규칙 파일이름'의 형식으로 통합 CML2규칙 템플릿 파일에 삽입하는 단계와;
    (g6)각 응용 패키지의 옵션 정보 파일의 최상위 옵션의 CML2로의 변환된 형태인 심벌을 통합 CML2 규칙 템플릿에 삽입하는 단계와;
    (g7)통합 CML2 규칙 파일을 최종적으로 저장하는 단계;를 포함하는 것을 특징으로 하는 방법.
  13. 제1항에 있어서,
    상기 (h)단계는, (h1)선택된 심벌들의 리스트 목록을 가져오는 단계와;
    (h2)상기 선택된 하나의 옵션에 대해 파일 목록 테이블에 심벌이름이 존재하는지 여부를 비교하는 단계와;
    (h3)상기 심벌이름이 파일 목록 테이블에 존재하는 경우 해당 심벌의 파일 목록을 설치 파일 목록에 기록하는 단계와;
    (h4)모든 선택된 옵션에 대해서 상기 (h1)∼(h3)단계를 반복 수행시키는 단계;를 포함하는 것을 특징으로 하는 방법.
KR10-2002-0082339A 2002-12-23 2002-12-23 씨.엠.엘.투를 기반으로한 리눅스 커널, 응용 소프트웨어패키지의 통합 설정과 파일목록 생성방법 KR100513093B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR10-2002-0082339A KR100513093B1 (ko) 2002-12-23 2002-12-23 씨.엠.엘.투를 기반으로한 리눅스 커널, 응용 소프트웨어패키지의 통합 설정과 파일목록 생성방법
US10/445,824 US7367013B2 (en) 2002-12-23 2003-05-28 Method for integrating Linux kernel and application software packages and generating installation file list based on CML2 computer language

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0082339A KR100513093B1 (ko) 2002-12-23 2002-12-23 씨.엠.엘.투를 기반으로한 리눅스 커널, 응용 소프트웨어패키지의 통합 설정과 파일목록 생성방법

Publications (2)

Publication Number Publication Date
KR20040055892A KR20040055892A (ko) 2004-06-30
KR100513093B1 true KR100513093B1 (ko) 2005-09-07

Family

ID=32588876

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0082339A KR100513093B1 (ko) 2002-12-23 2002-12-23 씨.엠.엘.투를 기반으로한 리눅스 커널, 응용 소프트웨어패키지의 통합 설정과 파일목록 생성방법

Country Status (2)

Country Link
US (1) US7367013B2 (ko)
KR (1) KR100513093B1 (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8346803B2 (en) * 2003-12-12 2013-01-01 Knapp Investment Company Limited Dynamic generation of target files from template files and tracking of the processing of target files
US20060167910A1 (en) * 2005-01-25 2006-07-27 /Moxa Technologies Co., Ltd./ [electronic device with an embedded linux application system]
US20060294041A1 (en) * 2005-06-23 2006-12-28 International Business Machines Corporation Installing a component to an application server
US7707362B2 (en) * 2005-06-30 2010-04-27 Seagate Technology Llc Context-free data transactions between dual operating systems embedded within a data storage subsystem
WO2007030796A2 (en) * 2005-09-09 2007-03-15 Salesforce.Com, Inc. Systems and methods for exporting, publishing, browsing and installing on-demand applications in a multi-tenant database environment
CN100356778C (zh) * 2006-01-13 2007-12-19 深圳创维-Rgb电子有限公司 在电视机嵌入式Linux上进行人机交互界面快速开发的方法
US7676565B2 (en) * 2006-01-27 2010-03-09 Microsoft Corporation Light weight software and hardware inventory
US8869142B2 (en) * 2006-01-27 2014-10-21 Microsoft Corporation Secure content publishing and distribution
US20070240151A1 (en) * 2006-01-29 2007-10-11 Microsoft Corporation Enhanced computer target groups
US8281234B2 (en) * 2007-03-20 2012-10-02 Microsoft Corporation Definable application assistant
US10534624B2 (en) * 2010-02-26 2020-01-14 Red Hat, Inc. Generating and storing translation information as package metadata
US9152484B2 (en) 2010-02-26 2015-10-06 Red Hat, Inc. Generating predictive diagnostics via package update manager
CN101984410B (zh) * 2010-11-12 2015-06-10 中兴通讯股份有限公司 软件安装包的生成、卸载方法及装置
CN102646041B (zh) * 2011-02-17 2016-01-27 腾讯科技(深圳)有限公司 一种软件安装方法和系统
CN102196308B (zh) * 2011-05-19 2013-11-06 广东星海数字家庭产业技术研究院有限公司 一种基于数字电视的多硬件接口兼容驱动系统
US9158550B2 (en) * 2011-06-16 2015-10-13 Vmware, Inc. Caching based operating system installation
CN102682088B (zh) * 2012-04-23 2016-11-09 Tcl集团股份有限公司 一种存储设备的挂载方法、系统及电视
CN103577211A (zh) * 2012-08-08 2014-02-12 上海赤炫信息科技有限公司 一种新的Android ROM系统打包和烧录、更新方式
CN103428578B (zh) * 2013-08-01 2016-08-10 冠捷显示科技(厦门)有限公司 一种配置电视机菜单语言的方法及系统
TWI499918B (zh) * 2014-05-21 2015-09-11 Nat Univ Tsing Hua 執行應用於安卓系統之應用程式之雲端管理系統及其方法
CN104092704B (zh) * 2014-07-24 2017-06-20 福州瑞芯微电子股份有限公司 软件通用设置方法和系统
CN104731602A (zh) * 2015-03-31 2015-06-24 上海盈方微电子有限公司 一种分离安卓镜像烧录流程的方法
EP3125111B1 (en) 2015-07-30 2019-03-27 Conny Konrad Wölk Software deployment in an aggregated end user system
CN106507195A (zh) * 2016-11-29 2017-03-15 四川长虹电器股份有限公司 基于Linux系统的智能电视应用切换管理的方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0592079A2 (en) 1992-09-20 1994-04-13 Sun Microsystems, Inc. Automated software installation and operating environment configuration on a computer system
US6117187A (en) 1997-09-30 2000-09-12 Hewlett-Packard Company Automatic generation of a software installation package
US6301707B1 (en) 1997-09-30 2001-10-09 Pitney Bowes Inc. Installing software based on a profile

Also Published As

Publication number Publication date
US7367013B2 (en) 2008-04-29
KR20040055892A (ko) 2004-06-30
US20040123286A1 (en) 2004-06-24

Similar Documents

Publication Publication Date Title
KR100513093B1 (ko) 씨.엠.엘.투를 기반으로한 리눅스 커널, 응용 소프트웨어패키지의 통합 설정과 파일목록 생성방법
US10466980B2 (en) Techniques for generating microcontroller configuration information
US7490298B2 (en) Creating documentation screenshots on demand
US7086014B1 (en) Automatic generation of application program interfaces, source code, interrupts, and datasheets for microcontroller programming
JP4812337B2 (ja) フォームタイプを使用してフォームを生成する方法および装置
KR100953239B1 (ko) 사용자가 구성가능한 소프트웨어 라이브러리
US6396515B1 (en) Method, system and computer program product for dynamic language switching in user interface menus, help text, and dialogs
US7698546B2 (en) BIOS configuration update technique
US20100287525A1 (en) Extension through visual reflection
US8935623B1 (en) Automatic API generation to functional PSoC blocks
TWI533217B (zh) 用於運行時間系統的電腦實施方法及電腦可讀取儲存記憶體
US8850388B2 (en) Controlling application features
US20050251788A1 (en) Methods and systems for generating a configurable user interface
US20080066051A1 (en) Managing application customization
CN109739600B (zh) 数据处理方法、介质、装置和计算设备
JP2008234673A (ja) モバイル・デバイスのアプリケーション・インストール管理システムおよび方法
US11307833B2 (en) Data driven embedded application building and configuration
WO2001023998A1 (en) Software development system for facilitating selection of components
US20050081193A1 (en) System and method for interacting with computer programming languages at semantic level
US20070006135A1 (en) Method and apparatus for customizing model to code transformations
CN116028062A (zh) 目标代码的生成方法、npu指令的显示方法及装置
US8661425B1 (en) Method, apparatus, and computer-readable medium for storing data associated with a firmware program
US20040153580A1 (en) Component based operation system dynamic device drive method
Wilding-McBride Java Development on PDAs: building applications for PocketPC and Palm devices
US20040034859A1 (en) Shared common connection factory

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: 20100802

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee