KR20040051023A - System and Method for Compiling a Web Based Operating System - Google Patents

System and Method for Compiling a Web Based Operating System Download PDF

Info

Publication number
KR20040051023A
KR20040051023A KR1020020078845A KR20020078845A KR20040051023A KR 20040051023 A KR20040051023 A KR 20040051023A KR 1020020078845 A KR1020020078845 A KR 1020020078845A KR 20020078845 A KR20020078845 A KR 20020078845A KR 20040051023 A KR20040051023 A KR 20040051023A
Authority
KR
South Korea
Prior art keywords
kernel
user
compilation
compiled
version
Prior art date
Application number
KR1020020078845A
Other languages
Korean (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 KR1020020078845A priority Critical patent/KR20040051023A/en
Publication of KR20040051023A publication Critical patent/KR20040051023A/en

Links

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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4416Network booting; Remote initial program loading [RIPL]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Stored Programmes (AREA)

Abstract

PURPOSE: A system and a method for compiling an OS(Operating System) based on the web are provided to compile the OS by setting the OS to various hardware on the web. CONSTITUTION: A user interface part performs the interface with a user through the Internet(21). A database management part manages/stores the objects compiled by the user interface part and the compile information in a database(25). A tool set part(22) performs compilation through the user interface part, assembles/links/activates the compiled objects, and manages the user account and access, the setting information, and the database management part. A version management part(23) directly reflects a version of a kernel to the database management part if a kernel developer modifies a kernel and upgrades the version of the kernel.

Description

웹 기반 운영 체제 컴파일 시스템 및 방법 {System and Method for Compiling a Web Based Operating System}System and Method for Compiling a Web Based Operating System

본 발명은 웹 기반 운영 체제 컴파일 시스템 및 방법에 관한 것으로, 특히 웹상에서 운영 체제를 다양한 하드웨어(Hardware)에 맞게 설정하여 컴파일할 수 있도록 한 웹 기반 운영 체제 컴파일 시스템 및 방법에 관한 것이다.The present invention relates to a system and method for compiling a web based operating system, and more particularly, to a system and method for compiling a web based operating system for compiling and configuring an operating system for various hardware on the web.

현재 널리 사용되고 있는 내장형 운영 체제(Embedded Operating System)를 컴파일할 수 있는 프로그램 개발 패키지의 구성은 도 1에 도시된 바와 같이, 사용자의 로컬 PC(Personal Computer)(10) 내에 구성되는데, IDE(Integrated Development Environment)(11)와, 크로스 컴파일러(12)와, 바이너리 유틸리티(13)와, 커널 콤포넌트 오브젝트(Kernel Component Object)(14)와, 사용자 라이브러리 및 헤더(15)를 포함하여 이루어져 있다.The configuration of a program development package that can compile an embedded operating system that is currently widely used is configured in a user's local personal computer (PC) 10, as shown in FIG. Environment 11, cross compiler 12, binary utility 13, Kernel Component Object 14, and user library and header 15 are included.

상기 IDE(11)는 사용자에게 컴파일을 편리하게 수행하도록 하기 위한 도구로, 일반적으로 그래픽 사용자 인터페이스 형태로 되어 있고 상기 로컬 PC(10)상에서 운용되는 윈도즈용 응용 프로그램이 대부분이다. 또한, 상기 IDE(11)는 상기 크로스 컴파일러(12) 및 바이너리 유틸리티(13)를 이용하여 상기 커널 콤포넌트 오브젝트(14)와 사용자 라이브러리(15)를 컴파일, 링킹(Linking) 등의 역할을 수행하며, 개발 패키지 전체를 의미하기도 한다.The IDE 11 is a tool for allowing a user to conveniently compile, and is generally a graphical user interface, and most of the application programs for Windows are operated on the local PC 10. In addition, the IDE 11 compiles and links the kernel component object 14 and the user library 15 using the cross compiler 12 and the binary utility 13. It also means the whole development package.

상기 크로스 컴파일러(12)는 목적한 CPU(Central Processing Unit)에 구동될 수 있는 머신 코드(Machine Code)를 생성시켜 주는 컴파일러이다.The cross compiler 12 is a compiler that generates machine code that can be driven in a desired central processing unit (CPU).

상기 바이너리 유틸리티(13)는 상기 크로스 컴파일러(12)에 의해 컴파일된 오브젝트들을 어셈블(Assemble), 링킹 및 액티빙(Activing)하는 도구들로, 링커(Linker), 액티브 콤포넌트(Active Component) 등 생성된 바이너리 오브젝트들을 다루는 도구들을 말한다.The binary utility 13 is a tool for assembling, linking, and activating objects compiled by the cross compiler 12. The binary utility 13 generates a linker, an active component, and the like. Tools for dealing with binary objects.

상기 커널 콤포넌트 오브젝트(14)는 이미 컴파일된 형태로 제공되는 커널에 내장되는 다양한 기능을 하는 콤포넌트들로, 사용자가 설정한 커널 콤포넌트들을 링크하여 사용자가 필요한 커널의 형태로 만들어 준다. 여기서, 해당 커널은 시스템 시작부터 적재되어 항상 존재하게 되는 운영 체제의 부분, 또는 운영 체제 전체를 말하기도 한다.The kernel component object 14 is a component having various functions embedded in a kernel provided in a compiled form. The kernel component object 14 links kernel components set by a user to form a kernel required by a user. Here, the kernel may refer to a portion of an operating system or an entire operating system that is loaded from the system startup and always exists.

상기 사용자 라이브러리 및 헤더(15)는 사용자 응용 프로그램을 작성하기 위한 라이브러리와 헤더들을 말한다.The user library and header 15 refer to libraries and headers for writing a user application.

상술한 바와 같이 구성된 프로그램 개발 패키지를 사용할 경우에는 다음과 같은 동작을 수행한다.When using the program development package configured as described above, the following operation is performed.

먼저, 내장형 운영 체제의 개발자 또는 개발사로부터 구입한 IDE(11)를 사용자의 로컬 PC(10)에 설치한 후에, 개발한 목적 보드(Target Board)에 알맞게 사용자가 직접 커널을 설정해 준다.First, after installing the IDE (11) purchased from the developer or developer of the embedded operating system on the user's local PC (10), the user sets the kernel to suit the target board (Target) developed.

이에, 크로스 컴파일러(12)에서는 컴파일을 수행하는데, 이때 사용자에게 소스(Source)를 공개한 일부 커널 콤포넌트(즉, 일부 디바이스(Device), 드라이버(Driver) 등)를 컴파일하며, 사용자가 사용하기로 정한 커널 콤포넌트들을 링크하여 커널을 생성시켜 준다. 이때, 해당 컴파일된 오브젝트(14)는 사용자의 로컬 PC(10)상의 저장 장치에 단순히 저장되어진다.Therefore, the cross compiler 12 compiles. At this time, it compiles some kernel components (ie, some devices, drivers, etc.) that expose the source to the user, and decides to use the user. The kernel is created by linking the specified kernel components. At this time, the compiled object 14 is simply stored in the storage device on the user's local PC (10).

그런 후에, 상기 생성된 커널을 상기 개발한 목적 보드에 설치하게 된다.After that, the generated kernel is installed on the developed target board.

그리고, 상기 운영 체제의 결함이 발견되어 수정하거나, 기능을 추가하여 업그레이드를 수행할 경우로는 크게 두 가지가 있는데, 즉 새 버전으로 재설치하는 경우와 자동 패치 도구가 있을 때의 업그레이드하는 경우가 있다.In addition, there are two major cases in which the defect of the operating system is found and corrected or upgraded by adding a function, that is, a reinstallation with a new version and an upgrade when there is an automatic patching tool. .

상기 새 버전으로 재설치하는 경우에는, 개발자가 새로운 패키지를 직접 만들어 새 버전을 요청한 모든 사용자들에게 보내고 사용자가 직접 기존 버전을 제거하고 새로 설치해 주어야 한다.In case of re-installing with the new version, the developer must create a new package and send it to all the users who requested the new version, and the user must remove the existing version and install the new version.

상기 자동 패치 도구가 있을 때의 업그레이드하는 경우에는, 개발자가 직접 새로운 패키지를 만들어 자동 패치 도구가 있는 서버에 저장해 주고 사용자가 직접 해당 자동 패치 도구를 이용하여 새로운 버전으로 업그레이드해야 한다.In the case of upgrading the automatic patching tool, the developer must create a new package and save it on the server with the automatic patching tool, and the user must upgrade to the new version using the automatic patching tool.

이와 같이, 종래의 운영 체제를 컴파일하는 기술은 프로그램 개발 패키지를 별도로 사용자의 로컬 PC에 설치해야 하므로, 사용자는 해당 프로그램 개발 패키지가 구동될 수 있는 운영 체제에서만 사용 가능하고 해당 프로그램 개발 패키지의 사용 방법을 별도로 익혀야 하며, 사용자의 로컬 PC의 CPU 자원과 디스크 공간을 많이 사용해야 하는 단점이 있었다.As described above, since a technology for compiling a conventional operating system needs to install a program development package separately on a user's local PC, the user can use only the operating system in which the program development package can be run and how to use the program development package. You have to learn it separately, and you have to use a lot of CPU resources and disk space of your local PC.

또한, 종래의 운영 체제를 컴파일하는 기술은 운영 체제를 공동으로 개발하는 경우에 개발자들이 직접 프로그램 개발 패키지를 만들어 사용함으로 버전 관리가 어려우며, 특히 다수의 보드를 사용하는 대형 시스템 개발 시에 각 보드에 사용되는 커널 바이너리를 별도로 관리해야 하는 단점도 있었다.In addition, the technology of compiling a conventional operating system is difficult to manage the version by developing and using a program development package by developers in the case of jointly developing the operating system, especially when developing a large system using a large number of boards There was also a disadvantage of having to manage the kernel binaries used separately.

또한, 종래의 운영 체제를 컴파일하는 기술은 개발자가 개발 환경과 운영 체제를 배포 시에 별도로 다른 저장 매체에 저장하여 사용자에게 일일이 운송해야 하고 사용자가 별도의 복잡한 개발 환경을 설치하거나 전문적인 지식을 가지고 해당 운영 체제를 자신의 PC에 설치해야 하므로, 해당 운영 체제의 새로운 기능이나 버그 수정을 적용하기가 어렵고 빠르게 적용하기가 어려우며, 해당 프로그램 개발 패키지의 불법적인 유통을 제한하기가 어려운 단점이 있었다.In addition, the technique of compiling a conventional operating system requires that the developer stores the development environment and the operating system separately in different storage media and distributes them to users, and the user installs a separate complex development environment or has expertise. Since the operating system must be installed on the PC, it is difficult to apply new features or bug fixes of the operating system, it is difficult to apply quickly, and it is difficult to restrict illegal distribution of the program development package.

전술한 바와 같은 문제점을 해결하기 위한 것으로, 본 발명은 웹상에서 운영 체제를 다양한 하드웨어에 맞게 설정하여 컴파일할 수 있도록 한 웹 기반 운영 체제 컴파일 시스템 및 방법을 제공하는데, 그 목적이 있다.SUMMARY OF THE INVENTION In order to solve the above problems, the present invention provides a web-based operating system compilation system and method for compiling by setting the operating system for a variety of hardware on the web, an object thereof.

또한, 본 발명은 웹상에서 운영 체제를 다양한 하드웨어에 맞게 설정하여 컴파일함으로써, 프로그램 개발 패키지를 별도로 사용자 PC에 설치할 필요가 없으므로, 사용자가 어떤 운영 체제에서든 웹 브라우저가 사용 가능한 경우에 접속하여 커널을 컴파일할 수 있고 해당 프로그램 개발 패키지의 설치 및 사용 방법을 별도로 익힐 필요가 없으며, 사용자 PC의 CPU 자원 및 디스크 공간을 절약할 수 있도록 하는데, 그 목적이 있다.In addition, the present invention does not need to install a program development package separately on a user PC by setting up and compiling the operating system for various hardware on the web, so that the user can access the web browser on any operating system and compile the kernel. There is no need to learn how to install and use the program development package separately, and to save CPU resources and disk space of the user PC.

또한, 본 발명은 웹상에서 운영 체제를 다양한 하드웨어에 맞게 설정하여 자동적으로 컴파일해 줌으로써, 해당 운영 체제를 공동으로 개발하는 경우에도 버전 관리가 자동으로 이루어지며, 특히 다수의 보드를 사용하는 대형 시스템 개발 시에 각 보드에 사용되는 커널 바이너리를 관리하기가 용이하도록 하는데, 그 목적이 있다.In addition, the present invention is automatically compiled by setting the operating system for a variety of hardware on the Web, even when the operating system is jointly developed, version management is made automatically, especially large system development using a large number of boards The goal is to make it easier to manage the kernel binaries used on each board.

또한, 본 발명은 웹상에서 운영 체제를 다양한 하드웨어에 맞게 설정하여 자동적으로 컴파일해 줌으로써, 운영 체제의 기능 추가 및 버그 수정 등으로 인해 버전이 변경된 경우에도 개발자가 배포 및 버전 관리가 쉽고 사용자가 최신 버전의 운영 체제로 쉽고 빠르게 업그레이드할 수 있도록 하는데, 그 목적이 있다.In addition, the present invention is automatically compiled by setting the operating system for a variety of hardware on the web, even if the version is changed due to the addition of features and bug fixes of the operating system, developers can easily distribute and version management, the user is the latest version It's an easy and fast way to upgrade your operating system.

또한, 본 발명은 웹상에서 접근할 수 있는 사용자만 제한적으로 로그인하여 사용하고 각 사용자별 사용을 조정할 수 있도록 함으로써, 프로그램 개발 패키지의 불법적인 유통을 제한하기가 용이하도록 하는데, 그 목적이 있다.In addition, the present invention is to limit the illegal distribution of the program development package by allowing only the user who can access on the web to log in and use the limited control of each user, the purpose is to facilitate.

도 1은 종래의 프로그램 개발 패키지(Program Development Package)의 구성을 나타낸 블록도.1 is a block diagram showing the configuration of a conventional program development package.

도 2는 본 발명의 실시 예에 따른 웹(Web) 기반 운영 체제(Operating System) 컴파일(Compile) 시스템을 나타낸 구성 블록도.2 is a block diagram illustrating a web-based operating system compilation system according to an embodiment of the present invention.

도 3은 본 발명의 실시 예에 따른 웹 기반 운영 체제 컴파일 방법을 나타낸 순서도.3 is a flow chart illustrating a web-based operating system compilation method according to an embodiment of the present invention.

* 도면의 주요 부분에 대한 부호의 설명 *Explanation of symbols on the main parts of the drawings

20 : 서버(Server) 21 : 사용자 인터페이스 부분20: Server 21: User Interface Part

211 : 리스트(List) CGI(Common Gateway Interface)211: List Common Gateway Interface (CGI)

212 : 콘피큐레이션(Configuration) CGI212: Configuration CGI

213 : 컴파일 CGI 22 : 툴 셋(Tool Set) 부분213 Compile CGI 22 Tool Set Part

221 : 크로스 컴파일러(Cross Compiler)221: Cross Compiler

222 : 바이너리 유틸리티(Binary Utilities)222: Binary Utilities

223 : 서버 관리 툴(Server Management Tool)223: Server Management Tool

23 : 버전 관리(Version Management) 부분23: Version Management

231 : 버전 관리 툴 231 : 커널 소스(Kernel Source)231 Version Control Tool 231 Kernel Source

24 : 데이터베이스(Database) 관리 부분24: database management part

상술한 바와 같은 목적을 달성하기 위한 본 발명의 실시 예에 따른 웹 기반 운영 체제 컴파일 시스템은 인터넷을 통해 사용자와 인터페이스를 수행하는 사용자인터페이스 부분과; 상기 사용자 인터페이스 부분에 의해 컴파일된 오브젝트들 및 컴파일 정보를 데이터베이스에서 저장하고 관리하는 데이터베이스 관리 부분과; 상기 사용자 인터페이스 부분을 통해 컴파일을 수행하고 해당 컴파일된 오브젝트들을 어셈블, 링킹 및 액티빙하며, 사용자 계정 및 접근 관리, 설정 정보 관리, 상기 데이터베이스 관리 부분의 관리를 수행하는 툴 셋 부분과; 커널 개발자에 의해 커널을 수정하고 버전을 업그레이드할 경우에 상기 데이터베이스 관리 부분에 직접 반영해 주는 버전 관리 부분을 포함하여 이루어진 것을 특징으로 한다.Web-based operating system compilation system according to an embodiment of the present invention for achieving the above object includes a user interface portion for performing an interface with the user over the Internet; A database management portion for storing and managing objects compiled by the user interface portion and compilation information in a database; A tool set portion for performing compilation through the user interface portion, assembling, linking, and activating the compiled objects, and performing user account and access management, configuration information management, and management of the database management portion; In the case of modifying the kernel by the kernel developer and upgrading the version, the version management part is directly included in the database management part.

바람직하게는, 상기 사용자 인터페이스 부분은 사용자 승인 동작을 수행하며, 상기 데이터베이스 관리 부분 내의 컴파일된 오브젝트들을 사용자에게 다운로드해 주며, 운영 체제 버전과 하드웨어를 선택하여 커널 설정 동작을 실행시켜 주는 리스트 CGI와; 상기 리스트 CGI에 의해 사용자에게 커널 설정을 제공해 주며, 각 설정에 대한 도움말을 제공하며, 커널 컴파일 동작을 실행시켜 주는 콘피큐레이션 CGI와; 상기 콘피큐레이션 CGI에 의해 상기 커널 설정에 대한 정보를 바탕으로 상기 툴 셋 부분을 이용하여 커널에 대한 컴파일을 실행시켜 주며, 해당 컴파일 수행 동작을 사용자에게 디스플레이시켜 주며, 해당 컴파일된 오브젝트들 및 컴파일 정보를 상기 데이터베이스 관리 부분에 저장시켜 주는 컴파일 CGI를 포함하여 이루어진 것을 특징으로 한다.Preferably, the user interface portion performs a user approval operation, downloads the compiled objects in the database management portion to the user, and selects an operating system version and hardware to execute a kernel configuration operation; A configuration CGI that provides kernel configuration to the user by the list CGI, provides help for each configuration, and executes a kernel compilation operation; The configuration CGI executes a compilation of the kernel by using the tool set part based on the information on the kernel configuration, displays the operation of performing the compilation, and displays the compiled objects and the compilation. And a compiled CGI for storing information in the database management part.

한편, 본 발명의 실시 예에 따른 웹 기반 운영 체제 컴파일 방법은 인터넷을 통해 사용자의 로그인을 확인하여 사용자 승인 동작을 수행한 후에, 데이터베이스 내의 컴파일된 커널 정보, 컴파일할 커널의 버전 및 하드웨어의 선택 화면을 디스플레이시켜 주는 과정과; 사용자의 커널 버전 및 하드웨어의 선택을 감지하여 상기 데이터베이스 내의 설정된 커널 설정 정보 항목들을 디스플레이시켜 주는 과정과; 사용자의 컴파일 요구에 따라 사용자 설정 정보를 바탕으로 커널에 대한 컴파일을 수행하여 해당 컴파일된 오브젝트들 및 컴파일 정보를 상기 데이터베이스에 저장하는 과정을 포함하여 이루어진 것을 특징으로 한다. 이하, 본 발명의 실시 예를 첨부한 도면을 참조하여 상세하게 설명하면 다음과 같다.Meanwhile, in the web-based operating system compilation method according to an embodiment of the present invention, after checking a user's login through the Internet and performing a user approval operation, the compiled kernel information in the database, the kernel version to be compiled, and a screen for selecting hardware Displaying the process; Detecting a user's kernel version and a hardware selection and displaying the kernel configuration information items set in the database; And compiling the kernel based on user setting information according to the user's compilation request, and storing the compiled objects and the compiled information in the database. Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

본 발명의 실시 예에 따른 웹 기반 운영 체제 컴파일 시스템은 도 2에 도시된 바와 같이, 모든 개발 환경이 원격 서버(20) 내에 구성되어 이루어지는데, 사용자 인터페이스 부분(21)과, 툴 셋 부분(22)과, 버전 관리 부분(23)과, 데이터베이스 관리 부분(24)을 포함하여 이루어지며, 사용자가 사용자 단말을 이용하여 원격지에서 웹 브라우저를 통해 인터넷(30)을 거쳐 해당 서버(20)에 로그인하여 사용하도록 이루어진다.In the web-based operating system compilation system according to an exemplary embodiment of the present invention, as shown in FIG. 2, all development environments are configured in the remote server 20. The user interface portion 21 and the tool set portion 22 are illustrated in FIG. And a version management portion 23 and a database management portion 24, the user logs in to the server 20 via the Internet 30 via a web browser at a remote location using a user terminal. It is made to use.

상기 사용자 인터페이스 부분(21)은 상기 인터넷(30)을 통해 사용자와 인터페이스를 수행하며, 리스트 CGI(211), 콘피큐레이션 CGI(212) 및 컴파일 CGI(213)와 같은 3 개의 CGI를 포함하여 이루어진다.The user interface portion 21 interfaces with the user via the Internet 30 and comprises three CGIs, such as a list CGI 211, a configuration CGI 212, and a compiled CGI 213. .

해당 리스트 CGI(211)는 사용자 승인 동작을 수행하며, 데이터베이스 관리 부분(24)에 저장되어 있는 컴파일된 오브젝트들을 사용자가 다운로드(Download)할 수 있도록 해 주며, 운영 체제 버전과 하드웨어를 선택하여 커널 설정을 위한 콘피큐레이션 CGI(212)를 실행시켜 주는 역할을 수행한다.The list CGI 211 performs a user approval operation, allows a user to download the compiled objects stored in the database management part 24, and selects an operating system version and hardware to configure the kernel. It performs the role of executing the configuration CGI 212 for.

해당 콘피큐레이션 CGI(212)는 해당 리스트 CGI(211)의 실행에 의해 사용자가 커널을 설정할 수 있도록 해 주며, 각 설정에 대한 도움말을 제공해 주며, 실제 커널을 컴파일하는 컴파일 CGI(213)를 실행시켜 주는 역할을 수행한다. 여기서, 해당 커널 설정은 로지컬(Logical) 커널 정보를 설정하는 부분과 하드웨어 의존적인 부분을 설정하는 부분의 두 가지 종류가 있다.The configuration CGI 212 allows the user to configure the kernel by executing the list CGI 211, provides help for each setting, and executes the compilation CGI 213 to compile the actual kernel. It plays a role. In this case, there are two types of kernel configuration, a part for configuring logical kernel information and a part for configuring hardware dependent parts.

해당 컴파일 CGI(213)는 해당 콘피큐레이션 CGI(212)의 실행에 의해 해당 콘피큐레이션 CGI(212)에서 사용자가 설정한 설정 정보를 바탕으로 상기 툴 셋 부분(22) 내의 크로스 컴파일러(221)로 상기 툴 셋 부분(22) 내의 바이너리 유틸리티(222) 등을 이용하여 커널에 대한 컴파일을 수행시켜 주는 역할을 수행하며, 해당 컴파일 수행 동작을 사용자에게 디스플레이시켜 주며, 해당 컴파일된 오브젝트들과 컴파일 정보를 상기 데이터베이스 관리 부분(24) 내의 데이터베이스에 저장시켜 준다.The compiling CGI 213 is a cross compiler 221 in the tool set part 22 based on the setting information set by the user in the configuration CGI 212 by executing the configuration CGI 212. By using the binary utility 222, etc. in the tool set portion 22 to perform a compilation for the kernel, to display the operation to perform the compilation, the compiled objects and the compilation information Is stored in a database in the database management portion 24.

상기 툴 셋 부분(22)은 목적한 CPU에 구동될 수 있는 머신 코드를 생성시켜 주는 컴파일을 위한 크로스 컴파일러(221)와, 해당 크로스 컴파일러(221)에 의해 컴파일된 오브젝트들을 어셈블, 링킹 및 액티빙하는 바이너리 유틸리티(222)와, 상기 서버(20)를 관리하기 위한 서버 관리 툴(223)을 포함하여 이루어진다.The tool set portion 22 is a cross-compiler 221 for compiling to generate machine code that can be driven on the target CPU, and to assemble, link and activate objects compiled by the cross-compiler 221. Includes a binary utility 222 and a server management tool 223 for managing the server 20.

해당 서버 관리 툴(223)은 사용자 계정 및 접근 관리, 설정 정보 관리, 상기 데이터베이스 관리 부분(24) 관리 등의 역할을 수행하며, 관리자만이 사용할 수 있는 도구이다.The server management tool 223 performs a role such as user account and access management, configuration information management, and database management part 24 management, and is a tool that only an administrator can use.

상기 버전 관리 부분(23)은 커널 개발자가 커널을 수정하고 버전을 업그레이드할 경우에 직접 반영해 주는 역할을 수행하는데, 예로, CVS, 클리어케이스(Clearcase) 등과 같은 버전 관리 툴(231)과, 커널 소스(232)를 포함하여 이루어진다. 해당 커널 소스(232)는 동일한 서버(20)에 있을 수도 있고 다른 서버(설명의 편의상으로 도면에는 도시하지 않음)에 존재할 수도 있다.The version management part 23 serves to directly reflect when a kernel developer modifies the kernel and upgrades the version. For example, the version management tool 231 such as CVS, Clearcase, and the kernel are included. It comprises a source 232. The kernel source 232 may be on the same server 20 or on another server (not shown in the figures for convenience of description).

상기 데이터베이스 관리 부분(24)은 상기 사용자 인터페이스 부분(21) 내의 컴파일 CGI(213)에 의해 컴파일된 오브젝트들(즉, 커널, 설정 정보, 메모리 맵, 디스어셈블 코드(Disassemble Code) 등) 및 컴파일 정보를 저장하고 있는 데이터베이스를 관리해 준다.The database management portion 24 includes objects compiled by the compiled CGI 213 in the user interface portion 21 (ie, kernel, configuration information, memory map, disassemble code, etc.) and compilation information. Manage the database that stores the.

본 발명의 실시 예에 따른 웹 기반 운영 체제 컴파일 방법을 도 3의 순서도를 참고하여 설명하면 다음과 같다.A method of compiling a web-based operating system according to an embodiment of the present invention will be described with reference to the flowchart of FIG. 3.

사용자가 커널을 컴파일할 경우에 수행되는 동작은 사용자(Client) 측면과 도구(Server) 측면으로 구분할 수 있다.The operations performed when the user compiles the kernel can be divided into the client side and the server side.

먼저, 사용자 측에서는 사용자 단말을 이용하여 원격지에서 웹 브라우저를 통해 인터넷(30)을 거쳐 서버(20)에 접속하여 로그인하게 되면(단계 S1), 해당 서버(20) 내의 사용자 인터페이스 부분(21)에서는 해당 인터넷(30)을 통해 사용자 단말과 인터페이스를 수행하게 된다.First, when the user side logs in by accessing the server 20 via the Internet 30 via a web browser at a remote location using the user terminal (step S1), the user interface portion 21 in the server 20 corresponds to the corresponding user. The interface with the user terminal is performed through the Internet 30.

즉, 상기 사용자 인터페이스 부분(21) 내의 리스트 CGI(211)에서는 사용자의 로그인을 확인하여 사용자 승인 동작을 수행하며(단계 S2), 상기 서버(20) 내의 데이터베이스 관리 부분(24)에 저장되어 있는 컴파일된 오브젝트들을 사용자가 다운로드할 수 있도록 하기 위해서, 우선 해당 데이터베이스 관리 부분(24) 내의 데이터베이스로부터 컴파일된 커널 정보와 컴파일할 커널의 버전과 하드웨어를 선택하는 화면을 디스플레이시켜 준다(단계 S3).That is, the list CGI 211 in the user interface portion 21 confirms the user's login to perform a user approval operation (step S2), and is compiled in the database management portion 24 in the server 20. In order to allow the user to download the created objects, first, a screen for selecting kernel information compiled from a database in the database management part 24 and a version and hardware of a kernel to be compiled is displayed (step S3).

이에, 사용자 측에서는 웹 브라우저를 통해 커널 버전(즉, 운영 체제 버전)과 하드웨어를 선택하게 되면(단계 S4), 상기 리스트 CGI(211)에서는 해당 커널 버전과 하드웨어의 선택을 감지하여 커널 설정을 위한 사용자 인터페이스 부분(21) 내의 콘피큐레이션 CGI(212)를 실행시켜 주게 된다.Therefore, when the user selects the kernel version (ie, the operating system version) and hardware through the web browser (step S4), the list CGI 211 detects the selection of the corresponding kernel version and the hardware and configures the user for the kernel configuration. The configuration CGI 212 in the interface portion 21 is executed.

이에 따라, 상기 콘피큐레이션 CGI(212)에서는 상기 리스트 CGI(211)의 실행에 의해 사용자가 커널을 설정할 수 있고 각 설정에 대한 도움말을 제공할 수 있도록 하기 위해서, 관리자에 의해 툴 셋 부분(22) 내의 서버 관리 툴(223)을 이용하여 설정된 커널 설정 정보 항목들을 디스플레이시켜 준다(단계 S5).Accordingly, the configuration CGI 212 allows the user to configure the kernel by executing the list CGI 211 and provide a tool set portion 22 by the administrator in order to provide help for each setting. And display the kernel setting information items set using the server management tool 223 in step S5).

그러면, 사용자 측에서는 웹 브라우저를 통해 커널 설정 정보를 수정한 후에 컴파일을 실행시켜 주게 되면(단계 S6), 상기 콘피큐레이션 CGI(212)에서는 해당 컴파일 실행 명령을 감지하여 실제 커널을 컴파일하는 사용자 인터페이스 부분(21) 내의 컴파일 CGI(213)를 실행시켜 주게 된다.Then, when the user modifies the kernel configuration information through a web browser and executes compilation (step S6), the configuration CGI 212 detects a corresponding compilation execution command and compiles the actual kernel. Compiling CGI 213 in (21) is executed.

이에, 상기 컴파일 CGI(213)에서는 상기 콘피큐레이션 CGI(212)의 실행에 의해 상기 콘피큐레이션 CGI(212)에서 사용자가 설정한 설정 정보를 바탕으로 상기 툴 셋 부분(22) 내의 크로스 컴파일러(221)로 상기 툴 셋 부분(22) 내의 바이너리 유틸리티(222) 등을 이용하여 커널에 대한 컴파일을 수행시켜 주는데, 즉 상기 서버 관리 툴(223)에 의해 관리되고 있는 소스를 상기 툴 셋 부분(22)을 이용하여 컴파일해 줌과 동시에, 해당 컴파일 수행 동작을 사용자에게 디스플레이시켜 준다(단계 S7).Accordingly, in the compiled CGI 213, a cross compiler in the tool set portion 22 based on setting information set by the user in the configuration CGI 212 by executing the configuration CGI 212. 221 is used to compile the kernel using binary utilities 222 and the like in the tool set portion 22, that is, the source managed by the server management tool 223 is stored in the tool set portion 22. ), And at the same time, display the operation to perform the compilation (step S7).

그런 후, 상기 컴파일 CGI(213)에서는 상기 컴파일된 오브젝트들(즉, 커널, 설정 정보, 메모리 맵, 디스어셈블 코드 등) 및 컴파일 정보를 상기 데이터베이스 관리 부분(24) 내의 데이터베이스에 저장시켜 준다.(단계 S8).The compiled CGI 213 then stores the compiled objects (i.e. kernel, configuration information, memory map, disassembly code, etc.) and compilation information in a database in the database management portion 24. Step S8).

여기서, 메모리 맵은 프로그램 코드의 변수와 함수의 주소를 정의해 놓은 맵이며, 해당 디스어셈블 코드는 프로그램을 어셈블리 레벨로 생성해 놓은 코드를 말한다.Here, the memory map is a map that defines the address of variables and functions of the program code, and the disassembly code refers to the code in which the program is generated at the assembly level.

한편, 상기 서버(20) 내의 버전 관리 부분(23)은 예로, CVS, 클리어케이스 등과 같은 버전 관리 툴(231)과, 커널 소스(232)를 구비하여 커널 개발자가 커널을 수정하고 버전을 업그레이드할 경우에 상기 데이터베이스 관리 부분(24)에 직접 반영해 주는 역할을 수행한다.Meanwhile, the version control part 23 in the server 20 includes, for example, a version management tool 231 such as CVS and a clear case, and a kernel source 232 to allow a kernel developer to modify the kernel and upgrade the version. In this case, it directly reflects the database management part 24.

이상과 같이, 본 발명에 의해 웹상에서 운영 체제를 다양한 하드웨어에 맞게 설정하여 컴파일할 수 있도록 함으로써, 프로그램 개발 패키지를 별도로 사용자 PC에 설치할 필요가 없으므로, 사용자가 어떤 운영 체제에서든 웹 브라우저가 사용 가능한 경우에 접속하여 커널을 컴파일할 수 있고 해당 프로그램 개발 패키지의 설치 및 사용 방법을 별도로 익힐 필요가 없으며, 사용자 PC의 CPU 자원 및 디스크 공간을 절약할 수 있다.As described above, by allowing the operating system to be compiled and configured on the web according to the present invention, there is no need to install a program development package on the user's PC separately, so that the user can use the web browser on any operating system. You can compile the kernel by connecting to, and you don't have to learn how to install and use the program development package, and you can save CPU resources and disk space on your PC.

또한, 본 발명에 의해 운영 체제를 공동으로 개발하는 경우에도 버전 관리가 자동으로 이루어지며, 특히 다수의 보드를 사용하는 대형 시스템 개발 시에 각 보드에 사용되는 커널 바이너리를 관리하기가 용이하며, 운영 체제의 기능 추가 및 버그 수정 등으로 인해 버전이 변경된 경우에도 개발자가 배포 및 버전 관리가 쉽고 사용자가 최신 버전의 운영 체제로 쉽고 빠르게 업그레이드할 수 있다.In addition, even when jointly developing an operating system according to the present invention, version management is automatically performed, and in particular, it is easy to manage kernel binaries used for each board when developing a large system using multiple boards. Even if the version is changed due to the system's feature additions and bug fixes, it is easy for developers to distribute and version, and users can upgrade to the latest version of the operating system quickly and easily.

또한, 본 발명에 의해 웹상에서 접근할 수 있는 사용자만 제한적으로 로그인하여 사용하고 각 사용자별 사용을 조정할 수 있도록 함으로써, 불법적인 프로그램 개발 패키지의 사용을 줄일 수 있다.In addition, according to the present invention, by only allowing a user who can access the web to log in and use a limited number of users, the use of illegal program development packages can be reduced.

Claims (3)

인터넷을 통해 사용자와 인터페이스를 수행하는 사용자 인터페이스 부분과;A user interface portion for performing an interface with a user via the Internet; 상기 사용자 인터페이스 부분에 의해 컴파일된 오브젝트들 및 컴파일 정보를 데이터베이스에서 저장하고 관리하는 데이터베이스 관리 부분과;A database management portion for storing and managing objects compiled by the user interface portion and compilation information in a database; 상기 사용자 인터페이스 부분을 통해 컴파일을 수행하고 해당 컴파일된 오브젝트들을 어셈블, 링킹 및 액티빙하며, 사용자 계정 및 접근 관리, 설정 정보 관리, 상기 데이터베이스 관리 부분의 관리를 수행하는 툴 셋 부분과;A tool set portion for performing compilation through the user interface portion, assembling, linking, and activating the compiled objects, and performing user account and access management, configuration information management, and management of the database management portion; 커널 개발자에 의해 커널을 수정하고 버전을 업그레이드할 경우에 상기 데이터베이스 관리 부분에 직접 반영해 주는 버전 관리 부분을 포함하여 이루어진 것을 특징으로 하는 웹 기반 운영 체제 컴파일 시스템.A web-based operating system compilation system comprising a version control part which is directly reflected in the database management part when the kernel developer modifies the kernel and upgrades the version. 제1항에 있어서,The method of claim 1, 상기 사용자 인터페이스 부분은 사용자 승인 동작을 수행하며, 상기 데이터베이스 관리 부분 내의 컴파일된 오브젝트들을 사용자에게 다운로드해 주며, 운영 체제 버전과 하드웨어를 선택하여 커널 설정 동작을 실행시켜 주는 리스트 CGI(Common Gateway Interface)와;The user interface portion performs a user approval operation, downloads compiled objects in the database management portion to the user, and selects a common gateway interface (CGI) for selecting an operating system version and hardware to execute a kernel configuration operation. ; 상기 리스트 CGI에 의해 사용자에게 커널 설정을 제공해 주며, 각 설정에 대한 도움말을 제공하며, 커널 컴파일 동작을 실행시켜 주는 콘피큐레이션 CGI와;A configuration CGI that provides kernel configuration to the user by the list CGI, provides help for each configuration, and executes a kernel compilation operation; 상기 콘피큐레이션 CGI에 의해 상기 커널 설정에 대한 정보를 바탕으로 상기 툴 셋 부분을 이용하여 커널에 대한 컴파일을 실행시켜 주며, 해당 컴파일 수행 동작을 사용자에게 디스플레이시켜 주며, 해당 컴파일된 오브젝트들 및 컴파일 정보를 상기 데이터베이스 관리 부분에 저장시켜 주는 컴파일 CGI를 포함하여 이루어진 것을 특징으로 하는 웹 기반 운영 체제 컴파일 시스템.The configuration CGI executes a compilation of the kernel by using the tool set part based on the information on the kernel configuration, displays the operation of performing the compilation, and displays the compiled objects and the compilation. Web-based operating system compilation system comprising a compilation CGI for storing information in the database management portion. 인터넷을 통해 사용자의 로그인을 확인하여 사용자 승인 동작을 수행한 후에, 데이터베이스 내의 컴파일된 커널 정보, 컴파일할 커널의 버전 및 하드웨어의 선택 화면을 디스플레이시켜 주는 과정과;After checking a user's login through the Internet and performing a user approval operation, displaying a compiled kernel information in a database, a version of a kernel to be compiled, and a selection screen of hardware; 사용자의 커널 버전 및 하드웨어의 선택을 감지하여 상기 데이터베이스 내의 설정된 커널 설정 정보 항목들을 디스플레이시켜 주는 과정과;Detecting a user's kernel version and a hardware selection and displaying the kernel configuration information items set in the database; 사용자의 컴파일 요구에 따라 사용자 설정 정보를 바탕으로 커널에 대한 컴파일을 수행하여 해당 컴파일된 오브젝트들 및 컴파일 정보를 상기 데이터베이스에 저장하는 과정을 포함하여 이루어진 것을 특징으로 하는 웹 기반 운영 체제 컴파일 방법.Compiling a kernel based on user configuration information according to the user's compilation request, and storing the compiled objects and compilation information in the database.
KR1020020078845A 2002-12-11 2002-12-11 System and Method for Compiling a Web Based Operating System KR20040051023A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020020078845A KR20040051023A (en) 2002-12-11 2002-12-11 System and Method for Compiling a Web Based Operating System

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020020078845A KR20040051023A (en) 2002-12-11 2002-12-11 System and Method for Compiling a Web Based Operating System

Publications (1)

Publication Number Publication Date
KR20040051023A true KR20040051023A (en) 2004-06-18

Family

ID=37345029

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020020078845A KR20040051023A (en) 2002-12-11 2002-12-11 System and Method for Compiling a Web Based Operating System

Country Status (1)

Country Link
KR (1) KR20040051023A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10481926B2 (en) 2016-11-30 2019-11-19 Lsis Co., Ltd. Apparatus for compiling script

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0588907A (en) * 1991-09-26 1993-04-09 Mitsubishi Electric Corp Compiling system in distributed circumstances
JPH06282441A (en) * 1993-03-24 1994-10-07 Fuji Electric Co Ltd On-line compilation system
KR20000018458A (en) * 1998-09-02 2000-04-06 정선종 Program developing environment providing method at a system on the basis of web
JP2000235496A (en) * 1999-02-12 2000-08-29 Ntt Communicationware Corp Compile processing method and device, storage medium and client server system
US6305012B1 (en) * 1998-12-03 2001-10-16 International Business Machines Corporation Method and apparatus for dynamic selection of instructions for compiling using tags
KR20010112690A (en) * 2000-06-12 2001-12-21 이형원 Linking and/or Including Method for Networked Computer Programming Resources
KR20030089044A (en) * 2002-05-15 2003-11-21 송경섭 Compile system for selecting source code modules and providing web environces and method thereof

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0588907A (en) * 1991-09-26 1993-04-09 Mitsubishi Electric Corp Compiling system in distributed circumstances
JPH06282441A (en) * 1993-03-24 1994-10-07 Fuji Electric Co Ltd On-line compilation system
KR20000018458A (en) * 1998-09-02 2000-04-06 정선종 Program developing environment providing method at a system on the basis of web
US6305012B1 (en) * 1998-12-03 2001-10-16 International Business Machines Corporation Method and apparatus for dynamic selection of instructions for compiling using tags
JP2000235496A (en) * 1999-02-12 2000-08-29 Ntt Communicationware Corp Compile processing method and device, storage medium and client server system
KR20010112690A (en) * 2000-06-12 2001-12-21 이형원 Linking and/or Including Method for Networked Computer Programming Resources
KR20030089044A (en) * 2002-05-15 2003-11-21 송경섭 Compile system for selecting source code modules and providing web environces and method thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10481926B2 (en) 2016-11-30 2019-11-19 Lsis Co., Ltd. Apparatus for compiling script

Similar Documents

Publication Publication Date Title
JP5362974B2 (en) How to use virtualization software for shipping software products
US8291375B2 (en) Attribute-based component programming system and methodology for object-oriented languages
US7370318B1 (en) System and methodology for asynchronous code refactoring with symbol injection
Lowy Programming. NET Components: Design and Build. NET Applications Using Component-Oriented Programming
US7694277B2 (en) Cross version customization of design environment
EP2245532B1 (en) Method and apparatus for generating virtual software platform based on component model and validating software platform architecture using the platform
US20090064196A1 (en) Model based device driver code generation
US20070169114A1 (en) Application suite installer with automatic detection of content and configurable options
US7900199B2 (en) Method and apparatus for reusing a computer software library
JP2000181725A (en) Method and system for altering executable code and giving addition function
KR20220092615A (en) Just-In-Time Containers
Roberts Enterprise continuous integration using binary dependencies
Cinar et al. Pro Android C++ with the NDK
Salvador et al. Embedded Linux Development Using Yocto Project: Leverage the power of the Yocto Project to build efficient Linux-based products
KR20040051023A (en) System and Method for Compiling a Web Based Operating System
Del Sole Visual Studio 2015 Succinctly
Linkola Design and implementation of modular frontend architecture on existing application
Cheng Flutter Recipes
RU2521265C2 (en) System and method for automatic processing of software system errors
Perä Comparison of custom embedded Linux build systems: Yocto and Buildroot
González Embedded Linux Projects Using Yocto Project Cookbook
Tricoire et al. KevoreeJS: Enabling dynamic software reconfigurations in the Browser
Allaban et al. Developing Production-Grade Applications with ROS 2
Gomes et al. UTTOS: A tool for testing UEFI code in OS environment
Cheng et al. Know the Tools

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application