Y2K

Från Rilpedia

Hoppa till: navigering, sök
Wikipedia_letter_w.pngTexten från svenska WikipediaWikipedialogo_12pt.gif
rpsv.header.diskuteraikon2.gif
Denna artikel handlar om det datorrelaterade problemet Y2K. För järnvägsfordon med littera Y2K, se Y2, motorcykeln med detta namn finns på Y2K motorcykel.

Y2K, Y2K-problemet, År 2000-problemet, eller mer informellt millenniebuggen, var en brist i utformningen av datorprogram och system som orsakade att dessa inte skulle komma att fungera för datum efter 31 december 1999. Akronymen Y2K är av engelskspråkigt ursprung och bildat av Y, för Year, och 2K för 2 Kilo = 2000. På engelska benämns problemet också ofta "the millennium bug". Termen "Y2K" myntades 1995 i ett e-mail sänt av en programmerare från Massachusetts vid namn David Eddy [1].

Y2K orsakade stor uppståndelse och bekymmer i slutet av 1990-talet när sekelskiftet närmade sig, och stora summor pengar (flera miljarder [2]) spenderades av företag, organisationer och myndigheter över hela världen för att åtgärda problemet och korrigera programmen. Problemet fick också en stor bevakning i massmedia och blev föremål för mycket spekulationer och fick många att frukta att vitala datorsystem och samhällsfunktioner skulle bryta samman vid nyåret år 2000. När sedan dessa farhågor inte besannades, uppfattades detta av många som att problemet egentligen inte hade existerat utan hade förstorats upp till orimliga proportioner i egensyfte av IT-branschen. Det har också gjort att Y2K-problemet i vissa sammanhang kommit att beteckna just den överdrivna oro som uppstod inför millennieskiftet 1999-2000.

Innehåll

Det bakomliggande felet

Den påpekade bristen i datasystemen var högst verklig. I de flesta (även helt moderna) datasystem lagras uppgifter på ett sätt som gör att man i förväg måste bestämma sig för hur stort utrymme i datorns minne eller i databasernas poster en viss typ av information ska ta. En sifferuppgift kan därför oftast bara innehålla ett begränsat antal siffror och en bit text kan bara högst bestå av ett visst antal tecken.

De flesta datasystem som är i bruk hanterar årtal på ett sätt som inte inkluderade alla siffrorna i det fullständiga årtalet - 1989 kan, väldigt förenklat, lagras som "89" och 1942 som "42". Så länge man adderar 1900 till året fungerar aritmetik och jämförelser på sådana tvåsiffriga tal med fyrsiffriga tal alldeles utmärkt. Att få fram nästa eller föregående år utgående från ett givet värde kräver endast en enkel addition eller subtraktion, och att avgöra om ett år var tidigare eller senare än ett annat kräver endast en enkel jämförelse av talens värden. Allt detta ger emellertid problem om systemet inte kan lagra värden över 99, som sker om värdet lagras som text istället för binärt, eller om programmeraren inte hade adderat startåret, 1900, och programmet skulle arbete med årtal utanför 1900-talet. Årtalet 1900 som i normalfallet representerades med talet "0" var ofta det tidigaste möjliga årtalet i systemen, medan år 2000 och senare blir år "100" och uppåt, eller i värsta fallet inte alls kan representeras eller blir till ett negativt tal. Om man utgående från årtalet "97" vill beräkna årtalet fyra år framåt och lagrar informationen i två tecken så får man 97+4=101, vilket i många fall blir "01" när det ska klämmas in på två positioner. Beroende på programspråk, typ av dator m.m. kan det då antingen orsaka att programmet avbryts och systemet stannar, eller också går händelsen spårlöst förbi med ett resultat som ligger 96 år bakåt i tiden istället för 4 år framåt. Båda konsekvenserna är på sikt lika ödesdigra för systemets funktion. Även om hundratalssiffran rent beräkningsmässigt inte skulle tappas bort skulle värdet 101 istället för 2001 inte vara acceptabelt då det visas för en människa. Detta problem uppstår bara i det läge då systemet lagrar informationen som text och inte som binära tal och programmeraren valt att alltid skriva ut 19 före eller antagit att alla år endast skall skrivas ut med två siffror. Programmerare som omvandlar talet från tecken till binära siffror och sedan adderade startåret (ex. 1900) får aldrig detta problem oavsett om de skriver ut två eller fyra siffror för årtalet. De system som lagrar binärt får också problem med att värdet "slår runt" och hamnar på negativa värden, eller "0" igen, då utrymmet fortfarande är begränsat för att lagra siffror och förr eller senare tar utrymmet slut.

Felet har väldigt lite med själva nyårsskiftet 1999-2000 att göra då de flesta datorer och datorsystem använder sig av binära tal och utrymmet därmed inte tar slut just då utan senare, och det är därmed en missuppfattning att det var just vid denna tidpunkt som "buggen" skulle ge sig till känna. De flesta datasystem bearbetar datum i ett visst intervall, både framåt och bakåt i tiden. Felet började därför dyka upp långt innan millennieskiftet, och kan fortfarande orsaka problem så länge det finns program som inte korrigerats och som behandlar årtal utanför det intervall programmen är gjorda för.

Bakgrund

I datorernas barndom var minne och lagringsutrymme en bristvara, och man undvek att lagra mer data än vad som var nödvändigt. De olika media som användes för att mata in och presentera data på 1970- och 80-talen hade också rent fysiska begränsningar som gjorde att datauppgift måste ges en fast position och begränsad längd, exempelvis på ett hålkort, en textbaserad bildskärm eller i en pappersutskrift. Många av de programspråk som användes på den tiden, exempelvis COBOL, erbjöd inte heller några sofistikerade funktioner för att redigera och formatera data och det var därför naturligt att lagra ett datum ungefär på samma sätt som det normalt matades in i eller skrevs ut från systemet - som ett tvåsiffrigt tal, vilket i vardagslag var det normala sättet att ange årtal även utanför datorernas värd.

De flesta tids- och datumuppgifter i ett specifikt datasystem rör sig inom ett ganska snävt intervall och det var därför sällan ett problem att det inte samtidigt gick att hantera både 1889, 1989 eller 2089 i systemet - det var oftast självklart att det var 1989 som avsågs med värdet "89". De flesta system hade (och har) också en ganska kort livslängd och det var relativt få programmerare som på 80-talet bekymmrade sig för om deras system skulle fungera ett decennium senare.

En av de första som uppmärksammade problemet med att använda för få siffror i årtal var datavetaren Bob Bemer från IBM som redan 1958 lär ha noterat problemet i samband med arbete med programvara som behandlade genealogiska data. I början av 1970-talet skrev han flera artiklar där han offentligt varnade för konsekvenserna och uppmanade programmerare att öka längden till fyra siffror. Han fortsatte de efterföljande decennierna att försöka få IBM, olika myndigheter och ISO att ta sig an problemet, men utan något påtagligt resultat.

Allt eftersom det nya seklet kom närmare började fel dyka upp i system som hanterarde årtal efter 2000, exempelvis kunde låntagare i början av 1990-talet med lån som sträckte sig in på det nya seklet få anmärkningar på att de låg över 90 år efter med inbetalningarna. Det var dock egentligen först runt mitten på decenniet som programmerare började ta problemet på allvar i någon större omfattning. Företag och myndigheter började inventera sina system och kom fram till att en stor del av dem krävde omfattande förändringar för att klara övergången till det nya seklet, och arbete med detta startades i allmänhet också upp.

Många av de berörda systemen var gamla och hade körts i åratal utan större modifieringar. I vissa fall saknades tillräcklig dokumentation och kunskap om systemen och det var istället enklare att ersätta dem med nya system. Inte bara enskilda system visade sig behöva förändras. Relativt tidigt började leverantörer av operativsystem, databashanterare och hårdvara att se över sina produkter och parallellt med att deras kunder arbetade med sina egna system började de själva producera nya "Y2K-säkra" versioner och modeller av sina produkter. Det vanligaste operativsystemet, DOS, och nästan alla hem- och företagsdatorer krävde dock inga förändringar av hårdvaran för att klara övergången utan redan de allra första versionerna från början av 80-talet klarar årtal efter 2000 utan problem.

De sista åren på 1990-talet

Allt eftersom sekelskiftet närmade sig blev fokus på Y2K-problemet allt större. När insatserna för att korrigera systemen började öka, innebar det ofta i praktiken att resurser som tidigare varit inriktade mot att skapa nya system fick ägna sig åt att bygga om gamla system istället. Ju senare man startade desto intensivare blev korrigeringsarbetet och desto mer resurser krävdes för att klara av det. Under denna tid granskades miljarder rader programkod och miljontals rader rättades. Det är svårt att ge exakta uppgifter, men det har beräknats att amerikanska myndigheter spenderade 9 miljarder dollar, och att det i USA lades ned över 100 miljarder dollar på att förebygga och rätta Y2K-relaterade fel.

När arbetet med att korrigera systemen började sysselsätta en allt större del av IT-branschen, började det också uppmärksammas i medierna och av allmänheten. Anekdoter om inträffade och befarade problem började florera. Under 1999 blev Y2K-problemet en betydande mediahändelse, och farhågorna och spekulationerna fick stundtals ofantliga proportioner.

Problemets egentliga natur missförstods i allmänhet, och det uppstod ett felaktigt fokus på just nyårsafton och övergången till det nya seklet. Man befarade att viktiga delar av samhällets funktioner skulle kunna slås ut 1 januari 2000 genom att system inom bankväsendet, energiförsörjningen och transportväsendet då skulle sluta att fungera. Man spekulerade att hissar skulle stanna, flygplan skulle haverera och mycket annat. Det spekulerades att vissa länder, som exempelvis Ryssland, inte skulle ha resurser att åtgärda alla fel och att följderna där därför skulle bli katastrofala. Religiöst färgade domedagsprofetior förekom också.

Försäkringbolag sålde försäkringar som skulle täcka eventuella förluster för företagen pga Y2K-problem. På vissa håll i världen hamstrade människor mat och pengar för att kunna klara sig om profetiorna besannades.

Nyåret 1999-2000

Många företag och myndigheter upprättade kris- och beredskapsorganisationer runt årsskiftet och gjorde sig beredda på det värsta, men årsskiftet kom och gick utan några större incidenter.

I media talades det om antiklimax och många människor reagerade med upprördhet över att så mycket pengar och arbete hade slösats bort i onödan på något som tydligen inte var något större problem. Man framkastade tanken att det kanske hade varit bättre att inte göra något i förväg utan istället ta hand om de fel som faktiskt skulle ha inträffat, istället för att spendera miljarder på att i förväg leta efter fel i systemen. För alla de människor som deltagit i detta arbete var resultatet istället en bekräftelse på att insatserna faktiskt hade gjort nytta.

Exempel på fel som lär ha inträffat

  • Hos en snabbköpskedja i mellanvästern i USA kraschade kassasystemet när en kund någon gång på 1990-talet använde ett kreditkort med giltighetsdatum efter år 2000.
  • I ett av den brittiska varuhuskedjan Mark & Spencers affärer avvisades 1996 en konservburk med kött märkt med utgångsdatum "12-1-00" i kassan, eftersom kassasystemet tolkade det som 12 januari 1900.
  • Ett kärnkraftverk i Japan fick stoppas tillfälligt i början av januari 2000 då ett hjälpsystem krånglade. [3] [4]
  • Data från amerikanska spionsatelliter kunde inte bearbetas under en tid i samband med årsskiftet. [5] [6] Även franska militärsatelliter drabbades. [7]
  • Snabbtåg vid flygplatserna i Norge stannade den 31 december år 2000 (inte 1999!) på grund av att ett system inte kunde hantera detta datum korrekt.

Diverse lösa fakta

  • USAs centralbank förberedde sig i slutet av december 1999 för ett ökat uttag av pengar genom att leverera flera miljarder dollar extra till bankerna strax före årsskiftet. Detta kom dock på skam, och den ökade tillgången på pengar ledde till intensiv men kort hausse på börsen de första veckorna i januari.
  • För länder som inte använder sig av den västerländska Gregorianska kalendern, exempelvis många muslimska länder vars tidräkning börjar år 622, var årsskiftet 1999-2000 inte särskilt betydelsefullt.

Referenser

  • DeJesus, Edmund X. (1998). "Year 2000 Survival Guide". BYTE, Juli 1998, vol. 23, nr. 7 (det sista numret av BYTE).
  • Keogh, Jim (1998). "Working to Solve the Year 2000 Problem". Kap. 12 (pp. 307–329) av COBOL Programmer's Notebook. Upper Saddle River, NJ: Prentice-Hall PTR. ISBN 0-13-977414-9.

Se även

Externa länkar

Allmänt

Kritiska kommentarer

  • "A New Year's Embarassment for Y2K doomsters" – av Wynn Quon, Mitel Corp. (publicerad i National Post, 5 oktober 1999) – En artikel som ser på frånvaron av allvarliga Y2k-relaterade problem under de första månaderna 1999. Författaren förutspår att ett bara en mindre mängd problem kommer att uppstå vid årsskiftet om tre månader.
  • "Y2K bug may never bite" – av John Quiggin (publicerad i "Australian Financial Review", 2 September 1999 – En artikel som inte förutspår några allvarliga problem år 2000 och ser den pågående oron som en överreaktion på Y2K.
  • A Day in the Hype of America – Y2K documentär av Global Griot Productions, filmad i sin helhet under 31 december 1999.

Skämtsamma länkar

Källor

  1. Why Look At Y2K? - Separating Hype from Reality American RadioWorks - The Surprising Legacy of Y2K.
  2. Y2K: Overhyped and oversold?, rapport från BBC, 6 januari 2000
  3. Computer problems hit three nuclear plants in Japan, rapport av Martyn Williams vid CNN, 3 januari 2000
  4. Japan nuclear plants malfunction, BBC News 31 december 1999
  5. Military Satellite Station Had Year 2000 Trouble, The New Your Times, 5 januari 2000
  6. US loses intelligence information as Y2K hits satellite, ABC 2000 News, 5 januari 2000
  7. Y2K bug hits French defence system, but softly, ABC 2000 News, 2 januari 2000
Personliga verktyg