Widelec zasobów - Resource fork

Widelec zasobem jest widelec lub odcinek z pliku na firmy Apple „s Classic Mac OS system operacyjny , który został również przeniesione do nowoczesnych MacOS kompatybilności, używane do przechowywania danych o strukturze wraz z nieuporządkowanych danych przechowywanych w rozwidleniu danych .

Widelec zasobów przechowuje informacje w określonej formie, zawierającej szczegóły, takie jak bitmapy ikon, kształty okien, definicje menu i ich zawartości oraz kod aplikacji ( kod maszynowy ). Na przykład plik edytora tekstu może przechowywać swój tekst w rozwidleniu danych, podczas gdy wszelkie osadzone obrazy są przechowywane w rozwidleniu zasobów tego samego pliku. Rozwidlenie zasobów jest używane głównie przez pliki wykonywalne , ale każdy plik może mieć rozwidlenie zasobów.

System plików Macintosh

Pierwotnie wymyślony i zaimplementowany przez programistę Bruce'a Horna , rozwidlenie zasobów było używane do trzech celów w systemie plików Macintosh :

  • Był używany do przechowywania wszystkich danych graficznych na dysku, dopóki nie był potrzebny, a następnie był odzyskiwany, rysowany na ekranie i wyrzucany. Ten wariant oprogramowania pamięci wirtualnej pomógł Apple zmniejszyć wymagania dotyczące pamięci z 1 MB w Apple Lisa do 128 KB w Macintoshu.
  • Ponieważ wszystkie obrazy i tekst były przechowywane osobno w widelcu zasobów, można go wykorzystać, aby umożliwić nie-programiście przetłumaczenie aplikacji na rynek zagraniczny, proces zwany internacjonalizacją i lokalizacją .
  • Może być używany do dystrybucji prawie wszystkich składników aplikacji w jednym pliku, zmniejszając bałagan i upraszczając instalację i usuwanie aplikacji.

Widelec zasobów jest zaimplementowany we wszystkich systemach plików używanych dla dysków systemowych na komputerach Macintosh ( MFS , HFS i HFS Plus ). Obecność rozwidlenia zasobów ułatwia przechowywanie różnych dodatkowych informacji, takich jak umożliwienie systemowi wyświetlenia prawidłowej ikony pliku i otwarcia go bez konieczności umieszczania rozszerzenia pliku w nazwie pliku. Podczas gdy dostęp do rozwidlenia danych działa jak dostęp do pliku w dowolnym innym systemie operacyjnym — wybierz plik, wybierz przesunięcie bajtów, przeczytaj niektóre dane — dostęp do rozwidlenia zasobów działa bardziej jak wyodrębnianie uporządkowanych rekordów z bazy danych . ( Microsoft Windows ma również pojęcie „ zasobów ”, ale są one całkowicie niezwiązane z zasobami w systemie Mac OS.)

Widelec zasobów jest czasami używany do przechowywania metadanych pliku, chociaż może być również używany do przechowywania rzeczywistych danych, jak miało to miejsce w przypadku plików czcionek w klasycznych systemach operacyjnych Mac. Należy zauważyć, że systemy plików Macintosh mają również osobny obszar na metadane, który różni się od rozwidlenia danych lub zasobów. Będąc częścią wpisu katalogu dla pliku, dostęp do niego jest znacznie szybszy. Jednak ilość przechowywanych tutaj danych jest minimalna, są to tylko znaczniki czasu tworzenia i modyfikacji, typ pliku i kody twórcy, długości widełek i nazwa pliku. Niektóre pliki mają tylko rozwidlenie zasobów. Przykładem są klasyczne aplikacje 68k , w których nawet kod wykonywalny jest zawarty w zasobach typu 'CODE'. Późniejsze pliki binarne PowerPC przechowują kod wykonywalny w rozwidleniu danych.

Ponieważ widły zasobów są obsługiwane tylko w systemach plików HFS, HFS Plus i APFS, nie można ich używać w systemach operacyjnych korzystających z innych systemów plików. Obecnie HFS jest obsługiwany tylko przez system operacyjny Macintosh, co oznacza, że ​​tylko komputery z systemem Mac OS mogą korzystać z rozwidlenia zasobów. Nawet w systemie Mac OS, widelce zasobów nie mogą być stosowane, jeżeli system plików Unix został zainstalowany . W systemie plików HFS Plus, który jest obecnie systemem najczęściej używanym w systemie Mac OS, można wprowadzić ustawienia umożliwiające innym rozwidleniom, oprócz rozwidlenia danych i zasobów, tworzenie aplikacji „multi-fork”. Ponieważ jednak forki mogą utrudniać wymianę plików z innymi systemami operacyjnymi, ta funkcja nie jest powszechnie używana. Nawet w macOS widełki zasobów są już rzadko używane.

Obecnie system macOS obsługuje rozwidlenie zasobów w udziałach Windows SMB , tworząc ukryty plik ze znakami „._” dodanymi na początku nazwy pliku, w tym samym katalogu, co plik rozwidlenia danych.

Identyfikatory zasobów

Każdy zasób ma identyfikator OSType (wartość czterobajtowa) i identyfikator ( podpisane słowo 16-bitowe ), a także opcjonalną nazwę. Istnieją znormalizowane typy zasobów dla okien dialogowych (' DITL), obrazów (' PICT'), dźwięków (' snd ') – a nawet wykonywalnych plików binarnych (' CODE'), które do czasu pojawienia się procesora PowerPC były bez wyjątku przechowywane w zasobie widelec. Podprogramy do renderowania okien są przechowywane we własnym typie zasobów (' '), podprogramy do renderowania menu we własnych (' '), a jeśli istnieje typ danych, który Twoim zdaniem nie pasuje do żadnej ze standardowych kategorii, możesz po prostu również użyj własnego typu (np. ' ') – właściwie dowolne cztery znaki lub wartość 32-bitowa mogą służyć jako typ zasobu. Ten układ umożliwił użytkownikom łatwe dostosowywanie nie tylko poszczególnych aplikacji, ale także samego systemu operacyjnego, przy użyciu narzędzi takich jak ResEdit do modyfikowania zasobów pliku aplikacji lub dowolnego z plików systemowych. WDEFMDEFJohn

W aplikacji lub innym kodzie zasoby można ładować po prostu za pomocą kombinacji ich typu, identyfikatora lub nazwy, bez względu na to, jak i gdzie są przechowywane w rozwidleniu zasobów. Klientowi zwracany jest uchwyt do załadowanego zasobu, do którego można uzyskać dostęp jak do innych danych opartych na stercie. Komponentem systemu operacyjnego, który to ułatwia, jest Menedżer zasobów . Oprócz wyabstrahowania szczegółów przechowywania danych z samych danych, Menedżer zasobów układa również zestawy otwartych widełek zasobów w stos, z ostatnio otwieranym plikiem na wierzchu. Przy próbie załadowania zasobu najpierw będzie szukał wierzchołka stosu (być może widły zasobów bieżącego dokumentu), następnie następny w dół (widły zasobów aplikacji), a następnie następny (widły zasobów systemowych). Ten układ jest bardzo potężny – pozwala lokalnym zasobom na nadpisanie bardziej globalnych niżej – dzięki czemu aplikacja może na przykład udostępniać własne ikony lub czcionki zamiast standardowych systemowych. Pozwala również aplikacji na ładowanie zasobów z systemu przy użyciu tego samego API, co każdy inny zasób, bez względu na to, gdzie i jak są one przechowywane – dla aplikacji wszystkie zasoby są jednakowo dostępne i łatwe w użyciu. System rezerwuje identyfikatory zasobów w określonym zakresie, aby uniknąć wynikających z tego konfliktów zasobów. Interfejsy API Menedżera zasobów umożliwiają programiście manipulowanie stosem i modyfikowanie zachowania wyszukiwania.

Edycja widelców zasobów

Ponieważ widelec zasobów można edytować za pomocą edytora zasobów, takiego jak ResEdit , można go używać do lokalizacji i dostosowywania oprogramowania . Ponadto większość edytorów zasobów umożliwia wizualną edycję danych. W macOS możliwe jest korzystanie z zasobów podczas tworzenia aplikacji. Jeśli jednak aplikacja może wymagać użycia w UFS , można ją również skonfigurować tak, aby cały widelec zasobów był przenoszony do widelca danych, korzystając z ustawienia Raw Resource File. Te zintegrowane środowisko programistyczne dystrybuowane bezpłatnie przez Apple Inc. , które obejmują MPW i narzędzia firmy Apple Programisty , obejmują kompilator o nazwie Rez. Używa dedykowanego języka, zwanego również Rez, którego można użyć do utworzenia rozwidlenia zasobów poprzez kompilację kodu źródłowego . Dołączony jest również dekompilator DeRez, który może być użyty do zmiany rozwidlenia zasobów z powrotem na kod Rez.

W strukturze rozwidlenia zasobów znajduje się część danych zwana „mapą zasobów”, która przechowuje pozycje elementów danych zasobów. Może to służyć do umożliwienia losowego dostępu do danych zasobów na podstawie zdefiniowanych identyfikatorów i nazw. Rozwidlenie zasobów można uznać za składające się zasadniczo z dwóch obiektów, mapy zasobów i samych danych zasobów, ale w rzeczywistości każdy typ danych jest strukturą hierarchiczną, która przechowuje wiele elementów danych. Format, w którym przechowywane są informacje w danych zasobów, jest definiowany na podstawie typów informacji, które są znane jako „typy zasobów”. Dane o zasobach często odwołują się do innych typów danych.

W systemie macOS widełki noszą nazwę pliku /..namedfork/ forkname , np. widelec zasobów pliku IMG_0593.jpg to IMG_0593.jpg/..namedfork/rsrc. lsKomenda obsługuje -l@opcję który wymienia widelce danego pliku.

W jaki sposób uzyskuje się dostęp do rozwidlenia zasobów

Rozwidlenia zasobów są wyświetlane jako rozszerzony atrybut com.apple.ResourceFork.

Wcześniej dostęp do rozwidlenia zasobów był uzyskiwany za pośrednictwem interfejsu API „Resource Manager” . Ten interfejs API jest teraz przestarzały.

W przestarzałym interfejsie API:

  1. Podczas uzyskiwania dostępu do widełek zasobów dane, w tym pozycja początkowa i długość danych zasobów oraz mapa zasobów, są wczytywane z nagłówka.
  2. Jeśli określono typ zasobu do wczytania, wykonywane jest sprawdzenie, aby upewnić się, że typ jest obecny na liście zasobów, a liczba elementów danych zawierających ten typ i ich przesunięcia na liście odniesień do zasobów od pozycji początkowej mapa zasobów została znaleziona.
  3. Znaleziono identyfikator zasobu, przesunięcie nazwy zasobu, właściwości zasobu i przesunięcie danych od pozycji początkowej danych zasobu.
  4. Jeśli dane zasobu o określonym identyfikatorze lub nazwie są obecne w danych zasobu, uzyskuje się dostęp do uzyskanego powyżej przesunięcia, znajduje się długość danych, a wszystkie dane tam przechowywane są odczytywane i zwracane jako wartość zwracana.

Interfejsy API menedżera plików, takie jak PBOpenRF()umożliwienie dostępu do rozwidlenia zasobów surowych; jednak powinny być używane tylko do aplikacji takich jak kopiowanie pliku – Apple zdecydowanie ostrzega przed używaniem rozwidlenia zasobów jako „drugiego rozwidlenia danych”.

Z interfejsu POSIX można uzyskać dostęp do rozwidlenia zasobów jako filename/..namedfork/rsrclub jako filename/rsrc; krótsza forma została przestarzała w systemie Mac OS X 10.4 i całkowicie usunięta w systemie Mac OS X 10.7 .

Typy danych w rozwidleniu zasobów

Najmniejsze elementy tworzące rozwidlenie zasobów nazywane są typami danych. Istnieje kilka typów danych. Po uzyskaniu dostępu do rozwidlenia zasobów jego zawartość można znaleźć, odczytując go odpowiednio do wcześniej zdefiniowanych typów danych. Umieszczenie definicji wewnątrz programu mówiących o sposobie traktowania danych umożliwia również przechowywanie zasobów zwanych zasobami TMPL. Korzystanie z tej metody zwiększa widoczność danych podczas przeglądania w programie takim jak ResEdit, ułatwiając późniejszą edycję. Ponieważ platforma Macintosh pochodzi z procesorów Motorola (68k i PPC), dane są serializowane na dysku w formacie big-endian .

Poniżej znajduje się lista głównych typów danych w porządku alfabetycznym.

Typ danych aktualna nazwa Opis
BBIT bit binarny Reprezentuje pojedynczy bit logiczny (prawda lub fałsz). Zwykle liczba BBIT musi być wielokrotnością 8.
BOOL logiczne Reprezentuje wartość logiczną. Składa się z 2 bajtów; 256 to prawda, a 0 to fałsz.
ZWĘGLAĆ postać Reprezentuje znak jednobajtowy.
CSTR Ciąg c Reprezentuje ciąg w postaci używanej w języku programowania C : ciąg bajtów zakończony znakiem null .
DLNG dziesiętne długie słowo liczba całkowita Dziesiętne długie słowo (4-bajtowa liczba całkowita). Reprezentuje wartości od około − 2,1 miliarda do 2,1 miliarda.
HEXD zrzut szesnastkowy Wskazuje, że dane od tej pozycji do końca są szesnastkowe. Służy do reprezentowania zasobów kodu lub skompresowanych danych.
HLNG długie słowo szesnastkowe Te dane są traktowane jako 4-bajtowa wartość szesnastkowa. Jest używany między innymi do reprezentowania liczb całkowitych większych niż 2,1 miliarda, takich jak wartości długie bez znaku w C.
PSTR Pascal ciąg Reprezentuje ciąg Pascala, przy czym pierwszy bajt podaje długość ciągu.
TNAM Wpisz imię Ciąg reprezentujący wartość, taką jak kod twórcy , który ma zawsze długość 4 bajtów.
RECT prostokąt Reprezentuje współrzędne narożników prostokąta (góra, lewo, dół, prawo). Zawsze 8 bajtów.

Główne typy zasobów

Poniższe kody typów, podobnie jak powyższe typy danych, są używane jako identyfikatory typów nie tylko dla samych widełek zasobów: są używane do identyfikacji samych plików, do opisywania danych w schowku i wielu innych.

Zauważ, że typy muszą mieć długość 4 bajtów, więc typy takie jak snd i STR mają na końcu spację (0x20).

Nazwa typu zasobu aktualna nazwa Opis
Alis Alias Przechowuje alias do innego pliku, w rozwidleniu zasobów pliku, którego bit atrybutu „alias” jest ustawiony
ALRT alarm Definiuje kształt okna alertu aplikacji
APPL podanie Przechowuje informacje o aplikacji
BNDL pakiet Definiuje dane, takie jak ikona typu pliku używana w aplikacji
cicn kolorowa ikona Definiuje kolorową ikonę używaną w danych
nieład kolorowa tabela przeglądowa Definiuje paletę kolorów używaną w danych
CNTL kontrola Definiuje szczegóły komponentu umieszczonego w oknie
KOD zasób kodu Przechowuje kod maszynowy dla programu
CURS kursor Definiuje kształt kursora monochromatycznego (kwadrat 8 × 8 bitów)
DITL lista elementów okna dialogowego Definiuje składnik okna
DLOG dialog Definiuje kształt okna dialogowego dla aplikacji
FREF odniesienie do pliku Definiuje typ pliku obsługiwany przez aplikację
hfdr pomoc w balonie z ikoną Definiuje zawartość i kształt pomocy w dymku wyświetlanej po najechaniu kursorem na plik w Finderze
icl8 8-bitowa lista ikon Definiuje ikonę wyświetlaną w Finderze
icns 32-bitowa lista ikon Definiuje ikonę wyświetlaną w Finderze
IKONA Ikona Definiuje element monochromatyczny używany w danych
uprzejmy Opis pliku Definiuje opis typu pliku
MBAR pasek menu Definiuje menu i pasek menu dla aplikacji
MDEF definicja menu Definiuje menu aplikacji. Może być również używany do definiowania menu o złożonych kształtach, takich jak palety kolorów.
MENU menu Definiuje pozycje menu w aplikacji
MooV film Przechowuje film QuickTime
otwarty otwarty Określa typ pliku, który aplikacja może otworzyć
PICT zdjęcie Przechowuje obraz PICT zawarty w pliku
PREF pierwszeństwo Przechowuje ustawienia środowiska dla aplikacji
snd dźwięk Przechowuje dźwięk używany w pliku
STR strunowy Przechowuje ciąg lub dane szesnastkowe używane w pliku
STR# lista ciągów Przechowuje wiele ciągów używanych w pliku
styl styl Definiuje informacje o stylu, takie jak czcionka, kolor i rozmiar tekstu
TEKST tekst Przechowuje tekst
TMPL szablon Definiuje format danych zasobu
wers wersja Określa wersję lub region użytkowania pliku
WDEF definicja okna Definiuje okno aplikacji. Można również zdefiniować okna o nieokreślonym kształcie.
WIATR okno Definiuje kształt okna aplikacji

Główni redaktorzy zasobów

ResEdytuj
Rozprowadzane bezpłatnie przez Apple. Może służyć do wizualnej edycji danych zasobów. Jeśli znana jest struktura danych, może wyświetlać szereg różnych typów danych w formacie wizualnym. Nie działa na nowoczesnym systemie MacOS.
Odnalazca
Drogie, ale popularne, ponieważ można go wykorzystać do wizualnej edycji znacznie większej liczby typów danych niż ResEdit.
HexEdytuj
Edytor binarny, który w rzeczywistości jest zwykle używany bardziej do edycji widełek danych niż widełek zasobów.
ResKnife
Edytor open-source dla Mac OS X ; nie jest już utrzymywany.
Recykling
Narzędzie macOS, które wyodrębnia zasoby z rozwidlenia zasobów do oddzielnych plików binarnych, jednocześnie konwertując wiele typów na formaty odpowiednie do nowoczesnego programowania.
zasób_dasm
Ekstraktor zasobów typu open source dla systemu macOS, który może również konwertować wiele zasobów na nowoczesne formaty.

Problemy z kompatybilnością

Złożoność programowania z rozwidleniami zasobów doprowadziła do problemów ze zgodnością podczas uzyskiwania dostępu do innych systemów plików za pośrednictwem protokołów udostępniania plików, takich jak AFP , SMB , NFS i FTP , podczas przechowywania na woluminach innych niż HFS lub podczas przesyłania plików do innych systemów w inny sposób ( np. za pośrednictwem poczty e-mail). Protokół AFP natywnie obsługuje rozwidlenia zasobów, więc rozwidlenia zasobów są zazwyczaj przesyłane do tych woluminów w stanie, w jakim są, i przechowywane przez serwer w sposób przezroczysty dla klientów. Protokół SMB obsługuje system metadanych plików podobny do rozwidlenia komputerów Macintosh, znany jako alternatywne strumienie danych (odtąd ADS). System macOS domyślnie nie obsługiwał przechowywania rozwidlenia zasobów w usługach ADS na woluminach SMB aż do systemu Mac OS X 10.6 . W poprzednich wersjach systemu operacyjnego, w tym zaktualizowanych wersjach 10.6, tę funkcję można włączyć, zmieniając parametry lub tworząc specjalny plik.

Sieciowe protokoły udostępniania plików, takie jak NFSv3 i FTP, nie mają pojęcia o metadanych plików, dlatego nie ma możliwości natywnego przechowywania rozwidlenia zasobów. Dotyczy to również zapisywania w niektórych typach lokalnych systemów plików, w tym UFS, oraz na woluminach SMB, w których nie jest włączona obsługa alternatywnego strumienia danych. W takich przypadkach macOS przechowuje metadane i rozwidlenie zasobów przy użyciu techniki zwanej AppleDouble , w której rozwidlenie danych jest zapisywane jako jeden plik, a rozwidlenie zasobów i metadane są zapisywane jako całkowicie oddzielny plik poprzedzony konwencją nazewnictwa „._”. Na przykład: ExampleFile.psd będzie zawierać rozwidlenie danych, a ._ExampleFile.psd będzie zawierać rozwidlenie zasobów i metadane.

Mogą wystąpić problemy ze zgodnością, ponieważ macOS będzie inaczej obsługiwać przechowywanie widełek zasobów, w zależności od wersji macOS, ustawień i typu systemu plików. Na przykład w sieci SMB z mieszanką klientów 10,5 i 10,6. Świeżo zainstalowany klient 10.6 będzie szukać i przechowywać rozwidlenia zasobów na woluminie SMB w ADS, ale klient 10.5 (domyślnie) zignoruje ADS i użyje formatu AppleDouble do obsługi rozwidlenia. Jeśli serwer plików obsługuje zarówno AFP, jak i NFS, klienci korzystający z NFS będą przechowywać pliki w formacie AppleDouble , podczas gdy użytkownicy AFP będą przechowywać rozwidlenie zasobów natywnie. W takich przypadkach zgodność można czasami zachować, zmuszając klientów do używania lub nieużywania formatu AppleDouble .

Wiele serwerów plików zapewniających obsługę AFP nie obsługuje natywnie rozwidlenia zasobów w swoich lokalnych systemach plików. W takich przypadkach widełki mogą być przechowywane w specjalny sposób, na przykład specjalnie nazwane pliki, specjalne katalogi, a nawet alternatywne strumienie danych.

Innym wyzwaniem jest zachowanie widełek zasobów podczas przesyłania plików za pomocą aplikacji, które nie obsługują rozwinięć zasobów lub za pomocą określonych metod przesyłania, w tym poczty e-mail i FTP. Szereg formatów plików, takich jak MacBinary i BinHex , zostało stworzonych do obsługi tego. Narzędzia systemowe wiersza poleceń SplitForksi FixupResourceForksumożliwiają ręczne spłaszczanie i scalanie widełek zasobów. Ponadto serwer plików, który chce zaprezentować systemy plików klientom Macintosh, musi obsługiwać rozwidlenie zasobów oraz rozwidlenie danych plików; Serwery UNIX zapewniające obsługę AFP zazwyczaj implementują to z ukrytymi katalogami.

Starsze aplikacje napisane za pomocą Carbon API mają potencjalny problem podczas przenoszenia na obecne komputery Intel Mac. Podczas gdy Menedżer zasobów i system operacyjny wiedzą, jak prawidłowo deserializować dane dla typowych zasobów, takich jak „ snd ” lub „ moov”, zasoby utworzone przy użyciu zasobów TMPL muszą być ręcznie zamieniane bajtami, aby zapewnić współdziałanie plików między wersjami aplikacji opartymi na PPC i Intel. (Podczas gdy mapa zasobów i inne szczegóły implementacji są big-endian , sam Menedżer zasobów nie ma żadnej wiedzy na temat zawartości zasobu ogólnego, a zatem nie może automatycznie wykonać wymiany bajtów).

Do czasu pojawienia się systemu Mac OS X v10.4 standardowe narzędzia wiersza polecenia systemu UNIX w systemie macOS (takie jak cpi mv) nie uwzględniały rozwidlenia zasobów. Aby skopiować pliki z rozwidleniami zasobów, trzeba było użyć dittolub CpMac i MvMac.

Inne systemy operacyjne

Koncepcja menedżera zasobów dla obiektów graficznych w celu zaoszczędzenia pamięci pochodzi z pakietu OOZE na Xerox Alto w Smalltalk-76. Koncepcja jest obecnie w dużej mierze uniwersalna we wszystkich nowoczesnych systemach operacyjnych. Jednak koncepcja rozwidlenia zasobów pozostaje specyficzna dla komputerów Macintosh. Większość systemów operacyjnych używa pliku binarnego zawierającego zasoby, który jest następnie „doklejany” na końcu istniejącego pliku programu. To rozwiązanie jest używane na przykład w systemie Microsoft Windows , a podobne rozwiązania są używane w systemie X Window , chociaż zasoby są często pozostawiane jako osobny plik.

System Windows NT NTFS może obsługiwać forki (a więc może być serwerem plików dla plików Mac), natywna funkcja zapewniająca tę obsługę nazywana jest alternatywnym strumieniem danych . Korzystają z nich funkcje systemu operacyjnego Windows (takie jak standardowa karta Podsumowanie na stronie Właściwości dla plików innych niż Office) i aplikacje Windows, a firma Microsoft opracowywała system plików nowej generacji, który ma taką funkcję jako podstawę.

Wczesne wersje BeOS zaimplementowały bazę danych w systemie plików, która mogła być używana w sposób analogiczny do widełek zasobów. Problemy z wydajnością doprowadziły do ​​zmiany w późniejszych wersjach systemu złożonych atrybutów systemu plików. W tym systemie zasoby były obsługiwane w sposób nieco bardziej podobny do Maca.

AmigaOS nie używa rozwidlonych plików. Jego pliki wykonywalne są wewnętrznie podzielone na modułową strukturę dużych części ( hunk ) zdolnych do przechowywania kodu, danych i dodatkowych informacji. Podobnie pliki danych i projektów mają strukturę porcji skodyfikowaną w standardzie IFF . Inne typy plików są przechowywane podobnie do innych systemów operacyjnych. Choć nie jest to ściśle rozwidlenie zasobów, AmigaOS przechowuje metadane w plikach znanych jako .infopliki. .infopliki można zidentyfikować po .inforozszerzeniu; na przykład, jeśli zapiszesz projekt na dysku, zostaną zapisane dwa pliki MyProjecti MyProject.info. MyProjectbyłyby rzeczywistymi danymi projektu i MyProject.infozawierałyby ikonę projektu, informacje o tym, jaki program jest potrzebny do otwarcia projektu (ponieważ w AmigaOS nie ma powiązania aplikacji ), specjalne opcje projektu i wszelkie komentarze użytkowników. .infopliki są niewidoczne na pulpicie Amigi ( Workbench ). Ikona na pulpicie, pobrana z .infosamego siebie, jest metaforą interfejsu, poprzez którą użytkownik wchodzi w interakcję zarówno z samym projektem, jak i powiązanym z nim .infoplikiem. Okno dialogowe dostępne po kliknięciu prawym przyciskiem myszy ikony umożliwia użytkownikowi przeglądanie i modyfikowanie metadanych znajdujących się w .infopliku. .infopliki mogą być widoczne jako pojedyncze pliki w interfejsie wiersza poleceń lub Menedżerze plików . Nowoczesne klony AmigaOS ( AROS , MorphOS i AOS4 ) dziedziczą strukturę (wraz z metadanymi) .infoplików starszych wersji AmigaOS i mogą również akceptować standardowe pliki graficzne PNG jako bitmapy ikon w swoich .infoplikach.

Systemy operacyjne NeXT NeXTSTEP i OPENSTEP , ich następca, macOS i inne systemy jak RISC OS zaimplementowały inne rozwiązanie. W tych systemach zasoby są pozostawiane w oryginalnym formacie, na przykład zdjęcia są dołączane jako kompletne pliki TIFF , zamiast być zakodowane w jakimś pojemniku. Zasoby te są następnie umieszczane w katalogu wraz z kodem wykonywalnym i „surowymi danymi”. Katalog (nazywany „ pakietem ” lub „ katalogiem aplikacji ”) jest następnie przedstawiany użytkownikowi jako sama aplikacja. To rozwiązanie zapewnia wszystkie te same funkcje, co rozwidlenie zasobów, ale pozwala na łatwą manipulację zasobami przez dowolną aplikację — nie jest potrzebny „edytor zasobów” (np. ResEdit ). Z interfejsu wiersza poleceń pakiet wygląda na normalny katalog. Takie podejście nie było opcją w klasycznym systemie Mac OS , ponieważ system plików ( MFS ) nie obsługiwał oddzielnych katalogów katalogów. Gdy obsługa plików katalogów została uwzględniona w systemie Mac OS, z systemem plików HFS, rozwidlenie zasobów zostało zachowane. macOS zachowuje klasyczny interfejs API Menedżera zasobów jako część swoich bibliotek Carbon, aby zapewnić kompatybilność wsteczną. Jednak same zasoby mogą być teraz przechowywane w oddzielnych plikach danych w systemie plików — Menedżer zasobów ukrywa teraz tę zmianę implementacji w kodzie klienta.

Zobacz też

Bibliografia

Zewnętrzne linki