web analytics

Nagaan of je met een 32-bit of een 64-bit versie van Linux werkt

Print Friendly, PDF & Email

Als je beginnend Linux gebruiker bent, of je moet op een vreemde box aan de rit, weet je soms niet direct of je nu een 32-bit of een 64-bit versie van een programma moet installeren, wanneer beide versies ter download aangeboden worden. Het is wel van belang om te weten of je OS nu een 32-bit of 64-bit versie is, omdat beide versies op een 64-bit moederbord geïnstalleerd kunnen worden.

Hieronder vind je enkele manieren om dat snel te checken.

Gebruik het  ‘uname’ commando

-a parameter

alain@desktop ~ $ uname -a
Linux desktop 3.13.0-37-generic #64-Ubuntu SMP Mon Sep 22 21:28:38 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

Bij een 64 bits systeem wordt x86_64 weergegeven. Een 32-bit systeem geeft i686 (of i386 in bepaalde gevallen) weer.

-m parameter

Hier is het resultaat wat simpelder.

eijie@laptop ~ $ uname -m
x86_64

De test

De reacties lopen nogal wat uiteen. Daarom heb ik op mijn systeem zowel de Live DVD van Ubuntu 14.04.3 – 32 bit-als de 64-bit effe opgestart.

Dit is het resultaat onder de 32-bit versie:

ubuntu32

Dit is het resultaat onder de 64-bit versie:

ubuntu64

Met uname kun je dus inderdaad of je kernel een 32-bits of een 64-bits versie is.

Beoordeling

10 Reacties

  1. Medard

    Wat ook kan is klikken op het tandwielicoontje in de rechter bovenhoek en vervolgens op “Over deze computer” in het uitrolmenu.

    Reageren
    1. eijie (Auteur bericht)

      Niet alle distro’s hebben zo’n tandwieltje. Enig idee hoe je het in openSuse of in Arch-Linux doet? Of als je al helemaal niet meer in de GUI kan geraken…

      Ik opteer er altijd voor om oplossingen aan te bieden die voor alle Linux distro’s kunnen gebruikt worden en daartoe zie je mij veel commandolijn commando’s gebruiken.

      Reageren
      1. Medard

        Ja, dan zijn de Terminalcommando’s een praktische oplossing.

        Reageren
  2. Julius

    Je moet juist niet uname gebruiken om dit te bepalen. Als je een 64-bit kernel hebt met een 32-bit userland, zal dit suggereren dat je een 64-bit programma kan draaien, terwijl dat dan juist niet gaat.

    Reageren
    1. eijie (Auteur bericht)

      Julius,

      Als je Linux kernel 64-bit is, dan draai je ook een 64-bit OS. Dat staat los van je userland. De kernel is in feite ring 0 op x86 processors en draait in “more privileged” level of hardware protection , terwijl het userland dan ring 3 op x86 CPUs is en draait in least privileged mode.

      Of je nu een 64-bit kernel hebt, of een 32-bit kernel, je kan in je userland altijd 32-bit apps draaien.

      Het commando ‘uname -a’ zal je enkel de architectuur van je kernel tonen en daarmee weet je dan welke versie van software je moet compileren of installeren op je systeem.

      Kijk ook eens op:

      Reageren
  3. Jens

    Hoi.

    Wat Julius reeds vermelde klopt.

    uname leest/print enkel wat er staat in sys/utsname.h (kan verschillen en/of niet bestaan bij verschillende distributies).

    Verder heb je wel degelijk een minimum 32-bit user-land nodig met een 64-bit kernel om ook maar iets “32” te installeren.

    Mvg,
    Jens.

    Reageren
    1. eijie (Auteur bericht)

      Ik heb dus de proef op de som genomen en zowel de 32-bit als de 64-bit Live DVD-versie van de LTS van ubuntu effe opgestart. Uname geeft perfect weer welke kernel je draaiende hebt. Zie plaatjes in mijn artikeltje.

      Reageren
      1. Julius

        Klopt en bij Ubuntu weet je dan doorgaans ook de versie van het OS en of je 64-bit danwel 32-bit pakketten kan installeren.

        Nu een paar voorbeelden van “vreemde boxen”:
        – 64-bit kernel met 32-bit userland: komt niet voor bij Ubuntu, maar er zijn wel andere distros met zulke releases geweest
        – 64-bit kernel met 32-bit chroot: dit komt heel vaak voor en als je vanuit de chroot probeert met uname te achterhalen in wat voor OS je zit, ga je mank

        Scripts gebruiken daarom nooit uname om de architectuur te bepalen. Alleen ‘uname -o’ laat het OS zien en daar zit die informatie niet in. Zie ook: man uname

        Reageren
  4. François

    Mijn bijdrage zal misschien wat afwijken van het artikel, maar vind het toch de moeite om even te plaatsen. Op een moederbord waar een 32-Bits CPU zit , kan alleen een 32-Bits OS en software op geinstalleerd worden. Op een moederbord waar een 64-Bits processor zit kan zowel een 64-Bits OS en software, of ook 32-Bits en software op geinstalleerd worden. Het is dus belangrijk op een computer waarop (nog) geen OS staat geinstalleerd te gaan controleren in het BIOS of er een 32 of 64-Bits CPU op het moederbord zit. Een computer waar een 32-bits CPU op het moederbord zit , zal men zelfs niet kunnen booten met een 64-Bits Ubuntu , linuxMint of andere Linux Live schijfje .
    Gaat men op een 64-Bits systeem een 32-bits OS installeren, en men wil daar een 64-Bits applicatie gaan op installeren, zal niet lukken , ook al zit er een 64-Bits CPU op het moederbord. Anderzijds als er een 64-Bits OS werd geinstalleerd , zal men zowel 32 en 64-bits software kunnen installeren en gebruiken kunnen installeren en gebruiken. Een 32-bits systeem ondersteund ook maar ongeveer 3,6 GB RAM . Als het moederbord geschikt is voor een 64-Bits CPU , en er zit bijvoorbeeld 16 GB RAM geheugen in de geheugenslots , zal hiervan maar ongeveer 3,6 GB kunnen benut worden. Een 64-bits systeem ondersteund miljoenen GB’s aan geheugen , het juiste aantal kan ik onmiddelijk geen cijfer op plakken. Miljoenen GB’s aan RAM geheugen zal nu misschien overdreven lijken maar wie weet ooit in de toekomst dat er computers zullen bestaan met miljoenen RAM’s werkgeheugen.

    Reageren
    1. Jens

      Je kan in een 32-bit systeem (op zo’n oude 64-bit PC) probleemloos een 64-bit kernel installeren om die limieten te vermijden 😉 (heb je als bonus ook nog eens de voordelen van 32<64 in userland).

      Ik Gebruik zelf een aantal arm platformen in combinatie met een AMD64 kernel (Debian) om oude binaries te porten.

      Reageren

Geef een reactie

%d bloggers liken dit: