CA2437627A1 - Procede et systeme pour gerer des executables a bibliotheques partagees - Google Patents

Procede et systeme pour gerer des executables a bibliotheques partagees Download PDF

Info

Publication number
CA2437627A1
CA2437627A1 CA002437627A CA2437627A CA2437627A1 CA 2437627 A1 CA2437627 A1 CA 2437627A1 CA 002437627 A CA002437627 A CA 002437627A CA 2437627 A CA2437627 A CA 2437627A CA 2437627 A1 CA2437627 A1 CA 2437627A1
Authority
CA
Canada
Prior art keywords
file
executable
function
functions
fishier
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
CA002437627A
Other languages
English (en)
Other versions
CA2437627C (fr
Inventor
Marc Philippe Vertes
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
Individual
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 Individual filed Critical Individual
Publication of CA2437627A1 publication Critical patent/CA2437627A1/fr
Application granted granted Critical
Publication of CA2437627C publication Critical patent/CA2437627C/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • 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/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • G06F9/4486Formation of subprogram jump address

Abstract

L'invention concerne un procédé et un système pour modifier de manière non intrusive un fichier exécutable E comprenant des références (F1, F2, et F3) à des fonctions disposées dans au moins une bibliothèque partagée B au sein d'un ordinateur. Selon l'invention on crée au moins deux nouveaux fichiers, un ficher META comprenant quelques références non résolues (F2, F3) dans le fichier exécutable E et un fichier de services comprenant de nouvelles fonctions ou services (X2, X3) à insérer dans le fichier exécutable E. La phase d'édition de liens affecte en priorité au fichier META puis à la bibliothèque partagée B les références non résolues. Lorsque ces références sont répertorier dans le fichier META, alors on établit, pour cette référence, un lien entre de la bibliothèque partagée B. Dans le fichier META on a ensuite la possibilité d'associer à cette référence une ou plusieurs fonctions stockées partagée B. L'invention permet l'extension incrémentale et non intrusive des systèmes d'exploitation. Il n'es plus nécessaire d'effectuer des modifications au coeur du noyau pour modifier le comportement du système.

Claims (17)

1. Procede pour modifier de maniere non intrusive un fishier executable (E) comprenant des references (F1, F2, F3) a des fonctions disposees dans au moms une bibliotheque partagee (B) au sein d'un ordinateur, caracterise en se que pour une reference Bans 1e fishier executable faisant appel a une fonction donnee de 1a bibliotheque partagee, on accede a un fishier de reference servant de relais entre le fishier executable et l'endroit ou est effectivement disposee ladite fonction donnee, se fishier de reference comportant l'adresse de cette fonction donnee, on remplace cette adresse par une nouvelle adresse pointant vers une autre fonction de sorte qu'au sours de l'execution du fishier executable, l'appel a ladite function donnee, permet l'execution de cette autre fonction.
2. Procede selon la revendication 1, caracterise en se que:
- au lancement du fishier executable (E), on pre-charge un fishier de reference (META) comprenant une pluralite de references (F2, F3) a des functions nouvelles (X2, X3) disposees daps un fishier de services (S), - lors de la phase d'edition dynamique de liens pendant 1e lancement du fishier executable, pour chaque reference non resolue comprise dans 1e fishier executable, on affecte en priorite ladite reference au fishier de reference (META) dans la mesure ou cette reference (F2, F3) est definie daps se fishier de reference, sinon on affecte cette reference (Fl) a la bibliotheque partagee (B) - au cours de 1'execution du fichier executable, l'appel a une fonction referencee daps le fichier de reference, permet l'execution dune fonction nouvelle (X3) disposee Bans le fichier de service (S) au lieu de l'execution de la fonction (F3) reellement appelee, le chemin d'acces a cette fonction nouvelle étant definie dans 1e fichier de reference.
3. Procédé selon la revendication 4, caracterise en ce que le chemin d'acces defini dans le fichier de reference permet en outre l'execution d'une fonction (F2) de la bibliotheque partagee (B).
4. Procédé selon T une des revendications 2 et 3, caracterise en ce que lors du premier appel a une fonction référencee dans le fichier de reference, on effectue une nouvelle phase (10, 14) d'edition dynamique de liens entre les references (F2, F3) comprises dans 1e fichier de reference (META) et des fonctions (X2, F2, X3) en relation aver ces references (F2, F3).
5. Procédé selon la revendication 4, caracterise en ce qu'on effectue la nouvelle phase (10, 14) d'edition dynamique de liens en utilisant des routines de manipulation de bibliotheques partagees.
6. Procédé selon T une quelconque des revendications 2 a 5, caracterise en ce qu'on gere 1e fichier de reference (META) et 1e fichier de services (S) en tant que des bibliotheques partagées.
7. Procédé selon T une quelconque des revendications 2 a 6, caracterise en ce qu'au cours de l'execution du fichier executable (E), on contrôle et modifie les chemins d'accès dans le fichier de référence au moyen d'un canal de commande.
8. Procédé salon la revendication 7, caractérisé en ce qu'on utilise le canal de commande pour contrôler les fonctions (X2, X2, X3)comprises dans le fichier de services.
9. Procédé salon la revendication 1, dans lequel certaines etapes sont mises en oeuvre par un module de gestion pour la gestion dune bibliotheque partagée dotée d'une pseudo-fonction locale capable de simuler la présence d'une fonction dans la bibliotheque partagée, cette pseudo-fonction pointant en fait une adresse disposée dans une table de relocation, caractérisé en ce qua le fichier de référence consiste en la table de relocation, et après le chargement du module de gestion:
- on détermine, au sein du fichier exécutable, la liste des objets dynamiques ainsi que leurs adresses respectives de chargement; pour chaque objet dynamique, la liste des fonctions externes importées ainsi qua la liste des fonctions exportées; et - on modifie, en cours d'exécution du fichier exécutable, dans la table de relocation, l'adresse dune fonction donnée de sorte que le prochain appel à cette fonction donnee permet l'exécution dune fonction correspondant à la nouvelle adresse.
10. Procédé salon la revendication 9, caractérisé en ce qu'on mémorise l'ensemble des modifications subies par la table de relocation de façon à rendre le processus des modifications réversible.
11. Procédé selon la revendication 9 ou 10, caractérisé
en ce que, le module de gestion étant doté d'un langage de commande, on modifie de façon dynamique la table de relocation.
12. Procédé selon l'une quelconque des revendications 9 à
11, caractérisé en ce que pour charger le module de gestion dans le fichier exécutable, on pré-charge le module de gestion sous forme de bibliothèque partagée au démarrage du fichier exécutable.
13. Procédé selon l'une quelconque des revendications 9 à
11, caractérise en ce que pour charger le module de gestion dans le fichier exécutable, on interrompt le fichier exécutable en cours d'exécution au moyen d'un module de supervision, ce module de supervision étant externe au fichier exécutable et apte à commander le module de gestion; on insère un point d'arrêt dans le fichier exécutable a l'instruction courante; et on charge le module de gestion dans le fichier exécutable.
14. Procédé selon la revendication 13, caractérisé en ce que on transmet au module de gestion des commander de modification de la table de relocation au moyen du module de supervision qui est doté de moyen d'appel du module de gestion.
15. Procédé selon la revendication 13 ou 14, caractérisé
en ce qu'on retire le module de gestion du fichier exécutable en cours d'exécution a l'aide de moyens de liberation contenus dans le module de supervision.
16. Procédé selon la revendication 1, dans lequel le systeme d'exploitation de l'ordinateur charge a la volée en cours d'exécution une nouvelle bibliothèque partagée comportant des fonctions exportées, les adresses de ces fonctions exportées étant stockées dans des variables locales arbitraires du fichier exécutable, caractérisé en ce qu'on interpose le fichier de référence entre les variables locales et les fonctions exportées susceptibles d'être appelées par le fichier exécutable, le fichier de référence comportant par défaut les adresses de ces fonctions exportées, et en ce que le fichier de référence est tel qu' il peut être modifié au moyen d'un module de gestion.
17. Système pour modifier de manière non intrusive un fichier exécutable (E) comprenant des références (F1, F2, F3) à des fonctions disposées dans au moins une bibliothèque partagée (B) au sein d'un ordinateur, caractérisé en ce qu'il comprend:
- un fichier de services (S) comportant une pluralité de fonctions (X1, X2, X3) destinées a être inséréees de façon dynamique dans le fichier exécutable (E) lors d'une phase d'exécution de ce fichier executable, - un fichier de référence (META) comportant une pluralité de références (F2, F3) a des fonctions localisées dans ledit fichier de services (S) et dans la bibliothèque partagée (B), et des moyens de commands pour contrôler et commander le fichier de services (S) et le fichier de référence (META).
CA2437627A 2001-02-01 2002-02-01 Procede et systeme pour gerer des executables a bibliotheques partagees Expired - Fee Related CA2437627C (fr)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR01/01378 2001-02-01
FR0101378A FR2820221B1 (fr) 2001-02-01 2001-02-01 Procede et systeme pour gerer des executables a bibliotheques partagees
PCT/FR2002/000398 WO2002061579A2 (fr) 2001-02-01 2002-02-01 Procede et systeme pour gerer des executables a bibliotheques partagees

Publications (2)

Publication Number Publication Date
CA2437627A1 true CA2437627A1 (fr) 2002-08-08
CA2437627C CA2437627C (fr) 2010-07-20

Family

ID=8859512

Family Applications (1)

Application Number Title Priority Date Filing Date
CA2437627A Expired - Fee Related CA2437627C (fr) 2001-02-01 2002-02-01 Procede et systeme pour gerer des executables a bibliotheques partagees

Country Status (8)

Country Link
US (1) US7506316B2 (fr)
EP (2) EP1914630A1 (fr)
JP (1) JP4006337B2 (fr)
AT (1) ATE391953T1 (fr)
CA (1) CA2437627C (fr)
DE (1) DE60226019T2 (fr)
FR (1) FR2820221B1 (fr)
WO (1) WO2002061579A2 (fr)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2820221B1 (fr) 2001-02-01 2004-08-20 Cimai Technology Procede et systeme pour gerer des executables a bibliotheques partagees
US20070146781A1 (en) * 2002-05-28 2007-06-28 Garg Man M Method and implementation of capturing print data from heterogeneous networked clients
US20030223091A1 (en) * 2002-05-28 2003-12-04 Garg Manmohan M. Method and implementation of capturing print data from heterogeneous networked clients
JP4115759B2 (ja) * 2002-07-01 2008-07-09 株式会社東芝 耐タンパプロセッサにおける共有ライブラリの使用方法およびそのプログラム
US7844734B2 (en) * 2002-11-18 2010-11-30 Innopath Software, Inc. Dynamic addressing (DA) using a centralized DA manager
GB2407655B (en) * 2003-10-28 2009-08-05 Symbian Ltd Mapping of dynamic link libraries in a computing device
US7739689B1 (en) * 2004-02-27 2010-06-15 Symantec Operating Corporation Internal monitoring of applications in a distributed management framework
US20060026584A1 (en) * 2004-07-27 2006-02-02 Muratori Richard D Explicit linking of dynamic link libraries
FR2881247B1 (fr) * 2005-01-21 2007-03-23 Meiosys Soc Par Actions Simpli Procede de gestion semantique, de journalisation ou de rejeu d'operations non deterministes au sein du deroulement d'un processus applicatif
FR2881242B1 (fr) * 2005-01-21 2007-03-23 Meiosys Soc Par Actions Simpli Procede non intrusif de journalisation d'evements internes au sein d'un processus applicatif, et systeme mettant en oeuvre ce procede
FR2881239B1 (fr) * 2005-01-24 2007-03-23 Meiosys Soc Par Actions Simpli Procede de gestion d'acces a des ressources partagees dans un environnement multi-processeurs
FR2883083B1 (fr) * 2005-03-14 2007-05-04 Meiosys Soc Par Actions Simpli Procede d'execution d'une application dans un conteneur virtuel formant une session d'environnement virtualise
US7721278B2 (en) * 2005-05-27 2010-05-18 Microsoft Corporation Modular server architecture for multi-environment HTTP request processing
US20070234342A1 (en) * 2006-01-25 2007-10-04 Flynn John T Jr System and method for relocating running applications to topologically remotely located computing systems
US7613749B2 (en) 2006-04-12 2009-11-03 International Business Machines Corporation System and method for application fault tolerance and recovery using topologically remotely located computing devices
US7930710B2 (en) * 2006-05-16 2011-04-19 Panasonic Corporation Program start-up unit, program start-up method, recording medium with start-up processing program recorded, and integrated circuit
US7594138B2 (en) 2007-01-31 2009-09-22 International Business Machines Corporation System and method of error recovery for backup applications
US8495573B2 (en) * 2007-10-04 2013-07-23 International Business Machines Corporation Checkpoint and restartable applications and system services
US8006254B2 (en) * 2007-10-04 2011-08-23 International Business Machines Corporation Bequeathing privilege to a dynamically loaded module
US8156510B2 (en) 2007-10-04 2012-04-10 International Business Machines Corporation Process retext for dynamically loaded modules
US8448159B2 (en) * 2007-11-02 2013-05-21 Tti Inventions C Llc Method and system for policy enabled programming
WO2009103742A2 (fr) * 2008-02-18 2009-08-27 Martin Boesgaard Authentification d'une page web à langage javascript incorporé
CA2684225A1 (fr) * 2009-10-30 2011-04-30 Ibm Canada Limited - Ibm Canada Limitee Validation delta selective d'artefact partage
US8607199B2 (en) * 2009-12-16 2013-12-10 International Business Machines Corporation Techniques for debugging code during runtime
US8495601B2 (en) 2010-06-09 2013-07-23 Lear Corporation Shared memory architecture
US8539472B2 (en) 2010-06-09 2013-09-17 Lear Corporation Method and system of updating shared memory
KR101059658B1 (ko) * 2010-07-01 2011-08-25 엔에이치엔(주) 개발자 인터페이스 제공 방법 및 시스템
JP5803157B2 (ja) * 2011-03-07 2015-11-04 日本電気株式会社 情報処理装置、プログラム不正検知方法、およびプログラム不正検知プログラム
KR101991687B1 (ko) 2012-11-23 2019-06-24 삼성전자 주식회사 동적 라이브러리 프로파일링 방법, 이를 기록한 컴퓨터로 읽을 수 있는 기록 매체 및 동적 라이브러리 프로파일링 시스템
US9189622B2 (en) * 2013-04-30 2015-11-17 Vmware, Inc. Static redirection for objective C
US9720660B2 (en) * 2013-05-21 2017-08-01 Red Hat, Inc. Binary interface instrumentation
CN105528365A (zh) * 2014-09-30 2016-04-27 国际商业机器公司 用于管理可执行文件的方法和装置
US10514994B2 (en) 2015-06-09 2019-12-24 Satori Worldwide, Llc Distributed scalable workload testing
CN107292132B (zh) * 2016-03-30 2023-03-14 北京娜迦信息科技发展有限公司 用于安卓系统的共享对象文件的加载方法与装置
US11063950B2 (en) * 2016-06-09 2021-07-13 Microsoft Technology Licensing, Llc Secure remote desktop session
US10310872B2 (en) * 2017-02-21 2019-06-04 Red Hat, Inc. Transparent fast application launcher
WO2018187160A1 (fr) * 2017-04-07 2018-10-11 Satori Worldwide, Llc Test de charge de travail extensible distribué
CN109710671B (zh) * 2018-12-14 2023-05-30 国云科技股份有限公司 实现数据库操作数据引流的方法及其数据库防火墙系统

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01307825A (ja) 1988-06-06 1989-12-12 Nec Corp インターフェイスモジュールを介する動的リンク実行方式
US5175828A (en) * 1989-02-13 1992-12-29 Hewlett-Packard Company Method and apparatus for dynamically linking subprogram to main program using tabled procedure name comparison
JPH04243424A (ja) 1991-01-17 1992-08-31 Nec Corp 動的リンク方式
JPH06110678A (ja) * 1992-09-30 1994-04-22 Toshiba Corp プログラム実行方式及び実行プログラムの動的変更方法
CA2102883A1 (fr) * 1993-02-26 1994-08-27 James W. Arendt Systeme et methode de chargement differe de bibliotheques mises en commun
US5546586A (en) * 1993-05-06 1996-08-13 Apple Computer, Inc. Method and apparatus for vectorizing the contents of a read only memory device without modifying underlying source code
US5481706A (en) * 1993-11-01 1996-01-02 International Business Machines Corporation System and method for creating thread-safe shared libraries
US6219825B1 (en) * 1995-01-10 2001-04-17 Hewlett-Packard Company Profile based optimization of shared libraries
JPH11110194A (ja) 1997-10-06 1999-04-23 Toshiba Corp 外部ライブラリ関数との結合方法ならびに同方法がプログラムされ記録される記録媒体
US6154878A (en) * 1998-07-21 2000-11-28 Hewlett-Packard Company System and method for on-line replacement of software
US6351843B1 (en) * 1998-08-31 2002-02-26 International Business Machines Corporation Dynamically inserting a function into an application executable at runtime
US6314566B1 (en) * 1998-09-29 2001-11-06 Apple Computer, Inc. Method and apparatus for “Just-in-Time” dynamic loading and unloading of computer software libraries
FR2820221B1 (fr) 2001-02-01 2004-08-20 Cimai Technology Procede et systeme pour gerer des executables a bibliotheques partagees
US20020174161A1 (en) * 2001-05-18 2002-11-21 Scheetz Michael A. Java startup wrapper

Also Published As

Publication number Publication date
JP4006337B2 (ja) 2007-11-14
WO2002061579A3 (fr) 2003-11-27
US20040111720A1 (en) 2004-06-10
EP1914630A1 (fr) 2008-04-23
WO2002061579A2 (fr) 2002-08-08
JP2004530184A (ja) 2004-09-30
ATE391953T1 (de) 2008-04-15
DE60226019D1 (de) 2008-05-21
EP1386230B1 (fr) 2008-04-09
DE60226019T2 (de) 2009-06-25
CA2437627C (fr) 2010-07-20
FR2820221B1 (fr) 2004-08-20
EP1386230A2 (fr) 2004-02-04
US7506316B2 (en) 2009-03-17
FR2820221A1 (fr) 2002-08-02

Similar Documents

Publication Publication Date Title
CA2437627A1 (fr) Procede et systeme pour gerer des executables a bibliotheques partagees
US6256658B1 (en) Apparatus for executing a plurality of program segments having different object code types in a single program or processor environment
US6718543B2 (en) Method and apparatus for optimization of the performance of an application program in a computer system while preserving the system behavior
US20130061240A1 (en) Two way communication support for heterogenous processors of a computer platform
US5247674A (en) Static memory allocation system
CN108121594B (zh) 一种进程管理方法及装置
CN111580802B (zh) 持续集成方法、基于分布式编译的持续集成方法及系统
FR2881239A1 (fr) Procede de gestion d'acces a des ressources partagees dans un environnement multi-processeurs
JPH01154267A (ja) 入出力機器制御プログラムのアドレス解決方法
CN113672342B (zh) 嵌入式虚拟化系统及构建、测试方法、终端及介质
JPH0254337A (ja) 実行可能イメージの生成を容易とするデータ処理システム
KR20060085698A (ko) 중앙집중형 동적 어드레싱 매니저를 이용한 동적 어드레싱방법 및 장치
CN102681893A (zh) 可执行程序的跨平台实现方法及移动终端
US6219825B1 (en) Profile based optimization of shared libraries
EP1156418A1 (fr) Interface applicative multiprocesseur, ne nécessitant pas l'utilisation d'un système d'exploitation multiprocesseur
US20040123308A1 (en) Hybird of implicit and explicit linkage of windows dynamic link labraries
US20080301719A1 (en) Mapping Of Dynamic Link Libraries In Computing Devices
CN102137122B (zh) 一种下载数据的方法及装置
CN115495158B (zh) 微内核操作系统中系统服务动态构建方法
JP2006202233A (ja) コントローラ、そのプログラム
EP2637094A1 (fr) Procédé d'optimisation d'un ensemble de bibliothèques logicielles partagées, notamment pour un système d'exploitation fermé stocké dans le micrologiciel d'un équipement
KR100478463B1 (ko) 응용 프로그램의 동적링크 방법
CN1219048A (zh) 下载数据以向声码器添加功能的方法
KR20050107690A (ko) 라이브러리에 대한 사용을 지원하는 플랫폼을 구비한이동통신단말기
CN116400945B (zh) 一种动态链接库升级方法、电子设备及存储介质

Legal Events

Date Code Title Description
EEER Examination request
MKLA Lapsed

Effective date: 20130201

MKLA Lapsed

Effective date: 20130201