KR20050051273A - Kernel module link system and method in a communication system - Google Patents

Kernel module link system and method in a communication system Download PDF

Info

Publication number
KR20050051273A
KR20050051273A KR1020030085034A KR20030085034A KR20050051273A KR 20050051273 A KR20050051273 A KR 20050051273A KR 1020030085034 A KR1020030085034 A KR 1020030085034A KR 20030085034 A KR20030085034 A KR 20030085034A KR 20050051273 A KR20050051273 A KR 20050051273A
Authority
KR
South Korea
Prior art keywords
symbol
kernel
address
module
kernel module
Prior art date
Application number
KR1020030085034A
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 KR1020030085034A priority Critical patent/KR20050051273A/en
Publication of KR20050051273A publication Critical patent/KR20050051273A/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time

Abstract

본 발명은 통신 시스템에서의 커널 모듈 링크 시스템 및 그 방법에 관한 것이다. The present invention relates to a kernel module link system and a method thereof in a communication system.

본 발명은 심볼을 심볼 인덱스로 구별하여 각 심볼의 주소를 소정의 정해진 순서에 따라 정렬한 '커널주소 테이블'를 이용하여 운영체제의 서비스를 제공하는 커널과; 상기 커널로 삽입하기 위한 컴파일을 수행할 시 '심볼주소 점프함수'와 정적으로 링크되어, 상기 '심볼주소 점프함수'를 통해 목적코드에서 제공하는 심볼에 지정된 심볼 인덱스를 매개로 상기 '커널주소 테이블'로부터 해당 심볼의 심볼주소를 로딩한 후, 그 로딩된 심볼주소로 점프하는 커널 모듈을 포함하는 시스템 및 그 방법을 구비하여 구성된다. The present invention provides a kernel for providing a service of an operating system by using a kernel address table which distinguishes a symbol by a symbol index and arranges addresses of each symbol in a predetermined order; The kernel address table is statically linked with the 'symbol address jump function' when the compilation is inserted into the kernel, and through the symbol index assigned to the symbol provided by the object code through the 'symbol address jump function'. And a kernel module which loads the symbol address of the symbol from the symbol and jumps to the loaded symbol address.

따라서, 본 발명은 내장형 운영체제(Embedded Operation System)가 적용된 통신 시스템에서 커널 모듈을 생성하여 커널에 삽입하는 경우, 커널모듈이 '심볼주소 점프함수'와 정적으로 링크가 설정되고, 그에 따라 커널의 '커널주소 테이블'과 상기 커널모듈의 '심볼주소 점프함수' 간에는 심볼 인덱스를 매개로 링크가 설정되어, '심볼주소 점프함수'가 상기 커널모듈에서 제공하는 심볼에 지정된 심볼 인덱스를 매개로 상기 '커널주소 테이블'로부터 해당 심볼의 심볼주소를 로딩한 후 그 로딩된 심볼주소로 점프함으로써, 커널 및 커널모듈에 심볼 테이블을 탑재할 필요가 없어 그 크기 및 개발자에 의한 작업의 오류 가능성을 줄일 수 있고, 커널모듈을 커널과 별도의 시스템 환경에서 개발하는 것이 가능하여, 개발 시간 및 비용의 절감은 물론, 개발자에게 더 신뢰성 있고 효율적인 개발 환경을 제공하는 효과가 있다. Therefore, in the present invention, when a kernel module is generated and inserted into a kernel in a communication system to which an embedded operating system is applied, the kernel module is statically linked with a 'symbol address jump function', and thus' A link is established between the kernel address table 'and the' symbol address jump function 'of the kernel module through a symbol index, and the' kernel address jump function 'is assigned to a symbol index assigned to a symbol provided by the kernel module. By loading the symbol address of the symbol from the 'address table' and jumping to the loaded symbol address, it is not necessary to mount the symbol table in the kernel and the kernel module, thereby reducing the size and the possibility of error by the developer. Kernel modules can be developed in a separate system environment from the kernel, reducing development time and costs, Reliable and has the effect of providing an efficient development environment.

Description

통신 시스템에서의 커널 모듈 링크 시스템 및 그 방법{KERNEL MODULE LINK SYSTEM AND METHOD IN A COMMUNICATION SYSTEM} KERNEL MODULE LINK SYSTEM AND METHOD IN A COMMUNICATION SYSTEM}

본 발명은 통신 시스템에 관한 것으로, 특히 내장형 운영체제(Embedded Operation System)가 적용된 통신 시스템에서 커널 모듈을 생성하여 커널에 삽입하는 경우, 커널의 '커널주소 테이블'과 커널모듈과 정적으로 링크가 설정된 '심볼주소 점프함수' 간에 심볼 인덱스를 매개로 링크를 설정함으로써, 커널모듈의 크기를 줄이면서 커널과 별도의 시스템 환경에서 상기 커널모듈을 개발하는 것이 가능한 통신 시스템에서의 커널 모듈 링크 시스템 및 그 방법에 관한 것이다. The present invention relates to a communication system. In particular, when a kernel module is generated and inserted into a kernel in a communication system to which an embedded operating system is applied, a 'kernel address table' of the kernel and a 'link' that is statically linked to the kernel module are provided. By establishing a link between the symbol address jump function through a symbol index, the kernel module link system and its method in a communication system capable of developing the kernel module in a system environment separate from the kernel while reducing the size of the kernel module It is about.

일반적으로, 통신 시스템 내부에는 내장형 개별 보드들을 다수 개 설치하여 다양한 응용 프로그램과 하드웨어 및 사용자 접근 패턴 상에서 운용되는데, 내장형 개별 보드들은 보드마다 그 성능이나 환경이 다르기 때문에 설치 후 이들 개별 보드들의 환경변수를 운영체제 개발자가 수동 혹은 자동으로 입력하여 조정해주게 된다. In general, a number of internal boards are installed inside a communication system to operate on various applications, hardware, and user access patterns. Since the individual boards vary in performance or environment, the environment variables of these individual boards are changed after installation. The operating system developer can make adjustments either manually or automatically.

그리고, 해당 통신 시스템을 작동시키고 운영 및 관리하기 위한 내장형 운영체제(Embedded Operation System)에 있어 추가적으로 입력되는 환경변수들은 적용하기 위해서는, 해당 시스템과 동일한 환경 혹은 별도의 시스템 환경에서 상기 환경변수들을 포함하는 커널 모듈(Kernel Module)을 생성한 후 커널(Kernel)에 삽입하는데, 이를 위한 방법으로 심볼 링크(Symbolic Linking) 방식과 하드 링크(Hard Linking) 방식이 주로 사용되고 있다. In addition, in order to apply additional environment variables to an embedded operating system for operating, operating, and managing a corresponding communication system, a kernel including the environment variables in the same environment or a separate system environment as the corresponding system is applied. After generating the Kernel Module and inserting it into the Kernel, symbol linking and hard linking are mainly used.

즉, 통신 시스템의 작동 중 주기억 영역에 상주하면서 운영제체의 핵심부 역할을 하는 커널(10)은, 개발자에 의해 별도로 생성된 커널 모듈(11)과의 연동을 통해 심볼(Symbol)의 추가/변경/삭제 등을 하여 별도의 추가적인 기능을 수행하게 된다. That is, the kernel 10, which resides in the main memory area during the operation of the communication system and serves as a core part of the operating system, adds / modifies / adds a symbol through interworking with the kernel module 11 separately generated by the developer. Additional functions will be performed by deleting them.

심볼 링크 방식의 경우를 살펴보면, 도1의 a에 도시한 바와 같이, 커널(10)은 커널 모듈(11)에 제공할 심볼들에 대한 문자열로 된 '심볼명'과 그 심볼들에 대한 '심볼주소'를 포함하는 '커널 심볼 테이블'을, 커널 모듈(11)은 자신이 가지고 있는 심볼들에 대한 문자열로 된 '모듈 심볼명'과 해당 심볼들이 모듈(11) 내에서 갖는 주소인 '모듈 심볼주소'를 포함하는 '심볼 테이블'을 각각 갖고 상호 간에 연동하게 된다. Referring to the case of the symbol link method, as shown in Figure 1a, the kernel 10 is a 'symbol name' as a string for the symbols to be provided to the kernel module 11 and 'symbols for the symbols The kernel symbol table includes a 'kernel symbol table' including an address', and a 'module symbol name', which is a string for the symbols it owns, and a 'module symbol' which is an address of the symbols in the module 11. Each of them has a 'symbol table' that contains addresses.

여기서, 시스템의 동작 중 커널 모듈(11)이 커널(10)의 함수 혹은 변수를 참조하는 경우, 상기 커널 모듈(11)은 자신이 가지고 있는 심볼들에 대한 주소만을 관리하고 있으므로, 상기 참조하는 함수 혹은 변수에 대한 '커널 심볼 테이블' 상의 '심볼주소'를 알지 못하는 상태에 있게 된다. In this case, when the kernel module 11 refers to a function or a variable of the kernel 10 during the operation of the system, the kernel module 11 manages only addresses of symbols that the kernel module 11 has. Or the symbol's address in the kernel symbol table for the variable is unknown.

따라서, 시스템 개발자에 의해 생성된 커널 모듈(11)이 커널(10) 내부에 삽입되는 경우, 커널(10)과 커널 모듈(11)는 각기 '커널 심볼 테이블'과 '심볼 테이블'을 참조하여, 상기 커널 모듈(11)에 있는 '심볼 테이블'의 '모듈 심볼명' 중에서 커널(10)에 있기 때문에 그 주소를 알 수 없는 심볼을 찾아서 상기 '심볼 테이블'의 '모듈 심볼주소'로 링크(Link)시키게 된다. Therefore, when the kernel module 11 generated by the system developer is inserted into the kernel 10, the kernel 10 and the kernel module 11 refer to the 'kernel symbol table' and the 'symbol table', respectively. From the 'module symbol name' of the 'symbol table' of the kernel module 11, find a symbol whose address is unknown because it is in the kernel 10 and link to the 'module symbol address' of the 'symbol table' Done.

동시에, 커널 모듈(11)의 코드 중에서 상기 링크된 '모듈 심볼명'을 참조하는 코드를 찾아서 적당한 주소로 변경함으로써, 도1의 b와 같이 상기 커널 모듈(11)이 가지고 있는 '심볼 테이블'의 내용을 커널(10)이 가지게 된다. At the same time, the code referring to the linked 'module symbol name' among the codes of the kernel module 11 is found and changed to an appropriate address, so that the 'symbol table' of the kernel module 11 as shown in FIG. The kernel 10 has its contents.

한편, 하드 링크 방식을 살펴보면, 도2와 같이, 커널 모듈(11)에 별도의 '심볼 테이블'을 포함시키지 않고, 커널(11)과 커널 모듈(11)이 동시에 컴파일(Compile)되어 정적(Static)으로 링크된다. Meanwhile, referring to the hard link method, as shown in FIG. 2, the kernel 11 and the kernel module 11 are compiled at the same time as the kernel module 11 does not include a separate 'symbol table', and is static. ).

여기서, 커널 모듈(11)은 단순히 커널(10)의 일부를 떼어낸 것에 불과하기 때문에, 시스템 개발자에 의해 생성된 커널 모듈(11)을 커널(10) 내부에 삽입하는 방법이 단순하게 되고, 상기 커널 모듈(11)에 별도의 '심볼 테이블'을 가지고 있지 않게 되어 커널 모듈(11)의 크기가 작아지게 된다. Here, since the kernel module 11 merely removes a part of the kernel 10, the method of inserting the kernel module 11 generated by the system developer into the kernel 10 becomes simple. Since the kernel module 11 does not have a separate 'symbol table', the size of the kernel module 11 is reduced.

따라서, 상기에서와 같이 종래의 기술에 있어서, 내장형 운영체제(Embedded Operation System)가 적용된 통신 시스템에서 커널 모듈(Kernel Module)을 생성하여 커널(Kernel)에 삽입할 시, 심볼 링크(Symbolic Linking) 방식을 사용하는 경우 커널과 커널 모듈이 각기 심볼 테이블을 가지고 있어 그 크기가 커지게 되고, 커널 모듈을 커널에 삽입할 때 링크가 이루어져 컴파일러의 링커(Linker)에 해당하는 복잡한 기능이 요구되어 개발자에 의한 작업의 오류 가능성이 상존하는 문제점이 있었다. Accordingly, in the conventional technology as described above, when a kernel module is generated and inserted into the kernel in a communication system to which an embedded operating system is applied, a symbol linking method is used. In this case, the kernel and kernel module each have a symbol table, which increases in size, and when the kernel module is inserted into the kernel, the link is made and complicated functions corresponding to the linker of the compiler are required. There was a problem that the possibility of error persists.

또한, 하드 링크(Hard Linking) 방식을 사용하는 경우, 커널과 커널 모듈이 하드 링크되어 항상 동시에 컴파일을 수행하여야 하므로, 커널 모듈을 커널과 별도의 시스템 환경에서 개발하지 못하게 되어, 그 개발에 있어 불편하고 개발 시간 및 비용이 증가하게 되는 문제점이 있었다. In addition, in the case of using the hard linking method, since the kernel and the kernel module are hard-linked and always have to be compiled at the same time, the kernel module cannot be developed in a separate system environment from the kernel, which is inconvenient for its development. There was a problem that the development time and costs are increased.

따라서, 본 발명은 상기와 같은 종래의 문제점을 해결하기 위하여 제안한 것으로, 내장형 운영체제(Embedded Operation System)가 적용된 통신 시스템에서 커널 모듈을 생성하여 커널에 삽입하는 경우, 커널의 '커널주소 테이블'과 커널모듈과 정적으로 링크가 설정된 '심볼주소 점프함수' 간에 심볼 인덱스를 매개로 링크를 설정함으로써, 커널모듈의 크기를 줄이면서 커널과 별도의 시스템 환경에서 상기 커널모듈을 개발하는 것이 가능하도록 하는 시스템 및 그 방법을 제공함에 그 목적이 있다. Accordingly, the present invention has been proposed to solve the above-described problems, and when a kernel module is generated and inserted into the kernel in a communication system to which an embedded operating system is applied, the kernel 'kernel address table' and the kernel are inserted. By setting the link through the symbol index between the module and the 'symbolic address jump function' which is statically linked, the system enables the kernel module to be developed in a system environment separate from the kernel while reducing the size of the kernel module; The purpose is to provide a method.

이와 같은 목적을 달성하기 위한 본 발명은, 심볼을 심볼 인덱스로 구별하여 각 심볼의 주소를 소정의 정해진 순서에 따라 정렬한 '커널주소 테이블'를 이용하여 운영체제의 서비스를 제공하는 커널과; 상기 커널로 삽입하기 위한 컴파일을 수행할 시 '심볼주소 점프함수'와 정적으로 링크되어, 상기 '심볼주소 점프함수'를 통해 목적코드에서 제공하는 심볼에 지정된 심볼 인덱스를 매개로 상기 '커널주소 테이블'로부터 해당 심볼의 심볼주소를 로딩한 후, 그 로딩된 심볼주소로 점프하는 커널 모듈을 포함하는 것을 특징으로 한다. The present invention for achieving the above object, Kernel for providing a service of the operating system using a "kernel address table" that distinguishes the symbols by the symbol index and the address of each symbol in a predetermined order; The kernel address table is statically linked with the 'symbol address jump function' when the compilation is inserted into the kernel, and through the symbol index assigned to the symbol provided by the object code through the 'symbol address jump function'. After loading the symbol address of the symbol from ', characterized in that it comprises a kernel module that jumps to the loaded symbol address.

또한, 본 발명은 심볼 인덱스로 구별된 심볼주소를 커널 내 커널주소 테이블에 정렬하는 단계와; 커널모듈을 커널로 삽입하기 위하여 컴파일을 수행하는 경우, 해당 커널모듈의 목적코드에서 제공하는 심볼에 지정된 심볼 인덱스를 확인하는 단계와; 상기 확인된 심볼 인덱스에 따라, 상기 커널주소 테이블로부터 해당 심볼의 심볼주소를 로딩하여 그 로딩된 심볼주소로 점프하는 단계를 포함하는 것을 특징으로 한다. In addition, the present invention includes the steps of aligning the symbol address identified by the symbol index to the kernel address table in the kernel; When compiling to insert the kernel module into the kernel, checking a symbol index assigned to a symbol provided by an object code of the corresponding kernel module; And loading a symbol address of a corresponding symbol from the kernel address table and jumping to the loaded symbol address according to the identified symbol index.

이하, 본 발명에 따른 일실시예를 첨부한 도면을 참조하여 상세히 설명하면 다음과 같다. Hereinafter, an embodiment according to the present invention will be described in detail with reference to the accompanying drawings.

도3은 본 발명 통신 시스템에서의 커널 모듈 링크 시스템의 구성을 보인 블록도로서, 이에 도시한 바와 같이, 심볼을 심볼 인덱스로 구별하여 각각의 심볼주소를 소정의 정해진 순서에 따라 정렬한 '커널주소 테이블'를 이용하여 운영체제의 서비스를 제공하는 커널(Kernel)(100)과; 상기 커널(100)로 삽입하기 위한 컴파일을 수행할 시 '심볼주소 점프함수'와 정적(Static)으로 링크되어, 상기 '심볼주소 점프함수'를 통해 목적코드(Object Code)에서 제공하는 심볼에 지정된 심볼 인덱스를 매개로 상기 '커널주소 테이블'로부터 해당 심볼의 심볼주소를 로딩한 후, 그 로딩된 심볼주소로 점프(Jump)하는 커널 모듈(Kernel Module)(200)로 구성한다. 3 is a block diagram showing the configuration of a kernel module link system in a communication system according to the present invention. As shown in FIG. 3, the kernel address is classified by a symbol index and each symbol address is arranged in a predetermined order. A kernel 100 that provides a service of an operating system using a table '; When compiling to insert into the kernel 100, the symbol symbol jump function is linked to the static symbol and assigned to a symbol provided by an object code through the symbol symbol jump function. After loading the symbol address of the symbol from the 'kernel address table' through the symbol index, it is configured by a kernel module (Kernel Module) 200 to jump to the loaded symbol address.

그리고, 상기와 같이 구성된 시스템의 동작과정은, 도4에 도시한 바와 같이, 심볼 인덱스로 구별된 심볼주소를 커널(100) 내 '커널주소 테이블'에 정렬하는 단계(S40)와; 커널모듈(200)을 커널(100)로 삽입하기 위하여 컴파일을 수행하는 경우, 해당 커널모듈(200)의 목적코드에서 제공하는 심볼에 지정된 심볼 인덱스를 확인하는 단계(S41,S42)와; 상기 확인된 심볼 인덱스에 따라, 상기 '커널주소 테이블'로부터 해당 심볼의 심볼주소를 로딩하여 그 로딩된 심볼주소로 점프하는 단계(S43,S44)로 구성한다. And, the operation process of the system configured as described above, as shown in Figure 4, the step of aligning the symbol address identified by the symbol index to the 'kernel address table' in the kernel (100) (S40); When compiling to insert the kernel module 200 into the kernel 100, checking the symbol indices assigned to the symbols provided by the object codes of the kernel module 200 (S41 and S42); In step S43 and S44, the symbol address of the corresponding symbol is loaded from the 'kernel address table' according to the identified symbol index and jumps to the loaded symbol address.

본 발명은 내장형 운영체제(Embedded Operation System)가 적용된 통신 시스템에 적용 가능하며, 개발자가 해당 통신 시스템에 심볼(Symbol)의 추가/변경/삭제 등을 하기 위하여 커널모듈(200)을 생성하여 커널(100)에 삽입할 시 상기 커널(100)과 커널모듈(200) 간의 링크 방법을 제안한다.The present invention is applicable to a communication system to which an embedded operating system is applied, and a developer generates a kernel module 200 to add / change / delete a symbol to a corresponding communication system. Proposes a link method between the kernel 100 and the kernel module 200 when inserted into the.

즉, 본 발명에서는 심볼 링크(Symbolic Linking) 방식 및 하드 링크(Hard Linking) 방식의 단점을 보완하기 위하여, 심볼 링크 방식에서 사용되던 '커널 심볼 테이블' 대신에, 커널(100)에서 제공하는 심볼들의 주소를 소정의 정해진 순서에 따라 정렬한 '커널주소 테이블'이 상기 커널(100)에 탑재된다.That is, in the present invention, in order to compensate for the disadvantages of the symbol linking method and the hard linking method, instead of the 'kernel symbol table' used in the symbol linking method, the symbols provided by the kernel 100 are used. The kernel address table, in which addresses are arranged in a predetermined order, is mounted in the kernel 100.

그리고, 하드 링크 방식에서 사용되던 '심볼 테이블' 대신에, 커널모듈(200)을 커널(100)로 삽입하기 위한 컴파일을 수행할 시 상기 커널모듈(200)의 목적코드에서 제공하는 심볼에 대해 지정된 심볼 인덱스를 매개로 상기 커널(100)의 '커널주소 테이블'로부터 해당 심볼의 심볼주소를 로딩한 후, 그 로딩된 심볼주소로 점프하기 위한 '심볼주소 점프함수'가 상기 커널모듈(200)에 탑재된다.And, instead of the 'symbol table' used in the hard link method, when the compilation to insert the kernel module 200 into the kernel 100 is specified for the symbols provided by the object code of the kernel module 200 After loading the symbol address of the symbol from the 'kernel address table' of the kernel 100 via a symbol index, a 'symbol address jump function' for jumping to the loaded symbol address is provided to the kernel module 200. Mounted.

따라서, 본 발명에서 커널모듈(200)이 '심볼주소 점프함수'와 정적(Static)으로 링크가 설정되고, 그에 따라 커널(100)의 '커널주소 테이블'과 상기 커널모듈(200)의 '심볼주소 점프함수' 간에는 심볼 인덱스를 매개로 링크가 설정되므로, 상기 커널모듈(200)을 커널(100)로 삽입하여 컴파일을 수행할 시 '심볼주소 점프함수'가 상기 커널모듈(200)에서 제공하는 심볼에 지정된 심볼 인덱스를 매개로 상기 '커널주소 테이블'로부터 해당 심볼의 심볼주소를 로딩한 후 그 로딩된 심볼주소로 점프(Jump)함으로써, 상기 커널(100)이 상주하는 시스템과 다른 환경의 시스템에서 상기 커널모듈(200)을 개발하는 것이 가능하게 된다. Therefore, in the present invention, the kernel module 200 has a link set to a 'symbol address jump function' and a static, and thus, a 'kernel address table' of the kernel 100 and a 'symbol of the kernel module 200. Since the link between the address jump function is set through the symbol index, when the kernel module 200 is inserted into the kernel 100 to perform a compilation, a 'symbol address jump function' is provided by the kernel module 200. By loading the symbol address of the symbol from the 'kernel address table' through the symbol index assigned to the symbol and jumping to the loaded symbol address, the system of the environment different from the system where the kernel 100 resides In the kernel module 200 it is possible to develop.

이하, 본 발명의 구체적인 동작을 살펴보면, 먼저 커널(100)에 심볼 인덱스로 구별된 심볼주소를 소정의 정해진 순서에 따라 정렬하여 '커널주소 테이블'을 구성한다(S40).Hereinafter, referring to a specific operation of the present invention, first, a 'kernel address table' is configured by arranging symbol addresses identified by a symbol index in the kernel 100 in a predetermined order (S40).

여기서, 상기 '커널주소 테이블'은 도3에 도시한 바와 같이, 커널(100)에서 제공하는 심볼들에 대하여 해당 심볼에 심볼 인덱스를 지정하고, 그 지정된 심볼 인덱스에 심볼주소를 설정한 후 해당 심볼 인덱스를 소정의 정해진 순서에 따라 정렬하여 구성한다. Here, as shown in FIG. 3, the 'kernel address table' designates a symbol index for a corresponding symbol for symbols provided by the kernel 100, sets a symbol address at the designated symbol index, and then applies the corresponding symbol. The indexes are arranged in a predetermined order.

그리고, 상기 심볼 인덱스는 기저주소(Base Address)와 각 심볼주소를 구별하기 위한 인덱스(예를 들어, 0x0, 0xd 등)로 이루어져 특정의 심볼을 나타내는데, 각 심볼 인덱스는 상기 인덱스가 달라짐에 따라 소정의 정해진 순서를 가지면서 '커널주소 테이블'에 정렬된다. In addition, the symbol index is composed of a base address (index) for distinguishing each symbol address (for example, 0x0, 0xd, etc.) represents a specific symbol, each symbol index is predetermined as the index is different They are sorted in the 'kernel address table' with the specified order of.

그리고, 상기 심볼 인덱스의 정렬 순서는 각 심볼 인덱스가 나타내는 심볼의 정렬 순서를 의미하므로, 개발자가 시스템의 환경 또는 성능에 따라 해당 심볼의 심볼주소의 변경에 상관없이 심볼 인덱스를 매개로 '커널주소 테이블'과 커널모듈(200)의 '커널주소 점프함수' 간에 정적인 링크를 설정되도록 그 정렬 순서를 지정하여 둠으로써, 이후 해당 심볼의 심볼주소가 변하더라도 심볼 인덱스를 매개로 커널모듈(200)이 심볼 인덱스의 정렬 순서에 따라 해당 심볼의 심볼주소를 로딩할 수 있어, 커널(100)이 상주하는 시스템과 다른 환경의 시스템에서 커널모듈(200)을 개발하는 것이 가능하게 된다. In addition, since the sort order of the symbol index means the sort order of the symbols represented by each symbol index, the developer may change the 'kernel address table' through the symbol index regardless of the change of the symbol address of the corresponding symbol according to the environment or performance of the system. By specifying the sorting order so as to establish a static link between the 'kernel address jump function' of the kernel module 200 and then the kernel module 200 via the symbol index even if the symbol address of the corresponding symbol is changed. It is possible to load the symbol address of the symbol in accordance with the sort order of the symbol index, it is possible to develop the kernel module 200 in a system of a different environment than the system in which the kernel 100 resides.

그 다음, 통신 시스템에서 개발자에 의해 심볼의 추가/변경/삭제 등을 하기 위하여 커널(100) 및 커널모듈(200)을 컴파일하여 링크를 수행하는 경우(S41), 상기 커널모듈(200)은 자신의 목적코드에서 제공하는 심볼에 대하여 지정된 심볼 인덱스를 확인한다(S42). Next, in the case of compiling and linking the kernel 100 and the kernel module 200 in order to add / change / delete symbols by a developer in a communication system (S41), the kernel module 200 itself The symbol index specified for the symbol provided by the object code of S is checked (S42).

그러면, 상기 커널모듈(200)은 자신과 정적으로 링크된 '심볼주소 점프함수'를 실행하여, 상기 확인된 심볼 인덱스에 따라 커널(100)의 '커널주소 테이블'을 검색한 후 검색된 해당 심볼의 심볼주소를 '커널주소 테이블'로부터 로딩하여(S43), 해당 목적코드를 상기 로딩된 심볼주소로 점프하게 된다(S44). Then, the kernel module 200 executes a 'symbol address jump function' that is statically linked with itself, searches for a 'kernel address table' of the kernel 100 according to the identified symbol index, and then searches for a corresponding symbol. The symbol address is loaded from the 'kernel address table' (S43), and the corresponding object code is jumped to the loaded symbol address (S44).

이상에서 설명한 바와 같이, 본 발명은 내장형 운영체제(Embedded Operation System)가 적용된 통신 시스템에서 커널 모듈(Kernel Module)을 생성하여 커널(Kernel)에 삽입하는 경우, 커널모듈이 '심볼주소 점프함수'와 정적(Static)으로 링크가 설정되고, 그에 따라 커널의 '커널주소 테이블'과 상기 커널모듈의 '심볼주소 점프함수' 간에는 심볼 인덱스를 매개로 링크가 설정되어, '심볼주소 점프함수'가 상기 커널모듈에서 제공하는 심볼에 지정된 심볼 인덱스를 매개로 상기 '커널주소 테이블'로부터 해당 심볼의 심볼주소를 로딩한 후 그 로딩된 심볼주소로 점프(Jump)함으로써, 커널 및 커널모듈에 심볼 테이블을 탑재할 필요가 없어 그 크기 및 개발자에 의한 작업의 오류 가능성을 줄일 수 있고, 커널모듈을 커널과 별도의 시스템 환경에서 개발하는 것이 가능하여, 개발 시간 및 비용의 절감은 물론, 개발자에게 더 신뢰성 있고 효율적인 개발 환경을 제공하는 효과가 있다. As described above, in the present invention, when a kernel module is generated and inserted into a kernel in a communication system to which an embedded operating system is applied, the kernel module is static with a 'symbol address jump function'. The link is set to (Static), and thus a link is established between the kernel 'kernel address table' of the kernel and the 'symbol address jump function' of the kernel module through a symbol index, so that the 'symbol address jump function' is the kernel module. It is necessary to mount a symbol table in the kernel and kernel module by loading the symbol address of the symbol from the 'kernel address table' through the symbol index assigned to the symbol provided by the jumper and then jumping to the loaded symbol address. It can reduce the size and the possibility of error by the developer, and it is possible to develop the kernel module in a system environment separate from the kernel. Saving time and money, of course, more reliable, and the developer has the effect of providing an efficient development environment.

도1은 종래 통신 시스템에서 커널 모듈을 생성한 후 커널에 삽입하는 방법에 있어서, 심볼 링크 방식을 구성하는 예를 보인 예시도.1 is a diagram illustrating an example of configuring a symbol link method in a method of inserting a kernel module after generating a kernel module in a conventional communication system.

도2는 종래 통신 시스템에서 커널 모듈을 생성한 후 커널에 삽입하는 방법에 있어서, 하드 링크 방식을 구성하는 예를 보인 예시도..2 is a diagram illustrating an example of configuring a hard link method in a method of generating a kernel module and inserting the kernel module in a conventional communication system.

도3은 본 발명 통신 시스템에서의 커널 모듈 링크 시스템의 구성을 보인 블록도.Figure 3 is a block diagram showing the configuration of a kernel module link system in the communication system of the present invention.

도4는 본 발명 통신 시스템에서의 커널 모듈 링크 방법의 동작과정을 보인 순서도.Figure 4 is a flow chart showing the operation of the kernel module link method in the communication system of the present invention.

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

100 : 커널 200 : 커널모듈100: kernel 200: kernel module

Claims (4)

심볼을 심볼 인덱스로 구별하여 각 심볼의 주소를 소정의 정해진 순서에 따라 정렬한 '커널주소 테이블'를 이용하여 운영체제의 서비스를 제공하는 커널과; 상기 커널로 삽입하기 위한 컴파일을 수행할 시 '심볼주소 점프함수'와 정적으로 링크되어, 상기 '심볼주소 점프함수'를 통해 목적코드에서 제공하는 심볼에 지정된 심볼 인덱스를 매개로 상기 '커널주소 테이블'로부터 해당 심볼의 심볼주소를 로딩한 후, 그 로딩된 심볼주소로 점프하는 커널 모듈을 포함하는 것을 특징으로 하는 통신 시스템에서의 커널 모듈 링크 시스템. A kernel that provides a service of an operating system by using a kernel address table that distinguishes a symbol by a symbol index and arranges addresses of each symbol in a predetermined order; The kernel address table is statically linked with the 'symbol address jump function' when the compilation is inserted into the kernel, and through the symbol index assigned to the symbol provided by the object code through the 'symbol address jump function'. A kernel module link system in a communication system, comprising: a kernel module for loading a symbol address of a corresponding symbol from ', and jumping to the loaded symbol address. 제1항에 있어서, 상기 소정의 정해진 순서는, 해당 심볼의 심볼주소의 변경에 상관없이, 심볼 인덱스를 매개로 커널주소 테이블과 커널모듈의 커널주소 점프함수 간에 정적인 링크를 설정하도록 지정되는 것을 특징으로 하는 통신 시스템에서의 커널 모듈 링크 시스템. The method of claim 1, wherein the predetermined order is specified to establish a static link between the kernel address table and the kernel address jump function of the kernel module via a symbol index regardless of a change in the symbol address of the symbol. Kernel module link system in a communication system characterized in that. 제1항 또는 제2항에 있어서, 상기 커널주소 테이블은, 심볼 인덱스 및 해당 심볼 인덱스에 대응하는 심볼주소를 포함하여 구성되는 것을 특징으로 하는 통신 시스템에서의 커널 모듈 링크 시스템. The kernel module link system of claim 1, wherein the kernel address table includes a symbol index and a symbol address corresponding to the symbol index. 심볼 인덱스로 구별된 심볼주소를 커널 내 커널주소 테이블에 정렬하는 단계와; 커널모듈을 커널로 삽입하기 위하여 컴파일을 수행하는 경우, 해당 커널모듈의 목적코드에서 제공하는 심볼에 지정된 심볼 인덱스를 확인하는 단계와; 상기 확인된 심볼 인덱스에 따라, 상기 커널주소 테이블로부터 해당 심볼의 심볼주소를 로딩하여 그 로딩된 심볼주소로 점프하는 단계를 포함하는 것을 특징으로 하는 통신 시스템에서의 커널 모듈 링크 방법.Sorting the symbol address identified by the symbol index into a kernel address table in the kernel; When compiling to insert the kernel module into the kernel, checking a symbol index assigned to a symbol provided by an object code of the corresponding kernel module; Loading a symbol address of a corresponding symbol from the kernel address table and jumping to the loaded symbol address according to the identified symbol index.
KR1020030085034A 2003-11-27 2003-11-27 Kernel module link system and method in a communication system KR20050051273A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030085034A KR20050051273A (en) 2003-11-27 2003-11-27 Kernel module link system and method in a communication system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030085034A KR20050051273A (en) 2003-11-27 2003-11-27 Kernel module link system and method in a communication system

Publications (1)

Publication Number Publication Date
KR20050051273A true KR20050051273A (en) 2005-06-01

Family

ID=38666520

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030085034A KR20050051273A (en) 2003-11-27 2003-11-27 Kernel module link system and method in a communication system

Country Status (1)

Country Link
KR (1) KR20050051273A (en)

Similar Documents

Publication Publication Date Title
JP3689368B2 (en) Method of loading an application into a multi-application embedded system with data processing resources, corresponding system and execution method
US8136092B2 (en) Multi-attribute dynamic link library packaging
CN1160626C (en) Token-based linking
US7757212B2 (en) System and method for managing cross project dependencies at development time
CN113872948A (en) Method for executing intelligent contract, block chain node and node equipment
US5367683A (en) Smart recompilation of performing matchup/difference after code generation
US6961931B2 (en) Dependency specification using target patterns
US7299462B2 (en) Relocation format for linking
US20050262471A1 (en) System and method for managing cross project dependencies at development time
CN108845839A (en) Application page loading method, device and computer readable storage medium
US5625822A (en) Using sorting to do matchup in smart recompilation
CN115617687B (en) Program instrumentation method, device, equipment and storage medium
US20030070159A1 (en) Object decription language
US6877156B2 (en) Recognition of command related items in object code
CN114153463B (en) Management system service function creating method and system based on script compiler
Aaby Compiler construction using flex and bison
US5446899A (en) Hint generation in smart recompilation
CN111435312A (en) Application program management method and device and electronic equipment
US5535392A (en) Using hint generation to cause portions of object files to remain the same
KR100834676B1 (en) Method for building software project
EP1966691A2 (en) Method and system for compiling a source code
KR20050051273A (en) Kernel module link system and method in a communication system
CN113050948A (en) Dynamic library optimization method, device, equipment and storage medium
CN111767033A (en) Programming system for mechanical arm program development and function extension method
JP3682050B2 (en) Embedded software development equipment

Legal Events

Date Code Title Description
N231 Notification of change of applicant
WITN Withdrawal due to no request for examination