Rozšíření (Mac OS) - Extension (Mac OS) - Wikipedia

Na klasický Mac OS (originál Jablko Operační systém Macintosh ), rozšíření byly malé kousky kódu, které rozšiřovaly funkčnost systému. Byly spuštěny zpočátku v době spuštění a byly provozovány různými mechanismy, včetně pasti záplatování a další techniky úpravy kódu. Zpočátku hack vývojáře Apple, rozšíření se stal standardním způsobem, jak poskytnout modulární operační systém. Velké množství důležitých systémových služeb, jako jsou síťové zásobníky TCP / IP (MacTCP a Open Transport) a podpora USB a FireWire, byly volitelné součásti implementované jako rozšíření. Fráze „rozšíření systému“ se později rozšířila anonymní aplikace na pozadí také.

Rozšíření obecně plnila stejnou roli jako DOS je ukončit a zůstat rezidentem programy, nebo Unix je démoni, ačkoli opravou podkladového kódu OS měli schopnost upravit stávající chování OS, další dva ne.

Mechanismus INIT

Koncept rozšíření nebyl v původním systémovém softwaru Macintosh přítomen, ale systém přesto měl mechanismus soukromé opravy, který se vývojáři brzy naučili využívat - zavaděč INIT. Tento kód vyhledá systémové prostředky typu „INIT“ a načte a spustí je při spuštění. Zdroje kódu musely být uloženy přímo v počítači Mac Systémový kufr je vidlice zdroje, což znamená, že byl k dispozici pouze „pokročilým uživatelům“, kteří by jej mohli pohodlně používat ResEdit nebo jiný editor zdrojů.

Jelikož využití tohoto mechanismu bylo nepodporovaným hackem a tímto způsobem bylo možné načíst pouze 32 INIT, Apple odpověděl poskytnutím spravovanějšího řešení. Zpočátku to samo o sobě bylo ve formě zdroje „INIT“ s ID 31 umístěným v systémovém souboru, který by hledal další soubory typu "INIT" v Složka systému a načtěte a spusťte v nich prostředky INIT. (To je důvod, proč někteří zkušení programátoři počítačů Mac stále odkazují na mechanismus načítání rozšíření jako „trik INIT 31“.[1] Programy INIT lze nyní nainstalovat jednoduše umístěním souboru do systémové složky, což je v rámci možností průměrného uživatele. Počínaje systémem 7 byla rozšíření pro větší pohodlí přemístěna do složky Extensions v systémové složce a byl implementován mechanismus automatického směrování, takže umístění rozšíření do systémové složky prostřednictvím drag and drop ve skutečnosti by soubor umístil do příslušné podsložky.

Rozšíření si po celou dobu životnosti zachovala typ prostředku „INIT“ a zavaděč se postupně vylepšoval, aby tyto zdroje hledal na mnoha místech, včetně vidlic zdrojů v ovládacích panelech v různých formátech a Výběr.

Rozšíření

INIT se vyvinuly v rozšíření systému a získaly další ad hoc průběžné protokoly, jako je dodávka ikony, která se má zobrazit při spuštění (původ byl 'ShowINIT'). „Přehlídka dílků a ikon“ na obrazovce, když se každé načtené rozšíření stalo známé všem uživatelům Mac. Samotné Apple nakonec vydalo hlavní (ale volitelné) části operačního systému jako rozšíření, jako např QuickTime, QuickDraw 3D a mnoho dalších. Značný počet služeb a ovladačů v systému Mac OS - jak oficiálních, tak třetích stran - byl poskytován jako rozšíření, což umožnilo zkrácení operačního systému jejich deaktivací.

Systémová rozšíření byla v systému Macintosh běžným zdrojem nestability, protože kód jiného výrobce měl proměnlivou kvalitu a často systém opravoval způsoby, které ne vždy fungovaly správně. Některá rozšíření nefungovala správně, nebo fungovala pouze při načtení v určitém pořadí. Kromě toho se mohou různá rozšíření pokusit opravit stejnou část systému, což by mohlo vést konflikty rozšíření a další nestabilita. Sledování těchto zdrojů potíží bylo dalším úkolem, s nímž se většina uživatelů Mac v určitém okamžiku setkala. Odstraňování problémů s rozšířeními systému Mac OS může být časově náročný proces půlení a pokus omyl.

Nejjednodušší způsob, jak vyčistit operační systém, bylo podržet klávesu Shift: načítání rozšíření by bylo obejito. Systém 7.5 přidal Správce rozšíření, což uživateli umožnilo rychle povolit nebo zakázat konkrétní rozšíření a také definovat jejich sady, které by správně fungovaly společně. Správce rozšíření přišel se dvěma základními sadami určenými pouze pro čtení: jednou, která obsahovala podmnožinu rozšíření potřebných pro základní provoz operačního systému, a druhou, která povolila všechna oficiální rozšíření dodávaná s operačním systémem, ale deaktivovala všechna rozšíření třetích stran.

Pořadí načítání rozšíření bylo vedlejším účinkem funkce GetFInfo, kterou použil zavaděč k výčtu souborů ve složce Extension. Zatímco Apple vždy říkal, že pořadí, které je výsledkem výčtu souborů pomocí této funkce, není definováno, na svazcích HFS tato funkce vyčíslila soubory v pořadí uloženém v katalogu HFS. Lidé zjistili, že změna prvního znaku v názvu souboru může změnit pořadí načítání přípon, což způsobilo potíže při přesunu systému Mac OS 8.1 na HFS +. Apple nakonec musel změnit zavaděč, aby seřadily názvy souborů vrácené touto funkcí do tabulky, a poskytl rozhraní umožňující softwaru změnit tabulku.[2]

Konfigurační a ovládací panely

Systémová rozšíření neměla uživatelské rozhraní: neexistoval žádný standardní mechanismus, kterým by uživatel mohl konfigurovat služby poskytované rozšířením. Rozšíření dokázala změnit grafické rozhraní (například přidání nových nabídek na panel nabídek) a přijmout tak konfiguraci uživatele, nebo je mohla doprovázet aplikace poskytující konfigurační rozhraní.

S Systém 7, ovládací panely staňte se samostatnými doplňky Finderu na disku, které by mohl uživatel spustit. Vložením kódu INIT do ovládacího panelu bylo možné vytvořit hybridy rozšíření / ovládacího panelu, které upravily operační systém při spuštění a obsahovaly vlastní integrované konfigurační rozhraní ve stejné podobě jako jakýkoli jiný ovládací panel operačního systému.

Anonymní aplikace na pozadí

MultiFinder a System 7 a novější podporovány anonymní aplikace na pozadí podobný UNIX démoni nebo Služby Windows, i když pomocí kooperativní multitasking. Mezi příklady patří Time Synchronizer (letní čas a vzdálená synchronizace času), Plánovač aktualizací softwaru a Akce složek (zpracování událostí složky). Anonymní aplikace na pozadí byly běžné aplikace s omezením, že se nezobrazovaly v nabídce aplikací. Jediné technické rozdíly mezi anonymní aplikací na pozadí a běžnou aplikací byly v tom, že v poli „byl nastaven příznak„ Pouze pozadí “VELIKOST„zdroj. Bylo jim zakázáno otevírat normální okno na úrovni aplikace: pokud by to udělali, systém by zamrzl.

Mohli však otevírat globální plovoucí okna, protože se jim nepodařilo získat ani ztratit pozornost. The Ovládací proužek v Mac OS 8 a 9 byl příklad aplikace bez tváře na pozadí, která zobrazovala globální plovoucí okno, aby poskytla interakci s uživatelem. Přepínač aplikací byl další. Uživatel však nebyl kdykoli informován o tom, že Control Strip je spuštěný proces; bylo to jednoduše prezentováno jako další funkce rozhraní. Systém jednoduše popsal anonymní aplikace na pozadí jako „systémové aplikace“.[Citace je zapotřebí ]

Jazykové funkce v architektuře Open Scripting Architecture (a tedy AppleScript ) byly původně implementovány jako dynamicky načtitelné doplňky známé jako „skriptovací doplňky“ nebo OSAX. V systému Mac OS 8 a 9 byly tyto rozšířeny o anonymní aplikace na pozadí, které byly na vyžádání načteny do pozadí. Stejně jako u běžných aplikací bylo k těmto aplikacím přistupováno pomocí sdělit klauzule: globální jmenný prostor nebyl aktualizován, jako tomu bylo v případě OSAXes. Operační systém neoznačil spuštění těchto procesů ani neuvedl, zda běží nebo ne.

Další non-INIT rozšíření

Rozšíření typu INIT byla načtena při spuštění, aby se aktualizoval operační systém. Matoucím způsobem bylo možné do složky Extensions také umístit různé další soubory, z nichž mnohé nebyly načteny při spuštění. Nejpozoruhodnější z nich byly sdílené knihovny které byly běžně ukládány do složky Extensions pro snadné umístění. Sdílené knihovny nebyly načteny při spuštění.

Soubory typu INIT nebyly jediným typem systémové přípony. Jiný typ byl scrinebo přípona WorldScript. The BootX Linux bootloader byl implementován jako scri jednoduše takové soubory byly načteny velmi brzy v procesu zavádění, před všemi ostatními příponami. BootX by pak mohl zobrazit dialogové okno, které uživateli umožní dokončit bootování Mac OS nebo místo toho načíst Linux.

Viz také

Reference