KR100727627B1 - 동적링킹 라이브러리를 사용하는 어플리케이션을 지원하는방법 및 이를 이용한 시스템 - Google Patents
동적링킹 라이브러리를 사용하는 어플리케이션을 지원하는방법 및 이를 이용한 시스템 Download PDFInfo
- Publication number
- KR100727627B1 KR100727627B1 KR1020050108051A KR20050108051A KR100727627B1 KR 100727627 B1 KR100727627 B1 KR 100727627B1 KR 1020050108051 A KR1020050108051 A KR 1020050108051A KR 20050108051 A KR20050108051 A KR 20050108051A KR 100727627 B1 KR100727627 B1 KR 100727627B1
- Authority
- KR
- South Korea
- Prior art keywords
- library
- function
- address value
- dynamic
- module
- Prior art date
Links
Images
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
Description
Claims (7)
- 동적링크를 지원하지 않는 시스템 운영환경에서 동적링킹 라이브러리를 사용하는 어플리케이션의 실행을 지원하는 방법에 있어서,(1)복수의 어플리케이션 실행코드, 상기 어플리케이션 실행에 필요한 라이브러리 및 상기 라이브러리 내에 저장된 함수의 목록을 나열한 라이브러리 함수 테이블을 생성하는 단계;(2)스텁생성기가 상기 라이브러리 함수 테이블을 입력받아 라이브러리 스텁모듈 및 라이브러리 초기화모듈을 생성하는 단계;(3)컴파일러가 상기 어플리케이션 실행코드와 상기 라이브러리 스텁모듈을 입력받아 어플리케이션 바이너리를 생성하고, 상기 동적링킹 라이브러리와 라이브러리 초기화모듈을 입력받아 라이브러리 바이너리를 생성하는 단계;(4)어플리케이션 실행요청에 따라 상기 어플리케이션 바이너리를 읽어들여 실행하는 단계;(5)상기 어플리케이션을 실행하는 명령이 동적링킹 라이브러리를 필요로 하는 함수의 호출이면, 상기 라이브러리 스텁모듈을 실행하는 단계;(6)상기 라이브러리 스텁모듈이 동적링커를 호출하여 함수의 메모리 상 주소값을 요청하는 단계;(7)상기 동적링커가 호출된 함수를 포함하는 라이브러리 바이너리를 실행하는 단계;(8)상기 라이브러리 바이너리가 실행됨에 따라 라이브러리 초기화모듈이 실행되는 단계;(9)상기 라이브러리 초기화모듈이 라이브러리에 포함된 함수의 목록과 주소값을 상기 동적링커가 참조하는 메모리 영역에 저장하는 단계;(10)상기 동적링커가 상기 메모리 영역을 참조하여 호출된 함수의 주소값을 독출한 후 라이브러리 스텁모듈로 반환하는 단계; 및(11)반환된 함수의 주소값에 기해 해당하는 함수가 실행되는 단계;를 포함하는 것을 특징으로 하는 동적링킹 지원방법.
- 제 1항에 있어서,상기 (7)단계에 앞서,상기 동적 링커가 메모리 영역에 호출된 함수의 주소값이 수록되어 있는지 확인하고,함수의 주소값이 있으면, 상기 (7) 내지 (10)단계를 생략하고, 상기 동적링커가 확인된 함수의 주소값을 독출하여 라이브러리 스텁모듈로 반환하는 단계를 진행하는 것을 특징으로 하는 동적링킹 지원방법.
- 제 1항 또는 제 2항에 있어서,상기 라이브러리 바이너리는 상기 (10)단계에서 반환된 함수의 주소값을 상기 라이브러리 스텁모듈로부터 전달받아 상기 함수의 주소값을 참조하여 해당 함수를 실행하는 스텁호출함수를 포함하는 것을 특징으로하는 동적링킹 지원방법.
- 제 1항에 있어서,상기 라이브러리 스텁모듈이 동적링커로부터 반환받은 함수의 주소값을 미리 정해진 메모리 영역에 수록하는 단계;를 더 포함하여 진행하고,상기 (6) 단계를 진행하기에 앞서,라이브러리 스텁모듈이 호출된 함수의 주소값이 상기 미리 정해진 메모리 영역에 수록되어 있는지를 판단하고, 판단결과 함수의 주소값이 수록되어 있으면, 상기 (6) 내지 (10)단계를 수행하지 않고, 라이브러리 스텁모듈이 동적링커의 호출없이 수록된 함수의 주소값을 직접적으로 참조하는 단계;를 수행하는 것을 특징으로 하는 동적링킹 지원방법.
- 라이브러리 코드와 스텁생성기에 의해 생성된 라이브러리 초기화모듈이 통합되어 컴파일된 라이브러리 바이너리 및 어플리케이션 코드와 스텁생성기에 의해 생성된 라이브러리 스텁모듈이 통합되어 컴파일된 어플리케이션 바이너리를 저장하는 저장매체;상기 저장매체로부터 상기 어플리케이션 바이너리와 상기 라이브러리 바이너리를 메모리에 로드하는 운영체제; 및상기 어플리케이션 바이너리에 포함된 라이브러리 스텁모듈로부터 동적링킹의 대상이 되는 라이브러리의 함수를 호출받아 상기 함수의 주소값이 메모리에 존재하는 지를 확인하고,메모리에 함수의 주소값이 존재하지 않을 경우, 해당 라이브러리를 메모리로 로드하여 라이브러리 바이너리에 포함된 라이브러리 초기화모듈로부터 함수의 목록 및 각 함수의 메모리 상 주소값을 획득한 후 호출된 함수의 주소값을 상기 라이브러리 스텁모듈로 반환하고,메모리에 함수의 주소값이 존재하면 해당함수의 주소값을 상기 라이브러리 스텁모듈로 반환하는 동적링커;를 포함하는 것을 특징으로 하는 동적링킹 지원 시스템.
- 제 5항에 있어서,상기 라이브러리 스텁모듈은 상기 동적링커로부터 함수의 주소값을 반환받으면 자신이 별도로 참조하는 메모리 영역에 반환받은 함수의 주소값을 저장하는 것을 특징으로 하는 것을 특징으로 하는 동적링킹 지원 시스템.
- 제 5항에 있어서, 상기 동적링커는라이브러리에 저장된 함수의 함수명 및 함수저장영역의 주소값이 적재된 링크리스트DB;상기 링크리스트DB에 저장된 함수를 검색하는 링크리스트 검색부;상기 링크리스트 검색부에 의해 검색된 함수의 주소값을 라이브러리 스텁모듈로 반환하는 함수 주소값 반환 처리부; 및상기 링크리스트DB, 링크리스트 검색부, 및 함수 주소값 반환 처리부를 관리 하는 라이브러리 관리부;를 포함하는 것을 특징으로 하는 동적링킹 지원 시스템.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050108051A KR100727627B1 (ko) | 2005-11-11 | 2005-11-11 | 동적링킹 라이브러리를 사용하는 어플리케이션을 지원하는방법 및 이를 이용한 시스템 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050108051A KR100727627B1 (ko) | 2005-11-11 | 2005-11-11 | 동적링킹 라이브러리를 사용하는 어플리케이션을 지원하는방법 및 이를 이용한 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20070050625A KR20070050625A (ko) | 2007-05-16 |
KR100727627B1 true KR100727627B1 (ko) | 2007-06-13 |
Family
ID=38274099
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020050108051A KR100727627B1 (ko) | 2005-11-11 | 2005-11-11 | 동적링킹 라이브러리를 사용하는 어플리케이션을 지원하는방법 및 이를 이용한 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100727627B1 (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101273914B1 (ko) * | 2006-10-31 | 2013-06-12 | 에스케이플래닛 주식회사 | 플랫폼 라이브러리 다이나믹 링킹기능이구비된 단말장비 및 그 제어방법 |
KR101991687B1 (ko) | 2012-11-23 | 2019-06-24 | 삼성전자 주식회사 | 동적 라이브러리 프로파일링 방법, 이를 기록한 컴퓨터로 읽을 수 있는 기록 매체 및 동적 라이브러리 프로파일링 시스템 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5659751A (en) | 1990-01-05 | 1997-08-19 | Apple Computer, Inc. | Apparatus and method for dynamic linking of computer software components |
KR19990042699A (ko) * | 1997-11-27 | 1999-06-15 | 이계철 | 칠-96을 위한 객체지향/함수형 혼합형 라이브러리의 생성 방법 |
KR20040048246A (ko) * | 2002-12-02 | 2004-06-07 | 삼성전자주식회사 | 자바 실행 장치 및 자바 실행 방법 |
-
2005
- 2005-11-11 KR KR1020050108051A patent/KR100727627B1/ko active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5659751A (en) | 1990-01-05 | 1997-08-19 | Apple Computer, Inc. | Apparatus and method for dynamic linking of computer software components |
KR19990042699A (ko) * | 1997-11-27 | 1999-06-15 | 이계철 | 칠-96을 위한 객체지향/함수형 혼합형 라이브러리의 생성 방법 |
KR20040048246A (ko) * | 2002-12-02 | 2004-06-07 | 삼성전자주식회사 | 자바 실행 장치 및 자바 실행 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR20070050625A (ko) | 2007-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6876996B2 (en) | Method and apparatus for using a shared library mechanism to facilitate sharing of metadata | |
US8612930B2 (en) | Methods and apparatus for dynamic class reloading and versioning | |
US5708811A (en) | System and method for lazy loading of shared libraries | |
US5774722A (en) | Method for efficient external reference resolution in dynamically linked shared code libraries in single address space operating systems | |
US5634058A (en) | Dynamically configurable kernel | |
US10089119B2 (en) | API namespace virtualization | |
US5414854A (en) | Object-oriental system for managing shared libraries | |
US6112025A (en) | System and method for dynamic program linking | |
US7805582B2 (en) | Method of managing memory in multiprocessor system on chip | |
JPH0836488A (ja) | ダイナミック・パッチングを使用するランタイム・エラー・チェック方法と装置 | |
US20080320282A1 (en) | Method And Systems For Providing Transaction Support For Executable Program Components | |
JP2006092544A (ja) | プリオペレーティングシステム環境におけるモジュールの動的リンク | |
US7162626B2 (en) | Use of common language infrastructure for sharing drivers and executable content across execution environments | |
JP2005509194A (ja) | プレインターナライズ済プログラムファイルの作成及び使用のための方法並びに装置 | |
KR101059633B1 (ko) | 멀티태스킹 가상 머신을 위한 힙 구성 | |
US7426720B1 (en) | System and method for dynamic preloading of classes through memory space cloning of a master runtime system process | |
US20040083467A1 (en) | System and method for executing intermediate code | |
JPH06290056A (ja) | 異なるコンピュータ上でのソフトウェアの実行を最適化するための方法および装置 | |
US6260191B1 (en) | User controlled relaxation of optimization constraints related to volatile memory references | |
US7065676B1 (en) | Multi-threaded memory management test system with feedback to adjust input parameters in response to performance | |
KR100727627B1 (ko) | 동적링킹 라이브러리를 사용하는 어플리케이션을 지원하는방법 및 이를 이용한 시스템 | |
US7194736B2 (en) | Dynamic division optimization for a just-in-time compiler | |
US20070245328A1 (en) | Method of calling a method in virtual machine environment and system including a virtual machine processing the method | |
JP2000047879A (ja) | コンパイル方法及び装置、実行方法、及びプログラム実行装置 | |
CN114428653B (zh) | 使用不同编译设置的代码的即时jit编译实例 |
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: 20130605 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20140603 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20150602 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20160607 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20170605 Year of fee payment: 11 |
|
FPAY | Annual fee payment |
Payment date: 20180605 Year of fee payment: 12 |
|
FPAY | Annual fee payment |
Payment date: 20190604 Year of fee payment: 13 |