Unix fylder 50 år. Hvad betyder det?

2020 er et bemærkelsesværdigt år for Unix: i begyndelsen af året fyldte dets originale operativsystem 50 år. Unix-tiden, også kendt som "epoke-datoer", er antallet af sekunder, der er passeret siden 1. januar 1970. Men hvad bekymrer kerneludviklerne i forbindelse med Unix' halve århundrede jubilæum?

Unix fylder 50 år. Hvad betyder det?

Selvom nogle af de tidlige Unix-udviklinger går forud for den officielle start af sin "epoke", forbliver 1. januar 1970 nulpunktet i POSIX-tid. Derfor fyldte platformen officielt 50 år den 1. januar 2020.

Tid Unix i menneskelig tid

Set fra menneskelig tid er 50 år en lang periode. Fra Unix' synspunkt er der ikke noget særligt ved 50 år; 43 år ville være ikke mindre betydningsfulde. Unix-systemer (inklusive Linux) gemmer dato- og tidsværdier som antallet af sekunder, der er gået siden 1970-01-01 00:00:00 UTC, med en registrering på 32 bit. For at bestemme, hvor mange sekunder der er gået siden det tidspunkt, og dermed den nuværende Unix-tid, kan man køre kommandoen:

$ date +%s

1576883876

Argumentet %s efter date-kommandoen angiver visningen af den nuværende dato og tid som antallet af sekunder siden starten af 1970-01-01.

Unix fylder 50 år. Hvad betyder det?

Hvilken maksimumsdato kan Unix-systemer gemme? Unix?

For at forstå, hvor meget tid en Unix-system kan rumme, skal man vurdere kapaciteten af et 32-bit felt. Dette kan beregnes således:

$ echo '2^32' | bc

4294967296

Men da Unix forudsætter gemning af negative tal, reserveres et bit til tegnet, hvilket reducerer tidsværdien til:

$ echo '2^31' | bc

2147483648

Og da Unix-nummereringen starter fra 0, betyder det, at vi har 2.147.483.648 værdier, men den største værdi er 2.147.483.647 — værdien for Unix-dato og -tid kan ikke overstige dette tal. Ligesom en køretøjs kilometertæller ikke kan vise mere end 999.999 kilometer — tilføj 1, og værdien nulstilles.

Hvor lang tid varer et år i sekunder?

Antallet af sekunder i et år kan beregnes således:

$ expr 24 * 60 * 60 * 365

31536000

I et skudår tilføjes en ekstra dag:

$ expr 24 * 60 * 60 * 366

31622400

Unix fylder 50 år. Hvad betyder det?

Hvordan viser Unix sin 50. fødselsdag?

1. januar 2020 kl. 00:00 vil have tiden 1577836800. Beregningen bliver lidt mere kompliceret, da man skal tage højde for skudår. Siden Unix-epokens begyndelse har der været 12 sådanne år, fra 1972 og frem til 2016. Det vil sige, at der er gået 38 almindelige år.

Sådan ser expr-kommandoen ud for at tælle sekunderne der er gået i de sidste 50 år:

$ expr 24 * 60 * 60 * 365 * 38 + 24 * 60 * 60 * 366 * 12

1577836800

Eller sådan her, under hensyntagen til de tidligere foretagne beregninger:

$ expr 31536000 * 38 + 31622400 * 12

1577836800

Denne måde at registrere tid på gjorde Unix-systemer ufølsomme over for Y2K-problemet, som bekymrede folk sidst i 1999 om, at overgangen til år 2000 kunne skade computersystemerne. Der viste sig at være langt færre vanskeligheder end forventet. Faktisk var det kun applikationer, der registrerede år i to-cifret format, der stod over for nulstilling af datoer. Mange udviklere har udført ekstra arbejde for at sikre, at deres applikationer ikke vil blive ramt af Y2K-problemet.

Hvornår vil Unix møde problemer?

Lignende vanskeligheder venter ikke Unix-systemer før i 2038, når datoer gemt i det ovenfor nævnte format overstiger 32-bit rum. Der er stadig 18 år tilbage, men kerneudviklere arbejder allerede på at undgå de kommende nedbrud.

2038-problemet omtales nogle gange som Y2K38-problemet. Hvis det ikke løses inden tirsdag den 19. januar 2038, kan systemer efter denne dato tro, at det er blevet 1901. En af måderne at løse dette problem på er at skifte til en 64-bit repræsentation af dato- og tidsinformation. Nogle mener, at dette også vil være meget sværere, end det umiddelbart ser ud til.

Under alle omstændigheder er det stadig for tidligt at panikke. Det, der virkelig betyder noget i dag, er 50-års jubilæet for Unix-systemerne, anerkendt som en af de mest betydningsfulde OS'er i historien.



Kilde: 3dnews.ru
Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster