Exec (Amiga)

exec.library
FejlesztőCarl Sassenrath
Első kiadásv30 / AmigaOS 1.0 (1985-07-23, 41 éve)
Legfrissebb stabil kiadásV54 / AmigaOS 4.1 FE Update 3
(2025-10-18)
Operációs rendszerAmigaOS
PlatformAmiga
Kategóriamikrokernel, függvénykönyvtár
LicencZárt forráskódú szoftver

Az exec az AmigaOS mikrokernele, mely Carl Sassenrath munkája. Mindössze 13 KiB helyet foglal el és preemptív többfeladatos végrehajtást valósít meg prioritizált round-robin feladatütemezéssel, az elsőként kiadott Amiga 1000 256 KiB memóriáját felhasználva. A többfeladatúsághoz kapcsolódó funkciók mellett memória-, megszakítás- és dinamikus funkciókönyvtár- (library), illetve eszközkezelést (device) is végez.

Az exec ezen túl hozzáférést biztosít más függvénykönyvtárakhoz valamint magasszintű folyamatok közötti kommunikációhoz, message passing használatával. Más mikrokerneleknek teljesítménycsökkenést okoz az üzenetek másolása címterületek között de mivel az Amiga csak egy címterületet használ, ezért az exec üzenetküldés (message-passing) nagyon hatékony. Az egyedüli rögzített memóriacím az Amiga rendszerben ($00000004) az exec.library pointere, ami a többi könyvtár elérésére használható.

Exec

Más hagyományos rendszerekkel ellentétben az exec kernel nem fut "privilegizáltan". A Motorola 68000 processzorra írt korabeli operációs rendszerek, úgymint az Atari TOS és a SunOS, trap utasításokat használtak a kernel függvények meghívására. Ez a kernel függvényeket a 68000 supervisor módjába kényszerítette, amíg a felhasználói programok nem-privilegizált módban futottak. Ezzel ellentétben, az exec függvényhívások a könyvtár ugrótáblájával vannak megvalósítva és a kernel kód user módban kerül végrehajtásra. Ha valamikor is a supervisor mód szükségessé válik, akár a kernel vagy a felhasználói programok számára, a Supervisor() vagy SuperState() funkciókkal történik annak a bekapcsolása.

Az exec korlátja volt, hogy egy nem együttműködő program hosszú időre bénítani tudta a többfeladatos működést, vagy végtelenségig az exec Forbid() vagy Disable() függvényeit hívta meg, mely a rendszerkörnyezet működését lényegében egyfeladatossá tette. Szoftverhiba, illetve szándékosság is eredményezhette ugyanezt. Mindemellett az exec kielégíti a preemptív feladatütemezés definícióját.

Linus Torvalds a Linux operációs rendszer kernelének kifejlesztője az Amiga megvalósítását kooperatívnak nevezte, annak ellenére, hogy preemptív feladatütemezője van. Az indoka erre az volt, hogy a memóriavédelem hiánya miatt egy futó feladat (task) meg tudja akadályozni a rendszer preemptív működését. Ugyanis a futó feladatoknak úgy kellene dönteniük, hogy ne állítsák le a preemptív mechanizmust, ami egyfajta fordított kooperatív rendszert hozna létre. A védelem és a feladatütemezői eljárásmód ilyen jellegű összeférhetetlensége nem szabványos.

ExecSG

Az ExecSG (Exec Second Generation), az AmigaOS 4 rendszermagja. A licencét a Hyperion Entertainment birtokolja és Thomas Frieden, illetve Hans-Jörg Frieden fejlesztette 2002 elejétől kezdődően. Ez a kernel ugyanazokat a fő jellegzetességeket mutatja, mint az amigás elődje, de PowerPC alatt fut. Különbség még, hogy az AmigaOS 4.x függvénykönyvtárai egynél több függvénytáblát (interface) és annak pointer-eit képesek exportálni.

Az ExecSG több processzormagos (multicore) támogatásának fejlesztése már régóta zajlik. A Németországban 2025 októberében megrendezésre került Amiga40 rendezvényen jelentették be, hogy áttörést értek el e tekintetben és hamarosan várható a megjelenés.

Jegyzetek

  1. 1 2 3 4 5 AmigaSpirit_wiki
  2. ↑ "Libraries Manual Guide". amigadev.elowar.com (angol nyelven). Hozzáférés: 2020. március 6. {{cite web}}: External link in |website= (súgó)
  3. ↑ "Programming AmigaOS in C". pjhutchison.org (angol nyelven). Hozzáférés: 2020. március 6. {{cite web}}: External link in |website= (súgó)
  4. ↑ "AmigaOS 4.1 Final Edition: Update 3 available" (Press release) (angol nyelven). Brussels: Hyperion Entertainment. amiga-news.de. 2025. október 18. Hozzáférés: 2025. november 4.
  5. ↑ Manual
  6. ↑ Holloway, Tim (1991. január). "The Object-Oriented Amiga Exec: The design of the Amiga operating-system kernel follows the rules of object-oriented programming". Byte (angol nyelven) (January 1991). McGraw-Hill: 329–332, 234. ISSN 0360-5280.
  7. 1 2 AmigaOS_wiki
  8. 1 2 Interview
  9. ↑ Stallings, William (2009). Operating Systems - Internals and Design Principles (angol nyelven) (6th edition ed.). Upper Saddle River, NJ: Pearson Prentice Hall. ISBN 9788120336292. {{cite book}}: |edition= has extra text (súgó)
  10. ↑ Linus Torvalds (1996. október 17.). "Jalleen mahtava uusi keksinto m$oftilta". sfnet.atk.sodat (finn nyelven). Hozzáférés: 2020. március 10.{{cite news}}: CS1 karbantartás: elavult archiválási szolgáltatás (link)
  11. ↑ "Exec". docs.justia.com (angol nyelven). Hozzáférés: 2020. március 10. {{cite web}}: External link in |website= (súgó)
  12. ↑ "AmigaOS3.3 / OS4.1 Update 3 / Pistorm / PPC coming to Eu68 / Mirari / ExecSG Multicore / Amiga40 event". amigang.com (angol nyelven). Hozzáférés: 2025. november 4.

Kapcsolódó szócikkek

Források

Fordítás