Tại sao việc nâng cấp macOS / iOS mất nhiều thời gian như vậy?


11

Ngay cả trên iMac Pro, vẫn cần một chút thời gian (có thể là 15 phút) để nâng cấp HĐH (sau khi mọi thứ được tải xuống). Trong thời gian này, tôi không thể sử dụng máy tính.

Tại sao vậy? Nó thực sự đang làm gì? Tại sao quá trình này không phải là một khởi động lại đơn giản?

Xin lưu ý Tôi không hỏi tại sao khi khởi động lại là bắt buộc. Là một nhà phát triển phần mềm, tôi hoàn toàn nhận thức được tại sao cần phải khởi động lại.

Cũng lưu ý Một lý do rõ ràng tại sao việc nâng cấp có thể mất một thời gian là di chuyển hệ thống tệp (chẳng hạn như di chuyển HFS + → APFS). Apple đã thực hiện một số di chuyển thử nghiệm, thậm chí, trước khi đưa ra điều cuối cùng. Tuy nhiên, hầu hết các nâng cấp hệ điều hành không liên quan đến các thay đổi đối với hệ thống tệp AFAIK.

Đây là một câu hỏi tương tự như Tại sao kiểm tra Cập nhật phần mềm OS X mất nhiều thời gian như vậy? về một quá trình nâng cấp khác mất một lúc. Có những chi tiết cụ thể về macOS và iOS đáng để xem xét khi trả lời câu hỏi này. Ví dụ: cả hai tàu có trình điều khiển cần thiết cho tất cả các hệ thống được hỗ trợ.


6
Tôi đang bỏ phiếu để đóng câu hỏi này dưới dạng 'ngoài chủ đề' theo các nguyên tắc câu hỏi được công bố. Các câu hỏi hỏi tại sao Apple đã làm, không, có thể hoặc không thể làm điều gì đó không được ghi lại bởi vì nhóm này không thể được trả lời.
fsb

5
@fsb Điều độ quá mức điển hình khiến mọi người tắt các trang web này.

3
Tôi đã không làm điều đó vì 'quá chừng mực'. Cách câu hỏi của bạn được diễn đạt, ban đầu trước khi chỉnh sửa, là hỏi tại sao Apple yêu cầu khởi động lại. Cách tôi đọc nó là lạc đề. Phải mất hơn 1 người bỏ phiếu để đóng một câu hỏi, phải mất 4 phiếu. Những trang web này giúp nhiều người bằng cách đảm bảo các câu hỏi có thể có và có được câu trả lời chính xác. Vui lòng xem Cách hỏi để biết các mẹo về cách đặt câu hỏi có thể nhận được câu trả lời hay.
fsb

1
@fsb Đã rõ trước khi chỉnh sửa. "Tại sao nâng cấp hệ điều hành không chỉ đơn giản là khởi động lại?" không phải là "Tại sao nâng cấp hệ điều hành yêu cầu khởi động lại?" Sau đó, tôi đã đề cập "Tại sao quá trình này không phải là một khởi động lại đơn giản?" Sau đó tôi đề cập đến "và sau đó khởi động lại" Bạn đọc sai câu hỏi ban đầu, nhưng không phải lo lắng.

5
Đây là một câu hỏi hoàn toàn hợp lệ. Đây không phải là "Tại sao Apple làm X, Y hoặc Z" mà là "tại sao một quá trình lại mất nhiều thời gian như vậy?" đó là kỹ thuật trong tự nhiên. Đề cử để mở lại.
Allan

Câu trả lời:


4

Tại sao quá trình này không phải là một khởi động lại đơn giản?

Câu trả lời tổng thể ở đây là nó phụ thuộc. Nó phụ thuộc rất lớn vào những gì cần phải được thực hiện. Một bản cập nhật mà bạn làm cho hệ thống của bạn có thể khác rất nhiều so với tôi làm. Bản cập nhật trong câu hỏi có thể chỉ cần một dịch vụ được khởi động lại hoặc nó có thể cần cập nhật cho kernel thực sự.

Tại sao [tôi không thể sử dụng máy tính]?

Nói chung, vì lý do tương tự, bạn không thể sử dụng một ứng dụng (Word, Excel, Numbers, iTerm, Adobe Photoshop, v.v.) đang trong quá trình nâng cấp. Các tệp phải được đóng, đọc, phân tích, các bản vá / cập nhật thích hợp được sao chép lại và ứng dụng được khởi động lại.

Khi một hệ điều hành được nâng cấp, điều tương tự phải xảy ra và điều này thường được thực hiện (đặc biệt là khi nâng cấp cấp hạt nhân) trong chế độ người dùng.

Thông thường, bạn sẽ thấy các bản cập nhật được tải xuống, hệ thống sẽ bắt đầu tắt máy, cập nhật được áp dụng, khởi động lại và "hoàn thiện" các bản cập nhật theo sau là một khởi động bình thường. Bạn không thể sử dụng máy tính trong thời gian này.

Nó thực sự đang làm gì?

Nó phụ thuộc. Nó có thể là bất cứ điều gì, từ việc vá một tập tin cấu hình đến phần sụn flash.

Nếu hệ thống đang hoạt động /System, tại sao nâng cấp hệ điều hành không chỉ đơn giản là tạo ra một /NewSystem

Trước hết, /Systemđược bảo vệ bởi SIP vì vậy để vô hiệu hóa nó, bạn thực sự cần phải khởi động từ một điểm gắn kết khác. * Thứ hai, cách bạn nhìn vào điều này tương tự như thực hiện cải tạo nhà bằng cách đổ một ngôi nhà mới bên cạnh ngôi nhà cũ và bảo mọi người chỉ cần chuyển đến. Đây không phải là cách nó hoạt động.

Nhiều điều phải xảy ra, trong đó ít nhất là các điểm khôi phục được tạo (trong trường hợp sao lưu không thành công). Vì vậy, điều này có nghĩa là một bản sao của hệ thống làm việc được tạo ra, bản cập nhật được áp dụng, bản cập nhật được kiểm tra và (nếu tất cả đều tốt) điểm khôi phục đã bị xóa.

Trong trường hợp cập nhật chương trình cơ sở, hình ảnh phải được xác minh (nghĩa là bạn không muốn có chương trình cơ sở Mac mini trên máy Mac Pro), tổng kiểm tra được xác thực, hình ảnh được sao lưu, áp dụng, xác minh, loại bỏ cũ và hệ thống được khởi tạo lại. Một lần nữa, không ai có thể thực hiện được với bạn đã đăng nhập và không ai trong số đó thực hiện được bằng cách đơn giản là "đổ" các tệp trong một thư mục.

Nâng cấp là một quá trình và tất cả điều này cần có thời gian.


* SIP được thiết kế để bảo vệ hệ thống bằng cách ngăn chặn các thay đổi đối với HĐH. Cho phép HĐH thay đổi hệ thống "đang hoạt động" sẽ phủ nhận tính bảo mật mà nó đang cố gắng đạt được.


Cảm ơn câu trả lời của bạn Allan. Ok, vì vậy tôi có thể, với quyền root, mà không vi phạm SIP, tạo một kho lưu trữ của thư mục hệ thống (chỉ cần thử nó). Có, bạn sẽ cần phải tắt SIP để chuyển sang một hệ thống mới, nhưng sẽ không mất nhiều thời gian nếu /NewSystemđã được xây dựng.

Đó không phải là cách nó hoạt động. Bên cạnh đó .... quá trình cài đặt có thể mất nửa giờ hoặc hơn và về mặt kỹ thuật chỉ là sao chép tệp. Một bản cập nhật làm được nhiều, nhiều hơn là chỉ sao chép các tập tin.
Allan

"Một lần nữa, không ai có thể được thực hiện với bạn đăng nhập" Tại sao không, chính xác?

Bạn có thể cập nhật một ứng dụng trong khi một ứng dụng đang chạy không? Cùng một khái niệm nhưng phức tạp hơn nhiều. Hệ điều hành của bạn đang chạy (các tệp được mở và bảo vệ). Bạn phải tiêu diệt các tiến trình, loại bỏ bảo vệ (không chỉ là chạy sudo) và vá hệ thống. Nếu đó là bản cập nhật kernel, bạn phải đưa mọi thứ xuống vì sẽ không có gì được viết.
Allan

Không, nhưng bạn có thể thực hiện phần lớn công việc trong việc cập nhật ứng dụng trong khi ứng dụng đang chạy. Đó là: giải nén, áp dụng các cập nhật khác biệt để xây dựng cấu trúc thư mục mới và kiểm tra. Tôi không thấy một bản cập nhật hệ điều hành khác biệt đáng kể. Chúng ta có thể đi vào đám cỏ dại ở đây.

3

Việc khởi động lại máy tính cho một số cập nhật / nâng cấp hệ điều hành là bắt buộc đối với tất cả các hệ điều hành, không chỉ macOS.

Trên thực tế, trong trường hợp cập nhật , đôi khi không cần phải khởi động lại khi nó vẫn được sử dụng như một phần của quá trình cập nhật, nhưng điều này chỉ xảy ra trong trường hợp phần lớn dân số người dùng phải trải qua quá trình khởi động lại dễ dàng hơn. Ví dụ: một số cập nhật hệ thống thực hiện thay đổi đối với những thứ như dịch vụ mạng và, trong khi bạn có thể thoát khỏi việc khởi động lại thay vì toàn bộ máy tính, hầu hết người dùng sẽ dễ dàng khởi động lại hơn là thực hiện các bước để khởi động lại mạng dịch vụ.

Tuy nhiên, trong hầu hết các trường hợp cần phải khởi động lại, đó là vì nó thực sự cần thiết. Có nhiều tài nguyên hệ điều hành được sử dụng bởi các ứng dụng, bao gồm cả ứng dụng của bên thứ 3 và cập nhật những tài nguyên này trong khi người dùng đăng nhập sẽ không phải là một nhiệm vụ dễ dàng và trên thực tế, có khả năng gây ra hỏng tệp, v.v.

Ngoài ra, trong trường hợp cập nhật firmware, việc khởi động lại chắc chắn là bắt buộc. Thêm vào đó, một vài năm trước, Apple đã tự động bắt đầu bao gồm các bản cập nhật firmware (nếu / khi được yêu cầu) trong các bản cập nhật / nâng cấp macOS, vì vậy không dễ để kiểm tra thiết bị nào có bản cập nhật firmware có trong bản cập nhật / nâng cấp. Mặc dù vậy, các bản cập nhật firmware yêu cầu khởi động lại, không có cách nào khác.

Một ví dụ khác là cập nhật các tài nguyên cần thiết để sử dụng phần cứng. Trong một số trường hợp, cần phải khởi động lại, trong những trường hợp khác thì không.

Cuối cùng, về câu hỏi cuối cùng của bạn về việc tại sao không chỉ tạo ra một mới hệ thống và sau đó có này trở thành hoạt động sau khi khởi động lại tiếp theo, trong khi điều này sẽ về mặt kỹ thuật có thể nó thực sự là không thực tế. Thư mục Hệ thống có kích thước GB và việc này sẽ mất nhiều thời gian hơn và yêu cầu dung lượng trống lớn hơn nhiều trên ổ đĩa khởi động.


Câu hỏi của tôi không phải là "tại sao hệ điều hành không thể được nâng cấp mà không khởi động lại?". Đó là lý do tại sao quá trình này mất quá nhiều thời gian và khóa người dùng? Ngoài ra, các liên kết cứng ( en.wikipedia.org/wiki/Hard_link ) có thể được sử dụng để giảm đáng kể thời gian và không gian cần thiết để nâng cấp. (Lưu ý: Tôi là nhà phát triển phần mềm)

2
@Taylor đặc biệt lại: Các bản cập nhật OTA iOS, chúng được phân phối dưới dạng các bản vá khác biệt cần được áp dụng cho các tệp hiện có. Cả bản cập nhật OTA và không OTA cho iOS vẫn được lưu trữ trên một thiết bị được mã hóa và cần được mã hóa như một phần của quá trình cài đặt. Mã hóa mọi thứ cần có thời gian. Những người duy nhất tôi biết về những người hoàn toàn chắc chắn tại sao những quyết định đó được đưa ra là nhóm phát triển tại Cupertino.
Scottmeup
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.