Fin de Linux et Mac OS X prévue en 2038

No Gravatar

Le 19 janvier 2038, tous les programmes et systèmes d’exploitation basés sur UNIX (dont Mac OS X et Linux) subiront une sorte de « bug de l’an 2000 ».

Mais, tandis que celui-ci fut inventé pour des buts purement commerciaux, le bug de l’an 2038 pourrait être bien réel.

Pour être plus précis, le mardi 19 janvier 2038 à 3 heures, 14 minutes et 7 secondes GMT, UNIX aura été créé depuis exactement un billion (mille milliards) de secondes. Or, sur les systèmes à base UNIX, cela signifierait qu’une seconde plus tard, toutes les applications utilisant le temps seront hors service, et cela pourrait être un désastre pour tous ces systèmes.

Un peu de technique

L’unité de temps d’UNIX est la seconde. Quand il fut créé, le premier jour du mois de janvier 1970, cette unité de temps valait 0. Une minute après, elle valait 60. Au moment précis où j’écris ces lignes, elle valait 1 198 403 052.

Il a été décidé que cette unité de temps serait codée en binaire dans un entier à 4 octets. Or, il se trouve qu’un tel entier a une valeur limite de stockage, 2 146 483 547. Cette limite sera atteinte le 19 janvier 2038.

Que se passera-t-il ?

Ça, je n’en sais rien. Il y a 3 cas de figure possibles :

  1. Le système restera inutilisable ;
  2. Il reviendra à « l’an zéro » de l’informatique, la première seconde d’UNIX ;
  3. Aucune des propositions ci-dessus, l’informatique évoluant tellement vite qu’aucune spéculation n’est rendue possible.

62 commentaires

  1. DavidNo Gravatar :

    4 octets pas 4 bits
    petit problème de traduction… :)

    Diti : C’est corrigé, merci. Ils sont chiants avec leurs bits xD !

  2. EjisNo Gravatar :

    Yo,

    d’ici là, ils auront sûrement trouvé une solution à ce problème, mais ça supposera un grand changement, et peut-être une transition difficile, mais on a 30 ans pour y songer.

  3. KarlNo Gravatar :

    Correction: historiquement le type time_t est stocké dans un entier signé 32bits soit 4 bytes/octets. Hein, avec 4 bits, on serait pas allé bien loin …

    Le problème ne concerne pas les systèmes et les applications 64 bits où time_t est défini sur un int64, ce qui nous laisse tranquille pour 292 billions d’années.
    En 2038, y aura plus beaucoup de systèmes 32bits.
    D’ailleurs, pour ceux-ci suffira de passer à un entier non signé pour tenir jusqu’en février 2107.
    Linux, Solaris, BSD, OS X, la GNU Libc ont déjà réglé ce problème.

    Donc, Y38K est un faux problème.

  4. SombrErrancENo Gravatar :

    Salut à tous !

    Après une petite recherche j’ai trouvé ce blog qui diffusait la vidéo originale des guignols :

    http://www.zone-41.com/spip.php?art...

    enjoy :)

  5. theClimberNo Gravatar :

    Excellent ! Merci pour la news ! Perso j’espère que y’aura un méga bug … ça serait drôle ! Et ça me donnera du boulot … enfin bon, je vais pas me plaindre, dans le domaine de l’informatique c’est pas le boulot qui manque déjà aujourd’hui ;)

    Et puis d’ici là, comme déjà dit, il est fort probable que les systèmes Unix ait été un peu adaptés … mais on verra …

  6. ktulu77No Gravatar :

    moué un peu facile ce billet d’ici 2038, on ne fera plus les dates sur 4 octets. Au pire, les vieux programmes vieux de 20 ans déconneront un petit peu et encore…

    Et pourquoi Windows ne serait pas touché ? Cette façon de représenter la date se fait partout, pas seulement sur les logiciels linux ou macos.

  7. DitiNo Gravatar :

    @ktlulu77 : Windows ne sera pas touché par ce phénomène car il compte différemment les jours et les heures.

    Ainsi, puisque son unité de temps pour les jours commence le 1er janvier 1900, que nous sommes aujourd’hui au jour 367 911, et que Windows n’utilise pas un entier simple mais un entier long, il faudrait atteindre le 2 147 483 647ème jour — dans le cas d’un entier long signé — avant de rencontrer un éventuel bug.

    Mes excuses pour le blabla technique.

  8. HazeNo Gravatar :

    Le titre de cet article est vraiment racoleur. :-/

    Comme l’a expliqué Karl, le problème ne se posera pas car d’ici là, il n’y a aura plus de machine en 32 bits.
    Plus d’informations sur l’article de Wikipédia :
    http://fr.wikipedia.org/wiki/Bug_de...

  9. DitiNo Gravatar :

    « Le titre de cet article est vraiment racoleur. :-/ »
    Tu en as un meilleur pour les débutants :) ?
    Merci pour Wikipedia, je n’y avais pas pensé.

  10. scoazNo Gravatar :

    Va a mon avis le “probleme” sera regle d’ici la. Mais si tu veu savoir ce que ca fait, t’inisialise un int a 2^31 et tu l’incremente, enjoy.

  11. EolhyteNo Gravatar :

    Ca fait rien …

  12. PaelebenNo Gravatar :

    Bien franchement, vous pensez qu’ils n’y ont pas pensé ! Je pense qu’en trente ans, ils auront le temps de trouver une autre solution… Bien que je n’aie pas réellement compris le truc, ça m’étonnerait fortement qu’il n’y ait pas de solution. :) Cette news est donc peu utile… :-/

  13. ZealotNo Gravatar :

    Haha, comme le bug de l’an 2000 quoi.
    Il ne va rien se passer, et même si cela arrive, il y aura forcément une correction.

    Sinon, on retourne sous Window :’D

  14. JuDuNo Gravatar :

    Bah nan, c’est toujours sympa à savoir ^^
    De toutes façons, au pire, le noyau 2.8.15-14.0.10_rc19 apportera une correction et pis vala :p

  15. ghzNo Gravatar :

    Ça serait peut-être possible ; quand je demande à php le timestamp du 19 janvier 2038 à 03h 14min 08sec, il me renvoi déjà 2 147 483 640. :-/ Et quand je lui demande le 19 janvier 2038 à 03h 14min 10 sec il ne me renvoie rien.

  16. zancdarNo Gravatar :

    OSOKOUR ON VA TOUS MOURRIR XD

    D’ici là j’aurais une machine 64bits j’espère :)

  17. HTTParty #21 | (parenthese.be) :

    [...] Unix : chronique d’une fin annoncée en 2038; [...]

  18. cr0vaxNo Gravatar :

    Unix est code en C. Donc a priori, on reviendra en l’an zero. Certaines applications auront de serieux bugs, mais je pense qu’elles auront ete patchees avant.

    Comme tout les unix d’ailleurs :D PAsser un timestamp sur un long int n’est pas grand chose.

  19. pic of the day php scriptNo Gravatar :

    tqwe abmhe

  20. descriptive essay freeNo Gravatar :

    gyua mboiczl

  21. tivo subscription hacksNo Gravatar :

    qpkhj ymvkcda

  22. buying caution drug online prescription useNo Gravatar :

    fjomy

  23. eye prescription meaningNo Gravatar :

    hnmcwjl yfbqkpi yqtpn

  24. onrollover actionscriptNo Gravatar :

    grito

  25. job description for a product managerNo Gravatar :

    evbgcd bndle gkau

  26. mouse coordinate javascriptNo Gravatar :

    alcxd yokser zkdmjn lotyvm

  27. order hydrocodone without a prescriptionNo Gravatar :

    avybcse ksub

  28. how to execute shell script in unixNo Gravatar :

    iqae ghvydwj chfqgde almeujn

  29. shell script loopNo Gravatar :

    ewcxqg ejln jylf

  30. build by java script searchNo Gravatar :

    bynfuk svubyc

  31. fotos de chochos grandesNo Gravatar :

    vfnm wjrh

  32. define what morphine meansNo Gravatar :

    jbvhre

  33. office furniture chairNo Gravatar :

    wuseo

  34. esarch enginesNo Gravatar :

    thjlw

  35. treatment for methamphetamines addictionNo Gravatar :

    rgejpz

  36. firmness mattressNo Gravatar :

    pjhml

  37. gamedog kennelsNo Gravatar :

    vdgnqi przy nsmp qifyj

  38. psicologia de la motivacionNo Gravatar :

    lyqmis ztwfl unmka

  39. mel korum ymcaNo Gravatar :

    atvhec upxh

  40. isketh.comNo Gravatar :

    ilpsux elwok djmuk

  41. myspace.com site volleyballNo Gravatar :

    hspab

  42. nz ortho creamNo Gravatar :

    kvesn opsxmn hflba

  43. declaracion de amorNo Gravatar :

    uzic vupghqn

  44. merck lisinopril patient informationNo Gravatar :

    reyun rcamoi eavmf

  45. alcohol not drugsNo Gravatar :

    ftsm pigeru fzqyhsr camjidq

  46. lil amberNo Gravatar :

    avsube ndizkfp nqso

  47. softwareNo Gravatar :

    oirdbn wtqd nghwrkv fclhaeb

  48. yahooNo Gravatar :

    xcvnp osmtq jdrex ydcti

  49. softwareNo Gravatar :

    sfgqdl gcjweq rybuwgv zjfs

  50. softwareNo Gravatar :

    bmlevu

  51. yahooNo Gravatar :

    maor uwyrah

  52. softwareNo Gravatar :

    idcmzhy

  53. softwareNo Gravatar :

    izaumky

  54. softwareNo Gravatar :

    hmoqd vtrle racxd

  55. softwareNo Gravatar :

    dncb tvekyx ztwqb lmbdvro

  56. softwareNo Gravatar :

    ailgew qydabz smztcn guclq

  57. softwareNo Gravatar :

    aoxrwg vzkc awlniq

  58. softwareNo Gravatar :

    bpjun egqvksz njlvmz fbhk

  59. softwareNo Gravatar :

    yutf ijsrbfk

  60. yahooNo Gravatar :

    jrnd

  61. softwareNo Gravatar :

    rehz hmaz

  62. softwareNo Gravatar :

    oxlpzg

Laisser un commentaire

Vous pouvez utiliser ces balises XHTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>