Thế nào là một ứng dụng được hỗ trợ "native" trên Apple Silicon?

Công Minh
2 năm trước
Cập nhật 2 năm trước
Hẳn anh em đã không ít lần nghe đến khái niệm này khi Apple giới thiệu các sản phẩm sử dụng SoC Apple M1. Vậy rốt cuộc nó có nghĩa là gì?

Cuối năm qua, Apple đã cho ra mắt một số sản phẩm sử dụng phần cứng Silicon do chính công ty phát triển; bao gồm những MacBook Air, MacBook Pro hay Mac Mini. Và sau sự kiện Apple SpringLoaded rạng sáng nay (21/04), danh sách trên đã có thêm hai cái tên là iMac và iPad Pro. Khi nhà Táo giới thiệu chúng, hẳn anh em cũng không ít lần nghe về ứng dụng "native" (hay "ứng dụng gốc", "ứng dụng nguyên bản", v.v. đại loại vậy). Vậy khái niệm "native" đó nghĩa là gì? 

Phần mềm "native" là gì?

Phần mềm được gọi là "native" cho một hệ thống máy tính là khi nó được viết riêng chỉ cho "loại máy tính" (hay "kiến trúc") đó mà thôi. Nếu một phần mềm không phải "native", tức là nó được tạo ra cho một hệ thống máy tính khác với những gì bạn đang sở hữu. 

Thông thường, một hệ thống máy tính sẽ không thể chạy được phần mềm không hỗ trợ "native" cho nó. Nhưng trên thực tế, chúng ta có những công cụ phần mềm đặc biệt được gọi là "trình giả lập" (emulator), "máy ảo" (virtual machine) và trình biên dịch nhị phân (binary translator) để giúp quá trình này diễn ra. 

Bằng cách hỗ trợ hệ thống dịch mã giữa các kiến trúc một cách nhanh chóng, một phần mềm không phải "native" sẽ được chạy dưới dạng biên dịch hoặc mô phỏng mà không cần sự cho phép chính thức từ nhà phát triển. Tuy nhiên, việc phải qua thêm một lần biên dịch sẽ khiến việc khởi chạy phức tạp hơn, khiến phần mềm chạy theo cách này thường sẽ chậm hơn phiên bản native. Ngoài ra, phần mềm không phải native sẽ không tận dụng được toàn bộ tính năng và lợi thế trên kiến trúc phần cứng mà nó giả lập. 

Về kiến trúc Silicon mới trên máy Mac

Khác biệt lớn nhất của các sản phẩm Mac Apple Silicon sẽ nằm ở kiến trúc máy tính mà chúng sử dụng (ARM), có khác biệt so với những mẫu máy cũ chạy phần cứng Intel (x86-64). Điều này có nghĩa vi xử lý trên hai phiên bản sẽ hoạt động khác nhau; đồng nghĩa với việc phần mềm của chúng cũng phải được dịch lại, viết lại hay thậm chí biên tập từ đầu bởi nhà phát triển để hoat động tốt nhất trên từng loại phần cứng chỉ định. 

Hiện tại, công nghệ mà Apple sử dụng trên Mac Silicon để biên dịch phần mềm chạy trên Mac Intel là Rosetta 2, với hiệu suất cho ra là rất đáng nể. Khi bạn lần đầu khởi chạy một ứng dụng được viết cho phần cứng Intel, Rosetta 2 sẽ được cài vào, và ứng dụng sẽ dựa vào đó để có thể chạy tiếp về sau. Để làm được điều này, Rosetta 2 sẽ dịch những đoạn code phần mềm ẩn giữa các kiến trúc máy tính, rồi sau đó lưu những gì đã học được để có thể vận hành ứng dụng hiệu quả hơn qua từng lần khởi chạy. 

Rosetta 2 cũng tuyệt đấy, nhưng ứng dụng native còn hơn thế nhiều!

Rosetta 2 đúng là rất tuyệt, nhưng nó cũng không thể giúp ứng dụng không native khoả lấp khoảng trống về tối ưu kiến trúc để đạt 100% hiệu suất. Nếu bạn đem hai phiên bản native - không native đặt lên bàn cân, chắc chắn ứng dụng native sẽ giành phần thắng với tốc độ và độ hiệu quả nhỉnh hơn. Bản thân mình cũng đang phải chịu hạn chế với một số ứng dụng chưa native chạy trên Rosetta 2, điển hình như Adobe Lightroom Classic. Nó nhiều lúc tỏ ra chậm chạp và thiếu ổn định trong nhiều tác vụ: Import ảnh, áp dụng preset, export ảnh và nhiều nữa. 

Adobe Lightroom Classic - một trong những cái tên khiến mình phiền lòng khi chưa hỗ trợ native M1.Vậy nên suy cho cùng, việc chạy được ứng dụng native chắc chắn sẽ là lựa chọn tốt hơn. Tuy nhiên, Apple Silicon mới ra mắt chưa đầy một năm, và rất khó để tất cả các nhà phát triển có thể nhanh chóng viết lại ứng dụng của mình từ Mac Intel để tương thích với kiến trúc mới. Vậy nên việc tốt nhất mà người dùng M1 làm được lúc này là chờ đợi thêm, cũng như chịu khó kiểm tra danh sách ứng dụng native thường xuyên ở các nguồn tổng hợp / trang chủ của từng ứng dụng. 

Tạm kết

Nhìn chung với Apple Silicon, có thể mọi thứ sẽ chưa thể thuận lợi với người dùng khi không phải ứng dụng nào cũng đã hỗ trợ native. Nhưng theo thời gian, các nhà phát triển chắc chắn sẽ tìm cách để cho ra phiên bản tương thích tốt nhất với kiến trúc mới, nên anh em vẫn cứ yên tâm nhé. 

Và đó cơ bản là những thứ mà anh em nên biết về phần mềm “native” trên Apple Silicon, lợi ích thế nào, khác biệt so với phần mềm chạy giả lập ra sao, v.v. Anh em mong muốn đâu sẽ là cái tên tiếp theo được hỗ trợ hoàn chỉnh trên kiến trúc mới? Hãy cùng bàn luận với ThinkView nhé. 

Theo HowtoGeek  

Thảo luận
Tham gia thảo luận văn minh cùng anh em ThinkView
Đăng nhập