Como você move arquivos para o sistema de arquivos na memória montado em / dev / shm

4

Alguém me falou recentemente sobre o / dev / shm. Todos vocês ajudaram a refinar minha compreensão do que / dev / shm é Que pasta de desenvolvimento permite que você diga ao sistema operacional para armazenar em cache algo?

A pessoa que me contou sobre / dev / shm disse que eu poderia usá-lo para, digamos, descompactar um arquivo grande mais rapidamente do que em um sistema de arquivos comum. Eu estou tentando fazer isso agora em uma máquina OS X. Eu corro

sudo cp /Volumes/USB/rcv1rcv2aminigoutte.tar.bz2 /dev/shm

e obtenha

cp: /dev/shm: Operation not supported

Como carrego um arquivo do sistema de arquivos normal no sistema de arquivos na memória montado em / dev / shm

Obrigado como sempre. Eu aprendo uma tonelada de fazer perguntas neste site.

    
por bernie2436 25.08.2014 / 03:14

1 resposta

7

De acordo com meu conhecimento, /dev/shm é um recurso somente do Linux. Eu apenas dobrei no meu sistema OSX 10.9.4 e definitivamente não tem /dev/shm .

Agora, dado que o OSX está enraizado no Unix, eu ficaria muito surpreso se não tivesse algo semelhante, então procurar pelo equivalente me levou a esse SO Q & A intitulado: O OS X tem um equivalente a / dev / shm? , que por sua vez me levou a esta URL intitulada : Flazing Fast Firefox usando o OSX RamDisk .

Esta página mostrou este script que está criando um RamDisk no OSX:

#!/bin/bash
# Run this script to enable the Ramdisk for Firefox profiles
VolumeName="Mozilla"

# Size in MB, make sure it is not too low or too high
SizeInMB=220

NumSectors=$((2*1024*SizeInMB))

DeviceName='hdid -nomount ram://$NumSectors'

echo $DeviceName

diskutil eraseVolume HFS+ RAMDisk $DeviceName

# move the current profiles folder
mv Profiles Profiles_ &&

# make a symlink to the ramdisk
ln -s /Volumes/RAMDisk ./Profiles &&

# then copy it to the ramdisk
/bin/cp -r Profiles_/* Profiles

Especificamente, esta linha:

diskutil eraseVolume HFS+ RAMDisk $DeviceName

Agora aprendemos que esses tipos de dispositivos na linguagem OSX são chamados de Discos de RAM (na verdade, eles são chamados no Linux e em outros sistemas operacionais, mas estou mostrando como decompor esses tipos de perguntas para referência futura).

Esta página tinha ainda mais informações e um link para uma ferramenta gráfica, Criador de Disco RAM , que você pode usar para construir seus próprios Discos RAM no OSX também.

trecho

Aqui está um exemplo de comando sobre como construir o seu próprio.

$ diskutil erasevolume HFS+ 'RAM Disk' 'hdiutil attach -nomount ram://8388608'

Que se parece com isso quando você o executa:

OBSERVAÇÃO: você pode usar esse método para calcular o valor de ram://XXXXX da seguinte forma:

Replace the X characters with a number that represents the block size for the total capacity of your RAM Disk. Calculate this number by multiplying your desired size of disk in megabytes by 2048. In our example, we’ll create a 4 GB RAM Disk, which requires a number of 8388608 (4096 * 2048).

    
por 25.08.2014 / 03:31