Ändra systemets tid och datum. Datorsystemtid

Har du någonsin undrat hur tid lagras på en dator? Eller om vilka problem systemtidsfel kan leda till? När allt kommer omkring, om alla datorer börjar fungera fel, är det svårt att föreställa sig vad detta kommer att leda till.

För en tid sedan gjorde alla oväsen om bug 2000 - datorernas övergång till det nya millenniet. Spel skapades till och med och filmer gjordes på ämnet vad som kan hända när ett fel inträffar och all utrustning blir galen. Och allt för att vissa tillverkare inte trodde att deras program skulle överleva till år 2000 och tilldelade bara två siffror för året...

Men vilken typ av fel kan uppstå med problem 2000? Och hotar detta oss i framtiden?

Olika klockor

Till att börja med ska det sägas att datorn har olika klockor. Det finns hårdvara (som alltid fungerar) och mjukvara (som bara fungerar när datorn är på). För att säkerställa att hårdvaruklockan fungerar även när strömmen är avstängd har datorn ett litet batteri (CMOS-batteri). När det är påslaget tar datorsystemet alltså tiden från denna klocka, varefter det kan räkna tiden själv. Om du ändrar systemtiden, justerar den omedelbart hårdvarutiden. Observera att hårdvaruklockan lagrar lokal tid, inte GMT.

Förresten, i en gammal dator kan ett sådant batteri ta slut, och för att undvika att klockan släpar, är det nödvändigt att byta ut det.

Fel 2000

Var kom fel 2000 ifrån? Det är bara det att DOS-utvecklarna inte tog hänsyn till att lagring av ett datum kan kräva mer än två siffror. Därför, när år 2000 kom, kunde systemet börja överväga att år 1900 hade kommit eller, som ett alternativ, år 1980, om systemet räknas från det.

Vilka misstag ledde detta till i verkligheten? Nej, tekniken har inte blivit tokig. Det var inga atomexplosioner. Här är några program bokföring slutade verkligen att fungera korrekt, inklusive de första versionerna av . Bara att försöka beräkna totalsummorna för 2000 ledde till att systemet räknade dem för 1900 och gav nollor. I de mer avancerade var det möjligt att sätta ”århundradets början”, och därmed fortfarande få ett förskjutet arbetsintervall på 100 år.

Jag stötte personligen på ett problem med 2000. Den version av MikTeX jag hade kunde inte längre installera. För framgångsrik installation var det nödvändigt att tillfälligt ställa in tiden till 2000. Så även om inget galet hände, var användarna tvungna att möta en del besvär. Men då användes inte datorer så aktivt! Hur ser framtiden ut för oss?

Fel 2038

Men det här problemet kommer till oss från Unix-liknande system. Ursprungligen innehöll de tid, mätt i sekunder, räknat från 01/01/1700 - året för antagandet av den gregorianska kalendern (se kommentarer, korrigering där). Detta använder också ett tecken i variabeln, så i verkligheten används bara 31 bitar, vilket resulterar i att tiden slutar 03:14:07, tisdag 19 januari 2038.

Vad kommer att hända just nu på ett 32-bitars Unix-system? Tiden kommer att bli negativ. Datorn kommer att försöka skriva in år 1700 (eller ännu mindre) i hårdvaruklockan, BIOS kommer inte att acceptera detta och kommer att skriva 1900 eller 1980. På ett eller annat sätt kommer tiden att loopa igen, vilket leder till ett fel i program som förvänta dig inte detta.

Och det handlar inte bara om Unix-system. Många program använder också denna typ av lagringstid, till exempel lagras datumet för en fil som finns i ett zip-arkiv på detta sätt. Så alla kommer att få problem. Men hur allvarlig katastrofen är är fortfarande svår att förutse.

Fel 2100

Och här handlar det om hårdvaruklockan hos moderna datorer. I grund och botten räknar de nu med att maxåret är 2099. Så även om operativsystemet förstår längre tid, kommer BIOS att skriva ungefär 1980 till sin klocka.

Förresten, hackare har redan använt denna sårbarhet för att hacka Windows Vista. Före installationen föreslogs att tiden skulle ställas in till slutet av 2099. I det här fallet, när man lade till 30 dagar (perioden under vilken Vista kan användas utan aktivering), erhölls ett konstigt datum, vilket ledde till att timern stängdes av.

Fel 10000

Det händer. I program som använder 4 siffror för att ange år. Till exempel i alla nuvarande versioner 1s. Om vi ​​antar att de fortfarande kommer att användas om åtta tusen år, är problem oundvikliga när datumet rullar runt.

Windows 8-systemklockan finns i Aviseringsområden finns på höger sida av aktivitetsfältet. I normalt läge de demonstrerar aktuell tid, om du håller muspekaren över dem i några sekunder, visas ett verktygstips på skärmen som anger dagens datum. Om du klickar (eller trycker) en gång på systemklockan öppnas en dialogruta som visar dig Det aktuella datumet, kalender och urtavla som visar systemtiden. För att ställa klockan och kalendern, klicka på inskriptionen Ändra inställningarna för datum och tid (Förändradatumochtidinställningar) längst ner i detta fönster (fig. 2.5).

Ris. 2.5. Fönstret för inställning av datum och tid

Fliken Datum och tid ( Datumochtid) Dialogrutan Datum och tid ( Datumochtid) låter dig ställa in aktuellt datum och systemtid. För att göra detta, klicka på knappen Ändra datum och tid (Förändradatumochtid) högst upp i det här fönstret. I dialogrutan som visas på skärmen Ställa in tid och datum (Datumochtidinställningar) en kalender visas där det aktuella datumet är markerat med en blåaktig markering. För att välja en annan månad i den här kalendern, använd de svarta pilknapparna till höger och vänster om den aktuella månaden, eller enkelklicka på året för att få en lista över månader från januari till december. Om du klickar på året igen visas en lista med år på skärmen där du kan välja önskat år.

För att ändra tiden, peka på skärmen (klicka) i fältet under systemklockans bild och ange önskat värde med hjälp av tangentbordet.

Om du vill ändra tidszon, klicka på knappen Ändra tidszon (Förändratidzon) längst ner i fönstret Datum och tid ( Datumochtid). Genom att utöka menyn högst upp i fönstret kan du välja önskad tidszon från listan.

I Windows 8 kan du aktivera visningen av ytterligare systemklockor som visar aktuell tid i en annan region eller tidszon: detta kan vara praktiskt om till exempel en av dina släktingar eller vänner bor i en fjärrkontroll geografisk punkt, och ibland måste du ta reda på vad klockan är i hans stad utan att göra matte. För att aktivera ytterligare klockor, i fönstret Datum och tid ( Datumochtid)öppna fliken Ytterligare timmar (Ytterligareklockor) och kryssa i rutan Visa dessa timmar (Showdettaklocka). På menyn Välj din tidszon (Väljtidzon) du kan ange tidszonen för de valda timmarna och i fältet Visningsnamn (Stiga påvisanamn)— skriv ett godtyckligt namn på klockan: säg namnet på orten där klockan visar tiden, till exempel "New York". Windows 8 låter dig aktivera två instanser av ytterligare klockor: du kan lägga till ytterligare en klocka genom att markera rutan Visa dessa timmar (Showdettaklocka) längst ner i fönstret. De är konfigurerade på samma sätt.

För att ställa in en automatisk mekanism för att justera systemklockan, gå till fliken Internettid i dialogrutan Datum och tid ( Datumochtid) och klicka på knappen Ändra inställningar (Förändrainställningar). Fungera Synkronisering med en Internet-tidsserver (SynkroniseramedenInternettidserver) låter dig automatiskt synkronisera Windows-systemklockan enligt referenstiden som överförs till operativsystemet av specialiserade internetservrar. Servern som erbjuds som standard är time.windows.com, men användaren kan ange adressen till vilken annan nod som helst som är konfigurerad för automatisk synkronisering systemisk Windows klocka 8.

Från och med den andra versionen av DoudouLinux blir det möjligt att konfigurera datum och tid eller tidszon. Du hittar båda verktygen i underkategorin "Systemet" flikar "Alternativ" sessioner "Alla DoudouLinux". Om du använder DoudouLinux boot CD och persistens är aktiverad, sparas inställningarna och kommer att fungera i efterföljande sessioner. Detsamma gäller ett system installerat på HDD. Dessutom, i det senare fallet, om datorn är ansluten till Internet, kommer datum och tid att ställas in automatiskt tack vare tidsservrar.

datum och tid

Verktyget för inställning av datum och tid är mycket enkelt: du kan ändra timmar, minuter och dagens datum. Inställningarna sparas med en knapptryckning Tillämpa. Det finns ytterligare ett alternativ, kryssrutan UTC, som förtjänar uppmärksamhet. Datorn lagrar tid och datum med hjälp av en klocka, som fortsätter att fungera tack vare batterier även efter att den stängts av, som t.ex. vanlig klocka. Du kan ställa in den här klockan på lokal tid eller Greenwich Mean Time (UTC), då kommer tiden inte att bero på din plats på jorden. Beroende på denna parameter kommer DoudouLinux att lägga till tidszonförskjutningen till UTC eller inte. Så om systemtiden skiljer sig flera timmar från din, försök att ändra den här inställningen först.

Datum och tid

Vanligtvis är datorer det Windows kontroll® användning lokal tid, A Unix-system, inklusive Linux, GMT-tid. Om du startar från DoudouLinux CD:n på en dator med installerat Windows® eller installerat DoudouLinux på hårddisken på en sådan dator (), är det bäst att använda lokal tid. Fördelen med UTC är att det inte kräver permanenta inställningar, därför att Systemklockan är ganska exakt. Tvärtom måste lokal tid ändras vid byte till sommartid och när du flyttar från en tidszon till en annan.

Tidszon

Om du behöver ändra tidszonen, använd verktyget "Tidszon". Detta kan också hjälpa om systemtiden skiljer sig från den lokala tiden, oavsett UTC-parametern. Du kan antingen klicka på världskartan eller välja en tidszon från listan. Bälten är sorterade efter kontinent och namngivna efter större städer. Om ditt land är litet, klicka på på rätt plats Kartor kan vara svåra eftersom kartstorleken är fixerad och anpassad för att passa små bildskärmar.



Val av tidszon

Automatisk tidsinställning (NTP)

När DoudouLinux är installerat på hårddisken aktiveras den speciell funktion synkronisera datum och tid med Internet-tidsservrar (även känd som NTP-servrar). Så länge du är ansluten till nätverket behöver du inte göra någonting. DoudouLinux kommer att försöka upprätta en anslutning till tidsservern på Internet. Vid anslutning kommer systemtiden att justeras utan frågor eller aviseringar. När det inte finns någon nätverksanslutning kommer ingenting att hända.

Observera att den här funktionen inte fungerar på en CD eftersom om tidsinställningarna är felaktiga kommer de att överföras till datorns klocka. Som ett resultat kommer alla andra system installerade på datorn att visa fel tid.

Den här sidan behöver en underhållare

Artikeln garanterar inte relevansen av informationen. Hjälp det rysktalande samhället genom att stödja sidor som denna. Se ArchWiki Translation Team

I operativsystemet definieras tid (klocka) av fyra begrepp: tidsvärde, tidsstandard, tidszon och, vid behov, sommartid (DST). Den här artikeln förklarar var och en av dem och hur man läser/ställer in deras värden.

Innehåll

Introduktion

Hårdvaruklockan är inbyggd i din dator, ger information om år, månad, dag, timme, minut och sekund och fungerar även när den är avstängd. De kan räkna lokal (lokal) tid eller standardtid UTC. Mer information på Wikipedia. Faktum är att lokal tid är den tid som din vanliga klocka (till exempel din mormors favoritklocka) visar, och UTC-tiden, utan att gå in på detaljer, är densamma för alla invånare klot, vars referenspunkt är Greenwich-meridianen. I förhållande till UTC-tid kan din lokala tid skilja sig med flera timmar. Eftersom du läser den ryska versionen av artikeln är din lokala tid troligen längre från tre till tolv timmar jämfört med UTC.

Alla vanligaste system kan använda lokal eller UTC-tid. Som standard använder UNIX-liknande operativsystem (inklusive Mac OS) UTC, medan Windows använder lokal tid. Om du har flera operativsystem installerade på din dator är det bäst att använda UTC i dem för att undvika konflikter.

På UNIX-liknande operativsystem kan hårdvaruklockan kontrolleras och konfigureras med kommandot hwclock.

Utöver hårdvaruklockan har Linux även en systemklocka (mjukvara) som fungerar oberoende. Systemklockan spårar tiden, tidszonen och kontrollerar om din lokalitet (som du minns, konfigurerades under systeminstallationen i filen /etc/locale.conf) använder sommartid. /etc/rc.d/hwclock-demonen tillhandahåller kommandot hwclock och ställer in systemtiden till hårdvaruklockan vid uppstart operativ system och vice versa, korrigerar hårdvarutid efter avslutat arbete (trots allt, under driften kan operativsystemet lära sig mer exakt tid t.ex. från en NTP-server). Därför måste användare inkludera "hwclock"-demonen i DAEMONS-arrayen i /etc/rc.conf för att detta ska ske automatiskt. Som ett alternativ till denna demon använder användare ofta NTP för att synkronisera tid med den så kallade. Internet tidsservrar.

Tidsnormer

Alla vanligaste operativsystem kan använda lokal eller UTC-tid. Som standard använder UNIX-liknande operativsystem (inklusive Mac OS) UTC, medan Windows använder lokal tid. Om du har flera operativsystem installerade på din dator är det bäst att använda UTC i dem för att undvika konflikter. GNU/Linux växlar till och från sommartid automatiskt endast om du använder UTC, oavsett om det är sommartid eller vintertid Nu. Om du använder lokal tid kommer GNU/Linux inte att göra övergången, förutsatt att du har flera operativsystem och ett annat operativsystem kommer att göra det för det. Om så inte är fallet måste du ändra klockan manuellt.

Du kan ställa in tidsstandarden med hjälp av det kommandorad. Kontrollera först vilken standard du valde när du installerade systemet:

$ grep ^HARDWARECLOCK /etc/rc.conf

Om du också använder Windows, då bästa valet kommer lokal tid. För att ändra tidsstandarden till lokal tid, använd:

# hwclock --lokal tid

Eller ställ in standarden till UTC:

# hwclock --utc

Efter dessa operationer kommer du sannolikt att behöva uppdatera din hårdvara och systemklocka. Se nedan .

Tidszon

Se till att du ställer in din tidszon korrekt i /etc/rc.conf, dessa värden används inte bara för klockan, utan även för andra program. För att kontrollera värdet anger du:

$ grep ^TIMEZONE /etc/rc.conf

Du kan se full lista tidszoner i filen /usr/share/zoneinfo/ och välj en större stad i samma tidszon som du. Om du inte är bra på geografi kan du alltid besöka Wikipedia-sidan, som ger en komplett lista över tidszoner. Förutom att ange närmaste stad kan du också välja tidszon direkt. Exempel:

TIMEZONE="Amerika/Chicago"

Den valda tidszonen kommer att hämtas av systemet efter en omstart. För att ändra tidszonen omedelbart måste du länka eller kopiera lämplig fil till /etc/localtime:

# cp /usr/share/zoneinfo/America/Chicago /etc/localtime

Ställa in tiden

Hårdvaruklockan kan ställas in på systemklockan. Se vilken tid som är inställd på din hårdvaruklocka:

$hwclock --show

Och systemklockan:

Så här ställer du hårdvaruklockan direkt:

# hwclock --set --datum "MM/DD/ÅÅÅÅ hh:mm:ss"

Ställ in systemklockan:

# datum MMDDhhmmÅÅÅÅ

Hårdvaruklockan kan ställas in på systemklockan och vice versa:

# hwclock --systohc # hwclock --hctosys

Om det inte finns någon rc.conf-fil

Så här jämför du systemtid och UTC:

$timedatectl status

För att ställa in systemklockan:

# timedatectl set-time "2012-10-30 18:17:16"

Ändra din zon och subzon:

# timedatectl ställ in tidszon Zon/SubZone

Lista över tillgängliga zoner:

$timedatectl list-tidszoner

Exempel på inställningszoner:

# timedatectl ställ in tidszon Europa/Moskva

Klockfel

Inget är perfekt. Inklusive timmar. Tiden på vilken klocka som helst skiljer sig åtminstone lite från den verkliga. Atomklockor anses vara en av de mest exakta. Kvartsklockor som används i datorer är inte heller absolut exakta, utan har ett relativt konstant fel.

Varje gång innan den stängs av jämför hwclock-demonen hårdvaran och systemtiden (den senare anses vara den mest exakta) och beräknar hårdvarufelet kvartsur på en dag. Det beräknade felvärdet skrivs till filen /var/lib/hwclock/adjtime. Om hwclock inte har använts på mer än ett dygn, beräknar den, för säkerhets skull, ett nytt felvärde.

Ett speciellt skript justerar hårdvaruklockan i enlighet med det beräknade felet varje timme. Om du ser att din hårdvaruklocka blir mer och mer felaktig, är det troligtvis något skrivet i /var/lib/hwclock/adjtime felaktigt värde fel.

Detta händer om tiden på hårdvaruklockan från början var felaktigt inställd eller om din tidsstandard (se ovan) inte är densamma som för det andra operativsystemet som används på datorn. För att fixa detta, ta bort /var/lib/hwclock/adjtime och justera tiden på alla dina klockor.

Notera: Om du alltid stänger av din dator mer än en gång om dagen kommer felet som registrerats i /var/lib/hwclock/adjtime inte att kontrolleras igen av hwclock . En kristalloscillator är naturligtvis en pålitlig sak, men dess parametrar kan ändras över tiden (t.ex. CMOS-batteri utsläpp). Kanske bör du ibland stänga av datorn mindre än en gång om dagen. Då kan du vara säker på att felvärdet som klockan justeras med kommer att vara det senaste, och klockan kommer att vara den mest exakta.

system tid beräknas av kärnan från midnatt den första januari 1:a 1970 enligt UTC-standarden. Det initiala värdet för systemklockan beräknas baserat på hårdvaruklockavläsningarna (efter korrigering av felet och omräkning till den lokala UTC-tidszonen) när den är påslagen och körs oberoende av hårdvaruklockan. Linux kärna håller reda på systemklockan genom att räkna timeravbrott. Liksom hårdvara är de inte helt exakta. Ibland kan systemklockan bli felaktig om kärnåterställningen avbryts. Men systemklockan kan göras korrekt med NTP. NTP kommer att justera avbrottshastigheten och klockcyklerna per sekund för att minska systemets klockdrift. Dessa värden kan justeras med hjälp av adjtimex-applikationen från AUR.

Notera: Om du inte använder NTP kommer din hårdvaruklocka att vara mer exakt än systemklockan. Följaktligen kommer den beskrivna korrigeringsmekanismen bara att introducera ett ytterligare fel och det är bättre att inaktivera det. För att göra detta kan du kommentera raden hwclock --systohc i filen ( /etc/rc.d/hwclock . Nu när du stänger av datorn kommer systemet inte att ändra värdet på din hårdvaruklocka.

Tidssynkronisering

Time Synchronization Protocol (NTP) är ett protokoll för att synkronisera datorklockor med hjälp av paket över nätverk med varierande dataleveransfördröjningar. Här är implementeringarna av detta protokoll:

  • Network Time Protocol daemon (ryska) är Wikipedia:ru: en referensimplementering av protokollet, speciellt rekommenderat för användning på tidsservrar. Den justerar också avbrottsfrekvensen och klockcyklerna per sekund för att minska systemets klockdrift, och kommer att omsynkronisera hårdvaruklockan var 11:e minut.
  • sntp- Det här

Följande begrepp är associerade med tiden som används i systemet: tidszoner, världstid (Greenwich Mean Time), systemtid, jobbtid. Alla system eller partitioner använder systemtid. Systemtiden visas med hjälp av systemets tid på dagen.

Systemtid är ett av de viktigaste begreppen. Det finns dock andra begrepp som spelar stor roll i tidshantering. De diskuteras nedan:

Lokal systemtid (systemtid) Lokal systemtid erhålls genom att addera till Greenwich-tid skillnaden med Greenwich-tid och årsskillnaden som anges i systemets tidszon. Systemvärde tid på dagen innehåller exakt den lokala systemtiden. Begreppen systemtid och lokal systemtid är likvärdiga. Lokal tid Den lokala tiden för en uppgift erhålls genom att addera till Greenwich-tiden värdena för skillnaden med Greenwich-tid och skillnaden i år som anges i uppgiftens tidszon. Det lokala datumet och tiden för jobbet kan ses på sidan Datum/tid som innehåller jobbegenskaperna. Världstid (UTC) Världstid (Greenwich Mean Time) används för att beräkna lokal systemtid och jobbtid. Lokal systemtid beräknas genom att lägga till skillnaden från Greenwich Mean Time och skillnaden i år till världstiden. Greenwich Mean Time Skillnad Skillnaden mellan Universal Time (UTC, Greenwich Mean Time) och lokal systemtid, uttryckt i timmar och minuter. Negativ betydelse motsvarar en avvikelse väster om Greenwich och en positiv öster om Greenwich. Årsskillnad Årsskillnad anger hur många år det aktuella året i kalendern som används av systemet för en given tidszon skiljer sig från den gregorianska kalendern. Säsongstid Säsongstid (DST) är den del av året då lokal tid ligger före den officiella standardtiden för en viss region. Säsongsbetonad tidsskillnad Säsongstidsskillnad är antalet minuter som lokal tid rör sig framåt när du växlar till sommartid eller bakåt när du växlar till vintertid. Tidszon Tidszonsinställningarna bestämmer skillnaden från Greenwich Mean Time och indikerar även om säsongstid tillämpas. Varje logisk partition i systemet kan ha sin egen tidszon.

För att illustrera kopplingen mellan dessa begrepp och systemtidsvärden, överväg ett exempel på två system som använder olika tidszoner.

Figuren visar två system i två olika tidszoner. System A är i Central Standard Time Zone, och System B är i Peking Standard Time Zone.

Systemets tidsvärden för dessa system är följande:

System A System B
Lokal systemtid 10:00 20:00
Lokal arbetstid 10:00 20:00
Tidszon Centrala USA Moskva
Skillnad med Greenwich Time -6:00 +4:00
GMT 16:00 16:00