Quá trình chuyển đổi sang 64 bit được xử lý trên Linux / Unix như thế nào? Thế giới Windows dường như vẫn có vấn đề với nó và tôi tò mò về cách nó được xử lý trong thế giới * nix.
Quá trình chuyển đổi sang 64 bit được xử lý trên Linux / Unix như thế nào? Thế giới Windows dường như vẫn có vấn đề với nó và tôi tò mò về cách nó được xử lý trong thế giới * nix.
Câu trả lời:
Các công việc cần thiết để làm cho kernel 64-bit đã được thực hiện một looooong thời gian trước đây sử dụng hệ thống DEC Alpha. Các chương trình, tuy nhiên, là một vấn đề khác nhau.
Sự đồng thuận chung mà tôi đã thấy cho đến nay dường như là:
/lib
và /lib64
thư mục cho các hệ thống có nhị phân hỗn hợpNgoài ra, bạn thực sự sẽ không thấy toàn bộ "nỗi đau buồn" từ các bản dựng 32/64 bit hỗn hợp.
multilib
Alien.slackbook.org/dokuwiki/doku.php?id=slackware:multilib
Windows và * ix đã sử dụng các mô hình dữ liệu khác nhau để chuyển đổi. Trang UNIX.org này hơi cũ, nhưng nó vẫn cung cấp một cái nhìn tổng quan tốt về sự đánh đổi (lưu ý long long
sau đó đã được thêm vào C99 và được yêu cầu ít nhất là 64 bit). Bạn cũng có thể thấy một bài viết Wikipedia về cùng một chủ đề. Như chủ trương vào cuối bài viết UNIX.org, hầu hết các tựa UNIX hệ thống đã đi với LP64, mà phương tiện long
, long long
và gợi ý là tất cả 64-bit.
Windows đã sử dụng mô hình dữ liệu LLP64, có nghĩa là chỉ long long
và các con trỏ là 64 bit. long
vẫn còn 32 bit. Một phần lý do đơn giản là họ không muốn trải qua và sửa mã bị hỏng giả định long
phù hợp với một int
.
Vì các bản phân phối Linux chủ yếu là OpenSource, đã có quá trình chuyển đổi lớn. Trừ khi bạn sử dụng phần mềm thích hợp (như skype), bạn có thể chạy hệ thống 64 bit thuần túy mà không gặp bất kỳ nhược điểm nào.
Tuy nhiên, sự khác biệt thực sự IMHO là phù hợp hơn so với mở rồi unix so với windows vì nó thường là phần mềm nguồn mở được chuyển trước (một số tình nguyện viên cần biên dịch lại một cái gì đó - có thể khắc phục một số vấn đề biên dịch) - hoặc trong hầu hết các trường hợp không được chuyển tất cả nhưng chỉ được biên dịch lại;) - và chính xác được chuyển cuối cùng.
Ngoài ra, có thể trên Linux, bạn có repos để việc cài đặt được xử lý tự động - bạn không cần chọn phiên bản 64 bit hoặc 32 bit (hệ thống sẽ tự động chọn bạn). Trên các chương trình Windows được tải xuống và có phiên bản 64 bit và 32 bit riêng biệt:
Tôi đoán đó là lý do tại sao các nhị phân Windows thường là 32 bit - nó là một kích cỡ phù hợp với tất cả và không phải ai cũng đã chuyển sang phiên bản 64 bit.
Trên thực tế, hãy thử "Con đường dài đến 64 bit" tại Hàng đợi ACM: http://queue.acm.org/detail.cfm?id=1165766 Sau đó được Truyền thông của ACM chọn. Micro 64 bit đầu tiên là MIPS R4000, được xuất xưởng trong SGI Crimson 1Q1992, Dec Alphas được vận chuyển vào cuối năm đó.
Các R4000 ban đầu chạy ở chế độ 32 bit, sau đó ở chế độ 64/32, tức là hệ điều hành 64 bit, mã người dùng 64 hoặc 32 bit. Các bảng chữ cái luôn chạy UNIX chỉ trong 64 bit (một lựa chọn hợp lý, vì không có ứng dụng 32 bit nào được cài đặt.)
Sau đó vào những năm 1990, SGI đã đóng góp nỗ lực cho Linux 64-bit (để chạy trên Itanium), về thời gian XFS được chuyển sang Linux (nó thực sự muốn 64-bit).