Чому OS X Mavericks блокує команду очищення в терміналі?


24

Коли я пробую purgeкоманду на своєму терміналі, OS X Mavericks видає мені таке повідомлення:

Unable to purge disk buffers: Operation not permitted

Це не було поведінкою за замовчуванням до цих пір. Цікаво, чому Apple змінила це. Чи є причина цього рішення? Які переваги / недоліки цього?

Відповіді:


23

Вам потрібно запустити цю команду з правами root. Спробуйте:

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

Введіть пароль свого облікового запису, і він повинен виконати команду очищення.

Apple, ймовірно, прийняла рішення в цілях безпеки. Єдиний недолік - вам потрібно ввести пароль адміністратора. Перевага полягає в тому, що для користувачів, які не є адміністратором, вони не можуть запустити цю команду і потенційно можуть завдати шкоди своїй ОС.

Зазвичай команди, які потрібні sudoдля того, щоб взагалі працювати, є потенційно руйнівними або інвазивними. Дві інші команди з цією вимогою є dtraceі xcode-select.


3
Мене хвилювали програми, які, імовірно, "прискорюють справи" за допомогою purge. Ця відповідь допомогла мені зрозуміти, чому це не дуже гарна ідея.
Габріель Ізаяс

1
Я не можу закрити питання як дублікат на веб-сайтах SE, тому я відверто скопіював тут свою відповідь . Не соромтеся розмістити свою копію, щоб я міг видалити свою копію вашої відповіді.
Геннес

Чи можете ви детальніше розповісти про те, що "Apple, ймовірно, прийняла рішення в цілях безпеки"? Які проблеми безпеки, на вашу думку, створює командна чистка?
Тіаго

1

Використання purgeкоманди може мати серйозні негативні наслідки на продуктивність системи (оскільки ви, по суті, говорите ядру забути всі накопичені знання про ваше недавнє використання, пройдіться по неактивному списку і киньте все - навіть якщо якийсь процес / драйвер збирався ним скористатися - а потім виправдати / відтворити все знову з нуля). Таким чином, є сенс, що для його виконання потрібен би певний рівень привілеїв.


1

Я не експерт, але це може мати щось спільне з стисливою пам'яттю в ОС X 10.9

Робимо більше

Чим більше пам'яті має ваш Mac, тим швидше він працює. Але коли у вас працює кілька додатків, ваш Mac використовує більше пам’яті. За допомогою OS X Mavericks, стисла пам'ять дозволяє вашому Mac звільнити місце в пам'яті, коли вам це найбільше потрібно. Коли ваш Mac наближається до максимальної ємності пам'яті, OS X автоматично стискає дані з неактивних додатків, роблячи більше пам'яті

Exrta Fast

Після стискання пам'яті вашому Mac не потрібно витрачати час на постійну передачу даних між пам’яттю та сховищем. Тож за короткий час можна зробити більше. А оскільки стискання та розпакування відбувається майже миттєво, єдине, що ви помітите, - це те, наскільки все почувається чуйно. Особливо, коли ти робиш все відразу.

Джерело: http://www.apple.com/osx/advanced-technologies/(не існує)

Дивіться також: OS X Mavericks є більш ніж потужним: це Power Smart (PDF)

Вони, можливо , зробили це, щоб уникнути того, щоб старіші програми не втручалися в новий спосіб здійснення дій. Але я поняття не маю.


-1

"продувка" не випускає достатню кількість оперативної пам'яті. Я використовую SystemPal: https://itunes.apple.com/app/systempal/id453164367?mt=12 Це працює дуже добре!


2
Які відмінності в поведінці змушують вас вважати, що стороннє додаток із магазину додатків Mac може очистити більше пам'яті, ніж інструмент Apple, що входить до ОС X X?
Грем Мілн

1
Або що будь-який додаток / випадковий користувач може приймати кращі рішення щодо управління пам'яттю, ніж ядро?
jhfrontz

-5

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

Створення термінального сценарію для очищення пам'яті

  1. Почніть з відкриття терміналу.

  2. Введіть наступний рядок:

    cd Desktop/

    і натисніть клавішу Enter. Це вказує термінал на робочий стіл, а не на папку користувача. Ви можете вказати Термінал на будь-яку папку, яку ви хочете для цього підручника.

  3. Введіть:

    touch Purge

    і натисніть клавішу Enter. Це створить новий файл під назвою "Очистити" на робочому столі, але ви його ще не побачите.

  4. Введіть:

    pico Purge

    і натисніть клавішу Enter. Це відкриває редактор терміналів для файлу очищення.

  5. Введіть наступний текст у редактор:

    #!/bin/sh
    
    purge
  6. Натисніть Control + O, а потім Enter, щоб зберегти файл на робочому столі. Потім натисніть Control + X, щоб вийти з редактора. Обов’язково використовуйте клавішу Control, а не командний ключ.

  7. Після повернення до звичайного екрана терміналу введіть:

    chmod 755 Purge

    і натисніть клавішу Enter. Це робить файл, який ми тільки що створили, доступним для вас. За замовчуванням OS X приховує файли, які ви створюєте за допомогою touch.

  8. Тепер у вас на робочому столі з'явиться файл під назвою "Очистити". Ви можете відкрити цей файл, щоб автоматично очистити пам'ять комп'ютера. Як тільки на Терміналі з'явиться повідомлення [Процес завершення], ви можете закрити програму та продовжувати роботу.


Це не вирішує проблему, описану в питанні. Також виправте форматування своєї публікації.
nohillside

1
Завжди надсилайте джерело скопійованого вмісту (cc @patrix).
гр
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.