HFS Plus - HFS Plus

  (Redirecionado de HFS + )
HFS +
Desenvolvedor (s) Apple Inc.
Nome completo Hierárquica do sistema de arquivos Além disso,
introduzido 19 de janeiro de 1998 com Mac OS 8.1
identificador de partição Apple_HFS ( a Apple Partition Map )
0xAF ( MBR ) HFS e HFS +
Apple_HFSX ( a Apple Partition Map ) quando HFSX
48465300-0000-11AA-
AA11-00306543ECAC
( GPT )
estruturas
conteúdo do diretório B-tree
alocação de arquivos bitmap
bad blocks B-tree
limites
Max. tamanho do volume exabyte
Max. tamanho do arquivo 8 EiB
Max. número de arquivos 4294967295 (2 32 -1)
Max. comprimento filename 255 caracteres (255 UTF-16 unidades de codificação, normalizou a variante Maçã-modificadas de Unicode Normalização Formato D)
caracteres permitidos em nomes de arquivos Unicode , qualquer personagem, incluindo NUL . APIs OS pode limitar alguns caracteres por razões de legado
Recursos
datas registradas de acesso, atributos modificados, backup, conteúdo modificado, criado
intervalo de datas 01 de janeiro de 1904 - 6 de fevereiro de 2040
resolução data 1 s
Forks sim
Atributos Cor (3 bits, todas as outras bandeiras 1 bit), bloqueado, ícone personalizado, pacote, invisível, aliás, sistema, artigos de papelaria, inited, sem recursos INIT, compartilhada, desktop
Permissões do sistema de arquivos Permissões Unix, NFSv4 ACL ( Mac OS X v10.4 em diante)
compressão transparente Sim (decmpfs, no Mac OS X 10.6 e superior)
criptografia transparente Sim (no Mac OS X 10.7 e acima). Per diretório home criptografia está disponível com AES usando HFS + formatado .dmg volumes no OS X versões anteriores ao 10.7, mas mais tarde do que o Mac OS X 10.3
De outros
Suportados sistemas operacionais Mac OS 8.1 , Mac OS 9 , MacOS / iOS / tvOS / watchOS / Darwin , Linux , Microsoft Windows (através do Boot Camp IFS motoristas)

HFS Plus ou HFS + é um sistema de arquivos journaling desenvolvido pela Apple Inc. Ele substituiu o arquivo hierárquica Sistema (HFS) como o sistema de computadores da Apple com o lançamento de 1998 primário arquivo Mac OS 8.1 . HFS + continuou como a principal Mac OS X sistema de arquivos até que fosse em si substituído com o lançamento do arquivo Apple System (APFS) com MacOS High Sierra em 2017. HFS + é também um dos formatos usados pelo iPod player de música digital. Ele também é conhecido como Mac OS Extended ou HFS prolongado , onde o seu antecessor, HFS, também é conhecido como Mac OS Standard ou HFS padrão . Durante o desenvolvimento, a Apple se referiu a este sistema de arquivos com o nome de código Sequoia .

HFS Plus é uma versão melhorada do HFS, apoiando arquivos muito maiores (endereços de bloco são de comprimento em vez de 16-bit 32-bit) e usando Unicode (em vez de Mac OS Roman ou qualquer um dos vários outros conjuntos de caracteres) para nomear itens. Como HFS, HFS Plus utiliza árvores-B para armazenar mais volume de metadados , mas ao contrário da maioria dos outros sistemas de arquivos, HFS Plus suporta ligações fortes para diretórios. HFS Plus permite nomes de arquivos até 255 caracteres de comprimento, e arquivos n-bifurcada semelhantes a NTFS , embora até 2005 quase nenhum software do sistema aproveitou diferentes do garfos bifurcação de dados e bifurcação de recursos . HFS Plus também usa uma tabela de mapeamento de alocação de 32 bits completo, em vez de 16 bits do HFS, melhorando significativamente a utilização do espaço com grandes discos.

História

HFS + foi introduzido com o 19 de janeiro, 1998, lançamento do Mac OS 8.1 .

Com o lançamento do X 10.2.2 Mac OS atualização em 11 de novembro de 2002, a Apple adicionou opcionais journaling recursos para HFS Plus para melhorar a confiabilidade dos dados. Esses recursos eram acessíveis através da GUI, usando o Utilitário de Disco aplicação, no Mac OS X Server, mas apenas acessível através da linha de comando no cliente de desktop padrão.

Com o Mac OS X v10.3, todos os volumes HFS Plus em todos os Macs foram definidos para serem registradas no diário por padrão. Dentro do sistema, um volume HFS Plus com um jornal é identificado como HFSJ .

Mac OS X 10.3 também introduziu outra versão do HFS Plus chamado HFSX . Volumes HFSX são quase idênticos aos HFS Plus volumes, exceto que eles nunca estão rodeados pela HFS Wrapper que é típico de HFS Plus volumes e opcionalmente suporte maiúsculas e minúsculas para nomes de arquivos e pastas. Volumes HFSX pode ser reconhecido por duas entradas no cabeçalho de volume, um valor de HX no campo da assinatura e 5 no campo versão.

Mac OS X 10.3 também marcou adoção de Unicode 3.2 decomposição da Apple, substituindo o 2.1 decomposição Unicode usada anteriormente. Esta mudança causou problemas para os desenvolvedores que escrevem software para Mac OS X.

Mac OS X 10.3 introduziu uma série de técnicas que se destinam a evitar fragmentating arquivos HFS +.

Com o Mac OS X 10.4, a Apple adicionou suporte para inline Atributo registros de dados, algo que tinha sido uma parte da implementação do Mac OS X da HFS Plus desde pelo menos 10,0 , mas sempre marcado como "reservado para uso futuro". Até o lançamento do Mac OS X Server 10.4 , HFS Plus suportado apenas o padrão de UNIX permissões do sistema de arquivos ; No entanto, 10,4 introduziu suporte para lista de controle de acesso baseados em segurança de arquivos, que fornece um mecanismo mais rico para definir permissões de arquivo e também é projetado para ser totalmente compatível com os modelos de permissão de arquivo em outras plataformas, como Microsoft Windows XP e Windows Server 2003 .

No Mac OS X Leopard 10.5, diretório hard-linking foi adicionado como uma parte fundamental do Time Machine.

No Mac OS X Snow leopardo 10,6, HFS + compressão foi adicionado usando Deflate (Zlib). No código aberto e algumas outras áreas esta é referido como AppleFSCompression ou decmpfs. Dados comprimidos podem ser armazenados em qualquer um atributo extendido ou a bifurcação de recursos. Ao usar APIs não sejam da Apple, AppleFSCompression nem sempre é completamente transparente. OS X 10.9 introduziu dois novos algoritmos, LZVN (libFastCompression) e LZFSE .

No Mac OS X Lion 10,7, criptografia volume lógico (conhecido como FileVault 2 ) foi adicionada ao sistema operacional. Isto para além do sistema operacional em nada mudou a estrutura lógica do sistema de arquivos. Logical Volume Manager da Apple é conhecido como Núcleo de armazenamento e sua criptografia no nível de volume pode ser aplicado a diferentes HFS Plus sistemas de arquivos. Com hardware apropriado, tanto criptografia e descriptografia deve ser transparente.

Projeto

HFS Plus volumes são divididos em setores (chamados blocos lógicos em HFS), que são geralmente 512 bytes de tamanho. Esses setores são então agrupadas em blocos de alocação que podem conter um ou mais setores; o número de blocos de alocação depende do tamanho total do volume. HFS Plus utiliza um valor maior para blocos de alocação de endereço que HFS, 32 bits em vez de 16 bits; Isto significa que pode aceder 4294967296 (2 = 32 ) blocos de atribuição, em vez das 65536 (= 2 16 blocos de alocação) disponíveis para HFS. Quando os discos eram pequenos, era de pouca importância, mas como unidades de maior capacidade tornou-se disponível, isso significava que a menor quantidade de espaço que qualquer arquivo pode ocupar (um único bloco de alocação) tornou-se excessivamente grande, desperdiçando uma quantidade significativa de espaço. Por exemplo, em um disco 1 GB, o tamanho do bloco de alocação sob HFS é de 16 KB, por isso mesmo um arquivo de 1 byte levaria até 16 KB de espaço em disco. Sistema de HFS Plus melhora muito a utilização do espaço em discos maiores, como resultado.

Arquivo e nomes de pasta em HFS Além disso são também carácter codificado no UTF-16 e normalizado a uma forma quase o mesmo que Unicode Normalização Forma D (DFN) (o que significa que precomposed caracteres como "A" são decompostos no nome do arquivo HFS + e, por conseguinte contam como duas unidades de código e UTF-16 implica que os personagens de fora do Basic Multilingual Plane também contam como duas unidades de código em um nome de arquivo HFS +). HFS Plus permite nomes de arquivos até 255 UTF-16 unidades de código de comprimento.

Anteriormente, HFS Plus volumes foram incorporados dentro de um sistema de arquivos padrão HFS. Este foi extinto pela transição Tiger para Macs Intel, onde o sistema de arquivos HFS Plus não foi incorporado dentro de um invólucro. O invólucro tinha sido projetado para duas finalidades; permitiu computadores Macintosh sem suporte HFS Plus em sua ROM para HFS arranque mais volumes e também foi projetado para transição ajudam os usuários a HFS Plus, incluindo um volume HFS mínima com um arquivo somente leitura chamado Where_have_all_my_files_gone? , Explicando aos usuários com versões do Mac OS 8.0 e anteriores sem HFS Plus, que o volume requer um sistema com suporte HFS Plus. O volume HFS original contém uma assinatura e um deslocamento para o volume HFS Plus embutido dentro do seu cabeçalho de volume. Todos os blocos de alocação no volume HFS que contêm o volume embarcado são mapeados fora do arquivo alocação HFS como bad blocks .

Dentre os sistemas de arquivos usados para sistemas Unix, HFS Plus não suporta arquivos esparsos .

Há nove estruturas que compõem um volume típico HFS Plus:

  1. Setores 0 e 1 do volume são HFS blocos de inicialização . Estes são idênticos para os blocos de inicialização em um volume HFS. Eles fazem parte do invólucro HFS.
  2. Sector 2 contém o volume de cabeçalho , que é equivalente ao Mestre Diretório Block em um volume HFS. O volume de cabeçalho armazena uma grande variedade de dados sobre o volume em si, por exemplo, o tamanho dos blocos de alocação, um timestamp que indica quando o volume foi criado ou a localização de outras estruturas de volume, como o arquivo de catálogo ou a extensão Overflow Arquivo. O cabeçalho de volume está sempre localizado no mesmo lugar.
  3. O arquivo Allocation que mantém o controle de quais blocos de alocação são livres e que estão em uso. É semelhante ao Bitmap Volume em HFS, em que cada bloco de alocação é representado por um bit. Um meio de zero do bloco é livre e um um significa que o bloco está a ser utilizado. A principal diferença com o Bitmap HFS Volume, é que o arquivo Allocation é armazenado como um arquivo regular, ele não ocupar um espaço reservado especial perto do início do volume. O arquivo Allocation também pode alterar o tamanho e não tem que ser armazenado de forma contígua dentro de um volume.
  4. O arquivo de catálogo é uma B-árvore que contenha registros para todos os arquivos e diretórios armazenados no volume. O Catálogo de arquivo HFS Plus é muito semelhante ao arquivo HFS Catalog , as principais diferenças sendo registros são maiores para permitir mais campos e para permitir a esses campos a ser maiores (por exemplo, para permitir que os 255 caracteres nomes mais longos de arquivo unicode em HFS Plus ). Um registro no arquivo HFS Catalog é de 512 bytes de tamanho, um registro no Catálogo de arquivo HFS Plus é de 4 KB no clássico Mac OS e 8 KB no MacOS . Campos em HFS são de tamanho fixo, em HFS Além disso, o tamanho pode variar dependendo do tamanho real dos dados que eles armazenam.
  5. O arquivo Extents Overflow é outro B-árvore que registra os blocos de alocação que são atribuídos a cada arquivo como extensões. Cada registro do arquivo no arquivo de catálogo é capaz de gravar oito extensões para cada fork de um arquivo; uma vez que aqueles são usadas extensões adicionais são registrados no arquivo Extents Overflow. Blocos danificados também são registrados como extensões no arquivo Extents Overflow. O tamanho padrão de um registro de ponto no clássico Mac OS é de 1 KB e 4 KB no MacOS.
  6. O atributos de arquivo é uma B-árvore de novo em HFS Plus que não tem uma estrutura correspondente no HFS. O atributos de arquivo pode armazenar três tipos diferentes de 4 registros KB: Atributo inline de dados registros, Atributo bifurcação de dados de registros e atributo de extensão Records. Registros Atributo linha de dados armazenam pequenas atributos que podem caber dentro do próprio recorde. Registros Atributo bifurcação de dados conter referências a um máximo de oito extensões que pode conter atributos maiores. Atributos de extensão são usados para estender um registro Atributo bifurcação de dados quando seus oito registros medida já são utilizados.
  7. O arquivo de inicialização foi projetado para sistemas não-Mac OS que não possuem suporte HFS ou HFS Plus. É semelhante aos blocos de inicialização de um volume HFS.
  8. O setor de segundo ao último contém o cabeçalho de volume alternativo , que é equivalente ao Alternate Mestre Diretório Bloco de HFS.
  9. O último setor do volume é reservado para uso pela Apple. Ele é usado durante o processo de fabricação de computadores.

críticas

HFS Plus carece de vários recursos considerados grampos de sistemas de arquivos modernos, como ZFS e NTFS . Dados somas de verificação são a característica mais falta rotineiramente citados. Além disso, o núcleo do sistema de arquivos usa maiúsculas e minúsculas NFD cadeias de caracteres Unicode, o que levou Linus Torvalds dizer que "HFS + é provavelmente o pior do sistema de arquivos que nunca."

Além checksumming, dispõe de sistemas de arquivos modernos que HFS + carece incluem:

  • timestamps nanossegundos
  • simultânea de acesso (isto é, mais do que um processo pode aceder ao sistema de ficheiros, ao mesmo tempo)
  • snapshotting
  • Apoio para datas além do 6 fevereiro de 2040
  • suporte a arquivos esparsos
  • uma melhor implementação de hard links (em outros sistemas de arquivos, estes são normalmente múltiplas entradas de diretório apontando para os mesmos blocos de dados; hard links no MacOS são implementados como pequenos arquivos que são armazenados em um diretório especial oculto)

HFS Plus não foi projetado para Unix-like sistemas, por isso apresenta como permissões do sistema de arquivo e links de disco rígido teve que ser adaptado quando a Apple mudou-se para também foi projetado Mac OS X. É quando Mac usado grandes-endian processadores como as séries Motorola 68000 e PowerPC processadores, em vez dos pequenos-endian Intel x86 processadores usados por Macs atuais, para que todos os metadados do sistema de arquivos são armazenados no disco em formato big-endian. Como resultado, em Macs atuais, todos os metadados deve ser trocado por byte quando lido em ou escrita da memória.

Outros sistemas operacionais

Linux

O kernel do Linux inclui o módulo hfsplus para a montagem de sistemas de arquivos HFS + leitura e escrita. HFS + fsck e mkfs foram portados para o Linux e são parte do pacote hfsprogs.

Em 2009, esses drivers foram diagnosticados a ser corrompendo unidades HFS + com uma maior capacidade de 2 TB. Consequentemente, as distribuições Linux, como Debian e Ubuntu também parou permitindo a montagem de HFS + unidades ou partições maiores que 2 TB. A partir de fevereiro de 2011, o trabalho está em andamento para levantar esta restrição.

Nos termos da actual HFS + motorista de Linux, diário deve ser desativado, a fim de gravar dados de forma segura em uma partição HFS +. Desde que a partição não está sendo usado por Apple Time Machine software, journaling pode ser desativado no MacOS: Usando o Utilitário de Disco no OS X Yosemite, o usuário pode realizar Alt / Option e clique em "Desativar no diário" no menu Arquivo, depois de ter selecionado pela primeira vez uma partição montada.

Um HFS + partição com diário habilitado pode ser forçosamente montado com acesso de gravação no Linux, mas isso não é suportada e imprudente.

A Google Summer of Code projeto para implementar write-suporte para HFS + foi aceito pela Linux Foundation em 2011, mas não foi concluída naquela época e ainda é um trabalho em andamento. Progresso e melhorias para o driver HFS +, incluindo algumas atualizações para suporte diário, são publicados na lista de discussão linux-fsdevel de vez em quando.

Em julho de 2011, Paragon Software Group forneceu drivers do kernel que permitem o acesso completo de leitura e escrita para HFS + journaled volumes. O produto é uma implementação proprietária de HFS + baseado na biblioteca UFSD proprietário da Paragon. Há duas edições gratuitas e pagas do condutor, e que incluem uma utilidade para rever e reparar + volumes HFS. De acordo com a documentação on-line (versão gratuita ou a edição paga), tanto a edição gratuita ea edição paga atualmente suporte Linux kernels de 2.6.36 até 4.12.x. Ubuntu , Debian , Fedora , OpenSUSE e CentOS são as únicas distribuições Linux oficialmente suportados.

janelas

Em maio de 2012, a Apple lançou apenas somente leitura HFS + drivers para Windows XP, Windows Vista e Windows 7 como parte do Boot Camp software no Mac OS X 10.6 . Isso significa que os usuários nesses sistemas podem ler dados do disco HFS +, mas não escrever para eles. A Microsoft criou um driver HFS + para o Xbox 360, principalmente para o propósito de ler HFS + formatado iPods.

Um software livre e de código aberto - jHFSplus, com base em HFSExplorer e jpfm - pode ser usado para montar HFS / HFS + partições como somente leitura pastas virtuais.

Um plug-in gratuito para o Total Commander existe, que pode ler, entre outros, HFS e HFS + sistemas de arquivos.

DiskInternals Linux Reader pode ser usado para extrair / save pastas / arquivos de HFS e Drives HFS + hard / partições.

Um produto comercial, MacDrive, também está disponível para a montagem de unidades HFS e HFS +, discos ópticos e outros meios de comunicação em Windows Explorer, e permite tanto a escrita ao volume, bem como a reparação e formatação de discos Mac leitura e.

Um produto comercial, da Paragon HFS + para Windows permite total de leitura e gravação e gerenciamento de disco de todas as versões do Windows desde o Windows XP para o Windows Server 2008.

Multi-plataforma

Um livre ( GPL ) alternativa é HFSExplorer escrito por Erik Larsson. HFSExplorer é uma aplicação Java para visualizar e extrair arquivos de um volume HFS + (Mac OS Extended) ou um volume HFSX (Mac OS Extended, case-sensitive). O volume pode estar localizado em um disco físico, vários Apple em imagem de disco e formatos de imagem de disco esparsa , ou um despejo sistema de arquivos raw. No entanto, HFSExplorer é uma solução só de leitura; ele não pode gravar em volumes HFS-formatados.

Veja também

Referências

links externos

  • HFSExplorer - Open Source Explorer para MS-Windows® escrito em Java, com suporte para HFS, HFS +, e HFSX
  • Apple "legado" Technote 1150 - HFS Plus Volume Format
  • Apple "legado" Technote 1189 - The Monster Driver Disk Technote
  • hfsdebug - Um depurador para volumes HFS Plus por Amit Singh
  • hfsprogs - ferramentas de apoio espaço do usuário para HFS + sistemas de arquivos sob sistemas Linux (adaptado de ferramentas nativas da Apple).
  • iBored - editor de disco A e visualizador de apoio HFS Plus
  • MacDrive - Um produto comercial para leitura, escrita e criação de HFS e HFS + volumes no Windows
  • HFSleuth - Uma ferramenta de linha de comando livre que permite a inspeção de + volumes HFS / HFSX e imagens de disco (DMGs) para MacOS e Linux
  • Mac OS X 10.7 Lion: a revisão Ars Technica - Uma crítica sobre este sistema de arquivos