Por que o OS X Mavericks bloqueia o comando de limpeza no Terminal?


24

Quando tento o purgecomando no meu terminal, o OS X Mavericks me dá a seguinte mensagem:

Unable to purge disk buffers: Operation not permitted

Esse não foi o comportamento padrão até agora. Eu me pergunto por que a Apple mudou isso. Existe uma razão por trás dessa decisão? Quais são as vantagens / desvantagens disso?

Respostas:


23

Você precisa executar este comando com privilégios de root. Experimentar:

> sudo purge

WARNING: Improper use of the sudo command could lead to data loss
or the deletion of important system files. Please double-check your
typing when using sudo. Type "man sudo" for more information.

To proceed, enter your password, or type Ctrl-C to abort.

Password:

Digite a senha da sua conta e ela deverá executar o comando de limpeza.

A Apple provavelmente tomou a decisão por motivos de segurança. A única desvantagem é que você deve digitar sua senha de administrador. A vantagem é que, para usuários não administradores, eles não podem executar este comando e potencialmente prejudicar seu sistema operacional.

Normalmente, os comandos que exigem sudopara serem executados são potencialmente destrutivos ou invasivos. Dois outros comandos com esse requisito são dtracee xcode-select.


3
Eu estava preocupado com aplicativos que provavelmente "aceleram as coisas" usando purge. Essa resposta me ajudou a entender por que não é uma boa ideia.
Gabriel Izaias 24/10

1
Como não consigo fechar uma pergunta como duplicada nos sites do SE, copiei descaradamente sua resposta aqui . Fique à vontade para postar sua própria cópia para que eu possa excluir minha cópia da sua resposta.
Hennes

Você pode falar sobre "a Apple provavelmente tomou a decisão por motivos de segurança"? Que tipo de problemas de segurança você acredita que o expurgo de comando cria?
Tiago

1

O uso do purgecomando pode ter sérios efeitos negativos sobre o desempenho do sistema (já que você está essencialmente dizendo ao kernel para esquecer todo o conhecimento acumulado sobre seu uso recente, consulte a lista de inativos e lance tudo - mesmo que algum processo / driver estava prestes a usá-lo - e depois falha / recria tudo novamente do zero). Portanto, faz sentido que exigiria algum nível de privilégio para executá-lo.


1

Não sou especialista, mas pode ter algo a ver com a memória compactada do OS X 10.9

Fazendo mais

Quanto mais memória seu Mac tiver à sua disposição, mais rápido ele funcionará. Mas quando você tem vários aplicativos em execução, seu Mac usa mais memória. Com o OS X Mavericks, a Memória compactada permite que o seu Mac libere espaço na memória quando você mais precisar. À medida que o Mac se aproxima da capacidade máxima de memória, o OS X compacta automaticamente os dados de aplicativos inativos, disponibilizando mais memória

Exrta Fast

Depois que a memória é compactada, o Mac não precisa perder tempo transferindo dados continuamente entre a memória e o armazenamento. Portanto, é possível fazer mais em menos tempo. E como a compactação e descompactação acontece quase instantaneamente, a única coisa que você notará é como tudo se sente responsivo. Especialmente quando você está fazendo tudo de uma vez.

Fonte: http://www.apple.com/osx/advanced-technologies/(não existente)

Veja também: OS X Mavericks é mais do que poderoso: é Power Smart (PDF)

Eles podem ter feito isso para evitar que o programa mais antigo interfira na nova maneira de fazer as coisas. Mas eu não tenho ideia.


-1

'purge' não libera RAM suficiente. Estou usando o SystemPal: https://itunes.apple.com/app/systempal/id453164367?mt=12 Funciona muito bem!


2
Quais diferenças de comportamento fazem você acreditar que um aplicativo de terceiros da Mac App Store pode limpar mais memória do que uma ferramenta incluída no OS X da Apple?
Graham Miln

1
Ou que qualquer aplicativo / usuário casual poderia tomar melhores decisões sobre gerenciamento de memória do que o kernel?
jhfrontz

-5

http://computers.tutsplus.com/tutorials/how-to-give-your-mac-a-performance-boost--mac-46271

Criando um script de terminal para limpar a memória

  1. Comece abrindo o Terminal.

  2. Digite a seguinte linha:

    cd Desktop/

    e pressione enter. Isso aponta o Terminal para a área de trabalho e não para a pasta do usuário. Você pode apontar o Terminal para qualquer pasta que desejar para este tutorial.

  3. Entrar:

    touch Purge

    e pressione enter. Isso cria um novo arquivo chamado "Purge" na área de trabalho, mas você ainda não o verá.

  4. Entrar:

    pico Purge

    e pressione enter. Isso abre o editor de terminal para o arquivo de limpeza.

  5. Digite o seguinte texto no editor:

    #!/bin/sh
    
    purge
  6. Pressione Control + O e, em seguida, Enter para salvar o arquivo na área de trabalho. Em seguida, pressione Control + X para sair do editor. Certifique-se de usar a tecla Control, não a tecla de comando.

  7. Quando voltar à tela normal do Terminal, digite:

    chmod 755 Purge

    e pressione enter. Isso torna o arquivo que acabamos de criar acessível a você. Por padrão, o OS X oculta os arquivos que você cria usando o touch.

  8. Agora você terá um arquivo na área de trabalho chamado "Limpar". Você pode abrir este arquivo para limpar automaticamente a memória do seu computador. Depois que o Terminal exibir uma mensagem [Processo concluído], você poderá fechar o aplicativo e continuar.


Isso não resolve o problema descrito na pergunta. Além disso, corrija a formatação da sua postagem.
nohillside

1
Sempre fonte conteúdo copiado (cc @patrix).
grg
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.