BULMA Bulma amb el projecta Defective by Desing
Bergantells Usuaris de GNU/Linux de Mallorca i Afegitons   |   Bisoños Usuarios de GNU/Linux de Mallorca y Alrededores
CONTENIDOS
. Jornadas de software libre
. Version para PDA
. Enlaces breves
. La asociacion
. Los mas leidos
. Autores [Actividad]
. Ultimos Comentarios
. Todos los titulares!
. Estadisticas
. Guia de estilo
. ¿Sugerencias?
. Wiki
. XML [Ayuda]
Listas de correo
. Archivos bulmailing
. Archivos BulmaGes
Radio libre :-)
. Des de la Xarxa (Archivos)
. Mallorca en Xarxa
Busquedas

+ Enlaces Linux
Ultimos kernels
(01/08/2010 05:10:59)
    
Google


En bulma.net
En internet
Configuración del reloj I (teoría) (32796 lectures)
Por Antonio Tejada Lacaci
Wildfred ()
Creado el 16/11/1999 00:00 modificado el 16/11/1999 00:00

Este artículo es una explicación exhaustiva del funcionamiento del reloj bajo Linux, parte teórica. Está tomado de un mensaje de Conrado Badenas en debian-user-es. También puedes ver la parte práctica de la explicación.

Pagina1/1

En Linux hay dos relojes: el de la BIOS (o el de CMOS, o RTC, o reloj hardware: tiene muchos nombres) y el del sistema. El que importa es el del sistema, pero al arrancar el kernel no sabe qué hora es. Para que el sistema sepa la hora el primer programa que lanza el kernel (el programa init) se la pregunta al reloj hardware inmediatamente después del arranque (el trabajo sucio lo hace /etc/rcS.d/S50hwclock.sh --> /etc/init.d/hwclock.sh, que se instala gracias al paquete base/util-linux). Por entonces el kernel no sabe nada de variables del sistema tipo TZ. Lo único que necesita saber es si el reloj hardware mantiene una hora local o la hora universal (GMT, UTC). Eso lo sabe mirando qué valor tiene la variable GMT en el fichero /etc/default/rcS (fichero que creo que se crea cuando instalas Debian por primera vez y te pregunta entre otras cosas qué tipo de hora mantiene tu reloj hardware). Entonces pone la hora del sistema como la hora del reloj hardware. Cuando durante el arranque aparece en pantalla

Local time: Mon Nov 15 19:42:10 CET 1999

es que el hwclock.sh ha actuado.

Desde entonces tienes el reloj del sistema con la misma hora que el reloj hardware. Pero cada uno de ellos se mueve a diferente velocidad porque tienen distintos mecanismos de funcionamiento. El hardware funciona con un oscilador de cuarzo o lo que sea, y el de sistema mediante una interrupción de tiempo (la típica timer interrupt que forma parte del estándar ISA). Sólo vuelven a coincidir los dos relojes cuando se apaga el sistema y entre otros se ejecuta el script /etc/init.d/hwclock.sh con la opción stop: entonces la hora del sistema se guarda en el reloj hardware, y al cabo de pocos segundos tienes el ordenador apagado. Este sistema de sincronización presupone que justo antes de apagar el ordenador, la hora del sistema es más fiable que la hora del reloj hardware.

Con el sistema en marcha puedes modificar cualesquiera de estos dos relojes, aunque no es aconsejable modificar el reloj del sistema con el comando date porque entonces haces que haya discontinuidades en la hora (aunque no sé por qué eso es tan malo). El reloj hardware se puede modificar con el comando hwclock cada vez que quieras.

Para eliminar errores sistemáticos del reloj hardware lo mejor es usar una fuente fiable de la hora (creo que es más fiable llamar a información horaria que usar tu reloj de pulsera, pero no lo he comprobado) para poner el reloj hardware a la hora que sea con "hwclock --set ..." (has de ser root para poner el reloj), y hacerlo cuando enciendas el ordenador y bastantes horas después estando enchufado (eso es para que no se ejecute /etc/init.d/hwclock.sh con la opción stop y te joda el invento). Así, tendrás en el fichero /etc/adjtime la información necesaria para poner siempre el reloj hardware en hora con un simple "hwclock --adjust".

Sin embargo, esto no funciona si en algún momento apagas el ordenador, se ejecuta /etc/init.d/hwclock.sh con la opción stop (que te hace un hwclock --systohc), y por una de esas la hora del sistema no es exacta.
Entonces, en /etc/adjtime tendrías la información para ajustar el reloj hardware al reloj del sistema, lo cual es un problema si el reloj del sistema no es suficientemente fiable.

Por eso, creo que la solución es tener siempre el reloj del sistema funcionando perfectamente. Pero no es aconsejable poner el reloj del sistema con el comando date porque eso provocaría una discontinuidad en la hora, y además habría que repetirlo continuadamente cada vez que se observara un atraso o adelanto considerable. Por ello es mejor usar el comando adjtimex (paquete admin/adjtimex) que cambia la hora del sistema de forma progresiva (suave) y sistemática (siempre). Para ello modifica ciertas variables del kernel (no confundir con la variable de entorno TZ) que se usan para determinar la hora: tick y frequency para que el reloj del sistema se ajuste a una fuente externa. Dependiendo de la fuente externa se usa con unas opciones u otras.

Imprimir
Version para
imprimir

Imprimir
Version
PDF
Comentarios
Es posible que se hayan omitido algunos comentarios considerados poco constructivos
1.  Re:Configuración del reloj I (teoría) (16/11/1999 16:39, #115)
  Por: Zebub
Sobre las discontinuidades en la hora del sistema:
Qué pasa si, por ejemplo, a causa de esa discontinuidad te saltas un script del cron con una tarea vital para el sistema. =8^O

 
2.  Re:Configuración del reloj I (teoría) (01/12/2000 03:06, #172)
  Por: Ricardo Galli
Con respecto a las discontinuidades de hora....
El problema de los cambios bruscos de horas es que puede cambiar el reloj a una hora anterior y por lo tanto los procesos que hagan uso del reloj obtendrán valores negativos. Este es el principal problema.

COn respecto al cron, en principio no debería afectar porque los crond hacen normalmente un sleep(60) (si está optimizado hace el sleep(x) donde x es el tiempo en segundos para la siguiente tarea, pero normalmente no lo hacen porque el crontab puede haber cambiado) y verifican si hay algún proceso que "venció" (la hora puede haber pasado).

De hecho, alerta con el crond del SuSE que se lía cuando hay cambio de zona horaria y va con la hora de la zona horaria de la última modificación del crontab. No sé si el redHat tiene el mismo problema...

 
3.  Re:Configuración del reloj I (teoría) (10/05/2001 18:01, #1181)
  Por: El cobarde anonimo
esto es unaa cagada

 
4.  Re:Configuración del reloj I (teoría) (23/08/2005 23:10, #28007)
  Por: q t importa?
tu abuela

 
5.  Re:Configuración del reloj I (teoría) (28/11/2006 12:34, #36802)
  Por: nadie, no
esta wea no sirve de nada wn

 
6.  Re:Configuración del reloj I (teoría) (12/03/2007 21:41, #39051)
  Por: Anónimo
la vija q te pario

 
7.  PULGON64 (05/06/2001 22:25, #1518)
  Por: SALUDO
HTYEDXWÑ OF WI´WE

 
8.  Re: teoria del reloj del sistema (15/03/2003 17:28, #12817)
  Por: ARY WALTER MONTERO
como apliacr estos comandos al sistema operativo por la cual se deve relizar estos datos para tener una mayor capacidad de desarrollom del sotfware

 
9.  Re: Configuración del reloj I (teoría) (04/04/2003 18:04, #13389)
  Por: Mar
me sirvió mucho su artículopero me gustaría que comentaran si es diferente le reloj del hardware y el del software. Gracias

 
10.  Re: Configuración del reloj I (teoría) (02/10/2006 01:55, #35376)
  Por: Anónimo
pagina culia aweona y los quliaos tambien q estan escribiendo esas weas

 
11.  Re: Configuración del reloj I (teoría) (06/08/2003 19:36, #16254)
  Por: jonathan (http://www.msn.com)
No tengo un gran comentario acerca de esto, pero si necesito mas informacion acerca de cómo funciona el reloj mecánico, con todas sus partes desde la bateria incluyendo la frecuencia de rotacion de los engranajes el peso y mas detalles con respecto a la función del cristal de cuarzo. No siendo mas le doy las Gracias a quien me pueda ayudar espero que sean los de esta página.ES PARA UNA IMPORTANTE INVESTIGACIÓN. GRACIAS.

 
12.  Re: Configuración del reloj I (teoría) (10/04/2004 20:09, #20606)
  Por: SuD (http://www.latinsud.com)
¿Y no hay una manera de cambiar la hora al apagar el sistema sin cargarme los programas actuales?

Por ejemplo, yo me doy cuenta de que tengo el reloj mal. Ademas quiero cambiarlo a UTC (no se si windows permite esa opcion) pero es mucho mejor asi, salvo que precisamente uses un SO que no lo permita. Asi los cambios de hora de verano e invierno no los tiene que hacer el s.o., a riesgo de equivocarse y hacerlo mal, hacerlo dos veces, etc.

Pero ahora me da igual que la hora este mal, y si la cambio ahora es posible que me cargue alguna aplicacion. Me gustaria que al cerrar el pc la proxima vez lo ajustara justo antes de apagar, o que la cambiara tan suavemente que no afectara a las aplicaciones.

Bueno, a ver si esto funciona.

 
13.  Re: Configuración del reloj I (teoría) (16/07/2006 11:37, #33764)
  Por: Defunkid (http://lamundial.net)
hola
situacion: servidor dedicado donde meto las cuentas host de mis clientes (aviso, no tengo mucha idea de linux como se puede ver)

en el sistema "date" me da la fecha/hora correcta pero php (un script que de la hora) y mysql (NOW() por ejemplo) me dan 8 horas menos

en el cpanel/web host manager tengo puesta la zona horaria de europa/madrid

¿como hago para que php y mysql me den la misma hora que date del sistema y ahorrarme time offsets en scripts y querys?

saludos
gracias de antemano

 
14.  Re: Configuración del reloj I (teoría) (14/11/2006 17:15, #36442)
  Por: Anónimo
esta muy confuso y yo lo queria para mi tarea

 
15.  Re: Configuración del reloj I (teoría) (25/04/2007 05:56, #40324)
  Por: Anónimo
que hijo de puta tu articulo no sirve ni para limpiarme el culo

 
GRACIAS
Distribuciones Universal
Por el servidor
Dpto. de Matematicas e Informatica
Calificacion
**00
Vots: 53
Danos tu opinion:
**** Excelente
***0 Muy Bueno
**00 Bueno
*000 Regular
0000 Malo
Relacionados
. NTP: El proyecto pool.ntp.org
. Ponemos en hora nuestro sistema (conceptos y ntp)
SECCIONES
Noticia
Breve
Truco
Enlace
Participa
Proyecto
Articulo
Webbulma
Manoletada :-)
Seguridad
Modificado: 6/5/2010 21:22:51 | Tiempo Total: 0.036 segs | Kernel: Linux - i686 - 2.6.26-1-686 | Last boot: 27/12/2009 22:08 CET
Powered by Apache    MySQL    PHP    Gimp