Omitir la navegación de sitio (1) Omitir la navegación de sección (2)

Navegacion de sitio

Compatibilidad año 2000 ("Millennium Bug")

A medida que se va entendiendo el problema del año 2000, más y más compañías están demandando informes oficiales de los proveedores de hardware y software, de como sus productos responderán frente al cambio de milenio.

Las organizaciones que usan sistemas operativos UNIX® como FreeBSD están un paso por delante del problema. FreeBSD mantendrá sin problemas las fechas posteriores al año 2000.

Más información

(Esta sección está basada en el texto de Linux Y2K compliance )

Como en todos los sistemas operativos UNIX®, la hora y fecha se representa internamente como el número de segundos transcurridos desde el 1 de Enero de 1970 (la "época" UNIX®). Actualmente, esta figura se almacena en un entero de 32 bits, desbordandose sobre el año 2038. Para entonces esperamos (seguro) usar un contador de 64 bits (o mayor) el cual no daría problemas hasta el fin del universo.

Ten en cuenta que un sistema operativo sin el problema Y2K no solucionará las aplicaciones que no sean Y2k.

De la misma manera, el sistema operativo espera leer la fecha y hora actual del reloj CMOS de tu computador. No todos estos dispositivos manejan correctamente el año 2000. Recomendamos que testees cada plataforma independientemente para asegurar que el reloj de tu hardware soporta sin problemas el paso del año 1999 al 2000, y que éste es interpretado correctamente.

Qué puedes hacer.

FreeBSD continuaráa manteniendo correctamente tanto la fecha como la hora durante el próximo siglo. Aplicaciones de terceras partes, quizás no lo hagan. Tu mejor defensa frente a los problemas del 2000 es un buen ataque. Escuchar las historias clamando el final del mundo pensamos que no es la mejor manera de hacer frente al problema. El proyecto FreeBSD te recomienda realizar comprobaciones de tus sistemas antes de la llegada del 2000.

Hay tests que puedes usar para comprobar la respuesta de tu sistema. Pon el reloj de tu computador a unos minutos antes de la media noche del nuevo año y comprueba la fecha. Tu sistema debería mostrar el año 2000 y no el 1900. Si el año mostrado es incorrecto, tendrás bastante tiempo por delante para actualizar el hardware. Operar los sistemas de información de tu organización durante unos días con la fecha adelantada, puede darte una idea real de lo que ocurrirá en el cambio del año.

Importante: No hagas esto en sistemas en producción. Puedes confundir y tener muchos problemas en aplicaciones que utilizan las fechas (sistemas de facturación, regímenes de copias, etc). Utiliza siempre para este tipo de pruebas máquinas de desarrollo las cuales no puedan afectar datos importantes.

Estado del Y2K en FreeBSD

"Después de extensos análisis y tests, creemos que FreeBSD es 100% compatible con el Y2K. En caso de que algo se nos haya pasado por alto, haremos todo lo posible para fijar el problema lo antes posible."

David Greenman
Arquitecto Principal, The FreeBSD project

Problemas solucionados

Los siguientes problemas Y2K han sido identificados y solucionados en FreeBSD.

misc/1380
Muchos programas tenían incluido de manera fija el formato 19%d para el año. Los programas afectados incluyen: yacc, ftpd, y make. [Solucionado: yacc v1.2 1999/01/18; ftpd v1.7 1996/08/05; make v1.4 1996/10/06]
conf/1382
El script sed de /etc/rc.local que crea la línea del host/kernel ID para el mensaje del día depende de que el año no sobrepase el 1999. [Solucionado: v1.21 1996/10/24]
misc/3465
El comando etc/namedb/make-localhost genera el número serial del DNS como YYMMDD. En el año 2000, éste será generado como 1YYMMDD.[Solucionado v1.2 1997/08/11]
gnu/4930 y gnu/8321
Las macros groff tenían integrado 19 para generar algunas fechas. [Solucionado: tmac.e v1.3 1998/12/06; doc-common v1.10 1999/01/19]
bin/9323
El comando touch no trata correctamente los dos digitos del año. Los años en el rango 00-68 son tratados como 1900-1968 en lugar de 2000-2068. [Solucionado: v1.7 1999/01/05]
xntpd/parse/util/dcfd.c
El cálculo de años bisiestos para el número de días en un año, y la conversión del tiempo DFC77 a segundos desde el Epoch era incorrecta. Estos errores afectaban a todos los años. [Solucionado: v1.6 1999/01/12]
tar/getdate.y
La función convert() tenía fijado el uso de dos dígitos en el año para el rango 70-99. Ha sido ajustada para permitir años de dos dígitos para for 1970-2069. La función no permite usar años bisiestos - alerta y2k1!. [Solucionado: v1.4 1999/01/12]
fetch/http.c
El protocolo HTTP incluye un formato de fecha obsoleto que usa un año de dos dígitos. Las versiones anteriores de fetch interpretaban todas las fechas en 1900s; con esta revisión, se usa la recomendación de la RFC 2068. [Solucionado: v1.24 1999/01/15]
misc/9500
El script `edithook' en el directorio CVSROOT usa tm_year y mostraría 01/01/100 en el 2000-JAN-01. [Solucionado: v1.2 1999/01/17]
bin/9501
Muchos de los ficheros "cvs contrib" tienen el problema del año 2000. Los scripts log.pl y sccs2rcs.csh añaden 19 al año, resultando en mostrar 19100 para el 2000. El script log_accum.pl usa un año de 2 dígitos en un lugar y en otro asume que tm_year es el año dentro del siglo en lugar de año desde 1900. [Solucionado: log.pl v1.2 1999/01/15; sccs2rcs.csh v1.3 1999/01/15]
bin/9502
El registro numérico de groff `yr' es asignado desde (struct tm).tm_year representando el número de años desde 1900, no el año dentro del siglo (mirar la definición en troff/input.cc). [Solucionado: ahora usa mod 100, input.cc V1.2 1999/06/03]
bin/9503
El programa simple_httpd de PicoBSD usa tm_year y mostrará 01/01/100 para 2000-JAN-01. [Solucionado: v1.2 1999/01/16]
bin/9505
Adduser usa tm_year y mostrará 01/01/100 para 2000-JAN-01. [Solucionado: v1.42 1999/01/15]
bin/9506
Cron usa tm_year y mostrará 01/01/100 para 2000-JAN-01. [Solucionado: v1.7 1999/01/16]
bin/9507
tcpslice(8) usa tm_year y mostraráa 100y01m01d... para 2000-JAN-01. Por compatibilidad, usa un año de dos dígitos hasta el 2000. [Solucionado: v1.8 1999/01/20]

Aplicaciones Problemáticas

ports/7681
TkDesk 1.0 tiene integrado un 19 en el fichero de lista de ventanas. Un fichero con fecha > 2000 se muestra como "191xx" donde xx son los dos últimos núros de la fecha real. Este error ha sido fijado en la versión 1.1.
ports/9295
INN 1.7.2 tiene varios problemas relacionados con Y2K. Uno ocurre cuando purgamos las news (option -f del nntpget) y otro está relacionado con la cabecera Expire con fechas relativas pasado el año 2000. [Ports INN actualizados a INN 2.2 1999/05/02]
ports/9298
Knews tiene varios problemas relacionados con Y2K. Uno ocurre durante la generación del comando NNTP NEWGROUPS. El otro ocurre por que knews no piensa que el 2000 es una año bisiesto. Ambos están solucionados en knews-1.0b.1. [Port actualizado 1999/01/07]
ports/9300
Nntp-t5 tiene un problema de Y2K durante la generación del comando NEWNEWS. [Port parcheado 1999/01/05]
ports/11144
El port tiff tiene fijado 19xx. Aunque esté en la sección contrib (para convertir el formato de SUN a TIFF), y no es instalado por defecto, debería ser solucionado. [Solucionado: 1999/04/18]
ports/11145
El port dgs tiene el mismo problema que el port tiff. [Solucionado: 1999/04/18]

Más información

Si tienes alguna pregunta sobre la compatibilidad de FreeBSD con el año 2000, o has descubierto alguna aplicación ejecutada bajo FreeBSD que no cumple con Y2K, por favor, ponte en contacto con nosotros en la dirección freebsd-bugs@FreeBSD.ORG.