Co to jest czas uniksowy i kiedy była epoka uniksowa?

Co to jest czas uniksowy i kiedy była epoka uniksowa?

Dlaczego Unix ma własną koncepcję czasu? Jaka jest epoka i jaki jest problem Y2038?

Czas uniksowy to sposób przedstawiania określonej daty i godziny, używany przez Linux, macOS i wiele innych interoperacyjnych systemów. Jest tak rozpowszechniony, że prawdopodobnie używasz go, nie zdając sobie z tego sprawy. Kiedy jednak zrozumiesz czas uniksowy, zauważysz go w wielu kontekstach. Kilka narzędzi może pomóc w pracy z czasem uniksowym.

Jaki jest cel czasu uniksowego?

Czas uniksowy to całkowita liczba sekund od ustalonej godziny i daty. Jest to format daty/godziny (lub sygnatury czasowej), który wygląda inaczej niż daty i godziny czytelne dla człowieka, do których jesteśmy przyzwyczajeni. Dzieje się tak wyłącznie ze względu na wydajność. Przechowywanie pojedynczej liczby reprezentującej sekundy zajmuje znacznie mniej miejsca niż przechowywanie oddzielnych wartości dla roku, miesiąca, godziny itp.

Oczywiście we współczesnym ujęciu różnica w przestrzeni wcale nie jest aż tak duża. Ale weź pod uwagę, że Unix powstał pod koniec lat 60., kiedy dostępna pamięć była znacznie mniejsza. Znaczniki czasu są również często używane, więc ich pamięć się sumuje. Na przykład z każdym plikiem są powiązane trzy sygnatury czasowe.

Format jest prawie niemożliwy do przetłumaczenia w twojej głowie, chyba że jesteś matematycznym geniuszem. Ale nadal ma pewne zalety w porównaniu z bardziej czytelnymi alternatywami, takimi jak środa, 21 października 2015 07:28:00 GMT . Możesz bardzo łatwo zamówić dwa uniksowe znaczniki czasu na pierwszy rzut oka. Zwykle szybciej jest też ustalić różnicę między dwoma znacznikami czasu. Dotyczy to w szczególności dat zbliżonych do siebie, takich jak sąsiednie dni.

Co to jest czas uniksowy i kiedy była epoka uniksowa?

O Epoce

Tak więc czas uniksowy to całkowita liczba sekund od określonego punktu w czasie. Ale jaki jest ten moment w czasie? To 00:00:00 UTC na 1 stycznia 1970 r . Jest to często określane jako Epoka Uniksa. Programiści wybrali tę datę dla epoki z wygody, ponieważ była to najbliższa okrągła data, kiedy wymyślili czas uniksowy.

Być może widziałeś tę datę, kiedy coś poszło nie tak. Jest to wyraźnie błąd, ale wygląda bardzo dziwnie, gdy skutkuje datą sprzed czasu, gdy wielu z nas się urodziło! Jest to jednak całkowicie zrozumiałe, gdy znasz czas uniksowy. Jeśli jakikolwiek system próbuje wyświetlić znacznik czasu, który nie ma żadnej wartości, często przekłada się to na 0 i daje dokładną datę epoki.

Uniksowy format danych czasu

Ściśle mówiąc, nie istnieje. Pierwotnym typem danych była 32-bitowa liczba całkowita i często tak jest, nawet w znacznie potężniejszych systemach.

Ten typ danych umożliwia przechowywanie przez wartość łącznie 2^32 sekund, czyli nieco ponad 136 lat. Ta wartość jest zwykle podpisana, co oznacza, że ​​może być ujemna lub dodatnia. Tak więc zwykle reprezentuje 68 lat po obu stronach epoki, tj. 1902-2038.

To oczywiście wciąż ograniczony okres. Ale głównym zastosowaniem formatu sygnatury czasowej były koncepcje, takie jak modyfikacja plików. Bardzo potrzebna była reprezentacja czasu bliskiego teraźniejszości, a nie starożytnej historii lub dalekiej przyszłości. Nawet w przypadku aplikacji, takich jak kalendarze, rzadko istnieje potrzeba przedstawiania dat późniejszych niż kilkadziesiąt lat.

Ale to nie znaczy, że ten ograniczony czas jest bezproblemowy…

Problem roku 2038

Błąd Y2K ( jeden z najgorszych błędów programistycznych w historii ) dotknął systemy komputerowe przechowujące lata jako wartości dwucyfrowe. Kiedy nadszedł rok 2000, takie systemy traktowały go tak, jakby był rok 1900. W rzeczywistości nie było to tak katastrofalne, jak się obawiano, głównie dlatego, że wiele osób poświęciło dużo czasu i wysiłku z góry, przygotowując się do tego.

Jeśli zwracałeś uwagę w poprzedniej sekcji, być może zauważyłeś podobny problem, który mógł wpływać na czas uniksowy. Cóż, czas uniksowy ma swój własny problem z danymi: problem Y2k38. (Często jest to określane jako problem, a nie błąd; być może od 2000 roku staliśmy się bardziej optymistyczni!) Kiedy czas uniksowy dosłownie skończy się w 2038 roku, systemy będą traktować nowe daty jako 1902 lub 1970. Po prostu całkowicie mi się nie uda.

Przynajmniej ten problem nie dotknie nas z wybiciem północy w sylwestra. Ostatnia sekunda 32-bitowego czasu Unix wypadnie 19 marca. Ewentualnie prawdopodobnie zaktualizujemy większość systemów do 2038 r. W przeciwnym razie i tak będą one do tego czasu przestarzałe.

Niektóre przydatne zasoby sygnatury czasowej

Witryna Epoch Converter jest prawdopodobnie najbardziej wszechstronnym dostępnym konwerterem znaczników czasu. Rozpoczyna się od wyświetlenia aktualnego czasu uniksowego — w czasie rzeczywistym — i dodaje do tego prawie każdą możliwą do wyobrażenia funkcję. Jego głównym zastosowaniem jest konwersja między znacznikami czasu a datami czytelnymi dla człowieka w obu kierunkach.

Dan's Tools to ogromny zbiór przydatnych aplikacji internetowych, z których jedną jest konwerter znaczników czasu . Jest bardziej podstawowy, ale ma bardzo przejrzystą prezentację i jest łatwy w użyciu.

Time.is prezentuje kolejny, jeszcze bardziej minimalistyczny wygląd. Pokazuje czas w wielu formatach, w tym czas uniksowy. Zawiera aktualny czas w tytule strony, co jest przydatne.

Co to jest czas uniksowy i kiedy była epoka uniksowa?

Używanie czasu uniksowego z narzędziami wiersza poleceń

W systemach Linux i macOS program date jest podstawowym narzędziem do obsługi daty/godziny, w tym znaczników czasu Unix. Wywoływana bez żadnych argumentów, zwraca bieżącą datę/godzinę w formacie czytelnym dla człowieka:

$ date Wed Feb 10 12:28:30 GMT 2021

Jeśli potrzebujesz bieżącej daty/godziny w czasie uniksowym, użyj argumentu +%s :

$ date +%s 1612960114

Możesz przekonwertować datę czytelną dla człowieka na znacznik czasu za pomocą flagi -d, jeśli Twoja wersja daty to obsługuje. Większość wersji Linuksa powinna domyślnie:

$ date -d "Jan 2 1970" +%s 82800

W systemie macOS data to inny program, który wymaga innego zestawu flag:

$ date -j -f "%b %d %Y %T" "Jan 02 1970 00:00:00" "+%s" 82800

Idąc w innym kierunku, możesz dokonać konwersji ze znacznika czasu uniksowego za pomocą flagi -r :

$ date -r 1600000000 Sun 13 Sep 2020 13:26:40 BST

Niektóre inne programy używają formatu %s do obsługi czasu uniksowego. Na przykład, jeśli chcesz pokazać datę modyfikacji pliku w czasie uniksowym, z wersją ls dla systemu Linux , możesz użyć następującego:

$ ls -l --time-style=+%s index.tmp.html -rw-r--r-- 1 ubuntu ubuntu 17862 1521649818 index.tmp.html

Jak korzystać z czasu uniksowego w językach programowania?

PHP posiada funkcję  time(), która zwraca aktualny uniksowy znacznik czasu. Jego funkcja date() przyjmuje znacznik czasu jako drugi argument:

$ php -r 'echo date("Y-m-d", time());' 2021-02-11

JavaScript podchodzi do rzeczy w ciekawy sposób. Ma metodę Date.now() , która pobiera liczbę milisekund od epoki Uniksa. Oczywiście możesz podzielić to przez 1000 i zaokrąglić wynik, aby otrzymać równoważny czas uniksowy w sekundach:

> Math.floor(Date.now() / 1000) 1613083012

Zrozumienie czasu uniksowego

Czas uniksowy to prosta koncepcja, która pojawia się w wielu miejscach. Kiedy już to zrozumiesz, może ci się to przydać, na przykład przy obliczaniu różnic czasowych. Możesz także rozpoznać, kiedy może to być przyczyną pewnych błędów.

Pojęcia, takie jak epoka i znaczniki czasu, są ważną częścią rozpoczynania pracy z Linuksem. Aby dowiedzieć się więcej o podstawowych funkcjach , takich jak ls , zapoznaj się z naszym przewodnikiem po podstawowych poleceniach systemu Linux.


10 najlepszych aplikacji do wideokonferencji dla systemu Linux

10 najlepszych aplikacji do wideokonferencji dla systemu Linux

Dla freelancerów i pracowników, którzy regularnie pracują w domu, komunikacja zdalna jest jedną z wielu rzeczy, o które trzeba zadbać. Obecnie dla wielu z nas wideokonferencje zastąpiły spotkania w biurze. Narzędzia takie jak Zoom i Skype odnotowały ogromny wzrost.

Jak zainstalować serwer FTP na Ubuntu w 5 krokach

Jak zainstalować serwer FTP na Ubuntu w 5 krokach

Jeśli konfigurujesz serwer Linux, będziesz potrzebować dostępu do FTP. Oznacza to najpierw zainstalowanie serwera FTP w systemie Linux. Powinna to być jedna z pierwszych rzeczy, które robisz po zainstalowaniu systemu operacyjnego serwera.

Jak łatwo szyfrować i odszyfrowywać pliki i katalogi w systemie Linux

Jak łatwo szyfrować i odszyfrowywać pliki i katalogi w systemie Linux

Czy kiedykolwiek chciałeś szybko i łatwo szyfrować pliki w systemie Linux bez konieczności instalowania i uczenia się nowych pakietów oprogramowania? Oto doskonały i łatwy sposób na łatwe szyfrowanie plików lub katalogów za pomocą AES256 zabezpieczonego hasłem, co pomaga trzymać pliki z dala od wścibskich oczu.

Jak naprawić make: polecenie nie zostało znalezione Błąd w Ubuntu

Jak naprawić make: polecenie nie zostało znalezione Błąd w Ubuntu

Polecenie make jest prawdopodobnie jednym z najczęściej używanych poleceń w ekosystemie Linuksa. To polecenie służy do budowania i kompilowania programów bezpośrednio z kodu źródłowego.

Jak znaleźć i usunąć zduplikowane pliki w systemie Linux za pomocą fdupes

Jak znaleźć i usunąć zduplikowane pliki w systemie Linux za pomocą fdupes

Podczas pracy z dużą ilością multimediów i dokumentów często zdarza się, że na komputerze gromadzi się wiele kopii tego samego pliku. Nieuchronnie pojawia się zaśmiecona przestrzeń dyskowa wypełniona zbędnymi plikami, co powoduje okresowe sprawdzanie duplikatów plików w systemie.

Stabilne czy Bleeding-Edge Dystrybucje Linuksa: Którą z nich wybrać?

Stabilne czy Bleeding-Edge Dystrybucje Linuksa: Którą z nich wybrać?

Jednym z głównych wyborów, przed którymi staje wielu użytkowników Linuksa przy wyborze dystrybucji Linuksa, jest jej stabilność lub to, jak bardzo zmienia się oprogramowanie.

Czy rok 2020 jest rokiem pandemii szkodliwego oprogramowania dla Linuksa?

Czy rok 2020 jest rokiem pandemii szkodliwego oprogramowania dla Linuksa?

Jego reputacja w zakresie bezpieczeństwa oznacza, że ​​Linux jest często uważany za mniej podatny na rodzaje zagrożeń, które regularnie nękają systemy Microsoft Windows. Wiele z tego postrzeganego bezpieczeństwa pochodzi ze stosunkowo małej liczby systemów Linux, ale czy cyberprzestępcy zaczynają dostrzegać wartość w wybieraniu jakości, a nie ilości?

Jak pobrać i zainstalować uGet Download Manager w systemie Linux

Jak pobrać i zainstalować uGet Download Manager w systemie Linux

Menedżery pobierania to popularne narzędzie do zarządzania wszystkimi pobranymi plikami w jednej aplikacji i zapewniają przydatne funkcje. Jeśli niedawno przeszedłeś z systemu operacyjnego Windows na Linuksa, być może szukasz alternatywy dla słynnego Internet Download Managera (IDM).

Notatki na Chromebookach ułatwiające kursywą

Notatki na Chromebookach ułatwiające kursywą

Cursive to progresywna aplikacja internetowa (PWA), którą firma Google wprowadziła wraz z wydaniem Chromebooka HP x2 11. Możesz używać tej aplikacji do robienia odręcznych notatek na Chromebooku wyposażonym w rysik.

Jak korzystać z Vima: Przewodnik po podstawach

Jak korzystać z Vima: Przewodnik po podstawach

Vim to najpotężniejszy i najbardziej wszechstronny edytor kodu dostępny dla systemów uniksopodobnych. Jest to rozszerzenie edytora Vi opracowanego przez Billa Joya. Vim jest domyślnie dostępny w większości systemów Linux i BSD.