UNIX laiks

Vikipēdijas lapa
Pārlēkt uz: navigācija, meklēt

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.

Vēsture[labot šo sadaļu | labot pirmkodu]

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 fekvencē. 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.

Atsauces[labot šo sadaļu | labot pirmkodu]

  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.