Unix obchodzi 50. urodziny. Co to oznacza?

Rok 2020 jest znaczący dla systemu Unix: na początku roku oryginalny system operacyjny obchodził 50-lecie. Czas Unix, znany również jako „epoka”, to liczba sekund, które minęły od 1 stycznia 1970 roku. Co jednak niepokoi deweloperów jądra z okazji półwiecza Unix?

Unix obchodzi 50. urodziny. Co to oznacza?

Chociaż niektóre wczesne projekty Unix wyprzedzają oficjalny początek jego „epoki”, 1 stycznia 1970 roku pozostaje punktem zerowym w czasie POSIX. Dlatego z początkiem 1 stycznia 2020 roku platforma oficjalnie obchodziła dokładnie 50 lat.

Czas Unix w obliczu czasu ludzkiego

Z perspektywy ludzkiego czasu 50 lat to długi okres. Z perspektywy czasu Unix nie ma nic szczególnego w 50 latach, a 43 lata byłyby równie znaczące. Systemy Unix (w tym Linux) przechowują wartości daty i godziny jako liczbę sekund, które minęły od 1970-01-01 00:00:00 UTC, zapisanych w 32 bitach. Aby określić, ile sekund minęło od tego czasu i w związku z tym aktualną wartość czasu Unix, można wykonać polecenie:

$ date +%s

1576883876

Argument %s po poleceniu date ustala wyświetlanie aktualnej daty i godziny jako liczby sekund od początku 1970-01-01.

Unix obchodzi 50. urodziny. Co to oznacza?

Jaka jest maksymalna data, którą mogą przechowywać systemy Unix?

Aby zrozumieć, ile czasu może pomieścić system Unix, należy ocenić pojemność 32-bitowego pola. Można to obliczyć w ten sposób:

$ echo ‘2^32’ | bc

4294967296

Jednak ponieważ Unix przewiduje przechowywanie również liczb ujemnych, jeden bit jest zarezerwowany na znak, co zmniejsza wartość czasu do:

$ echo ‘2^31’ | bc

2147483648

A ponieważ numeracja Unix zaczyna się od 0, oznacza to, że mamy 2 147 483 648 wartości, ale największa wynosi 2 147 483 647 — wartość daty i godziny Unix nie może przekraczać tej liczby. Podobnie jak w samochodowym odometrze, który nie może pokazać więcej niż 999 999 kilometrów — dodaj 1, a wartość się zeruje.

Jak długo trwa rok w sekundach?

Liczbę sekund w roku można obliczyć w następujący sposób:

$ expr 24 * 60 * 60 * 365

31536000

W roku przestępnym dodawany jest jeszcze jeden dzień:

$ expr 24 * 60 * 60 * 366

31622400

Unix obchodzi 50. urodziny. Co to oznacza?

Jak Unix obchodzi swoje 50. urodziny?

1 stycznia 2020 roku o godzinie 12:00 na zegarze będzie czas 1577836800. Obliczenia są nieco bardziej skomplikowane, ponieważ należy uwzględnić lata przestępne. Od początku epoki Unix było 12 takich lat, począwszy od 1972 roku do 2016 roku. Oznacza to, że minęło 38 lat zwykłych.

Oto jak wygląda polecenie expr do obliczenia sekund za ostatnie 50 lat:

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

1577836800

Lub w ten sposób, z uwzględnieniem wcześniejszych obliczeń:

$ expr 31536000 * 38 + 31622400 * 12

1577836800

Ten sposób zapisu czasu sprawił, że systemy Unix stały się odporne na problem Y2K, który niepokoił ludzi na przełomie 1999 roku, obawiając się, że przejście na rok 2000 może zaszkodzić systemom komputerowym. Trudności okazały się znacznie mniejsze niż oczekiwano. W rzeczywistości tylko aplikacje zapisujące lata w formacie dwu-cyfrowym napotkały problem zerowania dat. Wielu programistów wykonało dodatkową pracę, aby zapewnić, że ich aplikacje nie będą dotknięte problemem Y2K.

Kiedy systemy Unix napotkają problemy?

Podobne trudności czekają systemy Unix nie wcześniej niż w 2038 roku, kiedy daty zapisane w opisanym powyżej formacie przekroczą 32-bitową przestrzeń. Pozostało jeszcze 18 lat, ale programiści jądra już pracują, aby uniknąć nadchodzących awarii.

Problem z 2038 rokiem jest czasami określany jako problem Y2K38. Jeśli nie zostanie rozwiązany do wtorku 19 stycznia 2038 roku, po tej dacie systemy mogą uznać, że nastał rok 1901. Jednym ze sposobów rozwiązania tego problemu jest przejście na 64-bitową reprezentację informacji o dacie i czasie. Niektórzy uważają, że to również będzie znacznie bardziej skomplikowane, niż może się wydawać.

Tak czy inaczej, panika jest jeszcze przedwczesna. A naprawdę ważne jest dzisiaj 50-lecie systemów Unix, które uznawane są za jedne z najważniejszych systemów operacyjnych w historii.



Źródło: 3dnews.ru
Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster