Dlaczego OS X Mavericks blokuje polecenie czyszczenia w terminalu?

24

Kiedy próbuję wykonać purgepolecenie na moim terminalu, OS X Mavericks wyświetla mi następujący komunikat:

Unable to purge disk buffers: Operation not permitted

Do tej pory nie było to zachowanie domyślne. Zastanawiam się, dlaczego Apple to zmieniło. Czy jest powód tej decyzji? Jakie są zalety / wady tego?

Gabriel Izaias
źródło

Odpowiedzi:

23

Musisz uruchomić to polecenie z uprawnieniami administratora. Próbować:

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

Wprowadź hasło do konta, aby uruchomić komendę purge.

Apple prawdopodobnie podjął decyzję ze względów bezpieczeństwa. Jedyną wadą jest to, że musisz wpisać hasło administratora. Zaletą jest to, że użytkownicy niebędący administratorami nie mogą uruchomić tego polecenia i mogą zaszkodzić swojemu systemowi operacyjnemu.

Zwykle polecenia, które są wymagane sudodo uruchomienia, są potencjalnie destrukcyjne lub inwazyjne. Dwa inne polecenia z tym wymaganiem to dtracei xcode-select.

Ɱark Ƭ
źródło
3
Martwiłem się aplikacjami, które prawdopodobnie „przyspieszają” używanie purge. Ta odpowiedź pomogła mi zrozumieć, dlaczego nie jest to dobry pomysł.
Gabriel Izaias
1
Nie mogę zamknąć pytania jako duplikatu między witrynami SE, więc rażąco skopiowałem tutaj twoją odpowiedź . Opublikuj własną kopię, abym mógł usunąć kopię odpowiedzi.
Hennes,
Czy możesz rozwinąć temat „Apple prawdopodobnie podjął decyzję ze względów bezpieczeństwa”? Jak myślisz, jakie problemy z bezpieczeństwem powoduje czyszczenie poleceń?
Tiago,
1

Użycie purgepolecenia może mieć poważny negatywny wpływ na wydajność systemu (ponieważ zasadniczo mówisz kernelowi, aby zapomniał o całej swojej nagromadzonej wiedzy o twoim ostatnim użyciu, przejrzyj nieaktywną listę i podrzuć wszystko - nawet jeśli jakiś proces / sterownik miał z niego skorzystać - a potem zepsuć / odtworzyć to wszystko od nowa). Dlatego sensowne jest, że wykonanie go wymagałoby pewnego poziomu uprawnień.

jhfrontz
źródło
1

Nie jestem ekspertem, ale może to mieć coś wspólnego z pamięcią skompresowaną w OS X 10.9

Robiąc więcej

Im więcej pamięci Mac ma do dyspozycji, tym szybciej działa. Ale gdy masz uruchomionych wiele aplikacji, komputer Mac zużywa więcej pamięci. W systemie OS X Mavericks pamięć skompresowana pozwala zwolnić miejsce w pamięci komputera Mac, gdy jest ono najbardziej potrzebne. Gdy Mac zbliża się do maksymalnej pojemności pamięci, OS X automatycznie kompresuje dane z nieaktywnych aplikacji, udostępniając więcej pamięci

Exrta Fast

Po skompresowaniu pamięci komputer Mac nie musi tracić czasu na ciągłe przesyłanie danych tam iz powrotem między pamięcią a pamięcią. Dzięki temu można zrobić więcej w krótszym czasie. A ponieważ kompresja i dekompresja odbywa się niemal natychmiast, jedyną rzeczą, którą zauważysz, jest to, jak reaguje wszystko. Zwłaszcza, gdy robisz wszystko naraz.

Źródło: http://www.apple.com/osx/advanced-technologies/(nieistniejące)

Zobacz także: OS X Mavericks jest więcej niż potężny: jest Power Smart (PDF)

Być może zrobili to, aby uniknąć ingerencji starszego programu w nowy sposób robienia rzeczy. Ale nie mam pojęcia.

użytkownik61659
źródło
-1

„purge” nie zwalnia wystarczającej ilości pamięci RAM. Korzystam z SystemPal: https://itunes.apple.com/app/systempal/id453164367?mt=12 Działa bardzo dobrze!

Vince Yuan
źródło
2
Jakie różnice w zachowaniu sprawiają, że uważasz, że aplikacja innej firmy z Mac App Store może wyczyścić więcej pamięci niż narzędzie firmy Apple zawarte w OS X?
Graham Miln
1
Czy też każda aplikacja / zwykły użytkownik może podejmować lepsze decyzje dotyczące zarządzania pamięcią niż jądro?
jhfrontz
-5

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

Tworzenie skryptu terminala w celu wyczyszczenia pamięci

  1. Zacznij od otwarcia terminalu.

  2. Wpisz następujący wiersz:

    cd Desktop/

    i naciśnij enter. To wskazuje terminal na pulpicie, a nie na folder użytkownika. W tym samouczku możesz wskazać Terminal dowolnemu folderowi.

  3. Wchodzić:

    touch Purge

    i naciśnij enter. Spowoduje to utworzenie nowego pliku o nazwie „Oczyść” na pulpicie, ale jeszcze go nie zobaczysz.

  4. Wchodzić:

    pico Purge

    i naciśnij enter. Spowoduje to otwarcie edytora terminali dla pliku czyszczenia.

  5. Wpisz następujący tekst w edytorze:

    #!/bin/sh
    
    purge
  6. Naciśnij klawisze Control + O, a następnie Enter, aby zapisać plik na pulpicie. Następnie naciśnij Control + X, aby wyjść z edytora. Upewnij się, że używasz klawisza Control, a nie klawisza poleceń.

  7. Po powrocie do normalnego ekranu terminala wprowadź:

    chmod 755 Purge

    i naciśnij enter. Dzięki temu plik, który właśnie utworzyliśmy, jest dla Ciebie dostępny. Domyślnie OS X ukrywa pliki tworzone za pomocą dotyku.

  8. Teraz będziesz mieć na pulpicie plik o nazwie „Oczyść”. Możesz otworzyć ten plik, aby automatycznie wyczyścić pamięć komputera. Gdy terminal wyświetli komunikat [Proces zakończony], możesz zamknąć aplikację i kontynuować.

Shashi Kumar
źródło
To nie rozwiązuje problemu opisanego w pytaniu. Popraw też formatowanie swojego posta.
nohillside
1
Zawsze kopiuj źródła (cc @patrix).
grg