DE19840029C1 - Verfahren zum Linken von in einen Arbeitsspeicher eines Prozessors nachgeladenen Programmodulen auf einer Chipkarte - Google Patents

Verfahren zum Linken von in einen Arbeitsspeicher eines Prozessors nachgeladenen Programmodulen auf einer Chipkarte

Info

Publication number
DE19840029C1
DE19840029C1 DE19840029A DE19840029A DE19840029C1 DE 19840029 C1 DE19840029 C1 DE 19840029C1 DE 19840029 A DE19840029 A DE 19840029A DE 19840029 A DE19840029 A DE 19840029A DE 19840029 C1 DE19840029 C1 DE 19840029C1
Authority
DE
Germany
Prior art keywords
block
object code
symbolic
section
references
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.)
Expired - Fee Related
Application number
DE19840029A
Other languages
English (en)
Inventor
Christian May
Juergen Freiwald
Olaf Brixel
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.)
Siemens AG
Original Assignee
Siemens AG
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 Siemens AG filed Critical Siemens AG
Priority to DE19840029A priority Critical patent/DE19840029C1/de
Priority to KR1020017002772A priority patent/KR20010079730A/ko
Priority to PCT/DE1999/002784 priority patent/WO2000014631A2/de
Priority to CN99810510A priority patent/CN1354853A/zh
Priority to EP99953697A priority patent/EP1145118A2/de
Priority to JP2000569311A priority patent/JP2002524792A/ja
Application granted granted Critical
Publication of DE19840029C1 publication Critical patent/DE19840029C1/de
Priority to US09/798,105 priority patent/US20010034818A1/en
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
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

Verfahren zum Linken von nachgeladenen Programmodulen auf einer Chipkarte mit ebenfalls nachgeladenen Bibliotheken, wobei das Verfahren in zwei Abschnitte aufgeteilt ist, wobei der erste Abschnitt zu einem beliebigen Zeitpunkt nach dem Kompilieren des Programmoduls erfolgen kann, und lediglich der zweite Abschnitt, in dem die dynamischen Referenzen aufgelöst werden, nach dem Laden der Programmodule auf der Chipkarte erfolgen muß.

Description

Die vorliegende Erfindung betrifft ein Verfahren zum Linken von in einen Arbeitsspeicher eines Prozessors nachgeladenen Programmodulen, beispielsweise auf einer Chipkarte. Die Er­ findung befaßt sich mit folgender Problemstellung:
Auf zukünftigen Multiapplikations-Chipkarten sollen neben dem statisch vorgeladenen Betriebssystem und Standardbibliotheken auch individuelle Programmodule vom Benutzer nachgeladen wer­ den können. Dies ist bislang aus folgendem Grund nicht mög­ lich: Jedes Programm basiert auf Adressen, an deren Position das Programm abgearbeitet wird. Ein sogenannter "Linker" legt diese Adressenzuordnung fest. Da für das nachzuladende Pro­ gramm völlig unbekannt ist, welche Adressen in der Chip-Karte bereits belegt sind, muß die Möglichkeit geschaffen werden, nachzuladende Programme auf beliebigen Adressen ablaufen las­ sen zu können; d. h. die nachzuladenden Programme müssen auf der Chip-Karte relokatierbar sein. Es ist zu erwarten, daß die nachladbaren Module in ihrer Summe den auf der Chipkarte zur Verfügung stehenden physikalischen Adreßbereich überstei­ gen. Den Modulen kann deshalb kein fest vorgegebener physika­ lischer Adreßbereich zugewiesen werden. Das Betriebssystem auf der Karte muß deshalb in der Lage sein, einem Modul beim Aufladen auf die Karte dynamisch einen freien Speicherbereich zuzuweisen. Hierzu muß ein nachzuladendes Modul der Chipkar­ te mitteilen, auf welche Bibliotheken es zugreifen muß. Nach­ dem verifiziert wurde, daß dem Modul der Zugriff auf die ent­ sprechenden Bibliotheken erlaubt ist, muß es an sie gelinkt werden, d. h. mit den entsprechenden logischen Adressen für die Zugriffe versehen werden. Logische Adressen werden vom Betriebssystem der Karte verwaltet und lassen sich eindeutig physikalischen Adressen zuordnen. Befinden sich alle Biblio­ theken auf feststehenden Adreßbereichen, so kann das neue Mo­ dul statisch vorgelinkt sein und unverändert auf die Chipkar­ te übernommen werden. Sollte sich allerdings eine Bibliothek ihrerseits auf einem dynamisch zugewiesenen Adreßbereich be­ finden, so muß das neue Modul an sie dynamisch angelinkt wer­ den, d. h., daß das neue Modul mit den aktuell gültigen logi­ schen Adressen der Bibliothek versehen werden muß. Das neue Modul enthält bei der Programmierung also lediglich den Namen der Bibliothek und die entsprechenden symbolischen Segmentre­ ferenzen, sowie gegebenenfalls weitere Referenzen, auf die zugegriffen werden soll. Beim Linkvorgang müssen diese Refe­ renzen dann durch die aktuell gültigen logischen Adressen, insbesondere die der entsprechenden Segmente der Bibliothek ersetzt werden.
Der Linkvorgang kann prinzipiell entweder im Kartenterminal oder auf der Chipkarte stattfinden. Der erstere Fall ist als zu unsicher anzusehen, da gewährleistet sein muß, daß das Terminal nicht manipuliert wurde. Außerdem können auf der Kommunikationsstrecke zwischen Terminal und Karte die Daten nochmals manipuliert werden.
Da das neu, dynamisch angebundene Modul prinzipiell gegenüber seinem Zustand vor dem Linkvorgang verändert ist, da ja bei dem Linkvorgang die symbolischen Referenzen aufgelöst werden mußten, kann in der Chipkarte auch nicht eine statisch vorde­ finierte Signatur des Programms überprüft werden. Der einzig sichere Weg ist, den Linker auf die Chipkarte zu verlegen. Das Problem hierbei ist jedoch, daß die herkömmliche Link- Strategie, bei der ein relativ komplexer Parser den Object­ code liest und dynamische Referenzen befriedigt, zu viele Speicherressourcen auf der Karte benötigt. Bisher gab es für dieses Problem im Stand der Technik keine Lösung. Es war da­ her bisher nicht mit vertretbarem Aufwand möglich, auf einer hinreichend sicheren Chipkarte Bibliotheken auf dynamisch zu­ gewiesenen Adressbereichen zu verwenden.
Aus der DE 690 30 425 T2 ist bereits ein Kompilierungsverfah­ ren bekannt, bei dem ein Teil des Kompilierungsvorganges, nämlich die interprozedurale Registerzuordnung auf einen spä­ teren Zeitpunkt, nämlich auf den Zeitpunkt des Linkens der Programme verschoben wird.
Aus diesem Stand der Technik ergibt sich jedoch keine Lösung, die das Linken nachträglich geladener Programmodule erlauben würde. Vielmehr befaßt sich diese Entgegenhaltung ausschließ­ lich mit der Problematik der interprozeduralen Registerzuwei­ sungen beim Kompilieren.
Der nächstgelegene Stand der Technik auf diesem Gebiet ergibt sich aus der DE 197 23 676 A1. Diese Druckschrift beschreibt ebenfalls ein Verfahren zum Nachladen von Programmen auf eine Chipkarte. Gemäß diesem Stand der Technik können zwar Pro­ gramme dynamisch auf entsprechende Programmbänke verteilt werden. Dieses Verfahren ermöglicht jedoch nicht den Zugriff eines dynamisch nachgeladenen Programms auf ein anderes dyna­ misch nachgeladenes Programm oder eine dynamisch nachgeladene Adresse, da gemäß diesem Stand der Technik lediglich die Sprungadressen innerhalb eines Programms umgerechnet und an­ gepasst werden können. Auch dieser Stand der Technik löst da­ her nicht die Aufgabe, den Zugriff nachladbarer Applikationen auf Bibliotheken zu ermöglichen, die ebenfalls auf dynamisch zugewiesenen Adressbereichen abgelegt sind.
Es ist daher Aufgabe der vorliegenden Erfindung, ein Verfah­ ren zur Verfügung zu stellen, bei dem nachladbare Applikatio­ nen auf Bibliotheken zugreifen können, die sich auf dynamisch zugewiesenen Adressbereichen befinden, ohne daß Sicherheits­ probleme durch einen ausgelagerten und beispielsweise im Kartenterminal ablaufenden Linkvorgang entstehen.
Erfindungsgemäß wird diese Aufgabe dadurch gelöst, daß der Linkvorgang in zwei Abschnitte aufgeteilt wird, wobei der er­ ste Abschnitt zu einem beliebigen Zeitpunkt nach dem Kompi­ lieren des Programmoduls erfolgen kann, und lediglich der zweite Abschnitt, in dem die symbolischen Referenzen aufge­ löst werden, nach dem Laden der Programmodule erfolgen muß.
Um zusätzliche Ressourcen einzusparen, ist es besonders vor­ teilhaft, die Auflösung der dynamischen Referenzen durch ei­ nen einfachen Automaten ausführen zu lassen.
Vorzugsweise ergibt sich eine besonders einfache Programm­ struktur, wenn im ersten Abschnitt des Verfahrens ein Object- File mit einem Kopf erzeugt wird, in dem sich die Information über die Bibliotheken und ihre Segmente befindet, an die an­ gelinkt werden soll.
Es ist dabei weiter besonders bevorzugt, daß in dem Kopf des Object-Files zusätzlich die Information über diejenigen dyna­ mischen Referenzen enthalten ist, die im eigentlichen Object­ code verwendet werden.
Eine besonders einfache Verarbeitung auf der Karte ergibt sich, wenn der eigentliche Objectcode in eine Sequenz von Blöcken zerlegt ist, wobei am Anfang jedes Blocks die Infor­ mation liegt, wie viele Bytes des Objectcodes eingelesen wer­ den können, bis die erste symbolische Referenz auftritt, und der Block mit der symbolischen Referenz endet.
Eine besonders einfache Verarbeitung ergibt sich vorzugsweise auch dadurch, daß am Beginn des zweiten Abschnitts des Link­ vorgangs der Kopf des Objektcodes in den Arbeitsspeicher ab­ gespeichert wird, und dort den dynamischen Referenzen die tatsächlichen Adressen auf der Karte zugeordnet werden.
Ein besonders einfacher Linkvorgang ergibt sich, wenn während des zweiten Abschnitts des Linkvorgangs auf der Karte jeweils ein Blockanfang eingelesen wird, die Anzahl der Bytes gespei­ chert wird, die ohne Umwandlung einer dynamischen Referenz eingelesen werden können, und dann der Block ohne den Block­ anfang in den Speicher auf der Karte eingelesen wird, und am Ende des Blocks statt der dynamischen Referenz die tatsächli­ che Adresse auf der Karte aus dem umgewandelten Kopf des Ob­ jektcodes eingelesen wird.
Im folgenden wird die vorliegende Erfindung anhand des in den Zeichnungen dargestellten Ausführungsbeispiels näher erläu­ tert. Es zeigen:
Fig. 1 die Struktur des Object-Files, wie es nach dem ersten Abschnitt des erfindungsgemäßen Linkverfahrens aufgebaut ist;
Fig. 2 den Zustand des Programms nach der Umwandlung der Refe­ renzen im Objectcodekopf in die absoluten Adressen, wobei eine Referenzliste erstellt wurde;
Fig. 3 den Zustand des Programms nach der Umwandlung der Re­ ferenzen im Objectcodekopf, wobei ein Referenzstack erzeugt wurde;
Fig. 4 den Zustand des Programms nach der Umwandlung der Re­ ferenzen, wobei eine Positionenliste erzeugt wurde; und
Fig. 5 den Zustand des Programms nach der Umwandlung der Re­ ferenzen, wobei die Adressen ersetzt worden sind.
Bei dem beschriebenen Ausführungsbeispiel der Erfindung er­ folgt das dynamische Nachladen von Programmodulen auf einer Chipkarte. Dabei muß der komplexe Teil des Linkers abgespal­ ten und aus der Karte ausgelagert werden. In der Karte selbst läuft nur ein einfacher Automat ab, der das Auflösen der sym­ bolischen Referenzen erledigt. Der Linker auf der Karte ist durch das neue Linkformat der Object-Files hinreichend be­ schrieben:
Im Kopf 10 des Object-Files befindet die Information über die Bibliotheken und ihre Segmente, an die angelinkt werden soll, sowie die entsprechenden symbolischen Referenzen, die im ei­ gentlichen Objectcode verwendet werden. Der eigentliche Ob­ jectcode ist nun eine Sequenz von Blöcken 12, 14, 16. Am An­ fang eines Blocks liegt die Information, wie viele Byte des Programmcodes eingelesen werden können, bis die erste dynami­ sche Referenz auftritt. Sie beendet den Block. Die entspre­ chende Struktur des Objectfiles, wie es an die Chipkarte übergeben wird, ist in Fig. 1 dargestellt. Das Objectfile be­ steht aus einem Kopf 10, der jeweils den Namen der jeweiligen Bibliothek und des jeweiligen Segments, an das angelinkt wer­ den soll und die zugehörige symbolische Referenz enthält.
Nach diesem Objectkopf folgen die einzelnen Blöcke des Ob­ jectcodes, wobei am Blockbeginn immer die Blocklänge angege­ ben ist und jeder Block mit einer symbolischen Referenz en­ det. Die Erstellung eines solchen gem. Fig. 1 strukturierten Objectcodes kann zu einem beliebigen Zeitpunkt nach der Com­ pilierung des Programmes und auf einem beliebigen Rechner er­ folgen.
Auf der Chipkarte muß lediglich der zweite Abschnitt des Linkvorgangs erfolgen:
Der Linker auf der Karte liest den Objectkopf ein und ordnet den symbolischen Referenzen die tatsächlichen Adressen auf der Karte zu. Sofern wenige symbolische Referenzen des öfte­ ren im Objectcode benötigt werden, empfiehlt es sich, eine Zuordnungstabelle der symbolischen Referenzen auf die tat­ sächlichen Adressen anzulegen. Diese Information muß dann während des gesamten Linkvorgangs vorhanden sein. Wenn eine Vielzahl von dynamischen Referenzen nur relativ selten im Ob­ jectcode aufgerufen werden, besteht die Möglichkeit, den Linkvorgang weiter zu vereinfachen, indem im Kopf 10 des Ob­ jectcodes die symbolischen Referenzen in der Reihenfolge ih­ res Auftretens im Objectcode angeordnet werden. In diesem Fall kann man auch direkt die Adresse im Objectcode angeben, an der substituiert werden soll. Die Blockstruktur entfällt dann. Interessant ist auch noch die Möglichkeit, direkt am Ende eines Blocks den Namen und die symbolische Referenz zu spezifizieren, die dann jedesmal aufgelöst wird. Nach der Um­ setzung auf der Karte auf die tatsächlichen physikalischen Adressen steht dann im Kopf 10 eine Liste der absoluten Adressen in der Reihenfolge, wie sie in den Objectcode einge­ arbeitet werden müssen. Dazu muß nicht der Kopf ersetzt wer­ den, es reicht, wenn eine entsprechende Liste im Speicher ge­ halten wird. Diese Liste kann nach dem Laden gelöscht werden, wodurch erheblich Speicherplatz gespart wird.
Nach Erzeugung dieser Adresstabelle oder Adressliste wird je­ weils ein Blockanfang eingelesen und die Anzahl der Bytes ge­ speichert, die ohne Umwandlung einer symbolischen Referenz in das Programmsegment eingelesen werden kann. Der Blockanfang, der ja lediglich die Zahl der Bytes dieses Blocks angibt, wird dabei nicht in den Programmcode mit aufgenommen. Am Ende des Blocks wird die symbolische Referenz durch die aktuelle tatsächliche aktuelle Adresse ersetzt. Dazu wird entweder die Vergleichstabelle im Objectcodekopf 10 herangezogen, oder aus einer entsprechenden Liste einfach die zu diesem Block gehö­ rige physikalische Adresse abgerufen. Bei der letzteren Orga­ nisation kann der Kopf auch in Form eines Stapelspeichers (Stack) organisiert sein.
Sodann kann der nächste Block abgearbeitet werden.
Die Fig. 2 bis 5 zeigen den Objectcode nach Umwandlung der dynamischen Referenzen im Kopf 10. Die absoluten Adressen können dabei entweder in Form einer Tabelle organisiert sein, wobei über entsprechende Bezugszahlen (1, 2, 3) die Zuordnung zu den jeweiligen dynamischen Referenzen im Objectcode er­ folgt, oder der Kopf kann wie ein Stapelspeicher die absolu­ ten Adressen in der Reihenfolge, wie diese von den Blöcken benötigt werden, enthalten.
Im einzelnen zeigt die Fig. 2 eine erfindungsgemäße Lösung, bei der aus dem Objectcodekopf eine Liste erzeugt wird, die jeweils die Namen und die Referenzen sowie die jeweiligen tatsächlichen aktuellen Adressen enthält. Damit wird nur eine sehr kleine Tabelle erzeugt, die sehr wenig Speicherplatz braucht, wenn nur einige wenige Referenzen sehr oft in dem Programm vorkommen. Dies ist beispielsweise durch das mehrfa­ che Auftreten der Referenz M in der Figur dargestellt.
Fig. 3 zeigt eine erfindungsgemäße Lösung, wobei der Object­ codekopf in Form eines Stapelspeichers organisiert ist, der die Adressen in der Reihenfolge ihres Auftretens im Object­ code enthält. Hierbei ist der Ladevorgang weiter vereinfacht, da lediglich nach jedem Block die oberste Adresse aus dem Stapelspeicher einkopiert werden muß.
Fig. 4 zeigt eine erfindungsgemäße Lösung, wobei eine Tabelle abgespeichert wird, die außer Name und Adresse jeweils die Positionen enthält, an denen die jeweilige symbolische Refe­ renz durch die tatsächliche aktuelle Adresse ersetzt werden muß. Diese Tabelle kann dann auch am Ende des Objectcodes an­ geordnet sein. Diese Anordnung ist für die Abarbeitung noch günstiger, da die Tabelle dann nicht im Speicher gehalten werden muß, sondern erst nach dem Laden des Objectcodes in den Speicher sukzessive abgearbeitet werden kann.
Fig. 5 zeigt eine erfindungsgemäße Lösung, bei der eine direk­ te Auflösung der Adressen erfolgt.
Allen diesen erfindunsgemäßen Lösungen ist gemeinsam, daß die Ersetzung der symbolischen Referenzen durch die tatsäch­ liche aktuelle Adresse einmalig während des Ladens des Pro­ gramms auf die Karte erfolgt, und nicht zur Zeit der Abarbei­ tung des Programms. Die symbolischen Referenzen werden also nur einmal während des Ladens aufgelöst. Es müssen daher nicht dauernd die Listen mit der Zuordnung symbolischer Refe­ renz auf tatsächliche aktuelle Adresse im Speicher gehalten werden, was zu einer erheblichen Speicherersparnis führt. Er­ findungsgemäß wird also der Linker aufgespalten in einen kom­ plexen Prelinker, der unmittelbar nach dem Compilieren des Programms ausgeführt werden kann. Nach dem prelink Prozeß kann der Code signiert werden. Der signierte Code wird im Linker auf der Karte während des Einlesens gelinkt und veri­ fiziert. In den Fig. 2 bis 4 kann der Eintrag "name n" da­ bei gegebenenfalls auch wegfallen, sofern die Adressen ein­ deutig sind.
Die vorliegende Erfindung erlaubt erstmals das sichere Nach­ laden von Bibliotheken und Applikationen, die auf diese Bi­ bliotheken zugreifen. Ohne ihn könnten nur Applikationen dy­ namisch nachgeladen werden. Beispielsweise ergibt sich damit folgene Anwendungsmöglichkeit:
Kernel und Betriebssystem befinden sich statisch gelinkt auf der Chipkarte. Der Benutzer möchte nun IATA, eine Bibliothek aller Fluglinien, dynamisch auf die Karte laden und anschlie­ ßend noch eine Bonuspunkt-Applikation der Lufthansa, die auf die IATA-Bibliothek zugreift, nachladen.

Claims (7)

1. Verfahren zum Linken von in einen Arbeitsspeicher eines Prozessors nachgeladenen Programmodulen, dadurch ge­ kennzeichnet, daß das Verfahren in zwei Abschnitte aufgeteilt wird, wobei der erste Abschnitt zu einem beliebi­ gen Zeitpunkt nach dem Compilieren des Programmoduls erfolgen kann, und lediglich der zweite Abschnitt, in dem die symboli­ schen Referenzen aufgelöst werden, nach dem Laden der Pro­ grammodule in den Arbeitsspeicher erfolgen muß.
2. Verfahren nach Anspruch 1, dadurch gekenn­ zeichnet, daß die Auflösung der symbolischen Referen­ zen durch einen einfachen Automaten erfolgt.
3. Verfahren nach Anspruch 1 oder 2, dadurch ge­ kennzeichnet, daß im ersten Abschnitt des Verfah­ rens ein Objekt File mit einem Kopf (10) erzeugt wird, in dem sich die Information über die Bibliotheken und ihre Segmente befindet, an die angelinkt werden soll.
4. Verfahren nach Anspruch 3, dadurch gekenn­ zeichnet, daß in dem Kopf (10) des Objekt Files zu­ sätzlich die Informationen über diejenigen symbolischen Refe­ renzen enthalten sind, die im eigentlichen Objektcode verwen­ det werden.
5. Verfahren nach Anspruch 4, dadurch gekenn­ zeichnet, daß der eigentliche Objektcode in eine Se­ quenz von Blöcken (12, 14, 16) zerlegt ist, wobei am Anfang jedes Blocks (12, 14, 16) die Information liegt, wie viele Bytes des Objektcodes eingelesen werden können, bis die erste symbolische Referenz auftritt, und der Block mit der symboli­ schen Referenz endet.
6. Verfahren nach Anspruch 5, dadurch gekenn­ zeichnet, daß am Beginn des zweiten Abschnitts des Linkvorgangs im Arbeitsspeicher der Kopf (10) des Objektcodes abgespeichert wird, und dort den symbolischen Referenzen die tatsächlichen Adressen zugeordnet werden.
7. Verfahren nach Anspruch 6, dadurch gekenn­ zeichnet, daß während des zweiten Abschnitts des Link­ vorgangs jeweils ein Blockanfang eingelesen wird, die Anzahl der Bytes gespeichert wird, die ohne Umwandlung einer symbo­ lischen Referenz eingelesen werden können, und dann der Block ohne den Blockanfang in den Arbeitsspeicher eingelesen wird, und am Ende des Blocks statt der symbolischen Referenz die tatsächliche Adresse im Arbeitsspeicher aus dem umgewandelten Kopf des Objektcodes eingelesen wird.
DE19840029A 1998-09-02 1998-09-02 Verfahren zum Linken von in einen Arbeitsspeicher eines Prozessors nachgeladenen Programmodulen auf einer Chipkarte Expired - Fee Related DE19840029C1 (de)

Priority Applications (7)

Application Number Priority Date Filing Date Title
DE19840029A DE19840029C1 (de) 1998-09-02 1998-09-02 Verfahren zum Linken von in einen Arbeitsspeicher eines Prozessors nachgeladenen Programmodulen auf einer Chipkarte
KR1020017002772A KR20010079730A (ko) 1998-09-02 1999-09-02 프로세서의 작업 메모리내에서 스와핑된 프로그램 모듈을칩카드상에 링킹하기 위한 방법
PCT/DE1999/002784 WO2000014631A2 (de) 1998-09-02 1999-09-02 Verfahren zum linken von in einen arbeitsspeicher eines prozessors nachgeladenen programmodulen auf einer chipkarte
CN99810510A CN1354853A (zh) 1998-09-02 1999-09-02 对芯片卡上被再装入到处理器的工作存储器之中的程序模块进行链接的方法
EP99953697A EP1145118A2 (de) 1998-09-02 1999-09-02 Verfahren zum linken von in einen arbeitsspeicher eines prozessors nachgeladenen programmodulen auf einer chipkarte
JP2000569311A JP2002524792A (ja) 1998-09-02 1999-09-02 プロセッサのワークメモリに後ロードされたプログラムモジュールをチップカード上でリンクする方法
US09/798,105 US20010034818A1 (en) 1998-09-02 2001-03-02 Method for linking program modules reloaded into a main memory of a processor on a smart card

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19840029A DE19840029C1 (de) 1998-09-02 1998-09-02 Verfahren zum Linken von in einen Arbeitsspeicher eines Prozessors nachgeladenen Programmodulen auf einer Chipkarte

Publications (1)

Publication Number Publication Date
DE19840029C1 true DE19840029C1 (de) 2000-04-20

Family

ID=7879588

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19840029A Expired - Fee Related DE19840029C1 (de) 1998-09-02 1998-09-02 Verfahren zum Linken von in einen Arbeitsspeicher eines Prozessors nachgeladenen Programmodulen auf einer Chipkarte

Country Status (7)

Country Link
US (1) US20010034818A1 (de)
EP (1) EP1145118A2 (de)
JP (1) JP2002524792A (de)
KR (1) KR20010079730A (de)
CN (1) CN1354853A (de)
DE (1) DE19840029C1 (de)
WO (1) WO2000014631A2 (de)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1047992B1 (de) 1998-01-16 2002-04-10 Macrovision Corporation System und verfahren zur beglaubigung gleichrangiger komponenten
US6802006B1 (en) 1999-01-15 2004-10-05 Macrovision Corporation System and method of verifying the authenticity of dynamically connectable executable images
US7650504B2 (en) 1999-07-22 2010-01-19 Macrovision Corporation System and method of verifying the authenticity of dynamically connectable executable images
JP4509291B2 (ja) * 2000-03-30 2010-07-21 大日本印刷株式会社 Icカード、icカードのプログラム更新装置、および、その方法
EP1303802B1 (de) * 2000-07-25 2013-01-16 Rovi Solutions Corporation System und verfahren zur verifikation der authentizität von dynamisch verbindbaren ausführbaren bilder
JP2005515520A (ja) * 2001-05-30 2005-05-26 リサーチ イン モーション リミテッド モバイル通信デバイスアプリケーション処理システム
US7131121B2 (en) * 2001-11-14 2006-10-31 Axalto, Inc. Method and apparatus for linking converted applet files without relocation annotations
NL1019876C2 (nl) * 2002-01-31 2003-08-04 Chess Embedded Technology B V Systeem en werkwijze voor het laden van een programmacode in een inrichting alsmede een werkwijze voor het voeden van een programmacode aan een inrichting.
FR2839792B1 (fr) * 2002-05-15 2004-08-20 Gemplus Card Int Procede de chargement d'une applet dans un objet electronique portatif
US7047101B1 (en) * 2002-07-29 2006-05-16 Kla-Tencor Technologies Corporation Reuse in semiconductor measurement recipes
DE102004058882A1 (de) * 2004-12-06 2006-06-08 Giesecke & Devrient Gmbh Erzeugen von Programmcode in einem Ladeformat und Bereitstellen von ausführbarem Programmcode
EP1724677A1 (de) * 2005-05-19 2006-11-22 Axalto SA System und Verfahren zur Speicherverwaltung in tragbarem Gerät
JP2010198139A (ja) * 2009-02-23 2010-09-09 Dainippon Printing Co Ltd プラットフォーム完全性検証システム及び方法,並びに,セキュリティトークン
DE112021007471T5 (de) * 2021-04-07 2024-01-18 Mitsubishi Electric Corporation Code-anpassungseinrichtung und code-anpassungsverfahren

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE6903042U (de) * 1968-01-26 1969-10-02 Hirst Buckley Ltd Steuermechanismus fuer maschinen, insbesondere fuer eine lagervorrichtung

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02214994A (ja) * 1989-02-15 1990-08-27 Hitachi Maxell Ltd Icカード
CA2066724C (en) * 1989-09-01 2000-12-05 Helge Knudsen Operating system and data base
US5507030A (en) * 1991-03-07 1996-04-09 Digitial Equipment Corporation Successive translation, execution and interpretation of computer program having code at unknown locations due to execution transfer instructions having computed destination addresses
CA2158848A1 (en) * 1993-03-23 1994-09-29 Erik L. Eidt Apparatus and method for a relocatable file format
US5734822A (en) * 1995-12-29 1998-03-31 Powertv, Inc. Apparatus and method for preprocessing computer programs prior to transmission across a network
US6055314A (en) * 1996-03-22 2000-04-25 Microsoft Corporation System and method for secure purchase and delivery of video content programs
FR2757970B1 (fr) * 1996-12-30 1999-03-26 Gemplus Card Int Procede de chargement d'un programme d'utilisation dans un support a puce
US6317872B1 (en) * 1997-07-11 2001-11-13 Rockwell Collins, Inc. Real time processor optimized for executing JAVA programs
US6282706B1 (en) * 1998-02-10 2001-08-28 Texas Instruments Incorporated Cache optimization for programming loops

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE6903042U (de) * 1968-01-26 1969-10-02 Hirst Buckley Ltd Steuermechanismus fuer maschinen, insbesondere fuer eine lagervorrichtung

Also Published As

Publication number Publication date
WO2000014631A2 (de) 2000-03-16
WO2000014631A3 (de) 2000-07-20
EP1145118A2 (de) 2001-10-17
KR20010079730A (ko) 2001-08-22
CN1354853A (zh) 2002-06-19
US20010034818A1 (en) 2001-10-25
JP2002524792A (ja) 2002-08-06

Similar Documents

Publication Publication Date Title
DE19840029C1 (de) Verfahren zum Linken von in einen Arbeitsspeicher eines Prozessors nachgeladenen Programmodulen auf einer Chipkarte
DE69918334T2 (de) Erzeugung von kompilierten programmen für interpretative laufzeitumgebungen
DE69123775T2 (de) Programmsteuersystem für eine tragbare Datenspeichervorrichtung
DE69817333T2 (de) Verfahren und Vorrichtung zum Laden von Befehlskodes in einen Speicher und zum Verbinden dieser Befehlskodes
DE19681256C2 (de) Ausführung von Anwendungen am Platz vom Speicher
DE68916853T2 (de) Unabhängige Programmlader für virtuelle Maschinenarchitektur.
DE2550268A1 (de) Schnelldrucker fuer datenverarbeitungssysteme
DE69932964T2 (de) Verfahren, System und Rechnerprogrammprodukt zur Initialisierung einer Datenstruktur beim ersten Gebrauch
DE3940302C2 (de)
EP2517105B1 (de) Verfahren zum komprimieren von bezeichnern
DE2725718A1 (de) Verarbeitungssystem mit mehreren virtuellen adressenraeumen
DE10324337B4 (de) Rechnersystem und zugehöriges Verfahren zum Durchführen eines Sicherheitsprogramms
DE60224937T2 (de) Verfahren und anordnung zum verknüpfen von verwandelten appletdateien
EP1352318B1 (de) Mikroprozessorschaltung für tragbare datenträger
DE19924702A1 (de) Systeme mit einheitlicher Datenstruktur, Verfahren und Computerprogrammprodukte zur Feststellung von globalen Konflikten
DE19933584A1 (de) Verfahren zur kompakten Darstellung von Informationspaketen und deren Speicherung oder Übertragung
DE3852432T2 (de) Befehlssteuerungsvorrichtung für ein Computersystem.
DE10357257A1 (de) Java Smart Card Chip mit für globale Variablen reserviertem Speicherbereich
DE2249852A1 (de) Computersystem
DE2516050A1 (de) Verfahren und einrichtung zur informationsspeicherung in einem datenverarbeitungssystem
WO2004100090A1 (de) Speicherverwaltung bei einem tragbaren datenträger
EP1920328B1 (de) Operationscode-umschaltung
DE102008044808B4 (de) Verfahren zur Generierung von Programmcode in einem Betriebssystemspeicher und einem Applikationsspeicher eines Datenträgers
EP1062630B1 (de) Datenträger
EP1600855B1 (de) Erzeugen und Verwenden von Speicherbelegungsinformationen bei einem tragbaren Datenträger

Legal Events

Date Code Title Description
8100 Publication of the examined application without publication of unexamined application
D1 Grant (no unexamined application published) patent law 81
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee