[go: up one dir, main page]

UNIX laiks jeb POSIX laiks ir laika pieraksta sistēma, kura sākotnēji tika ieviesta UNIX operētājsistēmās, bet to plaši izmanto arī citās datorsistēmās. Šajā sistēmā laiks tiek skaitīts sekundēs, kas pagājušas kopš 1970. gada 1. janvāra pusnakts pēc UTC, kas tiek uzskatīts par UNIX epohas (Unix Epoch) sākumu. Tā kā šajā formātā netiek iekļautas koordinācijas sekundes (piem., 1998. gada 31. decembra plkst. 23.59.60), tad tas nav precīzs UTC laika attēlojums. UNIX sistēmās pašreizējo UNIX laika vērtību parasti var uzzināt ar komandrindas komandu date +%s.

Vēsturiski datoros UNIX laiks parasti tika glabāts kā 32 bitus liels vesels skaitlis, kur viens bits ir paredzēts skaitļa zīmei. Tādējādi ar to var kodēt laiku 136 gadu garumā ar minimālo datumu 13.12.1901., maksimālo — 19.01.2038. (skat. 2038. gada problēma). Jaunākajās sistēmās datu tips time_t parasti ir palielināts līdz 64 bitiem, kas ļauj iekodēt laiku aptuveni 293 miljardus gadu pirms vai pēc 1970. gada, kas virzienā uz pagātni vairāk kā 20 reizes pārsniedz Visuma vecumu.

Sākotnēji UNIX laiks tika glabāts sekundes sešdesmitdaļās, jo tajā laikā Unix aparatūras sistēmas pulkstenis darbojās 60 Hz frekvencē. Taču vēlāk tas tika vairākkārt mainīts. Pirmajā UNIX programmēšanas rokasgrāmatā, kas iznāca 1971. gada 3. novembrī, Unix laiku jau definēja kā "laiku kopš 1971. gada 1. janvāra plkst. 00.00.00, mērīta sekundes sešdesmitdaļās".[1] Glabājot laiku 32 bitu veselā skaitlī izmantojot šādu formātu, tas ļāva saglabāt tikai   sekundes sešpadsmitdaļas, kas atbilst   sekundēm, kas, savukārt, atbilst tikai aptuveni astoņarpus gadiem. Šī iemesla dēļ formāts vēlāk tika mainīts un beigās noteikts kā "sekunžu skaits kopš 1970. gada 1. janvāra plkst. 00.00.00 UTC".

Kad tika rakstīta pirmā POSIX specifikācija, radās diskusijas, kā precīzi definēt datu tipu time_t attiecībā uz koordinācijas sekundēm. Beigās tika nolemts tās neņemt vērā, lai nesarežģītu C standarta bibliotēkas funkcijas.

  1. Unix Programmer's Manual (1st izd.). 1971-11-03. Skatīts: 2012-03-28. time returns the time since 00:00:00, 1 Jan. 1971, measured in sixtieths of a second.