Làm thế nào để Linux `uname -m` có được thông tin của nó?


15

Linux uname -mlấy thông tin từ đâu?

Tôi đang hỏi bởi vì tôi có một máy chắc chắn là 64 bit, uname -auname -rxác nhận điều đó, nhưng uname -min ra i686. Nó lấy nó từ đâu vậy ??

Câu trả lời:


23

Bạn phải tính đến việc unamein thông tin từ phần mềm và phần cứng của bạn. Máy 64 bit của bạn có thể đang chạy bản phân phối Linux 32 bit.

uname -ain thông tin này (theo thứ tự): tên kernel, tên nút, phát hành kernel, phiên bản kernel, máy, bộ xử lý, nền tảng phần cứng, hệ điều hành. Nếu bạn thấy phần cứng 64 bit và hạt nhân i686, thì bạn đã cài đặt hạt nhân Linux 32 bit.

Để trả lời toàn bộ câu hỏi của bạn: uname là một cuộc gọi hệ thống và công cụ dòng lệnh này đang sử dụng nó. Bạn có thể kiểm tra xem có dễ dàng chạy khôngstrace uname -a

$ strace uname -a
execve("/bin/uname", ["uname", "-a"], [/* 23 vars */]) = 0
brk(0)                                  = 0x9fa6000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b4abb365000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b4abb366000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
...
...
...
uname({sys="Linux", node="my_pc", ...}) = 0
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b4abe953000
uname({sys="Linux", node="my_pc", ...}) = 0
uname({sys="Linux", node="my_pc", ...}) = 0
write(1, "Linux my_pc 2.6.18-371.8.1.el5 "..., 99Linux my_pc 2.6.18-371.8.1.el5 #1 SMP Thu Apr 24 18:19:36 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux
) = 99
close(1)                                = 0
munmap(0x2b4abe953000, 4096)            = 0
exit_group(0)                           = ?

2
Sử dụng strace -vđể xem các giá trị trả lại uname đầy đủ.
dùng1686

Tôi đã sử dụng Linux và UNIX trong 4 năm qua và không biết gì về bước đi. Tôi tự hỏi liệu nó có sử dụng ptrace dưới mui xe không ... Nếu chỉ có một chương trình cho phép tôi dễ dàng kiểm tra! ;)
Bắn Parthian

2
@ParthianShot Nó đang sử dụng ptrace. Để xác minh, sử dụng strace strace uname -a. Và hướng đầu ra vào một tập tin để bạn có thể thoải mái đọc nó.
tbodt

@ParthianShot Và họ thậm chí ltracechưa đề cập đến . :)
Oakad
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.