Berlin 1946 schrieb:
Maschine ist für mich eher Hardware, damit mehr CPU und Kernel eher Software.
Zuerst einmal sollte man sich im klaren darüber sein, wofür das Programm, das man benutzt, gedacht ist.
Ich zitiere mal uname:
uname (kurz für unix name) ist ein Computerprogramm in Unix und Unix-ähnlichen Betriebssystemen, das den Namen, Versionsnummer und andere Details des Computers und des Betriebssystems ausgibt.
uname
ist aber durch das installierte System "beschränkt", denn wenn nur ein 32-Bit-System installiert ist kann dir auch nur die 32-Bit-Architektur angezeigt werden.
Anders auf einem 64-Bit-System, bei dem man Programme mittels linux32 auch mitgeben kann, Programme als 32-Bit-Programme laufen zu lassen.
Dann zeigt dir uname
auch auf einem 64-Bit-System an, dass ein 32-Bit-System installiert ist.
Was ist hier mit System gemeint ❓
Das installierte System, siehe den Zweck von uname
.
Das System besteht doch aus Hard- und Software.
Der Sinn und Zweck von uname
ist nicht deine Hardware aufzulisten.
mediom@mediom-N73SV:~$ uname -mpi
i686 i686 i386
* -m --machine Maschinen Architektur
* -p --processor Prozessor Typ
* -i --hardware-platform print the hardware platform
Das ist aus meiner Sicht nicht eindeutig.
Wo genau ist das nicht eindeutig?
ediom@mediom-N73SV:~$ lscpu | grep op-mode
CPU op-mode(s): 32-bit, 64-bit
Das sagt bei Processorermittlung gemäß Wiki lscpu
, es ist eine 64-Bit-CPU.
Und im Gegensatz zu uname
ist lscpu
auch dazu gedacht, dir die Fähigkeiten deiner CPU anzuzeigen. 😉
Sind bei "Maschinen Architektur, Prozessor Typ und hardware-platform" wirklich immer das Gleiche gemeint.
Nein, steht auch eindeutig in der Manpage.
-m, --machine
print the machine hardware name
-p, --processor
print the processor type or "unknown"
-i, --hardware-platform
print the hardware platform or "unknown"
Sonst hättest du auch keine verschiedenen Ausgaben. i686 als Architektur des Systems und des Prozessors ist nicht das gleiche wie i386 als Bezeichnung der Hardware-Plattform. Wobei i386
auch nicht standardisiert ist. OpenSUSE nennt diese Architektur i586
, Debian i386
, Arch-Linux i686
.
Wenn ja, warum gibt es dann für die Abfrage 3 Optionen, wenn eine reicht.
Das du bei Ubuntu zweimal die selbe Ausgabe bekommst (du hast ja, entgegen deiner Behauptung in deinem Text, eindeutig verschiedene Ausgaben), liegt daran, wie Ubuntu die 32-Bit-Architektur bezeichnet.
Um dir mal zu zeigen, dass das bei anderen Systemen auch anders aussehen kann (hier allerdings 64-Bit-Systeme):
Auf meinem Desktop-System bringt ein uname -mpi
als Ausgabe
amd64 amd64 GENERIC
auf dem Server
x86_64 unknown unknown
.
Berlin 1946 schrieb:
Gleich 3 mal das Gleiche.
Nein, immer noch nicht. 😛
Was weiß denn der Kernel von der CPU.
Der Kernel weiß erstmal, wer er selbst ist. Wenn er ein 32-Bit-Kernel ist weiß er, dass er mit 32-Bit läuft. Die CPU ist ihm da sehr egal, solange sie x86-kompatibel ist.
Hier gibt es doch nur diese Zusammenhänge:
32 Bit-Kerner auf 32-Bit-CPU
32 Bit-Kerner auf 64-Bit-CPU
64 Bit-Kerner auf 64-Bit-CPU
Was machen diese Optionen für eine Sinn ❓
32-Bit-Software auf 32-Bit-Hardware laufen zu lassen, 32-Bit-Software auf 64-Bit-Hardware laufen zu lassen und 64-Bit-Hardware auf 64-Bit-Hardware laufen zu lassen.
Klingt logisch, ist aber so.
Hier kann doch nur ermittelt werden, welcher Kernel installiert ist. Entweder die 32- oder die 64-Bitversion. Aussagen für die Hardware sind doch eigendlich nicht möglich.
Naja, wenn ein 64-Bit-System installierst kann du zumindest aussagen, dass es keine 32-Bit-CPU ist. Aber da es nicht die Aufgabe von uname
ist, konkrete Aussagen über die Hardware zu treffen, muss es das auch gar nicht.
Hier mein Vorschlag für das Wiki:
Wie ich dir schonmal geschrieben habe: Änderungsvorschläge für das Wiki gehören in den Diskussionsartikel zum Wikiartikel.
Ausgabe für ein 64-bit Kernel
x86_64
Ausgabe für ein 32-bit Kernel
i686
Das wäre falsch.