Szerzô: Micsik András
Megjelent az Infopen magazin 1994 augusztus-szeptemberi számában
Egyre közelebb kerül az az idôpont, amikor az egységes UNIX API specifikáció - más nevein Core OS API, Common API, CAPI, vagy a benne szereplô interfészek száma alapján a Spec 1170 - kilép az X/Open berkeibôl, és megkezdi mûködését a piacon. Mike Lambert, az X/Open technikai vezetôje közölte, hogy a specifikáció gyorsított elfogadási folyamata befejezôdött, és már csak a végsô szerkesztés van hátra. Ezek szerint a Spec 1170 megjelenése már ebben a negyedévben várható.
Az X/Open második negyedévi dokumentációs CD-ROM-ján már megtalálható az a tervezet, amely bekerülhet az XPG4 ajánláskészletbe. Az egységes UNIX alkotóelemei négy részre osztva jelentek meg, a System Interfaces and Headers, Commands and Utilities, System Interface Definitions, valamint az Internationalised Terminal Interfaces (XCURSES) kötetekben. A UNIX-ra vonatkozó definíciók az X/Open régebbi specifikációiba ágyazódnak, és egy külön úgynevezett opciócsoportot alkotnak. A UNIX védjegyes rendszerek tehát annyiban fognak különbözni az XPG4 védjegyes rendszerektôl, hogy számukra a UNIX opciócsoport támogatása kötelezô lesz.
1. táblázat: Dátumok az egységes UNIX API történetében
'93 március A COSE megalakulása '93 szeptember A specifikáció megjelenése '94 január A specifikáció átadása az X/Open-nek '94 július Az X/Open specifikáció tervezet megjelenése '94 év vége (terv) A specifikáció véglegesítése, a védjegyezés elindítása
Talán nem haszontalan felidézni a Spec 1170 eddigi történetét, amely a COSE (Common Open Software Environment) megalakulásáig nyúlik vissza. A COSE célja a nyílt rendszeres kulcstechnológiák definiálása és fokozatos fejlesztése volt, amely munkát a CDE (Common Desktop Environment) elôkészítésével kezdték meg. A következô területeket jelölték még meg késôbbi tevékenységeik célpontjául: egységes operációs rendszer API, rendszeradminisztráció, hálózatok, grafika, multimédia, objektumok. A CDE specifikáció, amely egy közös megjelenítési felületet és alkalmazások közötti együttmûködést ír le, szintén arra vár, hogy az X/Open ajánlások sorába kerülhessen. A helyzet azonban furcsán fordult, ugyanis - talán a gyengébb konszenzus miatt - a CDE jócskán késik, és így, annak ellenére, hogy az egységes UNIX API késôbb került az X/Open-hez, elfogadása elôbb várható, mint a CDE elfogadása.
Az egységes UNIX API kidolgozásánál a létezô és elismert szabványok biztosították a kiindulópontot. A munkacsoport úgy gondolta, hogy ha a szabványokat nem módosítják, hanem csak kibôvítik, akkor az azokhoz igazodó alkalmazások egy olyan bázist jelentenek, amelyet könnyebb átdolgozni az új specifikációnak megfelelôen. Az X/Open XPG4 operációs rendszer környezete lett végül is az alap, amely az API interfészeinek körülbelül felét adta. Ezt a választást egyrészt az X/Open széles körben elfogadott tevékenysége indokolta, másrészt pedig az, hogy az XPG4 támogatja az e területre vonatkozó fontos nemzetközi szabványokat (POSIX.1, POSIX.2, ISO C). Az XPG4-bôl származik az a 174 shell-parancs is, amelyeket a programokban gyakrabban használnak, valamint számos header.
A következô forrás a Unix International és az OSF két korábbi Unix specifikációja volt, amelyekbôl a System V Interface Definition (SVID) Edition 3 Level 1 és az Application Environment Specification (AES) Full Use interfészek kerültek bele az egységes UNIX-ba. A SVID-bôl származó interfészek nagy részét a curses terminál-kezelô szoftver új, színes és többnyelvû változata adja, amely az XPG4 régebbi (XCURSES) specifikációját fogja felváltani. Az AES Full Use általában megfelelt az XPG4-nek, így néhány interfész átvételével megoldódott a kompatibilitás a Spec 1170-nel.
A szabványok sorravétele után azt vizsgálták, hogy mennyiben kell bôvíteni az eddigi API-készletet a programozási felhasználtság alapján. Kiválasztottak 50 szoftverterméket valamint szoftver modulokat a különbözô platformokról, összesen több mint 3500-at. Az alkalmazásokat az IDC 1992-es felmérésében közzétett legnagyobb eladási példányszámmal rendelkezôk közül válogatták, de úgy, hogy egyik szoftver ágazat se legyen túlnyomó többségben. Annak a feltétele, hogy egy eljárás bekerüljön az elbírálandók közé, vagy az elsô 10 alkalmazás valamelyikének, vagy a következô 40 alkalmazásból háromnak kellett felhasználnia azt. Ezen kívül úgy is bekerülhetett egy eljárás, ha legalább két különbözô platformon hét vagy több modul hívta. Ilyen kritériumrendszer szerint elemezték a kiválasztott szoftverekben elôforduló hívásokat, és így 130 olyan eljárást találtak, amely megfelelt a kritériumoknak, és nem szerepelt az addigi API-k között. Ezek leginkább olyan a UNIX Berkeley változatából származó hívások voltak, amelyek kimaradtak az általános UNIX specifikációkból. Amennyiben egy ilyen eljárás nem volt ellentétben a szabványokkal, hozzáadták az egységes UNIX API-hoz.
Természetesen adódtak olyan feladatok, amelyek megoldására több különbözô interfész is bekerült az egységes UNIX kezdeti változatába. Az ilyen ismétlôdések kiküszöbölése többféle megoldást eredményezett. Általában a kevésbé elterjedt interfészeket kihagyták a specifikációból az elterjedtebbek javára. Sok esetben azonban túl sok alkalmazást érintett volna az, ha egy interfész kimarad, ezért ilyenkor megengedték a dupla funkcionalitást. A memóriakezelô rutinoknak például mind a szabványos, mind a Berkeley változata benn maradt a Spec 1170-ben. Hasonlóan a hálózati API tartalmazni fogja a BSD 4.3 Reno socket-eket, és az X/Open Transport Interface-t (XTI) is. Vannak olyan esetek is, ahol a kétféle interfész egyidejû használatát korlátozni kell, mint például a szignálok kezelése System V illetve BSD stílusban. Útmutatók fognak készülni, amelyek a programozókat a "támogatottabb" interfészek felé irányítják, és felhívják a figyelmet az API-k használatában elkövethetô hibákra.
Az XPG4 kicsivel több mint a felét adja a specifikációnak, amelyhez, az átfedéseket nem számítva, a hozzájárulások a következôképpen alakultak; a SVID curses eljárásai durván egyötödét, a használat alapján hozzáadott interfészek 15 százalékát, az egyéb SVID hívások 10, és az AES hívások kevesebb mint 5 százalékát teszik ki az egységes UNIX API-nak.
2. táblázat: Az egységes API interfészeinek származása (Egy interfész több forrásból is származhat)
Funkciócsoport Összesen XPG4 SVID-3 AES Használat alapján Memória 19 11 12 12 17 Curses 324 114 324 0 27 Clib 114 92 98 81 65 Math 64 43 52 43 24 Többnyelvûsítés 62 60 12 11 9 Proc 61 32 43 37 36 Állományrendszer 44 28 40 35 35 Standard I/O 41 40 41 41 33 Szignálok 25 12 16 12 16 Dev 20 12 18 13 6 Sockets 19 0 0 0 15 Egyéb 113 22 60 15 16 Összesen 926 479 738 322 299 Header-ek 70 Parancsok 174 Összesen 1170
Egy felmérés szerint a Spec 1170 az összeállításkor vizsgált termékminta alkalmazásaiban 95-100 százalékban lefedi a hívott interfészek listáját. A hiányzó interfészek platform-specifikus illetve rendhagyó hívásokból erednek.
A Spec 1170 tervezete széleskörû véleményeztetés után az X/Open-hez került, amely a UNIX védjegyezését erre a specifikációra fogja építeni. Az X/Open nagyobb változtatások nélkül elfogadta a tervezetet, és a specifikáció megjelentetésével egyidôben foglalkozik a védjegyezési mechanizmus kifejlesztésével.
A háromféle UNIX védjegybôl az elsôt, az ideiglenes (interim) védjegyet már lehet igényelni. Ennek feltételei: XPG3 vagy XPG4 konformancia, SVID2 vagy SVID3 konformancia, Novell licensz, és vállalása annak, hogy egy éven belül megszerzik a "hard" UNIX védjegyet.
A "soft" védjegy a többnyelvûsített curses kivételével teljes konformanciát szab meg a Spec 1170-hez, valamint elkötelezettséget, hogy a védjegyet továbbviszik a "hard" fokozatra.
A "hard" UNIX védjegy teljes Spec 1170 és curses konformanciát jelent, és azt, hogy a termék megfelelt a tesztelésnek.
UNIX védjegyes termékek megjelenése az év végére várható. Az olyan védjegyes termékek, amelyek operációs rendszertôl függetlenek, nem a UNIX védjegyet fogják használni, hanem az XPG-t, ezzel is jelezve szélesebb körû hordozhatóságukat.
A nyílt rendszerek szakértôi szerint a Spec 1170 egy megfelelô, de viszonylag könnyû lépés, mivel a specifikáció támogatottsága eléggé egységes. Az egységes és nyílt UNIX alapjait természetesen az operációs rendszer szinten kell megvetni, de a Spec 1170 önmagában még viszonylag kevés program írásához elegendô, hiszen például csak karakteres megjelenítést biztosít.
A CDE-vel együtt már elég sok féle hordozható alkalmazás írása válna lehetségessé, de a CDE-n belül nem sikerült az egyes gyártókat olyan egyenletes súlyozással képviseltetni, mint a Spec 1170-ben, amely késlelteti az elfogadást.
A UNIX esetében a hordozhatóság még mindig magában rejt egy újrafordítást. Az alkalmazások MS Windows-ban megszokott töltsd-le-és-indítsd-el szintû hordozhatóságához ennél több kell, elsôsorban valamilyen közös bináris formátum.
Az elkövetkezô idôszak adhat csak választ arra, hogy mennyi rendszergyártó és szoftverfejlesztô cég tér át az új UNIX specifikációkra és milyen gyorsan, valamint arra a kérdésre, hogy mennyire válik elterjedtté majd a rendszerek önkényes bôvítése saját interfészekkel és a meglévô interfészek kijátszása.