Wie wurde der Übergang zu 64 Bit unter Linux / Unix gehandhabt? Die Windows-Welt scheint immer noch Probleme zu haben und ich bin gespannt, wie es in der * nix-Welt gehandhabt wurde.
Wie wurde der Übergang zu 64 Bit unter Linux / Unix gehandhabt? Die Windows-Welt scheint immer noch Probleme zu haben und ich bin gespannt, wie es in der * nix-Welt gehandhabt wurde.
Antworten:
Die Arbeit, die erforderlich ist, um den Kernel 64-Bit zu machen, wurde vor ziemlich langer Zeit mit DEC Alpha-Systemen durchgeführt. Programme sind jedoch eine andere Sache.
Der allgemeine Konsens, den ich bisher gesehen habe, scheint zu sein:
/lib
und /lib64
Verzeichnisse für Systeme mit gemischten BinärdateienAbgesehen davon werden Sie wirklich nicht viel "Trauer" von gemischten 32/64-Bit-Builds sehen.
multilib
alien.slackbook.org/dokuwiki/doku.php?id=slackware:multilib
Windows und * ix verwendeten für den Übergang unterschiedliche Datenmodelle. Diese UNIX.org- Seite ist etwas alt, bietet aber dennoch einen guten Überblick über die Kompromisse (Anmerkung, long long
die später zu C99 hinzugefügt wurde und mindestens 64-Bit sein musste). Sie können auch einen Wikipedia-Artikel zum gleichen Thema anzeigen. Wie am Ende des Artikels von UNIX.org befürwortet, haben die meisten UNIX-ähnlichen Systeme LP64 verwendet, was bedeutet long
, dass long long
Zeiger alle 64-Bit sind.
Windows entschied sich für das sogenannte LLP64-Datenmodell, was bedeutet, dass nur long long
und Zeiger 64-Bit sind. long
bleibt 32-bit. Ein Grund dafür war einfach, dass sie keinen fehlerhaften Code reparieren wollten, der als long
passend für einen angenommen wurde int
.
Da es sich bei Linux-Distributionen hauptsächlich um OpenSource handelt, ist der Übergang bereits weitgehend abgeschlossen. Sofern Sie keine proprietäre Software (z. B. Skype) verwenden, können Sie ein reines 64-Bit-System ohne Nachteile ausführen.
Der wirkliche Unterschied IMHO ist jedoch eher eigentumsbezogen als offen als unix oder windows, da normalerweise die Open-Source-Software zuerst portiert wird (einige Volonteer müssen etwas neu kompilieren - möglicherweise einige Kompilierungsprobleme beheben) oder in den meisten Fällen nicht portiert alle aber nur neu kompiliert;) - und Eigenschaft, die zuletzt portiert wird.
Möglicherweise haben Sie unter Linux zusätzlich Repos, sodass die Installation automatisch erfolgt - Sie müssen sich nicht für eine 64-Bit- oder 32-Bit-Version entscheiden (das System wählt Ihre automatisch aus). Unter Windows werden Programme mit einer separaten 64-Bit- und 32-Bit-Version heruntergeladen:
Ich denke, das ist der Grund, warum Windows-Binärdateien normalerweise 32-Bit sind - es ist eine Einheitsgröße und nicht jeder hat die 64-Bit-Version gewählt.
Probieren Sie "Der lange Weg zu 64-Bit" in der ACM-Warteschlange aus: http://queue.acm.org/detail.cfm?id=1165766. Dies wurde später von Communications of the ACM aufgegriffen. Das erste 64-Bit-Mikro war MIPS R4000, das Ende des Jahres in SGI Crimson 1Q1992 und Dec Alphas ausgeliefert wurde.
R4000s wurden zuerst im 32-Bit-Modus und später im 64/32-Modus ausgeführt, dh 64-Bit-Betriebssystem-, 64- oder 32-Bit-Benutzercodes. Alphas hat UNIX immer nur mit 64-Bit ausgeführt (eine vernünftige Wahl, da keine Basis von 32-Bit-Apps installiert war.)
Später in den 1990er Jahren leistete SGI einen Beitrag zur 64-Bit-Version von Linux (um auf Itaniums zu laufen), ungefähr zu der Zeit, als XFS auf Linux portiert wurde (es wollte eigentlich 64-Bit).