[linux-l] 64 oder 32 Bit

Oliver Bandel oliver at first.in-berlin.de
Mi Okt 4 12:56:33 CEST 2006


On Tue, Oct 03, 2006 at 10:09:43AM +0200, Jan-Benedict Glaw wrote:
> On Mon, 2006-10-02 23:59:41 +0200, Oliver Bandel <oliver at first.in-berlin.de> wrote:
> > On Sat, Sep 30, 2006 at 05:06:22PM +0200, Norman Steinbach wrote:
> > > Steffen Dettmer wrote:
> > > >* Oliver Bandel wrote on Fri, Sep 29, 2006 at 21:52 +0200:
> > > >>P.S.: Hat jemand schon Linux auf nem 64-Bit'er laufen?
> > > >>      Mich würde damalinteressieren, wie das so klappt,
> > > >>      und auch malwissen wollen, ob die OCaml-Installation
> > > >>      dort auch 64-Bittig läuft... (evtl. selbstkompiliert).
> > > >Hab ich viel negatives drüber gehört. Ich hab mein 64er gaanz fix auf 32
> > > >gebracht, ein Kollege hat gerade dieser Tage aufgegeben.
> > > 
> > > ähm - warum kauft man sich dann überhaupt einen 64er Rechner, wenn nur 
> > > WinXP64 drauf läuft, man aber Linux benutzen will?
> > 
> > Tja, gute Frage...;-)
> > 
> > Vielleichtwillman 64-Bit'erhaben,weildiese Technologie
> > schon ein paar Jahrzehnte überfällig ist, aber 640 kB ausreichen,
> > und vermutlich auch 16 Bit?
> 
> Also... Die 64bit-Maschinen haben im wesentlichen einen großen
> Vorteil: man kann (schmerzfrei) mehr als 4GB RAM einbauen (für
> Server-Systeme interessant)
[...]

Eben.
Genau sowas ist mir da vor Kurzem untergekommen.
Datenbankfiles mit merh als 4 GB Größe sollen verarbeitet werden.
Man will die Dinger dann entweder mit read() bearbeiten, oder
mal mit mmap vielleicht mal eben in den RAM einblenden.


> und man kann Applikationen bauen, die
> ihrerseits einen virtuellen Speicherraum von mehr als 4GB haben können
> (für data mining interessant.)  Nachteile sind, daß die Compiler im
> 64bit-Bereicht teilweise noch nicht sooo dolle sind--und daß die
> 64bit-Datentypen halt größer sind (-> weniger Variablen pro Platz,
> wenn man die 64bit _nicht_ braucht.)

Naja, das Problem hat man ja bei 32-Bit-Systemen auch.
Hatte man auch schon auf 16-Bit-Systemen.
Will man nun ein char oder short int nehmen, und welche Größe hat
der short int auf der Maschine? Und der einfache int? Welche Größe
hätte der?
In C gibt's da ja nur Mindest-Größen, deswegen sind einfache int's
ja auch möglicherweise recht unterschiedlicher Größe, wenn man da
verschiedene Rechner/Systeme/CPUs vergleicht.

Das ist also kein neues Problem, sondern nur nochmal das
selbe Problem mit anderen Größen.


> 
> Dazu kommt dann noch, daß sehr oft ein 64bit-Kernel benutzt wird (um
> sinnvoll mit mehr als 4GB RAM umgehen zu können), man aber bei den
> normalen Programmen bei den 32bit-Versionen bleibt (weil
> 08/15-Software eben keinen virtuellen Speicherraum von mehr als 4GB
> braucht und diese Applikationen bereits vorhanden sind und laufen.)
> Leider werden Programme 64bittig auch mal größer, was bedeutet, daß
> sie (weil die Caches nicht mitwachsen) durchaus auch mal _langsamer_
> als ihre 32bittigen Zwillinge sein können.  Bei den hybriden CPUs
> (32bit Intel/AMD mit 64bit-Aufsatz) wird das dann wettgemacht, indem
> man ein paar neue Assembler-Befehle spendiert, die in besonderen
> Situationen Aufgaben besser lösen, als das bisher der Fall war...

Das liesse sich bei 64-Bit-CPUs ebenfalls machen, wenn man meint es
zu brauchen.

Und daß die Compiler noch nicht alle so gut im Optimieren für 64-Bit-Maschinen
sind, liegt daran, daß man das ja nicht machen muß, wenn keiner
danach fragt, weil kaumjemand solche Prozessoren anwendet (oder in
dieser Weise anwendet).


> 
> Du hast in der Maschine keine 4GB RAM (oder mehr?)  Du machst keine
> anspruchsvollen Data-Mining-Geschichten?  Dann brauchst Du die 64bit
> nicht, es sei denn, der 32bit-Code läuft nur mit Strafrunden (Intel
> Itanium...)

Vielleicht braucht man die 64 Bit doch,obwohlman keine 4GB RAM hat,
weilman die 4GB RAM nicht hat, weil es die Maschine nicht erlaubt...

Man braucht auch bei nicht-Data-Mining-Sachen möglicherweise
64-Bit-Maschinen, z.B. für große Arrays in Berechnungen (Physiker,
Chemiker, Biologen, Meteorologen usw. aber auch einfache DB-Anwendungen
(einfach meint != AtHomeHobbyUser)).



> 
> > Und weil die 32-Bit Unix-Uhr bald überläuft ;-)
> 
> Den time_t könnte man auch ohne 64bit-CPU auf einen uint64_t bringen.
> 

Könnte...


Gruß,
   Oliver



Mehr Informationen über die Mailingliste linux-l