最新Windowsで必ず出るエラー、原因は40年前のアレだった:489th Lap:金曜Black★ピット
Windows 10を使っていると、ときにどうにも理解できないエラーに悩まされる。その原因が1974年に開発されたあるものだと話題になっている。一体どういうことなのか?
Windows 10を使っていると、ときにどうにも理解できないエラーに悩まされることがある。米国の投稿型サイト「Thread Reader」で話題になったエラーがある。最新のWindowsで発生するエラーなのに、その原因が1974年に開発されたOSにあるという。一体どういうことなのか。
ネタ元はThread ReaderやTwitterでコンピュータ関連の情報を発信する「foone」氏だ。レトロ系の情報にも精通する有名人だ。
実は今回のエラー、Windows 10のみならずWindows 8やWindows 95でも再現できる。ファイル名に「AUX」や「CON」と付けようとすると「指定されたデバイス名は無効です」というエラーが出るのだ。「ちょっと何を言っているのか分からない」としか言い様がない。特に実害があるわけでもないというが、自己責任で試してみてほしい。
むしろ古参のコンピュータ使いであれば「何がエラーなものか。ただの『予約語』だろ?」と思うかもしれない。ここで言いたいのは、そういう知識を持つ皆さんは幸せだということ。もはや予約語とは何かさえ分からないユーザーが想像以上に多いのだ。
fooneも投稿した記事内で「スターウォーズ以前だぜ!」と言うように、このエラーは1974年に端を発する。OS「CP/M」だ。CP/Mは当時の8ビットコンピュータ向けのOSであり、FD(フロッピーディスク)ベースで開発された。今のOSに当然のようにある「ディレクトリ」という概念がない。
開発者のゲイリー・キルドール氏は、「Everything is a file(全てのものはファイルである)」というUNIXの設計思想をCP/Mにも採用した。そして「スペシャルファイル(デバイスファイル)」による操作も可能にした。UNIXなら「/dev」ディレクトリ以下に配置される特殊な名称のスペシャルファイルにコマンドラインから直接アクセスすることで、さまざまなプロセスを実行できる。
しかし、ディレクトリという概念を持たないCP/Mにとって/devなんてものは無関係だ。スペシャルファイルを使うためにコマンドラインから「PIPコマンド」を使うことにした。例えば「PIP LST:=FOO.TXT」と入力するとファイル「FOO.TXT」がプリントアウトされる。
この仕組みを実現するために重要なものが拡張子だ。CP/Mは全てのファイルに拡張子が必要で、スペシャルファイルは全ての拡張子に対して有効となった。つまり「LST.TXT」だろうが「LST.doc」だろうが、拡張子が何であれスペシャルファイル「Lst」なのだ。
だから、ユーザーがファイルに「LST.txt」のような名前を付けたら困ったことになる。そこで予約語としてスペシャルファイルと同じ名前をユーザーがファイルに付けることを禁じたわけだ。
ここからが本題。Windowsの始祖たるMS-DOSおよびPC DOSはCP/Mの考え方を継承している。CP/MとMS-DOSとの関係はイロイロあって一口で語れるものではないから割愛する。ともかくMicrosoftはCP/Mを参考にDOSの開発に取り組んだ。ディレクトリ機能を持っていたMS-DOSとPC DOSのいずれにおいても、全てのディレクトリでスペシャルファイルの機能を有効にし、予約語もCP/Mにならって互換性を保った。
Windows 95はDOSをベースに開発されたGUI OSだ。当然スペシャルファイルの仕様も引き継いだ。Windows 95以降も同様だ。Windows NTに至ってはDOS派生のWindowsではないのにもかかわらずこの仕様が搭載された。
当然ながら最新のWindows 10にも仕様は引き継がれている。これこそが「1974年に開発されたOSが現代のWindows 10のエラーを引き起こす」とされる理由だ。
上司X: Windows 10のエラーが1974年生まれのOS「CP/M」に端を発しているという話だよ。
ブラックピット: あの「指定されたデバイス名は無効です」ってヤツですね。
上司X: それそれ。
ブラックピット: 「このファイル名の何が悪いの? デバイスを指定したつもりもないし」と思いつつも、大したエラーでもないんでファイル名を変えてましたけどね。
上司X: そこそこの経験者なら「予約語だし」で済む話だろうけど、何でそれが予約語なのかまでは知らないものだ。
ブラックピット: あれ、「自分はもちろん知っていたよ」みたいな言い方ですけど。ご存じだったのですか?
上司X: わはは、DOS時代の話だろうと確信してたけど、CP/M由来というところまでは、な。その辺はベテランという肩書に免じて許してくれや。
ブラックピット: 「ケッ、最近の若いのは予約語も知らんのかよ」とストレートに思っちゃうような上司にはなりたくないなー、なんて思いますけどね。
上司X: 何という棒読みのイヤミ。気を付けることとするよ。Windowsに40年来の縛りがあるなんて、ある意味ロマンチックじゃないか。これからもCP/Mから受け継がれてきた伝承は続いていくことだろう。伝承じゃなくて「呪い」だって? 言い得て妙かもな。
ブラックピット(本名非公開)
年齢:36歳(独身)
所属:某企業SE(入社6年目)
昔レーサーに憧れ、夢見ていたが断念した経歴を持つ(中学生の時にゲームセンターのレーシングゲームで全国1位を取り、なんとなく自分ならイケる気がしてしまった)。愛車は黒のスカイライン。憧れはGTR。車とF1観戦が趣味。笑いはもっぱらシュールなネタが好き。
上司X(本名なぜか非公開)
年齢:46歳
所属:某企業システム部長(かなりのITベテラン)
中学生のときに秋葉原のBit-INN(ビットイン)で見たTK-80に魅せられITの世界に入る。以来ITひと筋。もともと車が趣味だったが、ブラックピットの影響で、つい最近F1にはまる。愛車はGTR(でも中古らしい)。人懐っこく、面倒見が良い性格。
Copyright © ITmedia, Inc. All Rights Reserved.