Programmierung: 64-Bit oder 32-Bit

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Aliobaba
Lazarusforum e. V.
Beiträge: 496
Registriert: Di 1. Mai 2012, 09:11

Programmierung: 64-Bit oder 32-Bit

Beitrag von Aliobaba »

Hallo,

Schon seit Anfang 2012 habe ich ein Programm veröffentlicht (MyMemoryDB), das unter Linux und Windows läuft. Nun erreichte mich die Bitte eines Users, ich möge das Programm doch auch in einer 32-Bit Version zur Verfügung stellen, da ein 64-Bit Programm auf alten Rechnern nicht mehr laufen würde. (Allerdings gibt es z.B. bei Pollin "refurbished" Rechner um die 80,- Euro, die problemlos mit einem 64-Bit Kubuntu zurecht kommen.)

Crosscompiling gelang mir nicht, aber nach dem Aufsetzen einer VirtualBox mit einem 32-Bit Kubuntu war die 32-Bit-Compilierung dann schließlich kein Problem. Überrascht war ich allerdings von der Tatsache, dass die 32-Bit Version nicht abwärtskompatibel (aufwärts :?: kompatibel) auch "automatisch" auf einem 64-Bit Kubuntu-System läuft.

Meine Antwort an den Interessenten:
Grundsätzlich zur "32-Bit-Frage" (ohne provozieren zu wollen):
Eine 32-Bit Version hätte eine "absolut tolle Berechtigung", wenn diese problemlos auch auf 64-Bit-Linux-Versionen laufen würde. Tut es aber nicht . Man benötigt offenbar einige Klimmzüge innerhalb des Betriebssystems, um dies hinzukriegen. ...
Aber die 32-Bit-Versionen von Linux "sterben" offenbar (zusammen mit der "alten" Hardware* [laut-Google-Auskunft]) und es gibt immer weniger Gründe (Treiber), NICHT mit 64Bit zu arbeiten. Es arbeiten heute ja auch nur noch wenige mit einer "reinen DOS-Version".

Wie macht Ihr das?
Veröffentlicht Ihr Eure Programm als 32-Bit-Version oder als 64-Bit Version?
Wie seht Ihr die Situation?

Gruß
Aliobaba
"MyMemoryDB" ( https://www.heise.de/download/product/mymemorydb-89626 )

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6833
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Programmierung: 64-Bit oder 32-Bit

Beitrag von af0815 »

Windows: 32 Bit
(Linux: 32 bit)

Ich arbeite gemischt mit WIndows W7/32 W7/64 W10/64. Damit ist für mich unter Windows ganz einfach 32 Bit führend. Wenn ich in einer VM Linux gegenteste (meist aus Interesse), so habe ich meist eine 32 Bit Version (Debian) dort installiert. Somit bewege ich mich im 32 Bit Bereich.

Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

mischi
Beiträge: 206
Registriert: Di 10. Nov 2009, 18:49
OS, Lazarus, FPC: macOS, 10.13, lazarus 1.8.x, fpc 3.0.x
CPU-Target: 32Bit/64bit

Re: Programmierung: 64-Bit oder 32-Bit

Beitrag von mischi »

Unter Mac OS X laufen 32 und 64 bit. Hier gibt häufig den Ausschlag, das die carbon-Variante der lcl am umfangreichsten ist und recht nativ aussieht, aber leider nur 32-bit ist. Für 64-bit muss man zu cocoa-64bit, gtk2 oder Qt4 wechseln, womit entsprechende Abstriche verbunden sind.

Für Windows nehme ich bisher win32, bei Linux bin ich noch bei Sourcecode-Paketen, weil ich noch nicht zu Binärpaketen gekommen bin.

MiSchi
MiSchi macht die fink-Pakete

Patito
Beiträge: 203
Registriert: Di 22. Sep 2009, 13:08
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Programmierung: 64-Bit oder 32-Bit

Beitrag von Patito »

Ich habe noch ein Netbook (ASUS eeePC), auf dem nur 32-bit Linux läuft - das Ding fühlt sich mit SSD
praktisch wie neu an. Ansonsten brauchen Kleincomputer aber eher 32-bit Versionen für ARM (Raspberry PI).

Bei moderner Hardware wird man in naher Zukunft schon im Millisekundenbereich an die Grenzen
von 32-bit stoßen können (RAM -> 50GB/s, SSD -> 2GB/s) , daher mache ich mir
im Desktopbereich keine Mühe mehr für 32-bit. Wenn es compiliert, ist es gut, aber speziellen Code
für Anpassungen an 32-bit habe ich auch schon komplett gelöscht.

Andromeda
Beiträge: 120
Registriert: So 4. Jan 2015, 20:18

Re: Programmierung: 64-Bit oder 32-Bit

Beitrag von Andromeda »

Entschuldigt bitte eine etwas doofe Frage: Wie kann ich denn feststellen, ob ich ein 32- oder ein 64-Bit-Programm erstellt habe.

Benutzeravatar
willi4willi
Lazarusforum e. V.
Beiträge: 170
Registriert: Sa 1. Nov 2008, 18:06
OS, Lazarus, FPC: Lazarus 3.8 FPC 3.2.2 x86_64-win64-win32/win64 x86_64-linux-gtk2
CPU-Target: i386, win64, arm

Re: Programmierung: 64-Bit oder 32-Bit

Beitrag von willi4willi »

Hallo,

unter Linux mit

file <DateinName>

Antwort:
DateiName: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux ...
oder
DateiName: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux ...

unter Windows:
Programm starten und im Tasktmanager werden 32-Bit Programme bei einem 64-Bit-Windows als solche gekennzeichnet z.B. mit "*32" oder bei mir (Win8.1) steht "(32 Bit)". Bei 64-bit Programmen steht dort nicht dahinter.


Ein Mac OS habe ich leider nicht.
 

Viele Grüße

Willi4Willi

------------

Michl
Beiträge: 2511
Registriert: Di 19. Jun 2012, 12:54

Re: Programmierung: 64-Bit oder 32-Bit

Beitrag von Michl »

Andromeda hat geschrieben:Wie kann ich denn feststellen, ob ich ein 32- oder ein 64-Bit-Programm erstellt habe.
Wenn die Frage war, ob du dir ein 32bit oder 64bit Lazarus seiner Zeit installiert hattes (mit einem 32bit Lazarus erstellst du dir standardmäßig 32bit Programme, mit einem 64bit Lazarus 64bit Programme - das liegt am FPC-Compiler), könntest du unter "Hilfe -> über Lazarus" nachsehen, ob du eine 32bit (i386) oder eine 64bit (x86) Version benutzt (könnte man auch in den Projekteinstellungen einsehen).

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection;  

Aliobaba
Lazarusforum e. V.
Beiträge: 496
Registriert: Di 1. Mai 2012, 09:11

Re: Programmierung: 64-Bit oder 32-Bit

Beitrag von Aliobaba »

Hallo,

gerne würde ich meine Frage nochmal wiederholen:

Welchen Stellenwert (z.B. Anwenderzahlen) in der Praxis hat ein "32-Bit-Programm" im Vergleich zu einem "64-Bit-Programm" vor der Tatsache, dass

1. selbst günstige (eigentlich bereits "veraltete") Hardware locker mit einem 64-Bit Betriebssystem zurecht kommt und
2. Programme, die als 32-Bit Programme kompiliert sind, keineswegs "automatisch" auch auf 64-Bit-Systemen laufen.

Aliobaba
"MyMemoryDB" ( https://www.heise.de/download/product/mymemorydb-89626 )

Benutzeravatar
theo
Beiträge: 10904
Registriert: Mo 11. Sep 2006, 19:01

Re: Programmierung: 64-Bit oder 32-Bit

Beitrag von theo »

Aliobaba hat geschrieben: 1. selbst günstige (eigentlich bereits "veraltete") Hardware locker mit einem 64-Bit Betriebssystem zurecht kommt und
Die Frage ist, ob man sein System neu aufsetzen will dafür und von welchem BS man spricht.
Ich denke man muss zw. Windows und Linux unterscheiden.
Ich habe bspw. noch ein WinXP 32bit auf einem PC am laufen, einfach weil ich nicht nochmal Geld für Windows ausgeben möchte.
Normalerweise arbeite ich mit Linux 64bit.

Grundsätzlich sehe ich mit Lazarus kein grosses Problem darin, verschiedene Versionen einer Software anzubieten. Ob sich das "lohnt", hängt von deiner "Kundschaft" ab.

BeniBela
Beiträge: 321
Registriert: Sa 21. Mär 2009, 17:31
OS, Lazarus, FPC: Linux (Lazarus SVN, FPC 2.4)
CPU-Target: 64 Bit

Re: Programmierung: 64-Bit oder 32-Bit

Beitrag von BeniBela »

Ich mache für Linux immer eine 32 und eine 64 Bit Version.
Aliobaba hat geschrieben: 1. selbst günstige (eigentlich bereits "veraltete") Hardware locker mit einem 64-Bit Betriebssystem zurecht kommt und
Unter Windows macht 64 bit Probleme habe ich gehört.
Aliobaba hat geschrieben: 2. Programme, die als 32-Bit Programme kompiliert sind, keineswegs "automatisch" auch auf 64-Bit-Systemen laufen.
Andersrum, wenn 64 Bit Programme immer zu blau sind, um auf 32-Bit Systemen zu laufen, warum soll man sich dann mit 64-Bit abgeben?

Aliobaba
Lazarusforum e. V.
Beiträge: 496
Registriert: Di 1. Mai 2012, 09:11

Re: Programmierung: 64-Bit oder 32-Bit

Beitrag von Aliobaba »

... mein Hauptaugenmerk richtet sich eigentlich auf Linux; denn da spielen finanzielle Überlegungen (Kauf eines neuen Betriebssystems) keine Rolle.
Also wählt der Anwender ja unabhängig von diesem monetären Kriterium, welches Betriebssystem er aufspielt. Treiberprobleme spielen mittlerweile ja wohl auch keine große Rolle mehr und "schwachbrüstige" Hardware - wie gesagt - auch nicht.

Warum dann "noch" 32-Bit?

Aliobaba
"MyMemoryDB" ( https://www.heise.de/download/product/mymemorydb-89626 )

TBug
Beiträge: 179
Registriert: Mi 2. Sep 2015, 11:09
OS, Lazarus, FPC: Lazaurus 2.2.4 FPC 3.2.2
CPU-Target: Windows 32/64bit

Re: Programmierung: 64-Bit oder 32-Bit

Beitrag von TBug »

Aliobaba hat geschrieben:Warum dann "noch" 32-Bit?
Diese Frage kannst Du Dir ganz einfach selbst beantworten.

Wenn Du möchtest, dass Dein Programm auch von einem möglichen Anwender mit einem 32-Bit-System benutzt werden kann, dann mußt Du auch eine 32-Bit-Version anbieten.

Kannst Du auf diese möglichen Anwender verzichten, dann erstelle einfach nur noch 64-Bit-Versionen.


.

Aliobaba
Lazarusforum e. V.
Beiträge: 496
Registriert: Di 1. Mai 2012, 09:11

Re: Programmierung: 64-Bit oder 32-Bit

Beitrag von Aliobaba »

Hallo TBug,

ja, aber das ist ja doch grad meine Frage!! Kann ich eben leider nicht beantworten.
Wie ist die Situation? Wie sind die realen Verhältnisse? Was macht Ihr? Was denkt Ihr zu diesem Thema?
Ich kanns eben überhaupt nicht einschätzen: Sind die "32-Bitler"(Linux) 2%, 5% oder 50% ??

Aliobaba
"MyMemoryDB" ( https://www.heise.de/download/product/mymemorydb-89626 )

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6833
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Programmierung: 64-Bit oder 32-Bit

Beitrag von af0815 »

Die Frage ist, warum läuft die 32er Version nicht auf einem 64er Linux. Ich gehe davon aus, das ganz einfach die 32er Bibliotheken am 64er fehlen. Schon mal nachgesehen, welche Abhängigkeiten gebraucht werden ?
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2822
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Programmierung: 64-Bit oder 32-Bit

Beitrag von m.fuchs »

Aliobaba hat geschrieben:ja, aber das ist ja doch grad meine Frage!! Kann ich eben leider nicht beantworten.
Wie ist die Situation? Wie sind die realen Verhältnisse? Was macht Ihr? Was denkt Ihr zu diesem Thema?
Das wird schwierig zu beantworten, wenn man dein Publikum nicht kennt. Wenn du aber nach den Vorgehensweisen anderer suchst:

Ich unterscheide in Desktop- und Serversoftware:
  • Desktop
    Linux 32 und 64, Windows 32
    Es sind noch genügend Menschen mit 32-Bit-Systemen unterwegs (teilweise auch aus Unkenntnis) und es kann hakelig sein unter einem 64-Bit-Linux eine 32-Bit-Software zu nutzen. Besonders wenn noch Libraries ins Spiel kommen. Unter Windows ist es egal, da läuft 32-Bit auch problemlos unter 64. Die passenden DLL kommen dann gleich im Installer mit.
  • Server
    Linux 64, Windows 64
    Bei Serversoftware gehe ich davon aus, dass sowieso alle Maschinen inzwischen auf 64-Bit laufen. Wenn ein Kunde dann wirklich mal eine 32-Bit-Version braucht, kann er sich auch melden.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Antworten