リアルタイムクロック(RTC)と西暦2000年問題 |
1998年 7月
|
西暦2000年1月1日を目前にして、情報技術系企業は西暦2000年(時にY2Kと呼ばれます)問題を様々な方面から処理する必要があります。
情報技術の企業は、取り扱うオペレーティングシステム、ビジネス/サードパーティアプリケーションプログラムおよびハードウェアが2000年対応
1
済みかどうかを確認する必要があります。また、デスクトップ、ノートブック、ワークステーション、サーバなどのPCベースのプ
ラットフォームに対して、1999年12月31日の後にハードウェアが正しい日付を示すかどうかをテストする必要があります。通常、PCハードウェアメー
カーはビジネスソフトウェアの問題についてユーザーに提言できませんが、弊社は、あらゆる状況において弊社ブランドのハードウェアがオペレーティングシス
テムおよびソフトウェアに正しい日付を提供する解決法を開発しました。
ハードウェア問題の根源は、RTC(Real-Time Clock) 2 に
あります。既存のRTCのほとんどは、外部から修正しないかぎり、西暦の上2桁を19から20へ自動的に更新しません。そのため、RTCは1999年12
月31日から2000年1月1日ではなく、1900年1月1日へ逆戻りします。適切な処置をしなければ、システムに重大な問題が発生し、コンピュータによ
るデータ分析および医療、金融、銀行などのトランザクション処理業務に、深刻な影響を及ぼす恐れがあります。
情報技術スタッフは、使用しているPC環境が2000年に対応しているかどうかを確認する必要がありま
す。一般に、PC環境には、古いオペレーティングシステムを搭載した古いコンピュータと新しいオペレーティングシステムを搭載した新しいコンピュータが混
在しています。様々なテストプログラムによって、情報技術スタッフは使用しているPCシステムクロックが2000年に対応しているかどうかを個別にテスト
できます。テストには、有効なものと、そうでないものがあります。基本的なテストの方法は、下記の2つに分類されます。
- BIOS(Basic Input/Output System) 3 を呼び出して、2000年に対応しているかどうかをテストする方法。この方法は、NSTL(National
Software Testing Laboratories)、Mitre(非営利なシステムエンジニアリング/情報技術組織)およびほとんどの主要コンピュータメーカーが承認し、実施しています。
- BIOSをバイパスし、RTCに直接アクセスして、2000年に対応しているかどうかを
テストする方法。この方法は、多くのオペレーティングシステムおよびアプリケーションプログラムがシステム日付を獲得する方法をテストするには信頼性の低
いテストであるため、上記のグループは実施していません。
本記事では、それぞれの方法の利点を挙げ、弊社のシステム解決法を紹介します。
オペレーティングシステムおよびアプリケーションプログラムは、どのようにシステム日付を獲得するのでしょうか?BIOSまたはRTCを呼び出すのですか?
西暦が2000年になるときに、最も効果的にシステム日付を更新する方法を決定するため、デルコンピュータでは市販のオペレーティングシステムおよびアプリケーションプログラムが、どこからシステム日付を獲得するのかを調査しました。下記に、弊社の調査報告を要約します。
オペレーティングシステム(OS)
市販されているほとんどのオペレーティングシステムは、一般に承認されているプログラミングの慣例にな
らい、BIOSから日付情報を獲得します。Microsoftィ
Windows NTィ
4.0など、BIOSをバイパスしRTCへ直接アクセスするオペレーティングシステムもいくつかありますが、このようなオペレーティングシステムは、内蔵
の日付修正ロジックによって、2000年になった時に発生する不正な日付を検出し、修正できます。また、これらのオペレーティングシステムは、RTCおよ
びBIOSへのアクセスを制限するため、アプリケーションプログラムはオペレーティングシステムからしか日付情報を獲得できません。
アプリケーションソフトウェア
市販されている1,100以上のソフトウェアをテストした結果、97.1%のソフトウェアがオペレー
ティングシステムから、また2.9%がBIOSから日付情報を獲得することを確認しました。ほとんどの主要なソフトウェアメーカーは自社製品をテストし、
西暦2000年問題に関する情報 4 を提供しています。たとえば、MicrosoftやSCOなどはWebサイトを開設し、西暦2000年問題に関する情報および製品の状況を掲載しています。詳細は、MicrosoftのWebサイトhttp://www.microsoft.com/japan/year2k/およびSCOのWebサイトhttp://www.sco.co.jp/support/y2k.htmを参照してください。
一方、現在市販されていない古いカスタムソフトウェアの一部では、RTCから直接日付情報を獲得しま
す。全般的に、これらのソフトウェアは、特定の業務のために開発された「独自仕様」の内部プログラムです。これらのソフトウェアには、2000年になった
時に発生する無効な日付を検出し、それを修正する日付修正ロジックを内蔵しているものと、内蔵していないものがあります。ただし、ほとんどの企業は、これ
らのソフトウェアの西暦2000年問題(RTCへの直接アクセスなど)を調査し、プログラムを修正しています。
オペレーティングシステムおよびアプリケーションソフトウェアはBIOSから日付情報を獲得するため、
BIOSに対して西暦2000年問題の解決法を実施するというのが弊社の考えです。この方法は、NSTL、Mitreおよびほとんどの主要なコンピュータ
メーカーから支持されています。また、弊社の解決法によって、システムのコストや信頼性に大きな影響を及ぼすことはないと弊社は考えています。
RTCを置き替えても、解決できないのですか?
RTCを置き替えると、西暦2000年問題を簡単に解決できると考えられます。この方法は、1998年
初旬に2000年問題に対応するRTCが大量に市販されるようになってから可能となりました。ただし、この方法には、重大な欠点があります。
まず、RTCをアップグレードすることが実用的でなかったり、困難であったりする旧式のPC環境では、この方法は実施できません。次に、新しいRTCチッ
プを追加すると、システムのコスト、信頼性および性能に大きな影響を及ぼします。最後に、この方法は、日付情報を獲得するために直接RTCにアクセスする
カスタムビジネスアプリケーションだけに有効です。前述のとおり、このようなアプリケーションプログラムはほとんど修正されています。また、弊社は、市販
されているほとんどのオペレーティングシステムおよびアプリケーションプログラムが、BIOSを呼び出して日付情報を獲得すると考えます。
そのため、弊社はこの解決法を実施せず、主要なコンピュータメーカーと同じくBIOSへの修正を実施します。
Dellの製品の西暦2000年問題を解決するには、どのような方法がありますか?
広範囲にわたる技術分析、またコンピュータ産業のエキスパートおよびカスタマーとの協議をもとに、弊社は3つの解決法を実施しています。そのうち2つは、BIOSに対して実施しています。もう1つは、起動時に実行されるconfig.sysファイルにあるプログラムによって、BIOSの呼び出しをとおしてRTCを操作します。どの解決法を使用しても、2000年問題に対応したRTCにアップデートできますが、それぞれの解決法は、特定の環境に合った処理をおこないます。それぞれの解決法を、下記に示します。
1. POST (Power-On Self Test) BIOS内で実行されるPOSTの変更では、正しい日付がオペレーティングシステムに渡されるように設計されています。オペレーティングシステムは、システム起動時に日付を取り出し、その後も内部でその値を維持します。
2. BIOSの変更 BIOSの変更は、オペレーティングシステムをバイパスし、日付情報をBIOSから獲得するアプリケーションプログラムに対して有効です。
3. システム起動プログラム システムが起動するたびに実行されるMS-DOSパッチプログラムは、簡単にアップグレードできないBIOSを搭載した旧式のシステム(Intel486 TM ま
たはそれ以前のマイクロプロセッサ)に対して有効です。MS-DOSパッチプログラムは、BIOSを呼び出してRTCの日付を修正します。MS-DOS
パッチプログラムは起動時に実行されるため、2000年以降に正しい日付を実行するには、システムを再起動する必要があります。
TSR (Terminate-and-Stay-Resident)プログラムは、有効な解決法ですか?
TSRは、ポーリング時に動作します。TSRが動作しないときは、アプリケーションプログラムおよびオ
ペレーティングシステムはRTCへ直接アクセスできます。そのため、1999年12月31日の深夜から、TSRが次にポーリングするまでの間に、システム
に不具合が発生する恐れがあります。 |
TSRプログラムは、アプリケーションプログラムおよびオペレーティングシステムからRTCへの直接的
なアクセスを遮ります。弊社は、TSRによる解決法を実施しません。これは、TSRが完全な解決法ではなく、効果もほとんどないためです。ほとんどの市販
されているオペレーティングシステムおよびアプリケーションプログラムは、BIOSを呼び出して日付情報を獲得しています。また、RTCから直接日付情報
を獲得するオペレーティングシステムは、日付修正ロジックを内蔵しています。さらに、RTCから直接日付情報を獲得するカスタムソフトウェアは、ほとんど
修正されています。
Year 2000
TSRプログラムは、本質的にメモリに常駐するプログラムです。このプログラムは、一定周期でRTCをポーリングし、2000年になったかどうかを確認し
ます。ポーリングする周期は、様々な値に設定できます。より頻繁にポーリングすると、精度は増しますが、システムパフォーマンスに大きく影響します。
TSRは、ポーリング時だけ動作します。たとえば、Year 2000
TSRが55ミリ秒ごとにポーリングするよう設定します。ポーリングプロセス時(通常1ミリ秒以内)に、TSRはRTCの日付を確認し、必要に応じて修正
します。残りの時間は、TSRは実行されません。この間、アプリケーションプログラムまたはオペレーティングシステムがRTCに直接アクセスし、日付を獲
得します。そのため、上記の例では2000年になってから最高55ミリ秒間はTSRが動作しないため、2000年になってもTSRがアプリケーションプロ
グラムに正しい日付情報を提供しない場合があります。
キラーテスト
2000年問題対応のための一般的なキラーテストに伴う問題を修正するプログラムがTSRです。
キラーテストでは、RTCへ直接アクセスし、PCが2000年に対応しているかどうかを確認します。ほとんどのシステムは2000年対応のRTCを搭載し
ていないため、BIOSに2000年対策を施していても、テストで不合格になります。不合格になると、ユーザーはシステムにTSRプログラムをインストー
ルして問題を修正します。TSRをインストールすると、ほとんどのシステムがキラーテストに合格しますが、これは100%の信頼性がある解決法ではありま
せん。
|
TSRプログラムは、上記のほかに2つの大きな欠点があります。第1に、オペレーティングシステムによっては、TSRをインストールできない場合があります。TSRは、MS-DOS、PC-DOS、DR-DOS、Microsoft
Windowsィ 3.x、Windows 95およびWindows 98でインストールできます。しかし、Windows NT
3.xおよび4.0、OS/2、UNIX(R)、Linuxなどの高度なオペレーティングシステムでは、TSRが動作しません。第2に、ポーリングによるシステムパフォーマンスの低下に加えて、TSRがメモリに常駐しているために、さらにパフォーマンスが低下します。
NSTLによる保証
1997年1月1日以降に出荷された弊社ハードウェア製品は、NSTLのYMARK2000テスト基準を満たしています。NSTL
YMARK2000テストは、RTCへの直接のテストをおこなわず、BIOSが正しい日付情報を提供するかどうかに焦点を合わせています。詳細は、NSTLのWebサイト
http://www.nstl.com/html/y2k_rtc_and_bios.html(英語版)を参照してください。また、YMARK2000テストは、 http://www.nstl.com/html/y2k_faq.htmlからダウンロードできます。
パワーサイクルテストとは?
パワーサイクルテストは、システムが西暦2000年問題に対応できるかどうかを確認するための、原始的な手動のテストです。
1. ご使用のコンピュータの日付を1999年12月31日に設定します。
2. 時刻を23時59分に設定します。
3. コンピュータの電源を切ります。
4. 少なくとも2分(システムの時刻が0時を過ぎるまで)待ってから、コンピュータの電源を入れます。
5. 日付および時刻が2000年1月1日の0時を数分過ぎていることを確認します。
|
NSTLによる保証に加えて、弊社の技術者はパワーサイクルテスト(「パワーサイクルテストとは」を参
照)およびさらに広範囲の日付テストをおこなっています。「デル社製ハードウェア製品に関する西暦2000年問題対応表明」が、本記事の付録にあります。
この表明は、1997年1月1日以降に出荷されたすべてのシステムに適用され、2001年1月1日まで有効です。
西暦2000年問題に対するその他のテストとは?
西暦2000年問題に対して、多くの企業およびコンサルティング会社をとおして利用できる信頼性の高いテストが多くあります。
これらのテストは、インターネットから無料でダウンロードできます。 Mitre(http://www.mitre.org)などの組織は、一般に利用できるテストおよび西暦2000年問題対応のサービスを提供している企業の一覧を公表しています。
これらのテストのほとんどは BIOSからの呼び出しを利用し、2000年になった時に発生する無効な日付を検出し、修正する機能がシステムに付属しているかどうかを確認します。
NSTLのテストはその良い一例ですが、その他にも同様の機能を持つテストがあります。
フラッシュアップグレードできないBIOSを搭載した古いDellシステムでは、BIOSの修正ができないため、このようなテストに合格できません。このようなシステムのために、
弊社のWebサイト http://www.jp.dell.com/jp/year2000 から、弊社のMS-DOSパッチプログラムをダウンロードできます。
パワーサイクルテストは、このようなシステムに対して唯一有効なテストです。
下記のMitreのフローチャートでは、コンピュータが西暦2000年問題に対応しているかどうかを確
認する方法を示します。
Mitreの方法では、コンピュータに西暦2000年問題対応のBIOS(NSTLのYMARK2000など信頼性の高いテストに合格したもの)が搭載さ
れているか、オペレーティングシステムが西暦2000年問題に対応している場合、そのコンピュータは西暦2000年問題に対応しています。
BIOSがテストに合格していないが、BIOSのソフトウェアをアップグレードできる場合は、BIOSをアップグレードするだけでシステムを2000年に
対応させることができます。
BIOSのソフトウェアがアップグレードできない場合は、パッチプログラムが必要となります。
一方、オペレーティングシステムが西暦2000年問題に対応していない場合は、オペレーティングシステムをアップグレードするだけでシステムを2000年
に対応させることができます。
5
|