Unix bestaat 50 jaar. Wat betekent dat?

2020 is een belangrijk jaar voor Unix: het oorspronkelijke besturingssysteem werd begin dit jaar 50 jaar oud. Unix-tijd, ook wel epoch genoemd, is het aantal seconden dat is verstreken sinds 1 januari 1970. Maar wat is het probleem voor kernelontwikkelaars met het XNUMX-jarig jubileum van Unix?

Unix bestaat 50 jaar. Wat betekent dat?

Hoewel sommige vroege ontwikkelingen van Unix dateren van vóór het officiële begin van het "tijdperk", blijft 1 januari 1970 het nulpunt in POSIX-tijd. Met de start van 1 januari 2020 bestaat het platform officieel precies 50 jaar.

tijd Unix versus menselijke tijd

In menselijke termen is 50 jaar een lange tijd. In Unix-termen is 50 jaar niets bijzonders, en 43 jaar zou niet minder significant zijn. Unix-systemen (inclusief Linux) slaat datum- en tijdwaarden op als het aantal seconden dat is verstreken sinds 1970-01-01 00:00:00 UTC, geschreven in 32 bits. Om te bepalen hoeveel seconden er sindsdien zijn verstreken, en dus de huidige Unix-tijdwaarde, kunt u de volgende opdracht uitvoeren:

$datum +%s

1576883876

Het argument %s bij de opdracht date zorgt ervoor dat de huidige datum en tijd worden weergegeven als het aantal seconden sinds 1970-01-01.

Unix bestaat 50 jaar. Wat betekent dat?

Wat is de maximale datum die systemen kunnen opslaan? Unix?

Om te begrijpen hoeveel tijd een Unix-systeem kan vasthouden, moet u de capaciteit van een 32-bits veld schatten. Dit kan als volgt worden berekend:

$ echo '2^32' | bc

4294967296

Omdat Unix echter de opslag van negatieve getallen toestaat, is één bit gereserveerd voor het teken, waardoor de tijdswaarde wordt teruggebracht tot:

$ echo '2^31' | bc

2147483648

En aangezien Unix-nummering bij 0 begint, betekent dit dat we 2 waarden hebben, maar de grootste is 147 — Unix-datum- en tijdwaarden kunnen niet hoger worden dan dat. Net zoals de kilometerteller van een auto niet hoger kan worden dan 483 kilometer — tel er 648 bij op en de waarde wordt teruggezet naar nul.

Hoe lang duurt een jaar in seconden?

Het aantal seconden in een jaar kan als volgt worden berekend:

$expr 24 * 60 * 60 * 365

31536000

In een schrikkeljaar wordt er een extra dag toegevoegd:

$expr 24 * 60 * 60 * 366

31622400

Unix bestaat 50 jaar. Wat betekent dat?

Hoe viert Unix zijn 50e verjaardag?

Op 1 januari 2020 om 12:00 uur is het 1577836800. De berekening is iets ingewikkelder omdat er rekening moet worden gehouden met schrikkeljaren. Sinds het begin van het Unix-tijdperk zijn er 12 van dergelijke jaren geweest, beginnend in 1972 en eindigend in 2016. Dat wil zeggen dat er 38 gewone jaren zijn verstreken.

Dit is hoe de opdracht expr eruitziet om seconden te tellen over de afgelopen 50 jaar:

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

1577836800

Of zo, rekening houdend met eerder uitgevoerde berekeningen:

$expr 31536000 * 38 + 31622400 * 12

1577836800

Deze manier van tijdregistratie maakte Unix-systemen immuun voor het Y2K-probleem, waardoor men eind 1999 vreesde dat de Y2000K-overgang grote gevolgen zou hebben voor computersystemen. De problemen bleken veel kleiner dan verwacht. Sterker nog, alleen applicaties die jaartallen in tweecijferige notatie schreven, hadden nuldatums. Veel ontwikkelaars deden extra werk om ervoor te zorgen dat hun applicaties geen last zouden hebben van het Y2K-probleem.

Wanneer is het tijd Zal Unix in de problemen komen?

Unix-systemen zullen niet eerder dan 2038 met soortgelijke problemen te maken krijgen, wanneer data opgeslagen in het hierboven beschreven formaat de 32-bits ruimte zullen overschrijden. Er zijn nog 18 jaar te gaan, maar kernelontwikkelaars werken nu al aan het voorkomen van de komende problemen.

Het jaar 2038-probleem wordt soms ook wel het Y2K38-probleem genoemd. Als het niet vóór dinsdag 19 januari 2038 is opgelost, denken systemen na die datum mogelijk dat het 1901 is. Een manier om dit probleem op te lossen, is door over te stappen op een 64-bits weergave van datum- en tijdinformatie. Sommigen denken dat dit veel moeilijker is dan het lijkt.

Hoe dan ook, het is te vroeg om in paniek te raken. Wat vandaag echt belangrijk is, is de 50e verjaardag van Unix-systemen, die worden erkend als een van de belangrijkste besturingssystemen in de geschiedenis.



Bron: 3dnews.ru
Koop betrouwbare hosting voor sites met DDoS-bescherming, VPS VDS-servers 🔥 Koop betrouwbare websitehosting met DDoS-bescherming, VPS- en VDS-servers | ProHoster