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.
WDEF
MDEF
John
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. ls
Komenda 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:
- 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.
- 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.
- Znaleziono identyfikator zasobu, przesunięcie nazwy zasobu, właściwości zasobu i przesunięcie danych od pozycji początkowej danych zasobu.
- 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/rsrc
lub 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ń SplitForks
i FixupResourceForks
umoż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 cp
i mv
) nie uwzględniały rozwidlenia zasobów. Aby skopiować pliki z rozwidleniami zasobów, trzeba było użyć ditto
lub 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 .info
pliki. .info
pliki można zidentyfikować po .info
rozszerzeniu; na przykład, jeśli zapiszesz projekt na dysku, zostaną zapisane dwa pliki MyProject
i MyProject.info
. MyProject
byłyby rzeczywistymi danymi projektu i MyProject.info
zawierał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. .info
pliki są niewidoczne na pulpicie Amigi ( Workbench ). Ikona na pulpicie, pobrana z .info
samego siebie, jest metaforą interfejsu, poprzez którą użytkownik wchodzi w interakcję zarówno z samym projektem, jak i powiązanym z nim .info
plikiem. Okno dialogowe dostępne po kliknięciu prawym przyciskiem myszy ikony umożliwia użytkownikowi przeglądanie i modyfikowanie metadanych znajdujących się w .info
pliku. .info
pliki 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) .info
plików starszych wersji AmigaOS i mogą również akceptować standardowe pliki graficzne PNG jako bitmapy ikon w swoich .info
plikach.
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
- Opis formatu pliku zasobów
- Biblioteka zasobów dla programistów Apple: Odniesienie do Menedżera zasobów
- Biblioteka zasobów dla programistów Apple: zarządzanie zasobami, pakiety
- The Grand Unified Model – Historia widelca zasobów, z folklore.org
- Recykle – narzędzie do ekstrakcji zasobów
- Usługi Mac OS X — Usługa Mac OS X służąca do usuwania rozwidlenia zasobów pliku za pomocą menu kontekstowego
- Co się dzieje z rozwidleniami Mac OS X Resource, rozszerzonymi atrybutami, strumieniami NTFS i plikami z podkreśleniem kropkowym?
- Kiedy zapisuję plik przy użyciu protokołu SMB, jakie informacje są zapisywane w plikach „kropka-podkreślenie” (._)? Jak te informacje są przechowywane w systemie plików NTFS?