¿Por qué OS X Mavericks bloquea el comando de purga en Terminal?

24

Cuando pruebo el purgecomando en mi terminal, OS X Mavericks me da el siguiente mensaje:

Unable to purge disk buffers: Operation not permitted

Este no ha sido el comportamiento predeterminado hasta ahora. Me pregunto por qué Apple cambió eso. ¿Hay alguna razón detrás de esta decisión? ¿Cuáles son las ventajas / desventajas de esto?

Gabriel Izaias
fuente

Respuestas:

23

Necesita ejecutar este comando con privilegios de root. Tratar:

> 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:

Ingrese la contraseña de su cuenta y debería ejecutar el comando de purga.

Apple probablemente tomó la decisión por motivos de seguridad. La única desventaja es que debe escribir su contraseña de administrador. La ventaja es que, para usuarios que no son administradores, no pueden ejecutar este comando y potencialmente dañar su sistema operativo.

Por lo general, los comandos que se requieren sudopara ejecutarse son potencialmente destructivos o invasivos. Otros dos comandos con este requisito son dtracey xcode-select.

Ɱark Ƭ
fuente
3
Me preocupaban las aplicaciones que presumiblemente "aceleraban" el uso purge. Esta respuesta me ayudó a entender por qué no es una buena idea.
Gabriel Izaias
1
No puedo cerrar una pregunta como un duplicado en los sitios de SE, por lo que copié descaradamente su respuesta aquí . Siéntase libre de publicar su propia copia para que pueda eliminar mi copia de su respuesta.
Hennes
¿Puedes dar más detalles sobre "Apple probablemente tomó la decisión por motivos de seguridad"? ¿Qué tipo de problemas de seguridad cree que crea la purga de comandos?
Tiago
1

El uso del purgecomando puede tener serios efectos negativos en el rendimiento del sistema (ya que básicamente le está diciendo al núcleo que olvide todo su conocimiento acumulado sobre su uso reciente, recorra la lista inactiva y arroje todo, incluso si algún proceso / controlador estaba a punto de hacer uso de él, y luego falla / recrea todo de nuevo desde cero). Por lo tanto, tiene sentido que requiera algún nivel de privilegio para ejecutarlo.

jhfrontz
fuente
1

No soy un experto, pero puede tener algo que ver con la memoria comprimida en OS X 10.9

Haciendo más

Cuanta más memoria tenga su Mac a su disposición, más rápido funcionará. Pero cuando tiene múltiples aplicaciones ejecutándose, su Mac usa más memoria. Con OS X Mavericks, la memoria comprimida le permite a su Mac liberar espacio de memoria cuando más lo necesita. A medida que su Mac se acerca a la capacidad máxima de memoria, OS X comprime automáticamente los datos de las aplicaciones inactivas, haciendo que haya más memoria disponible

Exrta Fast

Una vez que la memoria está comprimida, su Mac no tiene que perder el tiempo transfiriendo datos continuamente entre la memoria y el almacenamiento. Por lo tanto, puede hacer más en menos tiempo. Y dado que la compresión y descompresión ocurre casi instantáneamente, lo único que notará es qué tan sensible se siente todo. Especialmente cuando estás haciendo todo a la vez.

Fuente: http://www.apple.com/osx/advanced-technologies/(no existente)

Ver también: OS X Mavericks es más que poderoso: es Power Smart (PDF)

Es posible que hayan hecho eso para evitar que el programa anterior interfiera con la nueva forma de hacer las cosas. Pero no tengo idea.

usuario61659
fuente
-1

'purge' no libera suficiente RAM. Estoy usando SystemPal: https://itunes.apple.com/app/systempal/id453164367?mt=12 ¡Funciona muy bien!

Vince Yuan
fuente
2
¿Qué diferencias de comportamiento te hacen creer que una aplicación de terceros de Mac App Store puede purgar más memoria que una herramienta incluida de OS X de Apple?
Graham Miln
1
¿O que cualquier aplicación / usuario casual podría tomar mejores decisiones sobre la administración de memoria que el kernel?
jhfrontz
-5

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

Crear un script de terminal para purgar la memoria

  1. Comience abriendo la Terminal.

  2. Ingrese la siguiente línea:

    cd Desktop/

    y presione enter. Esto apunta la Terminal a su escritorio en lugar de su carpeta de usuario. Puede apuntar Terminal a cualquier carpeta que desee para este tutorial.

  3. Entrar:

    touch Purge

    y presione enter. Esto crea un nuevo archivo llamado "Purga" en su escritorio, aunque todavía no lo verá.

  4. Entrar:

    pico Purge

    y presione enter. Esto abre el editor de Terminal para el archivo de purga.

  5. Ingrese el siguiente texto en el editor:

    #!/bin/sh
    
    purge
  6. Presione Control + O y luego Enter para guardar el archivo en su escritorio. Luego presione Control + X para salir del editor. Asegúrese de usar la tecla Control, no la tecla de comando.

  7. Una vez que regrese a la pantalla normal de la Terminal, ingrese:

    chmod 755 Purge

    y presione enter. Esto hace que el archivo que acabamos de crear sea accesible para usted. De manera predeterminada, OS X oculta los archivos que crea usando el tacto.

  8. Ahora tendrá un archivo en su escritorio llamado "Purga". Puede abrir este archivo para limpiar automáticamente la memoria de su computadora. Una vez que la Terminal muestra un mensaje [Proceso completado], puede cerrar la aplicación y continuar.

Shashi Kumar
fuente
Esto no resuelve el problema descrito en la pregunta. Además, arregle el formato de su publicación.
nohillside
1
Siempre fuente de contenido copiado (cc @patrix).
grg