Hwclock

From EIK wiki

Sissejuhatus

Loodud wikiartikkel püüab seletada lahti, mis on hwclock, kuidas ja miks see töötab ning millised on selle vahendi eripärad. Artikkel on sobilik lugemiseks kõigile, kes tunnevad huvi antud vahendi vastu või soovivad saada lihtsalt täpsemat lisainfot.

Hwclock näol on tegu programmi / tööriistaga, mis töötab Linux-süsteemide all ning suhtleb ja teeb päringuid riistvaralisele kellale (Hardware Clock).

Riistvaraline kell (Hardware Clock)

Igas vähegi uuemas personaalarvutis sisaldub väikene patarei, mis on võimeline kestma aastaid ning mille abil hoitakse töös riistvaralist kellaaega. Tänu sellele patareile suudab kell töötada ka siis, kui arvuti ise on kinni pandud ja igasugusest vooluvõrgust välja lülitatud. Oma olemuselt ei pruugi riistvaraline kell siiski alati ülimalt täpne olla ning võib pisut juurde võtta või kaotada päevas kindel ajaühikuid. Seda annab aga süstemaatiliselt hwclock-i abil täpsustada. Riistvaralise kella ajaloolist infot, nagu nt. hwclocki abil selle muutmist mingil ajahetkel), hoitakse adjtime failis (/etc/adjtime).

Olgu mainitud, et riistvaralist kella tuntakse sageli ka selliste nimede all nagu reaalaja kell (Real Time Clock ehk RTC) ja CMOs kell (CMOS Clock).

Hwclock'i loomine

Hwclock-i tööriist kirjutati esmakordselt valmis 1996. aastal Bryan Hendersoni poolt, toetudes Charles Hedrick'i, Rob Hooft'i ning Harald Koenig'i tööle arvuti kella alal.

Üldine info hwclock'i kohta

Hwclock (/sbin/hwclock) tööriista kasutab enamus Linux-süsteeme, saamaks kätte kellaaega riistvaraliselt kellalt ning seeläbi täpsustama ja seadma terve süsteemi aega (System Time) iga kord, kui süsteem käivitatakse. Hwclock töötab täiesti iseseisvalt, ilma et ükski teine programm tema tööd otseselt kontrolliks, ning on vaikimisi Linuxi all kohe alguses juba olemas.

HwClock abil on võimalik kuvada käsureale käesolevat ajahetke, seda muuta, panna paika süsteemi aeg tehes päring riistvaralisele kellale ning muuta ka riistvaralise kella aega süsteemiaja järgi.

Pöördumine riistvaralise kella poole

Viise, kuidas hwclock riistvaralise kella poole pöördub, on tegelikult erinevaid.

Kõige tüüpilisemaks on meetod, mille puhul küsitakse aja väärtust spetsiaalsest failist (/dev/rtc), kuhu ka pidevalt neid kirjutatakse. Nimetatud faili juhib reeglina rtc (Real Time Clock) ehk riistvaralise kella draiver. Ometi ei tööta selline pöördumisviis mitte alati, kuna riistvaralise kella draiver on Linuxi jaoks suhteliselt uudne leiutis ning paljudel vanematel Linuxi versioonidel seda lihtsalt ei ole.

ISA (harustandard-arhitektuur) süsteemi puhul pöördub hwclock otse ajaga seotud CMOS (komplementaarne metalloksiid-pooljuht mikroprotsessor) mäluregistri poole.

M68k süsteemi puhul suudab hwclock pöörduda riistvaralise kella poole läbi konsoolidraiveri ning omakorda läbi spetsiaalse faili (/dev/tty1).

Hwclock'i üldised käsud

Selleks, et kasutada hwclocki ning selle käske, peab reeglina olema süsteemis juurkasutaja õigustes.


-r või --show - pöördutakse riistvaralise kella poole ning kuvatakse saadud ajaväärtus käsureale. See ajaväärtus antakse alati aluseks võttes kohalikku ajavööndit.

--hctosys - süsteemi kell seatakse riistvaralise kella alusel.

-w või --systohc - riistvaraline kell seatakse süsteemi kella alusel.

--set - seatakse riistvaralise kella ajaline väärtust (koos --date käsuga).

--set --date="uus_aeg" - kell seatakse jutumäkides sätestatud kuupäeva ja kellaaja alusel.

-a või --adjust - lisab või lahutab ajaühikuid riistvaralisest kellaajast (vahed, mis on tingitud riistvaralise kella võimalikust süstemaatilisest ebatäpsusest ja viimasest kalibreerimisest).

--version - käsureale kuvatakse hwclock'i olemasoleva versiooni andmed.

--localtime - riistvaraline kell salvestatakse kohaliku ajavööndi alusel.

--utc - riistvaraline kell salvestatakse rahvusvahelise ajavööndi (utc ehk Coordinated Universal Time) alusel.

--noadjfile - lülitatakse välja vahendid, mis töötavad läbi adjtime faili (/etc/adjtime).

--directisa - see käsk töötab vaid ISA ja Alpha-süsteemi korral. Antud käsu peale teeb hwclock ajaväärtuse päringu riistvaralisele kellela "otse", kasutamata /dev/rtc reaalaja kella draiverit.

--debug - kuvab detailsema infona hwclock-i sisemisi tegevusi ning väljastab ka ajaväärtuse.

Näiteid käskude kasutamisest=

Riistvaralise kella salvestamine kohaliku ajavööndi järgi:

# hwclock --localtime

Riistvaralise kella salvestamine rahvusvahelise ajaväändi (UTC järgi):

# hwclock --utc

Aja seadmine 22. detsembriks 2007 kell 11:45:30

# hwclock --set --date "12/22/2007 11:45:30"

Pöördumine riistvaralise kella poole ja saadud tulemuse kuvamine:

# hwclock -r

Detailse info kuvamine hwclock'i hetketegevuse kohta:

# hwclock --debug

Riistvaraline kell seatakse süsteemi kella alusel ja vastupidi:

# hwclock --systohc
# hwclock --hctosys

Kokkuvõte

Hwclock on suhteliselt lihtne, ent kasulik Linuxi all töötav programm, mille ülesandeks on päringute tegemine riistvaralisele kellale (Hardware Clock) ning riistvaralise ja süsteemi kella (System Time) ajaväärtuste haldamine.

Kasutatud kirjandus

http://www.faqs.org/docs/linux_admin/x2751.html

http://kuutorvaja.eenet.ee/wiki/Arvuti_kellaaeg

http://manpages.ubuntu.com/manpages/maverick/man8/hwclock.8.html

http://linux.die.net/man/8/hwclock

http://giraffe-data.com/software/about_hwclock.html

http://unixhelp.ed.ac.uk/CGI/man-cgi?hwclock+8

Autor

Timo Trummer A32