next up previous contents
Next: Aplikacje na kartę w języku Up: Programowalne karty procesorowe Previous: Modyfikacja systemu w pamięci   Spis tresci


Modyfikacja systemu w pamięci nieulotnej

Najpoważniejszą wadą opisanego wyżej mechanizmu jest konieczność wgrywania nowej maski w procesie produkcyjnym. Poradzono sobie z tym wykorzystując do przechowywania maski pamięć nieulotną (NVM), używaną do tej pory tylko do przechowywania danych. Pamięć ta pozwala na swobodne zapisywanie do niej danych, dzięki czemu każdy może we własnym zakresie załadować oprogramowanie na kartę. Należy tylko zezwolić na wykonywanie przez procesor kodu bezpośrednio z pamięci nieulotnej oraz wyposażyć kartę w system operacyjny otwarty na modyfikacje. Nie ma jednak róży bez kolców: wykonywanie kodu zapisanego w pamięci nieulotnej, której zawartość może być swobodnie modyfikowana jest potencjalnie niebezpieczne. Nie można zezwolić użytkownikowi np. systemu elektronicznej gotówki na modyfikacje wykorzystywanych w tym systemie algorytmów. Karta musi pilnować teraz dostępu nie tylko do zapisanych w niej danych, lecz również do sterującego nią kodu. W niektórych kartach wykorzystano do przechowywania kodu pamięć nieulotną, która po zapisaniu maski i jej zatwierdzeniu stawała się pamięcią tylko do odczytu (wykorzystany fragment był zaznaczany jako niemodyfikowalny). Rozwiązanie takie, jakkolwiek niewątpliwie skuteczne, było mało elastyczne.

Jedną z firm, która zrealizowała opisywany mechanizm, jest Schlumberger. Powstał system operacyjny SCOS (Schlumberger Customer Oriented System) przeznaczony dla kart rodziny Multiflex. System ten pozwala użytkownikowi ładować kod do pamięci nieulotnej i później go wykonywać. Załadowane oprogramowanie może zarówno rozszerzyć funkcjonalność systemu SCOS, jak i całkowicie przejąć kontrolę nad kartą (nowy system operacyjny karty). Użytkownik może:

Opisywany mechanizm ładowania maski do pamięci nieulotnej rozwiązał problem konieczności współpracy z producentem kart przy dostosowywaniu ich do potrzeb konkretnego systemu. Nadal jednak oprogramowanie tworzone jest w języku maszynowym. Istnieją co prawda kompilatory języka C dla karty Multiflex, lecz napisanie całego systemu operacyjnego w języku wysokiego poziomu jest niemożliwe. Tworzone oprogramowanie w dalszym ciągu jest nieprzenośne, nie da się go wykorzystać na karcie innego producenta. W tym przypadku musi ono być nie tylko zgodne z zainstalowanym na karcie procesorem, lecz również z systemem operacyjnym umieszczonym przez producenta w pamięci ROM.


next up previous contents
Next: Aplikacje na kartę w języku Up: Programowalne karty procesorowe Previous: Modyfikacja systemu w pamięci   Spis tresci
Janina Mincer-Daszkiewicz 2001-11-21