DDC-I - DDC-I

DDC-I, Inc.
Rodzaj Prywatne
Przemysł oprogramowanie wbudowane o krytycznym znaczeniu dla bezpieczeństwa
Założony 1985 ; 36 lat temu w Kongens Lyngby , Dania ( 1985 )
Siedziba Phoenix, Arizona
Kluczowi ludzie
Bob Morris, Prezes/CEO
Ole N.Oest, założyciel/CTO
Produkty Systemy operacyjne czasu rzeczywistego : Deos, HeartOS
kompilatora systemy: Ada
Strona internetowa www .ddci .com

DDC-I, Inc. to prywatna firma oferująca tworzenie oprogramowania dla systemów operacyjnych czasu rzeczywistego , narzędzi programistycznych oraz usług oprogramowania dla aplikacji wbudowanych o krytycznym znaczeniu dla bezpieczeństwa z siedzibą w Phoenix w Arizonie . Po raz pierwszy została utworzona w 1985 roku jako duńska firma DDC International A/S (znana również jako DDC-I A/S ), będąca komercyjnym rozwinięciem Dansk Datamatik Center , duńskiej organizacji zajmującej się badaniami i rozwojem oprogramowania z lat 80-tych. Amerykańska spółka zależna została utworzona w roku 1986. Od wielu lat firma specjalizuje się w kompilatory języków na język programowania Ada .

W 2003 roku duńskie biuro zostało zamknięte, a wszystkie operacje przeniesiono do lokalizacji w Phoenix.

Początki

Początki DDC International A/S sięgają Dansk Datamatik Center , duńskiej organizacji zajmującej się badaniami i rozwojem oprogramowania, która powstała w 1979 r., aby zademonstrować wartość stosowania nowoczesnych technik, zwłaszcza tych obejmujących metody formalne , w projektowaniu i tworzeniu oprogramowania. Wśród kilku jej projektów znalazło się stworzenie systemu kompilatora dla języka programowania Ada . Ada była językiem trudnym do zaimplementowania, a wczesne projekty kompilatora często okazywały się rozczarowaniem. Ale projekt kompilatora DDC był solidny i po raz pierwszy przeszedł testy zdolności walidacji kompilatora Ada (ACVC) sponsorowane przez Departament Obrony Stanów Zjednoczonych w systemie VAX / VMS we wrześniu 1984 roku. standard.

Sukces projektu Ada doprowadził do powstania w 1985 r. odrębnej firmy o nazwie DDC International A/S, której celem była komercjalizacja systemu kompilatora Ada. Podobnie jak jego twórcy, został oparty w Lyngby , Dania . Ole N. Oest został mianowany dyrektorem zarządzającym DDC International. W 1986 roku została założona DDC-I, Inc. jako amerykańska spółka zależna. Zlokalizowana w Phoenix w Arizonie skoncentrowała się na sprzedaży, obsłudze klienta i konsultingu inżynieryjnym w Stanach Zjednoczonych.

kompilator Ada

Firma DDC International A/S mieściła się w przebudowanej fabryce tekstyliów w Lyngby w Danii, tutaj widzianej w 1990 roku.

DDC-I założyłem działalność polegającą na sprzedaży produktu systemu kompilatora Ada, o nazwie DACS, bezpośrednio firmom, zarówno jako oprogramowanie do tworzenia projektów w Ada, jak i jako kod źródłowy producentom komputerów i innym osobom, które przekierowują go lub przekierowują na inne procesory i systemy operacyjne .

Pierwsza firma sprzedawała zarówno kompilatory natywne, jak i kompilatory skrośne , przy czym te drugie były bardziej popularne, ponieważ Ada była używana głównie w dziedzinie systemów wbudowanych . Jednym z pierwszych kompilatorów krzyżowych opracowanych przez DDC-I był od VAX/VMS do Intel 8086 i Intel 80286 ; wysiłek ten był już w toku na początku 1985 roku. Rozpoczął się jako wspólne przedsięwzięcie z włoską firmą elektroniki obronnej Selenia, która miała na celu zarówno komputery wielomikroprocesorowe MARA-860, jak i MARA-286, oparte na architekturach 8086 i 80286 oraz generyczne systemy wbudowane. oraz hostujące systemy operacyjne systemy 8086 i 80286. Ta praca była początkiem tego, co stało się najlepiej sprzedającą się linią produktów dla firmy. DDC-I zyskał reputację wysokiej jakości kompilatorów krzyżowych Ada i systemów wykonawczych dla procesorów Intel 80x86 .

Druga firma korzystała z tego, co zostało nazwane zestawem DDC OEM Compiler Kit, który mógł używać interfejsu Ada do kompilacji innych hostów lub celów lub innych narzędzi, takich jak VLSI . Na spotkaniu we wrześniu 1985 roku w Lund, Szwecja , kilku klientów OEM Kit utworzyło grupę DDC Ada Compiler Retargeter's Group. W latach 1985 i 1986 odbył co najmniej trzy spotkania. Wśród pierwszych klientów OEM znaleźli się Uniwersytet w Lund , Administracja Materiałów Obronnych i Ericsson Radio Systems w Szwecji; Softplan i Nokia Information Systems w Finlandii; Selenia i Olivetti we Włoszech; ICL Defense Systems i STL Ltd w Wielkiej Brytanii; Inżynieria oprogramowania Aitech w Izraelu; oraz Advanced Computer Techniques , Rockwell Collins , Control Data Corporation oraz General Systems Group w Stanach Zjednoczonych.

Kilku programistów kompilatorów Ada w DDC International w Lyngby w 1990 roku.

Późniejsi programiści często byli mniej zorientowani w metodach formalnych i nie używali ich w pracy nad kompilatorem. Było to tym bardziej w przypadku firm retargetujących kompilator, z których wiele nie znało języka Ada.

DDC-I był na tym samym rynku, co kilka innych firm kompilujących Ada, w tym Alsys , TeleSoft , Verdix , Tartan Laboratories i TLD Systems . (DDC-I zostałbym w branży dłużej niż którykolwiek z tych innych.) Podobnie jak w przypadku innych dostawców kompilatorów Ada, większość czasu inżynierów DDC-I poświęcono na dostosowanie się do dużych, trudnych możliwości walidacji kompilatorów Ada (ACVC). ) ustandaryzowany zestaw testów językowych i wykonawczych.

Począwszy od 1988 roku i przez kilka lat, konsultanci DDC-I współpracowali z firmą Honeywell Air Transport Systems w celu ponownego ukierunkowania i optymalizacji kompilatora DDC-I Ada do procesora AMD 29050 . Ten oparty na DDC-I system krzyżowego kompilatora został wykorzystany do opracowania podstawowego oprogramowania lotu dla samolotu Boeing 777 . To oprogramowanie, nazwane Airplane Information Management System , stałoby się prawdopodobnie najbardziej znanym ze wszystkich projektów Ada-in-use, cywilnych lub wojskowych. Około 550 programistów w Honeywell pracowało nad systemem lotu i zostało to nagłośnione jako główna historia sukcesu Ady.

Biuro deweloperskie DDC-I w Nowym Jorku znajdowało się na 31. piętrze tego budynku.

W październiku 1991 roku ogłoszono, że DDC-I nabyło biznes systemów wbudowanych Ada i JOVIAL firmy InterACT , który stał się przedsięwzięciem Advanced Computer Techniques. Ten w całości należący do Nowego Jorku podmiot został krótko nazwany DDC-Inter, zanim został włączony do właściwego DDC-I. To wprowadziło do linii produktów kompilatory skrośne Ada dla procesorów MIL-STD-1750A i MIPS R3000 oraz kompilatory skrośne języka JOVIAL dla MIL-STD-1750A i Zilog Z8002 . Produkt MIPS był tym, na który DDC-I zwrócił uwagę, z wysiłkami inżynieryjnymi, które obejmowały automatyczne rozpoznawanie pewnych optymalizacji zadań, i pracami w sponsorowanym przez Siły Powietrzne USA projekcie Common Ada Runtime System (CARTS) w celu zapewnienia standardowych interfejsów w środowiskach wykonawczych Ada.

Pod koniec 1993 roku biuro w Nowym Jorku zostało zamknięte, a jego praca przeniesiona do biura w Phoenix.

Na początku lat 1990, DDC-Zaproponowałem Ada natywne kompilatory dla VAX / VMS, Sun-3 i SPARC pod SunOS i Intel 80386 pod System V i OS / 2 , a oferowane krzyż kompilatory dla Motorola 680x0 i Intel i860 oprócz do wyżej wymienionych celów.

Ada 95 i eksploracje innych linii produktowych

Biuro DDC International w Lyngby pokazało elementy duńskiego designu, tutaj widziane w 1992 roku.

Na początku lat dziewięćdziesiątych firma DDC-I pracowała nad przeprojektowaniem systemu kompilatora dla szeroko zakrojonej wersji standardu językowego Ada 95. Wykorzystali nowy projekt programowania obiektowego i nadal stosowali podejście metod formalnych, wykorzystując VDM-SL . Praca została wykonana pod patronatem projektu Global Language and Uniform Environment (OMI/GLUE) European Community-based Open Microprocessor Initiative , gdzie zadaniem DDC-I było stworzenie kompilatora ukierunkowanego na pośredni format Architecture Neutral Distribution Format (ANDF). formie, z zamiarem szybkiego wprowadzenia Ady 95 na więcej platform. W ramach tej pracy DDC-I współpracowało z Agencją ds. Oceny i Badań Obronnych nad rozszerzeniem niektórych zdolności ANDF do wyrażania semantyki Ady i szybko rozwijającego się języka programowania C++ . Praca w obszarach specyficznych dla Ady, takich jak eliminacja sprawdzania granic , została wykonana w celu uzyskania optymalnej wydajności w czasie wykonywania.

Środowisko oprogramowania Ada było początkowo uważane za obiecujący rynek. Ale biznes kompilatora Ady okazał się trudny do prowadzenia. W tym czasie, 1987-1997, obowiązywał mandat rządu USA na używanie Ady, aczkolwiek z pewnymi zwolnieniami. Wiele zalet języka do programowania ogólnego przeznaczenia nie było postrzeganych jako takie przez ogólną społeczność inżynierów oprogramowania ani przez nauczycieli. Sytuacja sprzedaży była trudna, z okresowymi małymi zwolnieniami. Mimo konsolidacji wśród innych dostawców narzędzi Ady, DDC-I pozostało niezależną firmą.

W każdym razie DDC-I był entuzjastycznym zwolennikiem języka Ada, do użytku w firmie i na zewnątrz. Artykuł jednego z jej inżynierów, opublikowany w 1993 roku, ocenił cechy zorientowane obiektowo Ady 95 na korzyść C++ i przyciągnął pewną uwagę.

Widok palm z biura DDC-I w Phoenix, 1993.

W tym samym czasie firma podjęła próbę rozszerzenia i powiększenia swojej linii produktów. Dostępny był zestaw narzędzi RAISE, podobnie jak Cedar, narzędzie do projektowania systemów czasu rzeczywistego. Oferowane było również Beologic , narzędzie do tworzenia i uruchamiania części stanów/zdarzeń aplikacji, które było licencjonowane przez Bang & Olufsen i zintegrowane z systemem kompilatora Ada. Największy wysiłek był w kierunku C++. DDC-I rozpoczęło oferowanie 1st Object Exec, opartego na C++ systemu operacyjnego czasu rzeczywistego przeznaczonego do bezpośredniej obsługi wbudowanych aplikacji na poziomie obiektowym. Pomimo znacznych wysiłków w latach 1993-94, 1st Object Exec nie zdołał zdobyć rozgłosu na rynku.

Jedynym obszarem, w którym Ada zyskała solidny przyczółek, były aplikacje czasu rzeczywistego o wysokiej niezawodności, wysokiej integralności i krytyczne dla bezpieczeństwa, takie jak lotnictwo. Bazując na swoim doświadczeniu z firmą Honeywell i innymi klientami, firma DDC-I zdobyła wiedzę specjalistyczną w zakresie mapowania języka Ada i funkcji środowiska wykonawczego do wymagań certyfikatów krytycznych dla bezpieczeństwa, w szczególności certyfikatów DO-178B (Rozważania dotyczące oprogramowania w systemach pokładowych i certyfikacji sprzętu). ) i dostarczone narzędzia do tego procesu. Takie zastosowania były kontynuowane nawet po zniesieniu mandatu Ady w 1997 r. Na przykład w 1997 r. firma otrzymała wspólny kontrakt z Sikorsky Aircraft i Boeing Defence & Space Group ’s Helicopters Division na opracowanie oprogramowania do wykorzystania w Boeing/Sikorsky RAH -66 Komancze .

W marcu 1998 DDC-I nabyło od Texas Instruments prawa do rozwoju, sprzedaży i marketingu kompilatorów Tartan Ada dla celów Intel i960 , Motorola 680x0 i MIL-STD-1750A.

Wsparcie dla rozwoju języków mieszanych zostało dodane w 2000 roku wraz z dodaniem języka programowania C jako części zintegrowanego środowiska programistycznego DDC-I dla mieszanych języków dla SCORE (dla krytycznych dla bezpieczeństwa, zorientowanych obiektowo, osadzonych w czasie rzeczywistym). Wykorzystując format ANDF, znormalizowany format debugowania DWARF oraz protokół OMI do komunikacji z monitorami debugowania płyty docelowej, SCORE był w stanie zapewnić wspólne środowisko budowania i debugowania dla twórców aplikacji działających w czasie rzeczywistym. Wsparcie dla Embedded C++ zostało dodane do SCORE w 2003 roku, dzięki czemu możliwe było zintegrowanie go z różnymi scenariuszami płyt docelowych na procesorach Intel x86 i Power PC . Kompilatory C i Embedded C++ dla ANDF pochodzą z umowy licencyjnej dla kompilatora TenDRA (później DDC-I został opiekunem tych kompilatorów). Następnie do SCORE dodano obsługę Ada 95 dla starszych procesorów 1750A i TMS320C4x .

Centrala w USA i systemy operacyjne czasu rzeczywistego

Do kwietnia 2003 r. przemysł odszedł od Ady, a spadająca pozycja przemysłu lotniczego zebrała swoje żniwo i DDC-I poniosła znaczne straty finansowe. DDC-I postanowiło zamknąć duńskie biuro w Lyngby i przenieść wszystkie operacje do Phoenix.

We wrześniu 2005 r. firma wyznaczyła Boba Morrisa, poprzednio członka LynuxWorks , na stanowisko prezesa i dyrektora generalnego. Oest został dyrektorem ds. technologii. W kwietniu 2006 roku firma DDC-I przeniosła się do nowych biur w północnej części Phoenix, stwierdzając, że rozwija się i spodziewa się wzrostu przychodów o 40-50 procent w porównaniu z poprzednim rokiem.

Od 2006 roku firma współtworzy grupę Java Expert Group for Safety Critical Java. Ta praca, która wykorzystuje specyfikację czasu rzeczywistego dla Javy jako podstawę, a następnie określa podzbiory języka i biblioteki oraz reguły kodowania do użycia w celu zapewnienia wystarczającego determinizmu, jest postrzegana przez przedstawicieli firmy jako czyniąca Javę prawdopodobnie równą lub lepszą niż Ada lub C++ jako język aplikacji o krytycznym znaczeniu dla bezpieczeństwa. Firma postrzega krytyczny dla bezpieczeństwa profil Java jako taki, który może pomóc przemysłowi obronnemu uporać się z problemem starzejącego się oprogramowania i sprzętu. Do 2008 r. DDC-I odnosiło się do Ady jako języka starszego i oferowało półautomatyczne narzędzia i profesjonalne usługi, aby pomóc klientom w migracji do nowszych rozwiązań.

W listopadzie 2008 roku firma weszła na rynek wbudowanych systemów operacyjnych czasu rzeczywistego (RTOS) z dwoma produktami, Deos i HeartOS. Oba były oparte na technologii oprogramowania opracowanej przez Honeywell International i już wdrożonej w wielu samolotach komercyjnych i wojskowych. W ramach akcji DDC-I zatrudnił kilku kluczowych pracowników inżynieryjnych firmy Honeywell, którzy zaprojektowali Deos. Inne firmy w tym samym segmencie rynku RTOS co DDC-I to LynuxWorks , Wind River Systems , SYSGO i Express Logic .

Produkty

  • Deos to system operacyjny czasu rzeczywistego z partycjami czasu i przestrzeni (RTOS), który po raz pierwszy uzyskał certyfikat DO-178B poziomu A w 1998 roku. Deos zawiera kilka opatentowanych funkcji architektonicznych, w tym ulepszenia wykorzystania procesora, ponowne wykorzystanie oprogramowania binarnego i bezpieczne planowanie dla wielordzeniowych procesory. Użytkownicy Deos mają możliwość dodania opcjonalnych modułów osobowości ARINC 653 zaprojektowanych tak, aby pasowały do ​​różnych potrzeb aplikacji. Deos obsługuje procesory ARM , MIPS , PowerPC i x86 i jest obsługiwany przez popularne biblioteki SSL/TLS takie jak wolfSSL . Został wymieniony jako jeden z 100 najlepszych produktów elektronicznych 2009 roku przez magazyn EDN .
  • HeartOS to oparty na POSIX twardy system operacyjny czasu rzeczywistego, zaprojektowany dla małych i średnich aplikacji wbudowanych, w tym typów krytycznych dla bezpieczeństwa. Obsługuje ARM, PowerPC, x86 i inne 16-bitowe i 32-bitowe procesory. Jest konfigurowalny bez warstwy interfejsu POSIX dla systemów z ograniczoną pamięcią.
  • OpenArbor to zintegrowane środowisko programistyczne oparte na środowisku Eclipse do tworzenia aplikacji w językach C, Embedded C++ i Ada. Został ogłoszony w 2007 roku.
  • SCORE to mieszany język zestaw zintegrowanych narzędzi dla krytycznych dla bezpieczeństwa, zorientowanych obiektowo, osadzonych aplikacji czasu rzeczywistego, obsługujących aplikacje Ada, C i Embedded C++ dla różnych architektur osadzonych.
  • Starsze produkty systemowe kompilatorów Ada 83 i JOVIAL również są nadal obsługiwane.

Bibliografia

  • Bjørner, Dines; Grama, Chrześcijanina; Oest, Ole N.; Rystrøm, Leif (2011). „Dańskie Centrum Datamatik”. W Impagliazzo, John; Lundin, Per; Wangler, Benkt (red.). Historia Nordic Computing 3: Postępy IFIP w technologii informacyjnej i komunikacyjnej . Skoczek. s. 350-359. Nieco rozszerzona wersja tego rozdziału jest dostępna online pod adresem https://www.researchgate.net/publication/221271386_Dansk_Datamatik_Center . Dalsza rozszerzona wersja jest częścią pamiętnika online Bjørnera pod adresem http://www.imm.dtu.dk/~dibj/trivia/node5.html . Prezentacja slajdów autorstwa Grama na podstawie artykułu jest dostępna online jako Dlaczego Dansk Datamatik Center?
  • Bjørner, Dines; Havelund, Klaus. „40 lat metod formalnych: niektóre przeszkody i pewne możliwości?”. FM 2014: Metody formalne: XIX Międzynarodowe Sympozjum, Singapur, 12–16 maja 2014 r . Materiały . Skoczek. s. 42-61.
  • Bundgaard, Jørgen (maj 1985). „Rozwój interfejsu Ada dla małych komputerów”. SIGada '85: Materiały z dorocznej międzynarodowej konferencji ACM SIGada poświęconej Ada w 1985 roku . Stowarzyszenie na rzecz Maszyn Komputerowych. s. 321–328.
  • Bundgaard, Jørgen. „System kompilatora Ada 95 oparty na ANDF”. Materiały z konferencji TRI-Ada '95, 5-10 listopada 1995 . Stowarzyszenie na rzecz Maszyn Komputerowych. s. 436-445.
  • Clemmensen, Geert B.; Oest, Ole N. (marzec 1984). „Specyfikacja formalna i rozwój kompilatora Ada – studium przypadku VDM”. ICSE '84 Materiały 7. międzynarodowej konferencji na temat inżynierii oprogramowania . Prasa IEEE. s. 430–440.
  • Clemmensen, Geert B. (styczeń 1986). „Retargeting i rehosting systemu kompilatora DDC Ada: studium przypadku – Honeywell DPS 6”. ACM SIGada Ada Listy . 6 (1): 22–28. doi : 10.1145/382256.382794 .
  • Biuletyn . Grupa DDC Ada Compiler Retargeter. 1 . Listopad 1985.
  • Biuletyn . Grupa DDC Ada Compiler Retargeter. 2 . Sierpień 1986.
  • Biuletyn . Grupa DDC Ada Compiler Retargeter. 3 . Grudzień 1986.
  • Fergania, Adel; Szewerenko, Leland; Rabinowitz, Mosze; Salomona, Eliezer N.; Pitary, Marc; Benjamin, Clive L. „Wdrożenie asynchronicznych wywołań wejścia na dwie różne architektury”. NAECON 1993: Proceedings of IEEE 1993 National Aerospace and Electronics Conference, 24-28 maja 1993 . s. 486-495.
  • Fitzgerald, John S.; Larsen, Peter Gorm; Verhoef, Marcel (2009). „Metoda rozwoju wiedeńskiego”. W Wah Benjamin W. (red.). Wiley Encyklopedia Informatyki i Inżynierii . Wileya. s. 2971–2982.
  • Mróz, Jakubie. „Rozwiązanie Ada95 do certyfikacji aplikacji o krytycznym znaczeniu dla bezpieczeństwa”. Niezawodne technologie oprogramowania – Ada-Europe '99 . s. 52–63.
  • Jerzego, Chrisa. „Język specyfikacji RAISE: samouczek”. VDM '91: Formalne Metody Rozwoju Oprogramowania: IV Międzynarodowe Sympozjum VDM Europe, Noordwijkerhout, Holandia, październik 1991, Proceedings . 2 . Springer-Verlag. s. 238-319.
  • Ibsen, Leif (styczeń 1984). „Przenośna maszyna wirtualna dla Ady”. Oprogramowanie: praktyka i doświadczenie . 14 (1): 17–29. doi : 10.1002/spe.4380140104 .
  • Jorgensena, Jespera. „Porównanie funkcji zorientowanych obiektowo w Ada 9X i C++”. Ada-Europe '93: 12. Międzynarodowa Konferencja Ada-Europe, Paryż, Francja, 14-18 czerwca 1993. Proceedings . s. 125-141.
  • Mancusi, Richard; Tokar, Joyce L.; Rabinowitz, Mosze; Salomona, Eliezer N.; Pitary, Marc; Benjamin, Clive L. „Obsługa przerwań rzeczywistych i wirtualnych: mapowanie funkcji WÓZKI do dwóch różnych architektur”. Ada-Europe '93: 12. Międzynarodowa Konferencja Ada-Europe, Paryż, Francja, 14-18 czerwca 1993. Proceedings . s. 314-329.
  • Møllera, Petera Lützena. „Eliminacja testu w czasie wykonywania dla Ada 9X”. Materiały z konferencji TRI-Ada '94, 6-11 listopada 1994 r . Stowarzyszenie na rzecz Maszyn Komputerowych. s. 122–128.
  • Rehmer, Karl (2009). „Zespół HADS”. W Stellman, Andrew; Greene, Jennifer (red.). Piękne zespoły: inspirujące i przestrogi opowieści doświadczonych liderów zespołów . Sewastopol, Kalifornia: O'Reilly. s. 299-312.
  • Rosen, Jean-Pierre (wrzesień 2009). „Paradoks(y) Ady”. Listy SIGada Ada . 29 (2): 28-35. doi : 10.1145/1620593.1620597 .
  • „Wywiad z Oscarem Schachterem” (Wywiad). Wywiad przeprowadził Thomas Haigh. Instytut Charlesa Babbage'a, Uniwersytet Minnesota. 7 maja 2004 r.Wpis WorldCat
  • Schilling, Jonathan L. „Korzystanie z Ady w środowisku komercyjnym małej firmy”. WADAS '93 Proceedings of the X Annual Washington Ada sympozjum na temat Ady: 28 czerwca – 1 lipca 1993 . ACM. s. 89-94.
  • Schillinga, Jonathana L.; Nielsen, Johan Olmütz (maj-czerwiec 1994). „Automatyczne rozpoznawanie zadań monitora przez kompilator”. Listy SIGada Ada . 14 (3): 91–104. doi : 10.1145/181468.181474 .
  • Sward, Ricky E. (listopad 2010). „Wzlot, upadek i wytrwałość Ady”. SIGada '10: Materiały z corocznej międzynarodowej konferencji ACM SIGada na temat SIGada . s. 71-74.
  • Whitaker, William A. (1996). „Ada — Projekt: Grupa Robocza Języka Wysokiego Zakonu DoD” . W Bergin Thomas J.; Gibson, Richard G. (red.). Historia języków programowania — II . Addison-Wesley Profesjonalista. s. 173–232.

Bibliografia

Zewnętrzne linki

Kubek DDC-I z lat 90.