Làm cách nào để biết hệ thống của tôi là Unix hay Linux?


8

Làm cách nào để biết hệ thống của tôi là Unix hay Linux?

Tôi đang sử dụng Macbook Pro 2010 cổ điển.


7
Bạn đã trả bao nhiêu cho nó?
mikeerv

3
Có (ít nhất) bốn định nghĩa khác nhau về thuật ngữ "Unix": 1) loạt hệ điều hành của Bell Labs, 2) họ hệ điều hành có nguồn gốc từ mã nguồn 1), 3) bất kỳ hoạt động nào hệ thống đã thông qua chứng nhận của Nhóm mở (hoặc 3a) bất kỳ hệ điều hành nào sẽ vượt qua chứng nhận của Nhóm mở nhưng không đủ khả năng trả phí chứng nhận), 4) bất kỳ hệ điều hành nào trông giống như "Unix". Ví dụ: ngoại trừ các bản phân phối chuyên biệt như Android, hầu hết các bản phân phối Linux đều dưới 4), một số dưới 3a) và một số dưới 3).
Jörg W Mittag

1
OTOH, mặc dù OSX rơi xuống dưới 2) và 3), tôi sẽ lập luận rằng nó không rơi dưới 4). Windows NT, ít nhất là trong một số phiên bản, đáp ứng 3), nhưng chắc chắn không phải 4).
Jörg W Mittag

Câu trả lời:


17

POSIX định nghĩa uname("tên Unix") để cung cấp thông tin về hệ điều hành và nền tảng phần cứng; việc chạy unamecho biết tên của việc thực hiện hệ điều hành (hoặc theo coreutilstài liệu, kernel). Bạn có thể thực hiện việc này một cách tương tác trong một thiết bị đầu cuối hoặc sử dụng đầu ra trong một tập lệnh.

Trên các hệ thống Linux, unamesẽ in Linux.

Trên các hệ thống Mac OS X, unamesẽ in Darwin. (Nói đúng ra, bất kỳ hệ điều hành nào có nhân Darwin sẽ tạo ra thứ này, nhưng bạn rất khó gặp phải bất cứ thứ gì ngoài Mac OS X trong trường hợp này.)

Điều này sẽ cho phép bạn xác định bất kỳ máy Mac nào đang chạy. Như Rob chỉ ra, nếu bạn đang chạy Mac OS X ( Darwinnhư được chỉ định bởi uname), thì bạn đang chạy phiên bản Unix được chứng nhận ; nếu bạn đang chạy Linux thì bạn không.

Trên máy Mac có nhiều khả năng khác; tập lệnh của bạn có thể sẽ chạy trên Solaris ( unamesẽ in SunOSsau đó), trên FreeBSD ( FreeBSD), trên Windows với Cygwin ( CYGWIN), MSYS hoặc MSYS2 ( MSYS), shell MinGW hoặc MinGW-w64 ( MINGW64, MINGW32), Interix ( Interix) và có thể khác Tôi không nhận thức được.

uname -asẽ in tất cả các thông tin có sẵn như được xác định bởi uname, nhưng khó phân tích hơn.


Vấn đề là, uname không chứng minh rằng nó đang chạy Unix. Nó chỉ đưa ra một tên của HĐH có thể không phải là hệ thống Unix. Linux, ví dụ, không phải là Unix.
Rob

@Rob, không nơi nào làm Stéphane hoặc tôi nói vậy; trong thực tế, chúng tôi phân biệt rõ ràng giữa Linux và Unix (hay đúng hơn là Mac OS X).
Stephen Kitt

3

Trừ khi bạn cài đặt một cái gì đó khác, máy Mac không chạy Linux. Macbook chạy hệ điều hành của Apple có tên OSX được chứng nhận Unix và do đó, là câu trả lời cho câu hỏi của bạn.


Tất nhiên, một số phiên bản Linux cũng được chứng nhận Unix, vì vậy câu hỏi đặt ra là nó chạy Linux hay Unix?
Jörg W Mittag

@ JörgWMittag Tôi thấy rằng phiên bản Linux duy nhất được chứng nhận là Unix là máy chủ LDAP chạy SUSE từ IBM, nhưng không có phiên bản nào khác hoặc có thể đã từng hoặc có thể sẽ tồn tại. câu trả lời của tôi vẫn giữ nguyên, mặc dù. Nếu anh ta không cài đặt Linux trên máy Mac thì anh ta đang chạy OSX là Unix.
Rob

2

Câu trả lời là:

uname -a

Hoặc là:

cat /proc/version

Mở một cửa sổ đầu cuối và gõ 'uname -a' rồi quay lại.
Baazigar

1
Tôi có thể suy luận gì về HĐH nếu cat /proc/versiontạo thông báo lỗi cat: /proc/version: No such file or directory?
kasperd

Nhìn nó / etc / fstab, nhìn vào các loại tệp được chỉ ra ở đó. Nếu nó giống như ext3, ext4, xfs, thì đó là linux. Nếu nó giống như jfs, gpfs, hfs, hfs +, đó là unix.
Baazigar

Nếu bạn thấy xfsnó có thể là IRIX ;-). (Nhưng không phải trên máy Mac, tôi sẽ cung cấp cho bạn điều đó!)
Stephen Kitt
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.