Phần mềm chạy tự nhiên có nghĩa là gì?
Khi mọi người đề cập đến việc chạy phần mềm bản địa, mô phỏng và tương thích phần mềm, chính xác thì họ đang đề cập đến điều gì? Đọc tiếp khi chúng ta đi sâu vào khái niệm phần mềm bản địa.
Phiên hỏi đáp hôm nay đến với chúng tôi của SuperUser - một phân khu của Stack Exchange, một nhóm các trang web hỏi đáp theo định hướng cộng đồng.
Câu hỏi
Người đọc SuperUser Throsby tò mò về ý nghĩa của việc chạy phần mềm nguyên bản. Anh ấy viết:
Tôi đã tự hỏi nó có nghĩa là gì để phần mềm chạy tự nhiên. Chính xác thì phần mềm đó là gì và nó khác với phần mềm không chạy tự nhiên như thế nào? Làm thế nào tôi có thể biết nếu một phần mềm nhất định sẽ chạy tự nhiên trên máy tính của tôi? Có khả năng đã có phần mềm trên máy tính của tôi chạy tự nhiên không?
Đọc về một sự tương tự tuyệt vời giải thích chính xác những gì nó có nghĩa là bản địa trên một hệ thống nhất định.
Câu trả lời
Người đóng góp SuperUser Deltik cung cấp một sự tương tự tuyệt vời làm nổi bật ý nghĩa của phần mềm là bản địa và loại phần mềm khác mà người ta có thể tìm thấy trên một hệ thống nhất định:
Một phần mềm có nguồn gốc từ một nền tảng nếu nó được thiết kế để chạy trên nền tảng đó.
Một nền tảng thường đề cập đến một hệ điều hành, nhưng nó cũng có thể được áp dụng cho các thiết bị như Nintendo Game Boy.
Lấy ví dụ về Game Boy, nó lấy phần mềm từ hộp mực. Các hộp mực chứa mã chạy nguyên bản trên Game Boy.
Trình giả lập là một lớp cho phép phần mềm được thiết kế cho một nền tảng chạy trên nền tảng khác. Ví dụ: có các trình giả lập có thể thực thi hình ảnh của các hộp mực Game Boy và cho phép bạn chơi các trò chơi Game Boy trên máy tính hoặc thậm chí là điện thoại di động của bạn.
Một lớp tương thích giống như một trình giả lập. Khi máy tính và hệ điều hành 64 bit trở thành xu hướng, chúng cần tương thích với các công nghệ 32 bit hiện có. Do kiến trúc 64 bit và 32 bit rất khác nhau, nên thường cần một lớp tương thích để chạy phần mềm 32 bit trên các máy 64 bit. Đối với phiên bản 64 bit của Microsoft Windows, Microsoft cần phải viết một lớp tương thích để các chương trình 32 bit vẫn hoạt động trên hệ thống 64 bit mới. Đây là lý do tại sao một số chương trình thường được cài đặt vào một thư mục có tên
Tệp chương trình (x86)
, Ở đâux86
có nghĩa là người Scotland 32-bit.Các lớp tương thích có xu hướng thân mật hơn với hệ thống gốc hơn là các trình giả lập. VirtualBoxthi đua phần cứng cho các hệ điều hành * và các hệ thống mà nó mô phỏng không có nhiều tương tác trực tiếp với hệ thống máy chủ. WoW64 là một lớp tương thích trong đó nó cho phép các chương trình 32 bit chạy trên Windows 64 bit theo cách tích hợp hơn. WoW64 giúp thực hiện các chương trình tương thích hơn làthi đua chúng trong một môi trường biệt lập.
Một thư viện dịch là một thành phần của các lớp tương thích. Bất cứ khi nào mã nhị phân đang chạy không nguyên bản, thư viện dịch sẽ giúp chuyển hướng các cuộc gọi không phải tiếng nước ngoài sang cuộc gọi gốc mà hệ thống có thể hiểu được. Các chương trình lắp ráp được viết cho TI-83 ban đầu có thể không tương thích với các máy tính TI-83/84 Plus mới hơn vì một số cuộc gọi có ý nghĩa trong kiến trúc của TI-83 có thể không còn hợp lệ trong TI-83/84 +. Một thư viện dịch thuật (có thể được bao gồm trong các vỏ như MirageOS) đảm bảo rằng các cuộc gọi cho TI-83 đến các địa điểm mới, được cập nhật trong máy tính TI-83/84 +.
Mã độc lập với nền tảng được viết bằng một ngôn ngữ giải thích bởi một cái gì đó thường chạy tự nhiên. Ví dụ, PHP là ngôn ngữ lập trình được diễn giải và thực thi bởi tệp nhị phân PHP đã cài đặt, đã được biên dịch nguyên bản cho Windows, Mac và các hệ điều hành dựa trên Unix. Mã PHP mà các trình tạo kịch bản web viết độc lập với nền tảng, cho phép mã hoạt động trên nhiều hệ điều hành miễn là PHP được cài đặt cho các hệ điều hành đó.
Có một cái gì đó để thêm vào lời giải thích? Tắt âm thanh trong các ý kiến. Bạn muốn đọc thêm câu trả lời từ những người dùng Stack Exchange am hiểu công nghệ khác? Kiểm tra chủ đề thảo luận đầy đủ ở đây.