Unix viert zijn 50ste verjaardag. Wat betekent dit?

Het jaar 2020 is historisch voor Unix: het originele besturingssysteem vierde aan het begin van het jaar zijn 50-jarig bestaan. De Unix-tijd, ook bekend als de "epoch-tijd", is het aantal seconden dat is verstreken sinds 1 januari 1970. Maar wat houdt ontwikkelaars van de kernel bezig nu Unix 50 jaar bestaat?

Unix viert zijn 50ste verjaardag. Wat betekent dit?

Hoewel sommige vroege ontwikkelingen van Unix voorafgingen aan de officiƫle start van zijn "epoch", blijft 1 januari 1970 het nulpunt in de tijd voor POSIX. Daarom kan men officieel zeggen dat het platform op 1 januari 2020 precies 50 jaar oud is.

Tijd Unix versus menselijke tijd

Vanuit het perspectief van menselijke tijd is 50 jaar een lange periode. Vanuit het perspectief van Unix-tijd is er echter niets bijzonders aan 50 jaar; 43 jaar zou net zo significant zijn. Unix-systemen (inclusief Linux) slaan datum- en tijdwaarden op als het aantal seconden dat is verstreken sinds 1970-01-01 00:00:00 UTC, opgeslagen in 32 bits. Om te bepalen hoeveel seconden er sinds dat moment zijn verstreken, en dus de huidige Unix-tijd, kan men de volgende opdracht uitvoeren:

$ date +%s

1576883876

De %s-parameter na de date-opdracht geeft de weergave van de huidige datum en tijd weer als het aantal seconden sinds 1970-01-01.

Unix viert zijn 50ste verjaardag. Wat betekent dit?

Wat is de maximale datum die systemen Unix kunnen opslaan?

Om te begrijpen hoeveel tijd een Unix-systeem kan bevatten, moet men de capaciteit van het 32-bits veld inschatten. Dit kan als volgt worden berekend:

$ echo ā€˜2^32’ | bc

4294967296

Echter, omdat Unix ook negatieve getallen ondersteunt, is er ƩƩn bit gereserveerd voor het teken, waardoor de tijdwaarde wordt verlaagd tot:

$ echo ā€˜2^31’ | bc

2147483648

En omdat de nummering in Unix begint bij 0, betekent dit dat we 2 147 483 648 waarden hebben, maar de hoogste waarde is 2 147 483 647 — dat is de maximale Unix-datum- en tijdwaarde. Net zoals de kilometerstand op een auto niet meer dan 999 999 kilometer kan tonen — voeg 1 toe en de waarde reset naar 0.

Hoeveel seconden zijn er in een jaar?

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

$ expr 24 * 60 * 60 * 365

31536000

In een schrikkeljaar wordt er nog een dag toegevoegd:

$ expr 24 * 60 * 60 * 366

31622400

Unix viert zijn 50ste verjaardag. Wat betekent dit?

Hoe viert Unix zijn 50e verjaardag?

Op 1 januari 2020 om 12:00 uur 's nachts is de tijd 1577836800. De berekening wordt iets ingewikkelder omdat er rekening moet worden gehouden met schrikkeljaren. Sinds het begin van de Unix-epoch zijn er 12 van zulke jaren geweest, van 1972 tot 2016. Dat betekent dat er 38 gewone jaren zijn verstreken.

Zo ziet het commando expr eruit voor het berekenen van seconden in de afgelopen 50 jaar:

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

1577836800

Of zo, rekening houdend met eerder gemaakte berekeningen:

$ expr 31536000 * 38 + 31622400 * 12

1577836800

Deze manier van tijdsnotatie maakte Unix-systemen immuun voor het Y2K-probleem, waarvoor mensen eind 1999 bezorgd waren dat de overgang naar het jaar 2000 schade aan computersystemen kon toebrengen. De moeilijkheden bleken veel minder te zijn dan verwacht. In feite waren alleen applicaties die jaren in een tweecijferig formaat opsloegen, getroffen door de nulling van datums. Veel ontwikkelaars hebben extra werk verricht om ervoor te zorgen dat hun applicaties niet door het Y2K-probleem zouden worden beĆÆnvloed.

Wanneer zal de tijd Unix problemen ondervinden?

Vergelijkbare moeilijkheden worden niet eerder dan 2038 verwacht voor Unix-systemen, wanneer datums die in het bovenstaande formaat zijn opgeslagen, de 32-bits ruimte zullen overschrijden. Er zijn nog 18 jaar te gaan, maar kernontwikkelaars werken al aan het vermijden van aankomende storingen.

Het 2038-probleem wordt soms aangeduid als het Y2K38-probleem. Als het niet wordt opgelost vóór dinsdag 19 januari 2038, kunnen systemen na deze datum denken dat het 1901 is. Een van de manieren om dit probleem op te lossen, is over te schakelen naar een 64-bits representatie van gegevens over datum en tijd. Sommigen denken dat dit veel moeilijker zal zijn dan het lijkt.

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



Bron: 3dnews.ru
Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster