Slashdot Mirror


32-bit to 64-bit - Obsolesence Pains Again?

robotsrule asks: "Having been in the computer industry a while I distinctly remember the pain of making the 16-bit to 32-bit transition, when Windows made the change to 32-bit support. Any developer who remember the joys of thunking and other kludges that were meant to help code conversions also remembers the arcane marathon debug sessions too. I have not been keeping up with the latest Microsoft Longhorn technical news, or the plans that the Linux community has for 64-bit platform support. Does anyone out there have a reliable prediction for the amount of system shock we are facing when either Longhorn or 64-bit Linux comes out? Will I lose all my favorite 32-bit development tools again as I watch the backward compatibility support dry up as the 64-bit O/S platforms are adopted? Or are the O/S manufacturers making happy noises about long-term support for existing development languages and tools?"

38 of 184 comments (clear)

  1. Happy noises by bluelip · · Score: 4, Interesting

    The happy noises heard are the coins falling into their pockets.

    AMd has been good to us lately. i think they'll continue to 'do the right thing'. Maybe they're the Google of hardware.

    Mike

    --

    Yep, I never spell check.
    More incorrect spellings can be found he
  2. 64 bit linux :-)? by Crimsane · · Score: 5, Insightful

    My latest gentoo install is 64 bit, built from the ground up. works great for the most part. there was no lilo that i saw, but I use grub anyways. other then that i'm not missing anything. I've known people that've ran 64 bit in different distros for a couple months now, and they're all quite happy with it.

    1. Re:64 bit linux :-)? by Rylz · · Score: 2, Informative

      I have the same setup, but I cannot say that I'm not missing anything. Although almost everything I use is open source and can therefore be ported and, for the most part, has been ported, there are a few closed programs whose binaries haven't been ported that I miss a little bit.

      1. Macromedia Flash. I know this will be among the first ported when average people actually start using 64-bit CPUs, but at the moment it is very annoying to have to switch to my 32-bit machine once a week to see the new Strongbad email!
      2. ATI Drivers. It was probably a bad idea to get an ATI card for a Linux system, but when the drivers not only don't work, but don't exist for my architecture, I really feel like a dumbass.
      3. Sun Java. I hate Java and really dislike Sun, but applets are currently used on far too many web pages. I am patietly awaiting Apache's eventual F/OSS implementation of Java!

      There are more, but those are the basics... I hope the move of the general public to 64-bit is quick so that the few closed-source programs that I still use will be ported!

      --
      Sometimes you've gotta roll the hard six.
    2. Re:64 bit linux :-)? by RuneB · · Score: 2, Insightful

      Why don't you just use a 32-bit compiled browser/mail program instead of switching computers?

      --
      dtach - A tiny program that emulates the detach feat
    3. Re:64 bit linux :-)? by croddy · · Score: 5, Informative
      1. 32-bit Flash works just fine on 64-bit gentoo. Install 32-bit Mozilla or Netscape binaries, and install the Flash plugin there. No need to switch machines, just switch browsers.
      2. ATI Drivers: I'm afraid you're on your own here.
      3. Sun Java 5 runs just fine on 64-bit gentoo, even if it is missing a browser plugin. Install blackdown-jre and your applets should run just fine.
    4. Re:64 bit linux :-)? by Galuvian · · Score: 2, Informative

      Blackdown is still 1.4, at least on amd64 stable

      * dev-java/blackdown-jre
      Latest version available: 1.4.2.01-r1
      Latest version installed: [ Not Installed ]
      Size of downloaded files: 28,483 kB
      Homepage: http://www.blackdown.org/
      Description: Blackdown Java Runtime Environment 1.4.2.01
      License: sun-bcla-java-vm

      * dev-java/sun-jre-bin [ Masked ]
      Latest version available: 1.5.0.03
      Latest version installed: [ Not Installed ]
      Size of downloaded files: 32,042 kB
      Homepage: http://java.sun.com/j2se/
      Description: Sun's J2SE Platform
      License: sun-bcla-java-vm

  3. 64-bit linux by croddy · · Score: 3, Informative

    well, 64-bit linux systems have been available for quite a while now. since the kernel and practically the entire application codebase are available to the public as source code, the transition has been quite painless for end-users. 32-bit emulation libraries have ensured that 32-bit binary programs work almost flawlessly.

    1. Re:64-bit linux by jnik · · Score: 5, Interesting
      Hmm... but this is different. The 16 to 32-bit PC transition didn't require you to go out and buy new hardware.

      Huh!? Sure it did. You couldn't run 32 bit code on a 286. In practice, by the time 32 bit became effectively mandatory (Win95), the sheer horsepower requirements pushed an upgrade more strongly than word size. It'll likely be the same this time around.

    2. Re:64-bit linux by swillden · · Score: 4, Funny

      The 16 to 32-bit PC transition didn't require you to go out and buy new hardware. Years from now, we might all be forced to use a true 64bit AMD to run anything.

      You mean I won't be able to run new software on my 286 any more? That BLOWS, man!

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    3. Re:64-bit linux by BJH · · Score: 2, Informative

      You missed out hppa (PA-RISC Linux), but otherwise you're absolutely correct.

    4. Re:64-bit Linux by Nutria · · Score: 2, Insightful

      ...and quite a few userspace apps were broken on Linux/Alpha (I spent quite a bit of time with Linux on EV5).

      But not because of backwards compatibility issues so much as bad code, written by bad coders.


      Most all were fixed many years ago. Thank the Debian Project for continuing to build against Alpha, and tracking bugs against it. Upstream then makes their s/w 64-bit clean for everyone.

      Of course, if fewer programs were written in C, the problem would be minimized.

      All the world is not ... a 32 bit x86.

      No, but 99.44% of it is... :/

      --
      "I don't know, therefore Aliens" Wafflebox1
  4. 64-bit Linux by reynaert · · Score: 5, Insightful

    when [...] 64-bit Linux comes out

    64 bit Linux came out about a decade ago, when it was ported to the Alpha (and, unlike Windows NT for Alpha, it was a true 64 bit port).

  5. 64-bit linux by molo · · Score: 4, Informative

    amount of system shock we are facing when either Longhorn or 64-bit Linux comes out?

    Umm.. no offense, but where have you been? 64-bit linux has been out for a LONG time. Some platforms have been 64-bit kernelspace (sparc64, ppc64, alpha, amd64) and have had 64-bit userspace (alpha) while others have had a mixed 32-bit and 64-bit userspace (sparc, mips, ppc, amd64).

    Most open source apps are already ported. Are you really doing things at a low enough level where you have to worry about thunking?? You might have bigger problems then.

    -molo

    --
    Using your sig line to advertise for friends is lame.
  6. *WHEN* 64-bit linux comes out? by Xtifr · · Score: 3, Informative

    64-bit Linux has been around for about a decade, since the initial DEC Alpha port. There are at least four 64-bit architectures with Linux support at this point, and it's well tested and debugged.

    As for the Windows side, the lessons of the 16->32 conversion were not wasted, abstract types created for that conversion are still in use, and will certainly make the new transition much easier. There will be some bugs that will need to be shaken out, but it's unlikely to be the sort of major effort it was last time.

  7. Don't worry about it... by Sheetrock · · Score: 4, Insightful
    There was a period of years between 32-bit hitting the market and 32-bit being taken seriously as a development target by the majority of developers.

    True, a large part of that was due to MS-DOS being the platform of choice, but the speed with which you need to adapt to the 64-bit environment will be made up for by the relative ease of conversion. We're relatively insulated from the word size of the system, except for the size of 'int' in C, and we won't have to deal with memory managers or extenders -- that's all up to the OS.

    Just keep in mind while you program to be flexible and avoid tying yourself to any OS particulars in an unnecessary way. It's a bump in the road, but nowhere near as bad as it used to be.

    I expect to see 32-bit support in development tools for years yet. Microsoft's window of support seems to be five or more years for operating systems so you've got at least that much time.

    --

    Try not. Do or do not, there is no try.
    -- Dr. Spock, stardate 2822-3.




    1. Re:Don't worry about it... by shadowpuppy · · Score: 2, Insightful

      Also keep in mind the 64k addres space limit if 16 bit systems is REALLY tiny. Back then many apps had to play games to get around it. It's one things for a document to go over 64k another for it to go over 4 gig.

    2. Re:Don't worry about it... by orkysoft · · Score: 2, Funny

      We are talking Microsoft Word here... ;-)

      --

      I suffer from attention surplus disorder.
  8. Thunking! by Wabbit+Wabbit · · Score: 2, Interesting

    Wow, that takes me back...the days of message cracking, porttool, and NT 3.1

    Thanks for the walk down memory lane.

    --
    Nothing is inexplicable; only unexplained -Tom Baker, Doctor Who
  9. OK - is this the most stupid AskSlashdot today ? by MerlynEmrys67 · · Score: 3, Funny
    Should we start a daily poll on the dumbest question to hit Ask Slashdot on a 24 hour period.

    This one is sure to hit it.

    Been running a 64 bit dual proc AMD Linux for about a year. Been running a 64 bit AMD Win 2K3 Server for about 5 months. Been running a 64 bit Sparc Linux for about 2 years (personally - all of these were out long before I got to them)

    Here is the big difference. When you remember the 16-32 bit port - most of the problems I saw were to memory protection, and dealing with ring transitions. We have all ready solved these problems, so the port to 64 bits is pretty painless.

    --
    I have mod points and I am not afraid to use them
  10. flash, java, and ATI on amd64 by Anonymous Coward · · Score: 2, Informative
    1. The 32-bit flash plugin works if you run it in a 32-bit browser program, even on a 64-bit OS. As long as one of your web browsers is 32-bit, you can run flash from within that one. A good solution is to install both mozilla and firefox and make one of them the 32-bit version and the other one 64-bit.
    2. Proprietary ATI linux drivers for AMD64 are available.
    3. Java applets are similar to flash -- the Sun java browser plugin will work if you use a 32-bit browser.
  11. Bitness != Pain by fm6 · · Score: 3, Informative
    The pain we experienced going from 16-bit to 32-bit Windows had nothing to do with bitness. Despite having the same name and a big feature overlap, these were actually two different OSs. The 16-bit OS evolved out of DOS, a nasty, buggy and incomplete OS designed by people who didn't even understand what an OS was supposed to do. The Windows layer didn't just provide GUI services, it kludged in basic OS functionality, like pre-emptive multitasking. By contrast, 32-bit Windows was written from scratch by OS geniuses who had previously worked on VMS. They did their best to provide backward compatibility, but there's a limit to what you can do about that wihout screwing up the new OS.

    Porting from 16-bit Windows applications to 32-bit Windows is sort of comparible to the problems you face running Windows applications under Linux using WINE. In both cases, you're going to a new OS, and relying on a compatibility layer.

    A 32-bit Windows application running under 64-bit Windows just won't face these issues. There will be some 64-bit features it won't be able to uses, that's all.

    1. Re:Bitness != Pain by Bill+Dog · · Score: 2, Informative

      Win95 was a 16/32-bit hybrid/bastardization. It ran both 16 and 32-bit apps natively (and you could thunk calls between them). The NT-based OS's were always 32-bits (or more now), and emulate a 16-bit layer when needed (the Windows on Windows, or WOW subsytem). I believe it was WinME that was the last of those bastardizations.

      --
      Attention zealots and haters: 00100 00100
  12. Re:OK - is this the most stupid AskSlashdot today by WhatAmIDoingHere · · Score: 2, Interesting

    Windows users may have a problem: Most installers are still 16 bit. I installed XP64 on my Athlon64 box and couldn't do much of anything.

    Note: I'm a gamer.

    --
    Not a Twitter sockpuppet... but I wish I was.
  13. Re:16bit huh? 24bit yes by Bill+Dog · · Score: 2, Interesting

    I had my asm class in college on the MC68000, and remember that it had 16-bit control and data buses (with 32-bit registers!) and a 24-bit address bus. Since 2^16 can only address 64K, and 4GB would have been way overkill in those days, I guess 24 bits was somehow logical.
    And I too remember plenty of warning for getting "32 bit clean".

    --
    Attention zealots and haters: 00100 00100
  14. How hard is it, by way2trivial · · Score: 3, Insightful

    without knowing the form the x99986 processor will take, to, while coding for 64bit, to leave room for 128 bit. (I have no idea of the practicality myself)

    got a program that will still be around in five years? telnet client? something?

    great... whilst coding it for 64 bit, leave room for another bit, so in five years, you can 'turn it on' and be that much ahead of the game.

    --
    every day http://en.wikipedia.org/wiki/Special:Random
    1. Re:How hard is it, by Anonymous Coward · · Score: 4, Informative

      Planning for 128 bits of address space is insane.

      Don't let you be fooled by the fact that 16->32, and 32->64 seems similar and infer that 64->128 is the same.

      First the exponential increase in performance/memory size gives you a linear increase in bit count. Doubling the bit count is a very rare event.

      Second, hitting a limit on 64 bits would mean 4 billion times 4 billion bytes.

      Think about it. 73 millions of 250 gigabytes hard drive *per* application.

      All the movies from imdb.com, in DVD format, in memory. 4500 times.

      An DiVX of your whole life. 43 thousands times.

  15. easy to quantify by epine · · Score: 2, Interesting


    This is just stupid. We exhausted the 16-bit address space in the era of the Osborne and Apple Poo. Ten years later we experienced a painful "transition" to 32 bits (after completely exhausting kludge space). The present situation is that high end machines can make good use of a 64-bit address space in kernel, but 99.9% of userland processes could remain 32-bit for a long time yet. The rare exceptions, such as database servers, those have been 64-bit clean since before the Alpha was first invented.

    Sure, let's compare a transition that took place ten years after the pain was universal to a transition that took place quietly ten years before most people realized that a 32-bit virtual address space could be exhausted with far less physical memory as a result of mechanisms such as nmap.

    1. Re:easy to quantify by MemoryDragon · · Score: 2, Interesting

      The main problem with the 16-32 bit transition was the dreaded segmentation, the code for this had to be moved into a flat mem model (the first thing the compiler people did was to expand one segment to full mem size and get rid of the segmentation at all, which Intel wanted to carry over into the 32 bit world - speaking of stubborn and shortsighted) and that lots of code was pure assembler, the other problem was that lots of programmers used the good ole trick of number boundary overloading to zero values or to push them into a negative domain, which of course only works as long as the bytesize of your registers do not change, which happened back then. All these were tricks to save clock cycles and mem. I dont expect that the move to 64 bit will be as bumpy and 64bit linux has shown that indeed it is not.

  16. Oh yeah, what about Java? by Latent+Heat · · Score: 2, Interesting
    Linux can be happily 64 bit, and Windows may attempt to be 64 bit, but what are people going to do about Java?

    Java is supposed to be platform independent, but the implicit assumption has always been a 32-bit platform of one sort or another. Yes, Java can run on a 64-bit processor, but the int is still 32 bits unless you want to change the behavior of an awful lot of Java code.

    So will there be two Java's or are they going to come up with some kind of clever 64-bit Java extension or what?

    Oh, and as to the comments that it takes a shockingly big Word document to bust a 32 bit address space, the big address space is not for Word, it is for video. The change to 32 bits and faster processors made CD-quality audio pretty much universal on desktop computers, but HD-quality video is not there yet. Sure you can stream from files or segment memory, but 4 Gig is still constraining with regard to high definition video files being handled in linear address space.

    1. Re:Oh yeah, what about Java? by cratermoon · · Score: 5, Informative

      > the int is still 32 bits

      Defined that way by the language standard and will always be that way on any platform past, present, and future. That's why it's platform-neutral, because you don't have to deal with ridiculous low-level issues like the size of standard datatypes. All primitive types are fixed by the language standard. These sizes do not change from one machine architecture to another (as do in most other languages). This is one of the key features of the language that makes Java so portable.

      Need more than 2,147,483,647? Try long -- 9,223,372,036,854,775,807. Still not big enough? java.math.BigInteger is arbitrary precision.

      Although programming in Java has lost some of its charm for me, I never ever again want to have to program in a language where I don't know from one platform to the next whether or not a particular bit of arithmetic will overflow.

  17. When 64-bit linux comes out? by photon317 · · Score: 2, Insightful


    Who lets these crackheads post stories? Linux has been running native 64-bit on several platforms for years, and years, and years. Hell even in the x86 world, I've got ~9,000 Opteron CPUs chugging under the power of Linux in 64-bit mode at work, and they're just trashy lease boxes.

    --
    11*43+456^2
  18. The difference... by Ayanami+Rei · · Score: 4, Informative

    64-bit mode on AMD abandons the idea of segments.
    You don't need them to get around the 4GB limit (no need for PAE), and no operating system was using segment protection of memory anyway; relying solely on page protection flags.
    Everything in 64-bit mode ends up in a known, fixed location of memory (like on old Macs)

    --
    THIS THING CAN TURN ON A DIME, MACROSSZERO STYLE ALSO FUCK BETA, ~NYORON
  19. The difference...? by jojo+tdfb · · Score: 2, Informative

    How is that different that the current 32 bit mode? If I remember correctly (and google still serves me right ;) all Linux binaries start at 0x08048000. Windows does the same, just a different address. What exactly does the 64 bit add other than larger word sizes and a few extra registers?

    If I remember my history right, it was the 286 that added this mode. Granted the addressing was in 24 bit but it tossed out haveing to split up your memory address across 2 pointer registers ( I still curse those damn data segments, when I'm drunk enough).

    --
    Linux is really boring from an os standpoint. Now Plan 9......
  20. It's a valid question by jojo+tdfb · · Score: 2, Interesting

    You may have been running 64 bit linux for a little while on the x86 but you strike me as a guy never seen the joys of real mode vs. protected mode. You should Google up some of the angst filled rants from programmers who had to deal with it back in the day.
    Some of that old code is just crazy.

    We got it so easy these days almost makes me feel lazy.

    --
    Linux is really boring from an os standpoint. Now Plan 9......
    1. Re:It's a valid question by DarkDust · · Score: 2, Interesting

      You may have been running 64 bit linux for a little while on the x86 but you strike me as a guy never seen the joys of real mode vs. protected mode. You should Google up some of the angst filled rants from programmers who had to deal with it back in the day.

      Note: my memory may serve me wrong, the following could contain errors.

      The difference of real and protected mode that was alien to the developers wasn't so much about 16 or 32 bit but about the way memory was addressed. In real mode memory is addressed with a 24 bit hack and people where used to that. Additionally, they didn't have to care about memory protection and setting stuff up, real mode is just plain simple to use.

      By contrast, the transition from 32 bit (protected mode) to 64 bit is very soft, as far as I remember there are a few new opcodes and a few new registers, but the hard stuff like addressing memory hasn't changed much to my knowledge... then again maybe someone who actually knows some AMD64 assembler could shed some light here ?

  21. Shock? I think not. by Golthur · · Score: 2, Interesting

    My primary system (LFS) has been 64-bit for quite some time. Pretty much no shocks, either.

    The only things not working well for me in 64-bit are:

    • Flash - Yes, I know I can use a 32-bit compiled browser and install 32-bit Flash, but I don't want to :)
    • Wine - I've compiled it 32-bit, and everything works except sound :(
    • OpenOffice - but I'm running the 32-bit binary with no problems.

    I even have 64-bit hardware accelerated video drivers (NVidia).

    Now, 64-bit Windows is another story. I think it will be quite some time before everyone's apps are 64-bit - since no one can recompile the code and fix the various pointer problems.

    --
    Hofstadter's Law: It always takes longer than you expect, even when you take into account Hofstadter's Law.
  22. Kids these days... by solios · · Score: 2, Interesting

    My SGI Indigo 2 r10k is a 64-bit MIPS proc running at 200mhz with 576 megs of RAM, running IRIX.

    The indigo2 was released in 1993.

    I do believe mine (the purple, 64-bit beast) came along in 95 or 96.

    UNIX and by logical extension freenix has always been years - if not decades - ahead of gear that Joe User can buy on his salary. Anybody who thinks freenix has any sort of "catching up" or "adapting" to do to achieve 64-bit perfomance is obviously highly ignorant of computing history. :|

  23. Installed AMD64 Debian last week by vlm · · Score: 2, Interesting

    I upgraded to an Asus A8V-Deluxe with an AMD64-3000 processor last week.
    The AMD64 / true64 port of debian is not an official part of Debian (waiting until after the release to add it).
    It took a little googling to find an install .iso and to find a good amd64 mirror, but it was frankly boring in how easily it installed. It's just another Debian install nothing special, and because it's Debian you only need to install it once.

    As for hardware, everything worked out of the box without fooling around including the USB, the onboard gig-ethernet, the onboard sound, etc. I haven't tried the firewire or the SATA but I assume it will work.

    As for software, everything in i386 Debian seems to be in amd64 / true64 Debian with the exception of qemu and the openoffice.org suite. I haven't bothered to set up a chroot environment but they say that'll allow that stuff to work.

    It's just another open source success story, and theres so many of those, that this one isn't even noteworthy.

    --
    "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger