Postagens

Mostrando postagens com o rótulo osx

Apple File System

APFS in Detail: Overview (Adam Leventhal's blog) Introducing Apple File System (WWDC16, PDF) Boa notícia. Já estava mais do que na hora de um substituto para o HFS+ aparecer. A Apple pretende colocá-lo em produção em 2017. Será tempo recorde, levando com conta que é um sistema de arquivos desenvolvido do zero a partir de 2014. Sistemas de arquivos precisam de pelo menos dez anos para amadurecerem, diz o provérbio.

GCC -march e -mtune

As duas opções servem para otimizar a geração de código de máquina para determinada família de processadores. -march diz ao compilador qual conjunto de instruções será usado. -mtune mexe na forma como o código será organizado para tentar manter o processador o mais ocupado possível, escolhe instruções mais adequadas àquela família e aplica outras técnicas similares, porém sem modificar o conjunto base de instruções definido em -march . O mínimo -march em 64-bit é x86-64 , que é uma mescla de nocona (Pentium 4 e Xeon derivados) e k8 (AMD Athlon 64 e Opteron). Comparado com o mínimo i386 de 32-bit, é um ponto de corte bem mais alto, que oferece ao compilador mais instruções. Hoje em dia as distribuições configuram seus toolchains para usarem por padrão i686 (Pentium Pro para cima) em 32-bit e x86-64 em 64-bit. Escolhas de certa forma conservadoras, mas necessárias, pois estamos falando do conjunto de instruções. Existe um -march especial: native . -march=native escolhe pelo...

GCC 4.9 e os cacarecos

Das notas de lançamento do GCC 4.9 : -march=generic has been retuned for better support of Intel core and AMD Bulldozer architectures. Performance of AMD K7, K8, Intel Pentium-M, and Pentium4 based CPUs is no longer considered important for generic. Na verdade tem um erro no texto, pois não existe -march=generic , apenas -mtune=generic . Como todas as distribuições compilam seus pacotes com -mtune=generic , essa é uma excelente notícia! Ajustar código para processadores defuntos não fazia sentido. Os binários ainda rodarão em modelos que sejam compatíveis com o que estiver configurado em -march (nivelado por baixo geralmente: i686 para 32-bit e x86-64 para 64-bit), sem exigir instruções posteriores, mas o GCC otimizará para arquiteturas atuais. Quando desempenho é um fator crítico, programas costumam ter assembly feito à mão para autodetectar e usar durante a execução instruções adicionais sem depender do compilador para gerar código de máquina em determinadas partes ( um mon...

Nem tudo da Apple é a quinta-essência

O sistema de arquivos usado no OS X (HFS+) possui sérias limitações. HFS+ Bit Rot (Aymeric on Software) ( via OSNews ) Mac OS X 10.7 Lion: the Ars Technica review (Ars Technica) (pág. 12) Apesar do artigo dizer ser o HFS+ o responsável pelo bit rot , acho meio improvável que esteja tão escangalhado assim a ponto de corromper por conta os arquivos. Está mais para algo no hardware. Sistemas de arquivos que não mantêm checksums dos dados não possuem nenhuma forma de validar a integridade dos mesmos e simplesmente confiam no que o hardware entrega. Checksums dos metadados têm igual propósito, mas protegem apenas as estruturas do sistema de arquivos em si, não dos dados armazenados. Comparando com os Unix-like, temos no Linux: EXT4 - Apesar de ter também raízes nos anos 80, tem menos limitações. Peca pela forma como indexa espaço livre (bitmaps) e pela confusão de opções de formatação/montagem, algumas incompatíveis entre si. Enquanto escrevo (e2fsprogs 1.42.x), o mke2fs ainda ...