Unix fyller 50 år. Vad betyder det?

År 2020 är betydelsefullt för Unix: i början av året firade det ursprungliga operativsystemet 50 år. Unix-tiden, även känd som 'epoken tid', är antalet sekunder som har gått sedan den 1 januari 1970. Men vad oroar kärnutvecklarna med anledning av Unix femtioårsjubileum?

Unix fyller 50 år. Vad betyder det?

Även om vissa av de tidiga Unix-utvecklingarna föregår den officiella början på dess 'epok', förblir den 1 januari 1970 nollpunkten i tiden för POSIX. Så från och med 1 januari 2020 har plattformen officiellt fyllt 50 år.

Tid Unix i förhållande till människans tid

Sett ur människans tids perspektiv är 50 år en lång period. Ur Unix-tidens perspektiv är det inget särskilt med 50 år, 43 år skulle ha varit minst lika betydelsefullt. Unix-system (inklusive Linux) lagrar datum- och tidsvärden som antalet sekunder som har gått sedan 1970-01-01 00:00:00 UTC, med en registrering i 32 bitar. För att bestämma hur många sekunder som har gått sedan dess, och därmed det aktuella Unix-tidsvärdet, kan man köra kommandot:

$ date +%s

1576883876

Argumentet %s efter kommandot date anger visningen av det aktuella datumet och tiden som antalet sekunder sedan början av 1970-01-01.

Unix fyller 50 år. Vad betyder det?

Vilket maximalt datum kan system lagra Unix?

För att förstå hur mycket tid en Unix-system kan rymma, måste man bedöma kapaciteten hos ett 32-bitarsfält. Detta kan beräknas på följande sätt:

$ echo ‘2^32’ | bc

4294967296

Men eftersom Unix förutsätter lagring av både positiva och negativa tal, reserveras en bit för tecken, vilket minskar tidsvärdet till:

$ echo ‘2^31’ | bc

2147483648

Och eftersom Unix-numereringen börjar med 0 innebär det att vi har 2 147 483 648 värden, men det största värdet är 2 147 483 647 — Unix-datum och tid kan inte överstiga detta antal. Precis som en bils mätare inte kan visa mer än 999 999 kilometer — lägg till 1 och värdet återställs.

Hur länge varar ett år i sekunder?

Antalet sekunder på ett år kan beräknas enligt följande:

$ expr 24 * 60 * 60 * 365

31536000

Under ett skottår läggs ytterligare en dag till:

$ expr 24 * 60 * 60 * 366

31622400

Unix fyller 50 år. Vad betyder det?

Hur visade Unix sin 50:e födelsedag?

Den 1 januari 2020 klockan 00:00 kommer tidsstämpeln att vara 1577836800. Beräkningen blir något mer komplicerad eftersom skottår måste beaktas. Fram till Unix-epokens början har det funnits 12 sådana år, från 1972 fram till 2016. Det innebär att det har gått 38 vanliga år.

Så här ser expr-kommandot ut för att räkna sekunder som har gått de senaste 50 åren:

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

1577836800

Eller så här, med tidigare gjorda beräkningar:

$ expr 31536000 * 38 + 31622400 * 12

1577836800

Detta sätt att registrera tid gjorde Unix-systemen osårbara för Y2K-problemet, som fick folk att oroa sig i slutet av 1999 för att övergången till år 2000 skulle skada datorsystem. Svårigheterna blev mycket färre än förväntat. Faktum är att endast applikationer som registrerade år i tvåsiffrigt format stötte på problem med dateringar. Många utvecklare gjorde en extra insats för att säkerställa att deras applikationer inte skulle påverkas av Y2K-problemet.

När kommer tiden Unix att stöta på problem?

Liknande svårigheter väntar Unix-system tidigast 2038, när datum som lagras i det ovan beskrivna formatet överskrider 32-bits minnesutrymme. Det är fortfarande 18 år kvar, men kärnutvecklare arbetar redan med att undvika kommande störningar.

2038-problemet kallas ibland Y2K38-problemet. Om det inte löses innan tisdagen den 19 januari 2038, kan systemen efter detta datum tro att det är år 1901. Ett sätt att lösa detta problem är att övergå till en 64-bitars representation av datum och tid. Vissa anser att detta också kommer att vara mycket mer komplicerat än vad det kan tyckas.

I vilket fall som helst är det för tidigt att få panik. Det som verkligen är viktigt idag är att det är 50-årsjubileum för Unix-system, som erkänns som en av de mest betydelsefulla operativsystemen i historien.



Källa: 3dnews.ru
Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar 🔥 Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster