Tại sao OS X Mavericks chặn lệnh thanh trừng trong Terminal?


24

Khi tôi thử purgelệnh trên thiết bị đầu cuối của mình, OS X Mavericks cho tôi thông báo sau:

Unable to purge disk buffers: Operation not permitted

Điều này đã không được hành vi mặc định cho đến bây giờ. Tôi tự hỏi tại sao Apple thay đổi điều đó. Có một lý do đằng sau quyết định này? Những lợi thế / bất lợi của điều này là gì?

Câu trả lời:


23

Bạn cần chạy lệnh này với quyền root. Thử:

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

Nhập mật khẩu tài khoản của bạn và nó sẽ chạy lệnh thanh trừng.

Apple có thể đã đưa ra quyết định cho mục đích bảo mật. Nhược điểm duy nhất là bạn phải nhập mật khẩu quản trị viên. Ưu điểm là, đối với người dùng không phải quản trị viên, họ không thể chạy lệnh này và có khả năng gây hại cho hệ điều hành của họ.

Thông thường các lệnh yêu cầu sudođể chạy tất cả đều có khả năng phá hủy hoặc xâm lấn. Hai lệnh khác với yêu cầu này là dtracexcode-select.


3
Tôi lo ngại về các ứng dụng có lẽ "tăng tốc mọi thứ" bằng cách sử dụng purge. Câu trả lời này đã giúp tôi hiểu tại sao nó không phải là một ý tưởng tốt.
Gabriel Izaias

1
Tôi không thể đóng câu hỏi dưới dạng trùng lặp trên các trang SE, vì vậy tôi đã sao chép câu trả lời của bạn một cách trắng trợn ở đây . Vui lòng gửi bản sao của riêng bạn để tôi có thể xóa bản sao câu trả lời của bạn.
Hennes

Bạn có thể nói rõ hơn về "Apple có thể đưa ra quyết định cho mục đích bảo mật" không? Những loại vấn đề bảo mật nào bạn tin rằng lệnh thanh trừng tạo ra?
Tiago

1

Sử dụng purgelệnh có thể có tác động tiêu cực nghiêm trọng đến hiệu suất của hệ thống (vì về cơ bản bạn đang nói với kernel để quên tất cả kiến ​​thức tích lũy của nó về việc sử dụng gần đây của bạn, đi qua danh sách không hoạt động và ném mọi thứ - ngay cả khi một số trình điều khiển / trình điều khiển chuẩn bị sử dụng nó - và sau đó lỗi / tạo lại tất cả từ đầu). Vì vậy, nó có ý nghĩa rằng nó sẽ đòi hỏi một số mức đặc quyền để thực hiện nó.


1

Tôi không phải là chuyên gia, nhưng nó có thể có liên quan đến bộ nhớ nén trong OS X 10.9

Làm nhiều hơn

Máy Mac của bạn càng có nhiều bộ nhớ thì nó càng hoạt động nhanh. Nhưng khi bạn có nhiều ứng dụng đang chạy, máy Mac của bạn sẽ sử dụng nhiều bộ nhớ hơn. Với OS X Mavericks, Bộ nhớ nén cho phép máy Mac của bạn giải phóng không gian bộ nhớ khi bạn cần nhất. Khi máy Mac của bạn đạt dung lượng bộ nhớ tối đa, OS X sẽ tự động nén dữ liệu từ các ứng dụng không hoạt động, cung cấp thêm bộ nhớ

Exrta nhanh

Khi bộ nhớ được nén, máy Mac của bạn không phải lãng phí thời gian liên tục truyền dữ liệu qua lại giữa bộ nhớ và bộ nhớ. Vì vậy, nó có thể hoàn thành nhiều việc hơn trong thời gian ngắn hơn. Và vì việc nén và giải nén xảy ra gần như ngay lập tức, điều duy nhất bạn sẽ nhận thấy là mọi thứ đều nhạy cảm như thế nào. Đặc biệt là khi bạn đang làm mọi thứ cùng một lúc.

Nguồn: http://www.apple.com/osx/advanced-technologies/(không tồn tại)

Xem thêm: OS X Mavericks còn mạnh hơn cả: Đó là Power Smart (PDF)

Họ có thể đã làm điều đó để tránh chương trình cũ không can thiệp vào cách làm mới. Nhưng tôi không có ý kiến.


-1

'thanh lọc' không giải phóng đủ RAM. Tôi đang sử dụng SystemPal: https://itunes.apple.com/app/systempal/id453164367?mt=12 Nó hoạt động rất tốt!


2
Sự khác biệt nào trong hành vi khiến bạn tin rằng một ứng dụng bên thứ ba từ Mac App Store có thể thanh lọc nhiều bộ nhớ hơn so với một công cụ bao gồm OS X của Apple?
Graham Miln

1
Hoặc rằng bất kỳ ứng dụng / người dùng thông thường nào cũng có thể đưa ra quyết định tốt hơn về quản lý bộ nhớ so với kernel?
jhfrontz

-5

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

Tạo một tập lệnh đầu cuối để lọc bộ nhớ

  1. Bắt đầu bằng cách mở Terminal.

  2. Nhập dòng sau:

    cd Desktop/

    và nhấn enter. Điều này trỏ Terminal đến máy tính để bàn của bạn chứ không phải thư mục người dùng của bạn. Bạn có thể trỏ Terminal đến bất kỳ thư mục nào bạn muốn cho hướng dẫn này.

  3. Đi vào:

    touch Purge

    và nhấn enter. Điều này tạo ra một tệp mới gọi là "Thanh lọc" trên máy tính để bàn của bạn, mặc dù vậy bạn sẽ không thấy nó.

  4. Đi vào:

    pico Purge

    và nhấn enter. Điều này sẽ mở trình soạn thảo Terminal cho tệp thanh lọc.

  5. Nhập văn bản sau vào trình chỉnh sửa:

    #!/bin/sh
    
    purge
  6. Nhấn Control + O và sau đó Enter để lưu tệp vào máy tính để bàn của bạn. Sau đó nhấn Control + X để thoát trình chỉnh sửa. Đảm bảo sử dụng phím Control, không phải phím lệnh.

  7. Khi bạn quay lại màn hình Terminal bình thường, hãy nhập:

    chmod 755 Purge

    và nhấn enter. Điều này làm cho tập tin chúng tôi vừa tạo có thể truy cập được cho bạn. Theo mặc định, OS X ẩn các tệp bạn tạo bằng cảm ứng.

  8. Bây giờ bạn sẽ có một tệp trên máy tính để bàn của bạn được gọi là "Thanh lọc". Bạn có thể mở tệp này để tự động dọn dẹp bộ nhớ máy tính của bạn. Khi Terminal hiển thị thông báo [Quá trình hoàn tất], bạn có thể đóng ứng dụng và tiếp tục.


Điều này không giải quyết vấn đề được mô tả trong câu hỏi. Ngoài ra, vui lòng sửa định dạng của bài viết của bạn.
nohillside

1
Luôn luôn nguồn nội dung được sao chép (cc @patrix).
grg
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.