Ý nghĩa của 'i686' trong Ubuntu là gì?


57

Để kiểm tra xem tôi đang sử dụng Ubuntu 32 bit hay 64 bit. Tôi đã xem trong Làm cách nào để kiểm tra xem tôi có HĐH 32 bit hay 64 bit không? và tìm thấy câu trả lời này uname -a. Nếu nó được hiển thị là i386, nó sẽ là 32 bit và amd64, nó sẽ là 64 bit, nhưng tôi đã nhận được kết quả này:

Linux mukund-ThinkPad-Edge-E431 3.8.0-35-generic #50-Ubuntu SMP Tue Dec 3 01:25:33 UTC 2013 i686 i686 i686 GNU/Linux

I686 này là gì? Nó là 32 bit hay 64 bit - Tôi nghĩ nó là 32 bit, bởi vì tất cả các gói Debian mà tôi đã cài đặt trong đó là 32 bit, vì vậy mọi người có thể vui lòng giải thích chi tiết.


1
này superuser.com/a/238131/18500 và điều này trả lời câu hỏi của bạn: serverfault.com/a/188203/26514
Brian

Câu trả lời:


56

i686 có nghĩa là bạn đang sử dụng 32 bitHĐH.

Đi vào thiết bị đầu cuối và gõ vào.

uname -a

Nếu kết quả của bạn tương tự như kết quả bên dưới, thì kết quả của bạn là 64 bit; mặt khác, nó là 32 bit.

Linux ubuntu-tm 2.6.35-28-generic #49-Ubuntu SMP Tue Mar 1 14:39:03 UTC 2011 x86_64 GNU/Linux

Nếu bạn có x86_64 thì máy của bạn là 64 bit.

Nếu kết quả của bạn tương tự như kết quả này; sau đó bạn có 32-bit.

Linux Server 2.6.15-23-386 #1 SMP Tue Mar 1 13:49:40 UTC 2011 i686 GNU/Linux

Lưu ý i686 trong mã, điều đó có nghĩa là máy của bạn là 32 bit.

CẬP NHẬT:

Gõ vào sau trong thiết bị đầu cuối;

uname -m

Nó sẽ cung cấp cho bạn x86_64 , là 64 bit, hoặc một cái gì đó khác, là 32 bit.

Lịch sự: https://superuser.com/a/260999/130574 (Đó là bản sao của câu trả lời đó)

Còn được gọi là P6 microarchitecture, đó là kiến ​​trúc vi mô Intel x86 thế hệ thứ sáu, được triển khai bởi bộ vi xử lý Pentium Pro được giới thiệu vào tháng 11 năm 1995. Mã i686 dự định sẽ được thực thi trên các bộ xử lý tương thích với nền tảng Intel x86 32 bit, bao gồm nền tảng Intel x86 32 bit, bao gồm tất cả các bộ xử lý Intel 32 bit x86 lên đến và bao gồm cả Pentium 4, v.v. cũng như các bộ xử lý của AMD và các nhà cung cấp khác tạo ra các chip 32 bit tương thích.

Lịch sự: Wikipedialiên kết này

Nói ngắn gọn:

Điều đó chỉ có nghĩa là bạn đang chạy kernel 32 bit hỗ trợ mã tương thích với i686kiến trúc bộ xử lý.

Lưu ý:

Điều đó không có nghĩa là hệ thống của bạn chỉ có khả năng chạy kernel 32 bit, điều đó chỉ có nghĩa là bạn hiện đang chạy HĐH dựa trên kernel 32 bit.


41

i686 là viết tắt của vi kiến ​​trúc P6 bởi intel, được giới thiệu với Pentium Pro 1

Nói ngắn gọn, nó là kiến ​​trúc 32 bit. 8086 và 80286 là các bộ xử lý 16 bit. 80386 là bộ xử lý Intel 32 bit đầu tiên (được giới thiệu chế độ làm việc Được bảo vệ , ngoài chế độ Real ). 80586 là Pentium ™ nổi tiếng .

i686 được sử dụng rộng rãi để mô tả kiến ​​trúc bộ xử lý P6 32 bit tương thích với Pentium Pro / II và có tập lệnh của nó. Ví dụ: AMD K7 (Duron ™ và Athlon ™) là i686.


6
Intel chưa bao giờ chế tạo bộ xử lý có số 80686 (Pentium II được đánh số 80522/3/4).
Alistair Buxton

3
i686 đề cập đến kiến ​​trúc P6 bắt đầu với Pentium Pro, không phải Pentium II.
Andrew Medico

27

Như nhiều áp phích khác nhau đã nói, kernel của bạn là 32 bit. Ý nghĩa của i686 xứng đáng được giải thích hơn một chút, tuy nhiên.

Khi biên dịch kernel Linux (điều mà người dùng cuối thường không cần phải làm trong những ngày này - những người giỏi đằng sau Ubuntu cung cấp kernel đã được biên dịch sẵn), có nhiều tùy chọn khác nhau mà bạn có thể điều chỉnh. Một tùy chọn quan trọng là hỗ trợ tính năng CPU.

Tất cả các CPU x86 đều tương thích với Intel 80386 gốc (viết tắt i386), vì vậy nếu bạn muốn một hạt nhân tương thích với tất cả các CPU x86, bạn sẽ biên dịch một hạt nhân i386.

Tuy nhiên, CPU hiện đại có nhiều tính năng bổ sung (đơn vị điểm nổi tích hợp, MMX, v.v.), mà Linux có thể sử dụng nếu được cấu hình để làm như vậy. Để cân bằng giữa khả năng tương thích và hiệu suất ngược, kernel của Ubuntu được biên dịch với sự hỗ trợ cho các tính năng có sẵn trên Intel Pentium II (đôi khi được viết tắt là i686), đó là lý do tại sao kernel hiển thị là i686.

Điều này cũng giải thích một phần lý do tại sao các ứng dụng được biên dịch cho bộ xử lý 64 bit đôi khi nhanh hơn. I686 xuất hiện lần đầu tiên vào năm 1997 và các bộ xử lý hiện đại có nhiều tính năng không có trên i686 (SSE, các thanh ghi bổ sung, v.v.), nhưng các ứng dụng cần được biên dịch với sự hỗ trợ cho các tính năng này, có thể phá vỡ khả năng tương thích với các hệ thống cũ. Ngược lại, CPU x86_64 xuất hiện lần đầu tiên vào năm 2003, do đó, các ứng dụng có thể được biên dịch với sự hỗ trợ cho một số tính năng được giới thiệu từ năm 1997 đến 2003, mà không sợ vấn đề tương thích.


2
Không có định nghĩa chuẩn về "i686". Nó đã được sử dụng để mô tả mọi thứ từ kiến ​​trúc P6 (bao gồm các CPU không còn có thể chạy Ubuntu), "Pentium II trở lên" của Ubuntu và cho đến "Atom / Core2 trở lên" bởi các bản phân phối khác.
Alistair Buxton

Tôi thích nó khi bạn nói "Điều này cũng phần nào giải thích tại sao các ứng dụng được biên dịch cho bộ xử lý 64 bit đôi khi nhanh hơn." Lần đầu tiên tôi chạy một hệ thống 64 bit hoàn chỉnh, tôi đã bị thổi bay bởi sự cải thiện tốc độ. Tuy nhiên, bạn sẽ không thấy tốc độ tăng tốc này khi bạn chạy một hệ thống 32- / 64 bit hỗn hợp.
Zane

2
CPU cũng có lệnh CPUID cho phép CPU báo cáo các cờ tính năng. Bạn có thể thấy những điều này trong / Proc / cpuinfo. Vì vậy, ngay cả khi phần mềm được biên dịch cho i686, nó có thể kiểm tra các cờ để xem có hỗ trợ thêm các tính năng hiện tại không.
Zan Lynx

Chúc mừng cho thông tin về các cờ tính năng và sự mơ hồ của việc đặt tên CPU. Tôi phải thú nhận rằng, đã lâu rồi tôi phải biên dịch kernel của riêng mình (có lẽ ở đâu đó trong loạt 2.0) và tôi tưởng tượng Linux đã thông minh hơn rất nhiều về các tính năng của CPU kể từ đó. Nếu bạn nghĩ rằng bản trình bày có thể được cải thiện, vui lòng đề xuất bất kỳ chỉnh sửa nào bạn có thể nghĩ đến.
James_pic

Nếu hệ thống của bạn có RAM hạn chế và không xử lý số nhiều, thì bạn thực sự có thể có hiệu suất tốt hơn từ hệ thống 32 bit, vì nhiều thứ khác nhau được lưu trữ gọn hơn và hệ thống của bạn có thể làm nhiều hơn một chút trước khi sử dụng để sử dụng đĩa IO. Đừng đưa ra quá nhiều giả định về điều này mà không cần kiểm tra.
mc0e

1

Mở Cài đặt hệ thống, sau đó nhấp vào Chi tiết. Sau đó, bạn thấy loại hệ điều hành bạn có.

Tôi có Ubuntu 12.04 LTS 64 bit và uname -ahiển thị điều này:

Linux ubuntu1 3.2.0-60-generic #91-Ubuntu SMP Wed Feb 19 03:54:44 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

Xem https://superuser.com/questions/238112/what-is-the-difference-b between-i686-and-x86-64


Có một vấn đề là ở đó, tôi không thể tìm thấy cài đặt hệ thống trong UE 3.8, tôi chỉ cài đặt nó, cài đặt hệ thống không được nhìn thấy trong hệ thống / quản trị hoặc hệ thống / tùy chọn tại sao?
Mukund

1
Nếu bạn không thể tìm thấy nó, bạn có thể bắt đầu nếu từ thiết bị đầu cuối:gnome-control-center
XUÂN

0

i686 được sử dụng rộng rãi để mô tả kiến ​​trúc bộ xử lý P6 32 bit tương thích với Pentium Pro / II và có tập lệnh của nó.


0

Từ những gì tôi có thể tìm thấy, bạn cũng có thể sử dụng lscpuđể tìm kiến ​​trúc của mình và không giới hạn phiên bản mà kernel của bạn được biên dịch.

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.