KR101213651B1 - 운영체제의 초기화 스크립트의 이진화 방법, 및 그 이진화 스크립트의 실행 방법 - Google Patents

운영체제의 초기화 스크립트의 이진화 방법, 및 그 이진화 스크립트의 실행 방법 Download PDF

Info

Publication number
KR101213651B1
KR101213651B1 KR1020090105072A KR20090105072A KR101213651B1 KR 101213651 B1 KR101213651 B1 KR 101213651B1 KR 1020090105072 A KR1020090105072 A KR 1020090105072A KR 20090105072 A KR20090105072 A KR 20090105072A KR 101213651 B1 KR101213651 B1 KR 101213651B1
Authority
KR
South Korea
Prior art keywords
script
command
binarization
initialization
execution table
Prior art date
Application number
KR1020090105072A
Other languages
English (en)
Other versions
KR20100066354A (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 US12/630,178 priority Critical patent/US8448151B2/en
Publication of KR20100066354A publication Critical patent/KR20100066354A/ko
Application granted granted Critical
Publication of KR101213651B1 publication Critical patent/KR101213651B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode

Landscapes

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

Abstract

본 발명은 운영체제의 초기화 스크립트의 이진화 방법, 이진화 스크립트 및 그 실행 방법에 관한 것으로, 보조 기억장치 내에서 이진화할 쉘 스크립트(shell script)를 호출하는 단계, 호출된 쉘 스크립트를 번역하여 실행 테이블(Execution Table)을 생성하는 단계, 실행 테이블과 기 작성된 소스 코드 템플릿(source code templit)을 병합하여 소스 프로그램을 생성하는 단계, 및 상기 소스 프로그램을 명령 서브루틴과 결합하고, 컴파일 및 빌드 작업을 수행하여 쉘 스트립트를 이진화하는 단계를 포함한다. 본 발명에 따르면, 본 발명은 부팅 중 시스템 초기화를 수행하는 과정에서 쉘 스크립트 대신 이진화 스크립트를 적용하여 fork & exec 기법을 이용하지 않음으로써, 부팅 지연시간을 최소화시키는 이점이 있다.

Description

운영체제의 초기화 스크립트의 이진화 방법, 및 그 이진화 스크립트의 실행 방법{Method for binarizing initial script on operating system, and operating method of binary script}
본 발명은 운영체제의 초기화 스크립트의 이진화 방법, 이진화 스크립트 및 그 실행 방법에 관한 것으로, 특히 임베디드 운영체제의 부팅시 사용되는 초기화 스크립트를 효율적으로 이진화하여 빠른 부팅을 구현하도록 하는 운영체제의 초기화 스크립트의 이진화 방법, 이진화 스크립트 및 그 실행 방법에 관한 것이다.
본 발명은 지식경제부 및 정보통신연구진흥원의 IT성장동력기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2006-S-038-03, 과제명: 모바일 컨버전스 컴퓨팅을 위한 단말적응형 임베디드 운영체제 기술개발].
부팅은 운영체제를 사용자가 사용하기 위해 시스템을 초기화하고 사용자가 사용하는 응용프로그램을 준비시키는 과정을 말한다.
상기의 부팅 과정 중에서 세번째 단계인 시스템 초기화 단계는 일련의 명령들의 집합인 스크립트로 구성된다.
스크립트란, 사용자가 쉘 상에서 명령을 입력하여 진행하는 것을 자동화하 여, 파일 상에 일련의 절차로 기록한 것이다. 이때의 스크립트는 쉘 스크립트라 불린다.
쉘 스크립트는 보조 기억장치 내에 존재하며, 운영체제의 핵심 기능인 커널이 초기화 과정의 맨 마지막 과정으로 해당 쉘 스크립트를 불러 초기화를 진행한다. 쉘 스크립트는 쉘 상에서 진행되는 명령들의 집합이므로 쉘 스크립트 내의 명령을 수행하기 위해서는 쉘이 필요하다.
유닉스 계열의 운영체제의 특성상 쉘을 포함한 명령들은 프로세스로 구성되므로, 프로세스의 시작 방식은 fork & exec 기법을 따르게 된다. 여기서, fork & exec는 커널 지원 API(Application Program Interface) 중 하나이다.
먼저, fork 기법은, 프로세스 자신을 복사하여 새로운 프로세스를 만드는 기법이다. 이때, 새로 만들어진 프로세스와 원래의 프로세스 사이의 관계는 부모와 자식 간의 관계로 표현될 수 있다. 즉, 새로 만들어진 프로세스는 기존 프로세스의 자식 프로세스가 된다.
한편, exec 기법은, exec로 보조 기억 장치로부터 새로운 명령을 받아들여 자기 자신을 새로운 명령으로 대체하여 실행하는 기법이다. 이 두 기법이 합쳐지면 운영체제는 새로운 명령을 수행할 수 있게 된다.
이러한 방법으로 쉘 스크립트가 끝날 때까지 해당 절차를 반복한다. 일반적으로 쉘 스크립트의 맨 마지막은 부팅의 네번째 단계가 수행될 수 있도록 사용자 응용 프로그램을 작동하는 명령이 기술된다.
부팅의 세번째 단계에서 쉘 스크립트를 사용하면, 쉘 스크립트를 사용할 줄 아는 사용자는 손쉽게 초기화 과정을 수정할 수 있다. 그러나, 쉘 스크립트를 이용하게 되면, 부팅 속도가 지연되는 문제가 발생하게 된다.
다시 말해, 쉘 스크립트는 문자열들의 집합이므로, 각 문자열들을 명령으로 해석하려면 복잡한 문장 해석 과정이 필요하다. 문장 해석 과정은 일반적으로 반복적인 연산이 나타나므로 처리 시간이 길어지고, 그 끝을 예측하기 어렵다는 단점이 있다.
또한, 쉘 스크립트에서 명령을 수행하기 위해 fork & exec 기법을 이용하게 된다. 즉, 쉘 스크립트의 명령을 실행하려면 되는데, 새로운 프로세스를 만들어야 하며, 새로 생긴 프로세스는 변이(exec) 과정을 거쳐 명령으로 탈바꿈된다. 그러므로 명령을 직접 수행하지 못하고 여러 가지 복잡한 과정을 거치게 되고, 이는 곧 부팅 시간의 지연으로 나타난다.
한편, 일반 사용자들은 그래픽에 기반한 GUI(Graphical User Interface)를 사용하며, 사용하고자 하는 응용 프로그램 역시 고도의 복잡성을 요구하는 프로그램으로 변화하고 있다. 이로 인해, 초기화 쉘 스크립트는 응용 프로그램이 복잡해짐에 따라 점차 길어지는 추세에 있다. 따라서, 운영체제의 부팅 과정에서 쉘 스크립트를 수행하려면 더욱더 긴 부팅 지연시간을 가질 수밖에 없다.
전술한 바와 같이 점점 더 길어지는 초기화 쉘 스크립트를 수행하기 위해서는 fork & exec 기법을 사용하지 않는 것이 불가능하므로, 현재의 방법으로는 부팅이 지연되는 문제를 해결할 수 없다.
상기한 문제점을 해결하기 위하여, 본 발명은 부팅 중 시스템 초기화를 수행하는 과정에서 쉘 스크립트 대신 이진화 스크립트를 적용하여 fork & exec 기법을 이용하지 않음으로써, 부팅 지연시간을 최소화할 수 있도록 하는 운영체제의 초기화 스크립트의 이진화 방법, 이진화 스크립트 및 그 실행 방법을 제공함에 목적이 있다.
상기와 같은 목적을 달성하기 위한 본 발명에 따른 운영체제의 초기화 스크립트의 이진화 방법은, 보조 기억장치 내에서 이진화할 쉘 스크립트(shell script)를 호출하는 단계, 호출된 쉘 스크립트를 번역하여 실행 테이블(Execution Table)을 생성하는 단계, 실행 테이블과 기 작성된 소스 코드 템플릿(source code templit)을 병합하여 소스 프로그램을 생성하는 단계, 및 상기 소스 프로그램을 명령 서브루틴과 결합하고, 컴파일 및 빌드 작업을 수행하여 쉘 스트립트를 이진화하는 단계를 포함하는 것을 특징으로 한다.
상기 실행 테이블은, 주기억장치상의 각 명령들의 위치, 세부 명령 이름, 각 명령의 병렬 실행 여부, 및 해당 명령에 전달할 인자 중 적어도 하나를 정의하는 것을 특징으로 한다.
상기 쉘 스크립트를 이진화하기 이전에, 하나 이상의 외부 명령을 서브루틴화하는 단계를 더 포함하는 것을 특징으로 한다.
상기 하나 이상의 외부 명령은, 네트워크 설정 명령, 콘솔 출력 명령, 외부 명령의 실행 명령, 커널 모듈 초기화 명령, 보조기억장치 초기화 명령, 선행 읽기 명령, 환경 변수 설정 명령, 대기 명령 중 적어도 하나인 것을 특징으로 한다.
상기 이진화 스크립트는, 상기 쉘 스크립트에 정의된 적어도 하나의 명령이 해당 이진화 스크립트 내의 서브루틴으로 직접 삽입된 것을 특징으로 한다.
상기 이진화 스크립트는, 보조기억장치 내에 저장되어, 부팅 시의 시스템 초기화 과정에서 쉘 스크립트 대신 이용되는 것을 특징으로 한다.
한편, 상기한 목적을 달성하기 위한 본 발명에 따른 이진화 스크립트의 실행방법은, 이진화 스크립트가 기록된 실행 테이블을 호출하는 단계, 상기 호출된 실행 테이블에서 이진화 스크립트를 순차적으로 호출하여 읽는 단계, 상기 호출된 이진화 스크립트의 서브루틴을 탐색하여 해당 이진화 스크립트의 서브루틴에 포함된 명령 및 인자를 분류하는 단계, 및 상기 분류된 명령과 인자를 실행하는 단계를 포함하며, 상기 호출된 이진화 스크립트의 서브루틴에 포함된 명령 및 인자 실행 후, 상기 실행 테이블에 기록된 다음 순서의 이진화 스크립트를 호출하는 것을 특징으로 한다.
상기 이진화 스크립트의 서브루틴에 포함된 명령은, 네트워크 설정 명령, 콘솔 출력 명령, 외부 명령의 실행 명령, 커널 모듈 초기화 명령, 보조기억장치 초기화 명령, 선행 읽기 명령, 환경 변수 설정 명령, 대기 명령 중 적어도 하나인 것을 특징으로 한다.
상기 실행 테이블에 기록된 이진화 스트립트를 모두 읽을 때까지 다음 순서 의 스크립트를 계속 호출하는 것을 특징으로 한다.
상기 실행 테이블에서 더 이상 읽을 이진화 스크립트가 존재하지 않으면, 시스템 초기화를 종료하고 다음 부팅 과정을 수행하는 단계를 더 포함하는 것을 특징으로 한다.
본 발명에 따르면, 초기화 스크립트 과정에서 제한된 명령들을 이진화 스크립트 내의 서브루틴으로 직접 삽입함으로써, 각 명령들을 fork&exec 기법으로 처리하지 않아 처리 속도를 향상시킬 수 있는 이점이 있다.
또한, 본 발명은 이진화 스크립트에 스크립트가 처리해야 할 모든 내용(execution table, 서브루틴)들을, 이진화스크립트를 보조기억장치에서 주기억장치로 로드할 때 모두 가져오므로 스크립트가 진행되는 마지막 순간까지 보조기억장치에 접근할 일이 없어, 보조기억장치의 접근속도를 배제하고 스크립트가 진행되므로 처리속도가 단축시키는 효과가 있다.
또한, 본 발명은 일련화된 실행 테이블 상에서만 순서가 존재하므로 부팅의 과정이 스크립트 자체가 아닌 테이블 상에 관리되어, 비록 유연성이 쉘 스크립트의 그것보다는 떨어지지만 순서가 섞이거나 중간에 추적을 잃어버릴 염려가 없는 이점이 있다.
또한, 본 발명은 쉘 자체를 사용하지 않으므로 운영체제 내부에서 쉘을 아예 삭제할 수 있어, 비인가접근자가 관리자 권한을 갖더라도 시스템을 제어할 수 있는 방법이 차단되기 때문에 시스템의 보안성이 크게 증대되는 이점이 있다.
또한, 운영체제 개발자가 아니더라도 execution table을 수정하는 약간의 교육 과정을 거쳐 부팅의 순서나 스크립트를 쉽게 제작 가능하므로, 작업 능률이 향상되는 이점이 있다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명한다.
도 1은 본 발명의 실시예에 따른 운영체제에서 초기화 스크립트를 이진화하는 과정을 설명하는데 참조되는 도면이다.
도 1에 도시된 바와 같이, 이진화 스크립트 생성자는 먼저 보조 기억장치 내에서 이진화할 쉘 스크립트(shell script)(10)를 호출한다.
여기서, 쉘 스크립트(10)는 사용자가 쉘 상에서 명령을 입력하여 진행하는 것을 자동화하여, 파일 상에 일련의 절차로 기록한 것이다. 이때, 쉘 스크립트(10)는 사람이 읽을 수 있는(Human Readable Format) 형식의 텍스트 파일로 작성된다.
쉘 스크립트(10)는 부팅 과정 중 시스템을 초기화하는 과정에서 운영체제의 커널(kernel)에 의해 호출되며, 커널은 호출된 쉘 스크립트(10)에 근거하여 시스템 초기화를 진행한다.
이때, 이진화 스크립트 생성자는 호출된 쉘 스크립트(10)를 번역하여 실행 테이블(Execution Table)(20)을 생성한다. 실행 테이블(20)은 소스 프로그램의 일종으로, 도 3에 도시된 'fp', 'cmd', 'detachable', 'args' 등을 정의한다. 실행 테이블(20)에 대한 구체적인 설명은 도 3을 참조하도록 한다.
이진화 스크립트 생성자는 실행 테이블(20)이 준비되면, 실행 테이블(20)과 기 작성된 소스 코드 템플릿(source code templit)(30)을 병합하여 하나의 소스 프로그램(40)을 생성한다.
쉘 스크립트(10)를 이진화하기 이전에, 이진화 스크립트 생성자는 도 4에 도시된 'bs_config_net', 'bs_echo', 'bs_launch_process', 'bs_load_mod', 'bs_mount_fs', 'bs_readahead', 'bs_setup_env', 'bs_wait' 등의 명령들이 저장된 명령 서브루틴(50)을 준비한다. 명령 서브루틴(50)에 저장된 명령들에 대한 구체적인 설명은 도 4를 참조한다.
이후, 이진화 스크립트 생성자는 소스 프로그램(40)을 명령 서브루틴(50)과 결합하여 컴파일하고, 컴파일 작업 후에 빌드 작업을 수행하여 초기화 스트립트를 이진화한다.
부팅 시, 쉘 스크립트(10)를 이용한 시스템 초기화 과정에서는 모든 명령들을 fork&exec 기법으로 처리하는데, 이때 시스템 초기화 과정에서 사용되는 명령들은 극히 제한되어 있다. 이에, 본 발명에서는 이러한 제한된 명령들을 이진화 스크립트(60) 내의 서브루틴으로 직접 삽입함으로써, 각 명령들을 fork&exec 기법으로 처리하지 않아 처리 속도를 향상시킬 수 있게 된다.
이렇게 완성된 이진화 스크립트(60)는 보조기억장치 내에 저장되어, 부팅 시의 시스템 초기화 과정에서 쉘 스크립트(10) 대신 이용된다.
도 2는 쉘 스크립트(10)를 이진화하는데 적용되는 execution table의 형태를 나타낸 예시도이다.
도 2에 도시된 바와 같이, 'fp'는 주기억장치상에서 각 명령들의 위치를 나타낸다. 상세하게는, 주기억장치상에 명령을 실행할 코드들이 담긴 위치를 나타낸다. 여기서, 'fp'의 값은 주소값을 의미한다.
한편, 'cmd'는 세부 명령 이름을 나타낸다. 상세하게는, 해당 명령을 실행할 때 구체적인 세부 지시 사항을 나타내는 것으로, 세부 명령은 정수값으로 표현되며, 이진화 스크립트(60)를 생성하기 전에 미리 정의된다.
'detachable'는 명령의 병렬 실행 여부를 나타낸다. 즉, 'detachable'는 지연시간이 많이 걸리는 명령의 경우에, 다른 명령을 병렬 실행하기 위해 정수 형태로 병렬 실행 여부를 결정한다. 하지만, 대부분의 경우에는 명령들을 병렬 실행할 필요가 없다.
'args'는 해당 명령에 전달할 인자들을 나타낸다. 물론, 'cmd'도 인자의 한 종류이긴 하나, 실제 적용될 때 더 높은 빈도의 인자들이 'cmd'에 포함되고, 그 외의 나머지 인자들이 'args'에 포함된다.
이때, 'args'에 포함되는 인자는 복수 개가 될 수 있다.
물론, 도 2에는 실행 테이블(20)에 'fp', 'cmd', 'detachable', 'args'가 저장된 예를 도시하였으나, 이는 실시예에 불과하며 이에 한정되는 것은 아니다.
한편, 도 3은 본 발명에 따른 쉘 스크립트를 이진화하는데 적용되는 명령 서브루틴(50)의 형태를 나타낸 예시도이다.
도 3에 도시된 바와 같이, 'bs_config_net'는 네트워크 설정 명령이다. 다시 말해, 'bs_config_net'는 운영체제가 사용할 네트워크를 설정하기 위한 명령이다. 예를 들어, 'bs_config_net'는 장치 활성화, 주소 설정, 경로 지정, 컴퓨터 이름(Host name) 등을 설정하는데 이용된다.
'bs_echo'는 콘솔 출력을 위한 명령이다. 다시 말해, 'bs_echo'는 화면이나 출력장치에 문자열을 표시하기 위한 명령으로서, 주로 디버깅용으로 이용된다.
'bs_launch_process'는 외부 명령의 실행을 위한 명령이다. 다시 말해, 'bs_launch_process'는 이진화 스크립트(60)가 처리할 수 없는 외부 명령을 실행할 때 사용한다. 또한, 'bs_launch_process'는 부팅 과정에서 마지막 응용 프로그램을 시작하기 위해 이용되기도 한다.
'bs_load_mod'는 커널 모듈 초기화를 위한 명령이다. 다시 말해, 'bs_load_mod'는 운영체제의 일부분인 커널 모듈을 초기화하도록 하는 명령이다.
'bs_mount_fs'는 보조기억장치 초기화를 위한 명령이다. 다시 말해, 'bs_mount_fs'는 보조기억장치를 사용하기 전에 초기화하도록 하는 명령이다.
'bs_readahead'는 선행 읽기 명령으로, 사용자 응용 프로그램의 라이브러리 부분을 보조기억장치로부터 먼저 읽도록 하는 명령이다.
'bs_setup_env'는 환경 변수를 설정하기 위한 명령이다. 다시 말해, 'bs_setup_env'는 사용자의 응용 프로그램이 필요한 여러 환경변수들을 정의한다.
'bs_wait'는 대기 명령으로서, 다른 프로세스나 응용 프로그램이 적절한 단계에 이를 수 있도록 자신을 대기상태로 만드는 경우 적용되는 명령이다. 예를 들어, 'bs_wait'는 무제한 대기, 일정시간 대기 등을 위해 적용된다.
물론, 도 3에 도시된 명령 서브루틴들은 실시예로서 이에 한정되는 것은 아니며, 그 외의 명령 서브루틴들도 적용 가능함은 당연한 것이다.
도 4는 본 발명에 따른 이진화 스크립트를 이용하여 부팅 시의 시스템 초기화 과정을 수행하는 동작 흐름을 도시한 순서도이다.
부팅 과정은 사용자가 운영체제를 이용하기 위해 시스템을 초기화하고, 사용자가 사용하는 응용프로그램을 준비시키는 과정으로, 전원인가 후 운영체제의 핵심 기능인 커널을 보조기억장치에서 주기억장치로 복사하는 부트로더 과정, 운영체제의 핵심 기능인 커널을 초기화하는 과정, 운영체제의 커널이 주기억장치에 상주한 후에, 시스템 초기화를 위한 작업들을 순차적으로 진행하는 과정, 사용자가 원하는 일반 응용 프로그램을 파일시스템에서 주기억장치로 불러 들여, 사용자가 이용할 수 있는 상태가 되도록 하는 과정으로 이루어진다.
본 발명에 따른 이진화 스크립트(60)는 운영체제의 커널이 주기억장치에서 시스템 초기화를 위한 작업을 순차적으로 진행하는 단계에 적용된다.
이에, 도 4를 참조하여 시스템 초기화 과정을 좀 더 상세히 설명하면, 먼저 시스템 초기화 과정을 수행하기 위해 실행 테이블(20)을 호출하고, 실행 테이블(20)에서 N번째 스크립트를 읽는다. 시스템 초기화 과정의 초기 단계에서 N=1의 값을 갖는다.
따라서, 운영체제는 실행 테이블(20)의 첫번째 이진화 스크립트(60)를 읽어 명령과 인자들을 분류한다. 이때, 실행 케이블의 첫번째 이진화 스크립트(60)에서 읽어 들인 명령들은 첫번째 이진화 스크립트(60)의 서브 루틴으로, 도 4의 명령 서브루틴에 포함된 명령들이 이에 해당된다.
첫번째 이진화 스크립트(60)가 실행되고 나면, N의 값을 1 증가시킨 후, 실행 테이블(20)에서 N번째 이진화 스크립트(60)가 존재하는지 확인한다. 즉, 실행 테이블(20)에서 두번째 이진화 스크립트(60)가 존재하는지 확인한다.
이때, 실행 테이블(20)에 두번째 이진화 스크립트(60)가 존재하면, 'S100' 내지 'S130' 과정을 재수행한다.
상기의 과정은 N을 계속적으로 1씩 증가시키며, 실행 테이블(20)에 대응하는 이진화 스크립트(60)가 존재하지 않을 때까지 반복하여 수행하도록 한다.
만일, 실행 테이블(20)에 더 이상 대응되는 이진화 스크립트(60)가 존재하지 않으면, 운영체제는 시스템 초기화가 완료된 것으로 판단하여, 다음 과정을 수행하도록 한다.
이상에서와 같이 본 발명에 따른 운영체제의 초기화 스크립트의 이진화 방법, 및 이진화 스크립트의 실행 방법은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
도 1 은 본 발명에 따른 초기화 스크립트 이진화 방법을 설명하는데 참조되는 도면이다.
도 2 는 본 발명에 따른 실행 테이블을 설명하는데 참조되는 도면이다.
도 3 은 본 발명에 따른 명령 서브루틴을 설명하는데 참조되는 도면이다.
도 4 는 본 발명에 따른 이진화 스크립트의 실행 방법에 대한 동작 흐름을 도시한 순서도이다.

Claims (10)

  1. 초기화 스크립트를 이진화하는 방법으로서,
    보조 기억장치 내에서 이진화할 쉘 스크립트(shell script)를 호출하는 단계;
    호출된 쉘 스크립트를 번역하여 실행 테이블(Execution Table)을 생성하는 단계;
    실행 테이블과 기 작성된 소스 코드 템플릿(source code templit)을 병합하여 소스 프로그램을 생성하는 단계; 및
    상기 소스 프로그램을 명령 서브루틴과 결합하고, 컴파일 및 빌드 작업을 수행하여 쉘 스트립트를 이진화하는 단계;를 포함하는 것을 특징으로 하는 운영체제의 초기화 스크립트 이진화 방법.
  2. 청구항 1에 있어서,
    상기 실행 테이블은,
    주기억장치상의 각 명령들의 위치, 세부 명령 이름, 각 명령의 병렬 실행 여부, 및 해당 명령에 전달할 인자 중 적어도 하나를 정의하는 것을 특징으로 하는 운영체제의 초기화 스크립트 이진화 방법.
  3. 청구항 1에 있어서,
    상기 쉘 스크립트를 이진화하기 이전에, 하나 이상의 외부 명령을 서브루틴화하는 단계;를 더 포함하는 것을 특징으로 하는 운영체제의 초기화 스크립트 이진화 방법.
  4. 청구항 3에 있어서,
    상기 하나 이상의 외부 명령은,
    네트워크 설정 명령, 콘솔 출력 명령, 외부 명령의 실행 명령, 커널 모듈 초기화 명령, 보조기억장치 초기화 명령, 선행 읽기 명령, 환경 변수 설정 명령, 대기 명령 중 적어도 하나인 것을 특징으로 하는 운영체제의 초기화 스크립트 이진화 방법.
  5. 청구항 1에 있어서,
    상기 이진화 스크립트는,
    상기 쉘 스크립트에 정의된 적어도 하나의 명령이 해당 이진화 스크립트 내의 서브루틴으로 직접 삽입된 것을 특징으로 하는 운영체제의 초기화 스크립트 이진화 방법.
  6. 청구항 1에 있어서,
    상기 이진화 스크립트는,
    보조기억장치 내에 저장되어, 부팅 시의 시스템 초기화 과정에서 쉘 스크립 트 대신 이용되는 것을 특징으로 하는 운영체제의 초기화 스크립트 이진화 방법.
  7. 운영체제 부팅 시의 시스템 초기화 과정으로서,
    이진화 스크립트가 기록된 실행 테이블을 호출하는 단계;
    상기 호출된 실행 테이블에서 이진화 스크립트를 순차적으로 호출하여 읽는 단계;
    상기 호출된 이진화 스크립트의 서브루틴을 탐색하여 해당 이진화 스크립트의 서브루틴에 포함된 명령 및 인자를 분류하는 단계; 및
    상기 분류된 명령과 인자를 실행하는 단계;를 포함하며,
    상기 호출된 이진화 스크립트의 서브루틴에 포함된 명령 및 인자 실행 후, 상기 실행 테이블에 기록된 다음 순서의 이진화 스크립트를 호출하는 것을 특징으로 하는 이진화 스크립트의 실행 방법.
  8. 청구항 7에 있어서,
    상기 이진화 스크립트의 서브루틴에 포함된 명령은,
    네트워크 설정 명령, 콘솔 출력 명령, 외부 명령의 실행 명령, 커널 모듈 초기화 명령, 보조기억장치 초기화 명령, 선행 읽기 명령, 환경 변수 설정 명령, 대기 명령 중 적어도 하나인 것을 특징으로 하는 이진화 스크립트의 실행 방법.
  9. 청구항 7에 있어서,
    상기 실행 테이블에 기록된 이진화 스트립트를 모두 읽을 때까지 다음 순서의 스크립트를 계속 호출하는 것을 특징으로 하는 이진화 스크립트의 실행 방법.
  10. 청구항 7에 있어서,
    상기 실행 테이블에서 더 이상 읽을 이진화 스크립트가 존재하지 않으면, 시스템 초기화를 종료하고 다음 부팅 과정을 수행하는 단계;를 더 포함하는 것을 특징으로 하는 이진화 스크립트의 실행 방법.
KR1020090105072A 2008-12-08 2009-11-02 운영체제의 초기화 스크립트의 이진화 방법, 및 그 이진화 스크립트의 실행 방법 KR101213651B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/630,178 US8448151B2 (en) 2008-12-08 2009-12-03 Method for binarizing initial script on operating system and operating method of binary script

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20080124125 2008-12-08
KR1020080124125 2008-12-08

Publications (2)

Publication Number Publication Date
KR20100066354A KR20100066354A (ko) 2010-06-17
KR101213651B1 true KR101213651B1 (ko) 2012-12-18

Family

ID=42365459

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090105072A KR101213651B1 (ko) 2008-12-08 2009-11-02 운영체제의 초기화 스크립트의 이진화 방법, 및 그 이진화 스크립트의 실행 방법

Country Status (1)

Country Link
KR (1) KR101213651B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101136121B1 (ko) * 2010-07-13 2012-04-17 한국항공우주산업 주식회사 다계층 스크립트 파일의 바이너리화 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Goebel G. An introcution to shell programming, 2003.05. (http://www.faqs.org/tsshell.html)
Wikipedia, Shell script (http://en.wikipedia.org/wiki/Shell_script)

Also Published As

Publication number Publication date
KR20100066354A (ko) 2010-06-17

Similar Documents

Publication Publication Date Title
CN108027722B (zh) 在编译和部署中动态更新应用
US9811360B2 (en) Dynamic determination of application server runtime classloading
KR102059705B1 (ko) 적응식 이식가능 라이브러리
US8448151B2 (en) Method for binarizing initial script on operating system and operating method of binary script
US8607208B1 (en) System and methods for object code hot updates
EP3035191B1 (en) Identifying source code used to build executable files
US20100205604A1 (en) Systems and methods for efficiently running multiple instances of multiple applications
US10409567B2 (en) Trimming unused dependencies using package graph and module graph
JP2023139043A (ja) 実行時コンテナ
US6779172B1 (en) Bean scripting framework
US20160139917A1 (en) Incremental source code analysis
CN114816417A (zh) 一种交叉编译方法、装置、计算设备及存储介质
US20060230397A1 (en) Method for third-party registration of software components
CN104503778A (zh) 一种应用程序的安装方法和装置
Schiller et al. Live programming of mobile apps in App Inventor
US8904346B1 (en) Method and system for automated load testing of web applications
CN110348233A (zh) 一种基于arm的多级安全操作系统实现方法
KR101213651B1 (ko) 운영체제의 초기화 스크립트의 이진화 방법, 및 그 이진화 스크립트의 실행 방법
US20160085523A1 (en) Selectively loading precompiled header(s) and/or portion(s) thereof
US9612808B1 (en) Memory use for string object creation
CN103513989B (zh) 按键数据获取方法及装置
Parsons et al. The java story
US20240176633A1 (en) System and method for in-line executables
Huszár et al. Introduction to the Linux OS
Smyth Android Studio 3.3 Development Essentials-Kotlin Edition: Developing Android 9 Apps Using Android Studio 3.3, Kotlin and Android Jetpack

Legal Events

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

Payment date: 20151127

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161122

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180104

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190513

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20200204

Year of fee payment: 8