LoginSignup
1

More than 3 years have passed since last update.

迷走するMS MicroSoft Office 2019または新規、再インストールすると64Bitになってしまう件

Last updated at Posted at 2019-08-12

2018年9月から64bitを標準でインストールされてしまうことに

いきなりの手のひら返し

インストール プロセスを始める前に、明示的に 32 ビット版を選択しなければ、64 ビット版の Office が自動的にインストールされます。

当方は実験のために64bitにしているが、64bitのメリットは全くない。むしろ有害。
Office 365 Soloを全くクリーンな状態で再インストール、あるいは買い替え、増設でインストールすると最新版、つまり2019の64Bitがインストールされてしまう。

ちなみに歴代のページを見るといかに唐突か、振り返ってみよう。

このページも2016をみると

image.png

必要なバージョンを理解しています。 インストール方法
インストール プロセスを始める前に、明示的に 64 ビット版を選択しなければ、32 ビット版の Office が自動的にインストールされます。

このページ2013では

image.png

Office 2013 には、インストールできるバージョンが 2 つあります (32 ビット版と 64 ビット版)。 その他のほとんどのアプリケーション (特にサード パーティ製のアドイン) とより互換性のあるため、ほとんどのユーザーの方に 32 ビット版をお勧めします。 ただし、特に複数のブロックで構成される情報やグラフィックスを使用している場合は、64 ビット版を検討してください。

このページ2010では

image.png

Office 2010 は、Office で 32 ビット版と 64 ビット版の両方が提供された最初のリリースです。 Office で自動的にインストールされるのは、32 ビット版です。 ただし、どちらのバージョンが適しているかは、どのように Office を使用するかに応じて異なります。 32 ビット版の Office で使用している特定のアドインがある場合は、64 ビット版の Office では動作しない可能性があり、またその逆も同じです。 心配な方は、新しくインストールする前に現在のバージョンの Office をご確認ください。 64 ビット版の Office を使用したアドインのテストを検討するか、ベンダーまたは開発元から 64 ビット版のアドインが提供されているかどうかを確認します。

さらに2016までは64bitを推奨する意見はない

Mouse Comuputer

普通に詳しい人

MS-Office: 64-bit 版を使うメリットは、ほとんどの場合、ありません

それどころかMSですら非推奨:2013の32 ビットの Office がほとんどのユーザーにお勧めです

確かにこのコンテンツは古い。更新されない。しかし2017年の記事だ。Office2013(魚拓)の時はここまで言い切っていた。
image.png

Office 2013 には、インストールできるバージョンが 2 つあります (32 ビット版と 64 ビット版)。 その他のほとんどのアプリケーション (特にサード パーティ製のアドイン) とより互換性のあるため、ほとんどのユーザーの方に 32 ビット版をお勧めします。 ただし、特に複数のブロックで構成される情報やグラフィックスを使用している場合は、64 ビット版を検討してください。

2010年も非推奨

64 ビット版 Office について

64 ビット版 Office への道

64 ビット版 Office はどのようにして開発されたのでしょうか。第一段階は、コンパイラーに 64 ビットのコードを生成するよう指示することでしたが、これはほんの手始めでした。開発チームは、ポインターの差やバッファー長が 64 ビット値ではなく 32 ビット値に格納されている箇所をすべて探さなければなりませんでした。また、64 ビット環境では失敗するおそれがある計算処理のコードを分析する専用ツールを作成しました。さらに、コードの実行時にのみ発生するエラーを特定するために、アプリケーションの新しいテスト方法を見つけねばなりませんでした。Office の何百万行にも及ぶコード行の 1 つ 1 つについて、この移行の結果を検討する必要がありました。しかも、既定の開発環境を 64 ビットに移行するために、数多くのツールを移植しなければなりませんでした。

また、ActiveX コントロールと ActiveX コンポーネントについても検討が必要でした。たとえば、32 ビットの Internet Explorer (IE) に読み込めるのは 32 ビットの ActiveX コントロールだけなので、Office 内の 32 ビット版のコントロールを 64 ビット版 Office にも同梱する必要がありました。さらに、Office に同梱される Microsoft 製のいくつかのコンポーネントについて、その 64 ビット版も使用できることを確認する必要がありました (開発者向け情報: 一部例外があり、Microsoft Common Control (ComCtl.OCX) ファイルなどは 32 ビット版コントロールのみ使用できます)。
注意事項

32 ビット版 Office と 64 ビット版 Office に大きな違いはありませんが、使用できるメモリ容量は 64 ビット版 Office の方がはるかに大きくなっています。前にも述べたとおり、メモリ容量が増えたことで、Office と直接やり取りする 32 ビット版のプログラムとの互換性だけでなく、Office の既存の拡張機能 (たとえば 32 ビット版の ActiveX コントロールや一部のサードパーティ製アドインなど) との互換性にも問題が生じています。これらの拡張機能については新しいバージョンを入手する必要があり、64 ビット互換の拡張機能が使用できるようになるまでにはしばらく時間がかかるでしょう。

このような理由から、より良い互換性を確保するために、64 ビット版 Windows 上でも 32 ビット版の Office 2010 を使用することをお勧めします。64 ビット版 Windows では、プロセス間で共有する物理メモリをより多く用意できるため、一度により多くのアプリケーションやドキュメントを開くことができ、切り替えもすばやく実行できます。Office の 64 ビット環境がもっと成熟してくれば、64 ビット版 Office に容易に移行できるようになるでしょう。

それどころかいまだにマイクロソフトのMAPIサイトでは既定で32Bitがインストールされると書いている

image.png

Offce2019から64Bitにする理由が思い浮かばない。あれこれ変化した事情がないか

だれか教えてほしい。

ハード的な進歩か

ゲーミングマシンは高くて手が出ないし、2倍以上速くなったとかないんじゃないかな。

SSDやUSB3.0か

たしかに少しは関係があるが、それでもRAMが早いし

Excel64bitの最大容量がハード依存は2013から

https://docs.microsoft.com/ja-jp/previous-versions/office/office-2013-resource-kit/ee681792(v=office.15)
先ほどのページにある。しかしそれでも非推奨だったのである。

最大容量がでかくても実質的に使えるのは3MB程度

結局メールや共有するにはその最低のMB数であり、いくらMSが寝言を言おうと実務上の最大容量は決まっている。
しかも下の人じゃないがExcelは数千行でパフォーマンスは落ちる。容量だと5MBで落ちる。

なぜExcelだけなんだ

普通Accessも増やしそうなものだが、それは2GB固定。下記では業務用や共有を想定して、安全を見ると1GBと考えている。
https://www.ai-light.com/accessclub/access40/
https://web.archive.org/web/20180606013622/http://www.ai-light.com/accessclub/access40/

BjgIntはAccess2016以降のみ、またVBAで完全に扱えるのは64Bitのみ

大きい数値(BigIng 2の63乗-1)を完全に扱える。
32Bit版Access2016以降でも扱えるが、VBAを用いる場合Longlong型がないため直接扱えない。
ただし、テキスト化すれば表示はできる。また倍精度浮動小数点表示(Double)にすれば扱えないことはない。
想定外の結果とは文字列とみなされエラー、または倍精度浮動小数点として扱われるということだと思われる。
https://support.office.com/ja-jp/article/64-%E3%83%93%E3%83%83%E3%83%88%E7%89%88%E3%81%BE%E3%81%9F%E3%81%AF-32-%E3%83%93%E3%83%83%E3%83%88%E7%89%88%E3%81%AE-office-%E3%82%92%E9%81%B8%E6%8A%9E%E3%81%99%E3%82%8B-2dee7807-8f95-4d0c-b5fe-6c6f49b8d261

Access で大きい数値のデータ型を使用している場合。このデータ型は 32 ビット版の Access でサポートされていますが、ネイティブ 32 ビット版 VBA ライブラリを使用するコードや式を実行すると、予想外の結果になることがあります。 64 ビット版の VBA には LongLong データ型があり、大きい数値を完全にサポートします。 詳細については、「大きい数値データ型を使用する」を参照してください。
これを使うと下位互換が全くなくなるため、システムで採用するデータ型とは言えない。

Microsoftの解説が問題な点

64Bitで想定している場合が極めてまれ、ぶっちゃけあり得ないしかつ64Bitにする必要が全くない件

そもそもMS Projectを使っている人がいない。
数万行のDBならAccessで作る。
計算が早い場合もあります、としながら早いとは言っていない。
つまりMSがメリットといっているメリットは存在しない。デメリットは確実に存在する。

MicroSoftがデメリットとしているのはたいていにおいて致命的なエラーになる

デメリットに対してサードパーティーなどの代替案がない時がほとんど、
image.png

64bit化Window10の問題点

API DLLの変換が困難でDLLは代替がない

参照設定でScriptControlを使用しているとエラーをおこす。
Win32Apiを使用しているとエラーを起こす。この変換はLongPtrに変えるだけではだめでConst Directiveで64/32Bit化しなければならない。
これにともない、使用する変数もLongPtrなのかLongなのかConst Directiveでわける必要がある。
これらが意味するのはWindowsやOfficeの性能を引き出したシステムほど必ず地雷を踏むようになっている。
これはJscriptのWeb周りの機能、Parse、URLEncode、そして配列のソートができない。
次にフォーム周りのリストビューが使えなくなる。

VBAからみたら64Bitは本来のオフィスではなく別物と考えるべき

64bitは別のものだと考えてそもそも、互換性はないと割り切った方がいい。
確かにちょっとしたファイルなら問題はない。
しかし移行して問題を起こすのは必ず重要なファイルだ。しかもそういうのに限ってひっかかる。
なぜなら過去、マイクロソフトはこれらの機能を便利だとして宣伝しているからだ。
このため、VBA周りはエラーを起こしてこれを修正するのが困難になる可能性が十分ある。このため過去の資産を運用する場合、32Bitを意識的にインストールしないとVBAが入っていた場合、完全に変換できなくなる可能性がある。これまで64bitAPIのクラス化の記事を作ってきているからこれについては言う権利がある。絶対やるな。利便性なんてかけらもない。MicrosoftはURLEncodeをExcelの関数にしたりしてきているが、全く統一した上位互換法はない。サードパーティーの代替性も期待できず、あっても有料だ。さらに追い銭をうたなければならない。

マイクロソフトは64Bit化できない

GoogleのAndroidも64Bit化してもユーザーには気づかれない。これはアプリ作成側に64Bitで作らないとインストールできないと脅しているから。またFireFoxも64Bit化している。
ところがマイクロソフトの場合ユーザーにこれを言わなければならない。これが64Bit化できない要因。アップグレードの上にさらに追い銭をうち、なおかつ使えない機能がある、どこの世界にユーザーにこんな苦行を強いるバカがいるだろうか。あり得ないのですね。

Windows10は勝手に機能を削除し削除できなくする

一番わかりやすいのが赤外線通信だ。これは2016年までは使えたがアップデートで使えなくなった。ほかにも告知はあったがWindows Jounrnal、Windows Essentials 2012などアップデートで使えなくなったり、提供をやめたりしたものは多い。
https://security.srad.jp/story/16/08/08/0428234/
Windows Journal の削除と復活

Window10のEdgeとCortanaは事実上明確なバックドアでありアップデートとはバックドアの構築を意味している

EdgeでWebを閲覧すると、マイクロソフトのサイトにアップされている。
またEdgeは現在削除ができない。Powershellをもってしても削除ができないように変更されている。
Microsoft、Skype通話とCortanaとのやり取りの一部を人間が聞いていることを認める
https://support.microsoft.com/ja-jp/help/4468233/cortana-and-privacy-microsoft-privacy
このように、セキュリティ面で改善どころか改悪で、Updateはウィルスを導入しているのに過ぎない。
Windows10のプライバシー設定の概要と変更方法 | デフォルトだと個人情報ダダ漏れ!?
Windows 10でCortanaの検索履歴を削除する方法

Windows 10では、Cortanaから提供する情報を最適化させるため、CortanaからアプリやWebページなどの検索を行った際に入力したキーワードが、検索履歴として「プライバシーダッシュボード」というWebページに自動的に保存されます。
ここでは、保存された検索履歴を削除する方法について案内します。
検索履歴は、パソコンにサインインしているMicrosoftアカウントに紐付いて保存されています。

またCortanaはオフにならない。
image.png

したがってWindowsのアップデートとはバックドアの構築なのだ

 2018年6月6日のWindows10、バージョン1803の機能更新プログラムにより、削除したCortanaが復活してしまいました。
 この更新により、これまでWindowsの設定変更をしていたものが全てキャンセルされてしまったようです。止めたはずのプログラムが動いています。
 Windowsの更新は、差分をインストールするらしく、Windowsの設定を変更しているとそのチェックにとても時間がかかり、更新が終わるのに2時間もかかりました。

https://www.softantenna.com/wp/tips/windows-10-disable-cortana/
マイクロソフトのソフトウェアはマルウェアだ
https://www.gnu.org/proprietary/malware-microsoft.ja.html
2017年まで状況ならこれもジョークだったが、現在はジョークとは言えない。

つまりセキュリティを口実にしてウィルスをインストールしているのがマイクロソフトといわれても仕方がないだろう。

Microsoftはウソをつく

一番まずいのはたとえば数式は互換性がありますよと平気で言う点に表れている。それは大嘘だ。数式エディタ3.0を切り捨てたではないか。しかもいきなりだ。さらにいうとOffice2013のWordの数式とOffice2016のWordの数式は違う。よりTexに近づいている。ここでも過去の遺産をいきなり切り捨てている。自分に都合が悪いことは言わず都合がいいことだけ言っているため信用ができない。それならTexで最初から作った方が早いとなってしまう。さらに数式エディタ3.0を切ったせいでPublisherは数式が使えなくなった。

BigDataに対応しているのしてないの?

今回のバージョンアップは過去のユーザーを置き去りにして過去のデータを切り捨て、こっそりビッグデータにExcelを対応させようとしたという傾向がある。しかしMSは一言もビッグデータに対応したなどと言わない。本気で対応するならAccessの容量は2GBで固定しない。この固定している理由はSQL Serverが売れなくなること、つまりMSのわがままにすぎない。

こういうところがMicrosoftとこの業界の本当に暗い面

上記の記事であれは動きます、これは動きます、これも動きますと動くことだけ最初に書いておいて、いざ問題があるとこう言いだすのが恐ろしいところだ。
https://teratail.com/questions/10072
image.png
将来性を考えて変更って将来のリスクを考えてアップグレードで金を使ったばっかりなんだぞ。
image.png

これではまじめにアップグレードする方がバカをみるではないか。しかも代替方法は超面倒くさい。完全な互換性を提供していない。
もちろん業界としてはこれを機にシステムの保守とかシステムの構築の契約を取りたいというのはわかる。
しかし、その期間が短すぎる。さらにユーザーにもメーカーにもコストがかかりだれも幸せにならない。
https://social.msdn.microsoft.com/Forums/ja-JP/071aeae7-5d9e-415c-8902-8c7cfe666505/win86412398excel20136412391listview1243420351123561238312356?forum=vbajp
image.png

マイクロソフトと日本人は衰退している

さらに謎なのは、元号対応、Windwos7のサポート延長期間終了にリソースをとられているのかもしれないが、マイクロソフトの公式ですら更新が追い付いていない。この方針の転換はほとんど周知されず、ITライターは全く書かない。自分自身が追い付けない更新を人に押し付けられても対処のしようがない。あらためて見直してみたが
https://www.zaikei.co.jp/article/20180929/468517.html
しかない。しかしこれはスラッシュドットの転載だ。
本来はもっと告知があるべき転換なのに全くやっていないようだ。
だがこのようなレベルでは日本人もビッグデータとか機械学習とかAIとかやる意味がない。
その意味が理解できるなら64Bit化するとどれほど困難なのか知り、スラドだけでも大騒ぎしているはずだ。
これに騒がないということはそんなものを扱う資格がないということはビッグデータもAIも深層学習もいらない。まず石器の作り方から覚えた方がよい。

Windows 3.1 PDC と Windows & OS/2 Conference

8月15日(木)
 朝8時から、宿泊しているマリオットホテルでIBMによる特別セミナー「OS/2 Strategy Briefing」を聞いた。IBMは、マイクロソフトが参加しない今回のコンファレンスに非常に力を入れている。展示会場にはOS/2の大きな垂れ幕が下がり、この特別セミナーでも軽食を用意し、1000名以上の人を集めた。
 テーマは「OS/2:DOS Better than DOS. Windows Better than Windows.」つまり、DOS以上のDOS、Windows以上のWindowsとの事。
 2時間のセミナーでWindowsに対するOS/2の優位性を説明し、最後には200インチ近くの大画面を2つ並べ、同じWindowsアプリケーションを片やOS/2 v2.0、片やWindows3.0上で稼働させ、OS/2の性能の良さを強調していた。同じハードウェアでも、32ビットOSであるOS/2のほうがWindowsネーティブよりも高速で動くことを実証していた。OS/2のパッケージ価格も安くして、コストパフォーマンスで差をつける戦略である。
 IBMは「Customer」という言葉を連発する。昨日のロータスもしかり。顧客を大切にする販売重視の姿勢が目につく。マイクロソフト社はほとんどこの言葉を使わない。
 ちょっと気づいたことだが、IBMやロータスのプレゼンテーションの文字は非常に美しい。たぶんATM(Adobe Type Manager)とPostScriptプリンタを使用しているのであろう。それに対し、マイクロソフトのスライドやそのハードコピー資料は文字間隔(プロポーショナルスペーシング)が悪くて読みづらい。TrueTypeを使用しているかどうかは知らないが、一考を促したい。(ちなみにユニコードに対応が完全ではないため、いまだにこの問題は解決していないといえる)

 10時過ぎにコンファレンス会場に移動し、午前中は、併設されている展示を見てまわった。
 ワードパーフェクト、マクロマインド(Action!というマルチメディアエディタを出展)、ロータス、ボーランドなどに人だかりがしている。WordPerfect for Windows もすばらしい出来となっている。Mac版、UNIX版などを開発した実績があるため、GUI系のワープロには自信を持っているのだろう。プログラミングの用語で「Information Hiding」情報隠しというのがあるが、GUIでの操作方法ではこれが重要だと思う。CUI環境に較べ、機能が豊富にできる分、あまり使わない機能をうまく隠す必要がある。ワードパーフェクトはうまくやっている。
 罫線編集や画像張り付けの操作性が良いし、完成度が高い。ワープロとDTPの境界もなくなっている。PegeMakerでおなじみの2段組みの文書の任意の場所に多角型のイメージを貼り付ける(すると、テキストがサッと避ける)デモをやっていた。
 ここでもツールバーが特徴となっている。「Button Bar」という商標の美しいデザインのボタンがユーザインタフェースの要となっている。マイクロソフトの Tool Bar、ロータスの Icon Palette など、各社GUI環境での操作性の統一を競っているが、これらのメニューやボタン類と、メインメニューの関係など、まだ過渡期のようで、整理して考えなければならないことが多数残っている。WindowsのユーザインタフェースもIAYF(Information at Your Fingertip)インタフェースなどという言葉も飛び交っており、Win32あたりで大きく変更されるのではないだろうか。

 米国のWindows市場も、やっとアプリケーションが売れる時勢となり、各社、初回ロットの製品は定価を下げて販売している。ボーランドの ObjectVision は99ドル、Action! が199ドル、WordPerfect for Windows はDOS版を持っている人には5ドルと、半額以下の価格設定で、市場を握ぎってしまおうと躍起になっている。

 午後は、この出張唯一のフリータイム。ボストンは2度目だが、米国で一番歴史の古い町であり、ロンドンのような石造りの建物が並んでいる。地下鉄の古さも手伝って、ロンドンに居るような錯覚に陥った。トリニティ教会はウェストミンスター寺院のサブセットのようだし、チャールズリバーがテムズ川、パブリックガーデンがハイドパークに思えてくる。小沢征爾がボストンから離れないのもわかる気がする。
 まずオックスフォードに行った。目的はハーバード生協での書籍の購入。3階建ての大きな書籍部を見て回った。大学の生協らしくコンピュータ関連は充実しているが、オブジェクト指向操作やC++クラスライブラリなどの欲しい本は手に入らなかった。コンピュータ関連の書籍なら、サンフランシスコ、バークレイが一番充実していると思う。UCB(カリフォルニア大学バークレイ校)の生協とそれに続くテレグラフ通りの Cody Books でほとんどのものは手にはいる。大きなバッグに重いパソコンの本をたくさん詰めて、BART(Bay Area Rapid Transfer)に乗るのも出張の楽しみとなっている。
 夕刻から、水族館 New England Aquarium に行った。大きなウツボや3mを越えるグルーパー漁など見応えがあった。水族館や動物園はひとりで行っても面白い。夕食は中華街へ。欧米のあのパサパサした食事はどうも体に合わない。野菜も促成栽培のためか固くて資料のようだ。どこに行っても中華街があるので、いつも米か麺を食べている。シアトルではやわらかい野菜がたくさん入ったベトナム料理を食べたし、ボストンでもおいしい麺を食べた。中華街には、一人でも入れる店が必ずあり、それなりに美味しい。

8月16日(金)

 8時にマリオットホテルを出て、ローガン空港へ。
 ホテルでもらったアメリカ唯一の全国紙「USA Today」を待合室で何となく眺めていたら、カラー全面広告が疲れた目に飛び込んで来た。

386SX、16MHz、メモリ1MBのPCクローン機
40MBハードディスク、5"ディスクドライブ、3.5ディスクドライブ
  800×600のSuperVGAモニタ付き
DR-DOS5.0および8種のアプリケーションソフト付き

これで、999.99ドル(約13万円)とある。電話一本で購入できる。
 マイクロソフトは、顧客であり、パートナーであるはずのハードウェアメーカのことをほとんど気にかけていないのではないだろうか。DellやGateway2000の台頭を考えると、ハードウェアの製造も販売もベンチャービジネスで行えるまでに、ハードウェア技術は進歩してしまっている。
IBMとマイクロソフトのお互いゴールを認識した上でのOS戦争。10年前、CP/MやMS-DOSが登場した時と同じ、混沌とした状況が、10倍の規模となったのパーソナルコンピュータ市場で起こりつつある。ZortechやBolrandのC++が売れ、OS戦争が起こり、オブジェクト指向の新しいOSや開発ツールが出現しつつある。波瀾万丈の数年間となりそうだ。
 IBMがアップル、モトローラと提携し、SONYも関係してくる。マイクロソフトはコンパック、DEC、MIPSと提携し新しいOS作りに励んでいる。はじき飛ばされた格好のインテルは「Intel Inside」というロゴを作り、巻き返しの企業宣伝に追われている。
 NECはどうするのだろう。従来通りマイクロソフトと共に歩むと思われるが、NTと相性のよいRISCチップを作って大量生産に励めば、この機会に世界に飛躍できるかもしれない。富士通はどうするのだろう。10数年前に決定されたメインフレームでのIBM互換路線を堅持し、OS/2でもIBMと共に歩むのであろうか。それともこれを機会に富士通のソフトウェア開発能力を世界に見せつけてくれるのであろうか。
 500ドルのPCクローンから2000ドルのラップトップ、そして25000ドルのサーバマシンまで、10年でパーソナルコンピュータの世界は大きく広がった。ダウンサイジングは今やマスコミねたではなく、企業の情報システム構築の合言葉となった。5年後、パーソナルコンピュータがコンピュータのすべてとなることもあり得る。
 そのコンピュータすべてのOSをマイクロソフトは、一社で供給しようとしている。
 今までのWindowsやOS/2はマイクロソフトの試作品で、NTが本物のような気もする。我々プログラマは、ビル・ゲーツとスティーブ・バルマーのおおいなる試作ソフトの上で日夜格闘しているのではないだろうか。

ここでは当然Googleもファーウェイも出てこない。だがここでハードウェアの進歩がベンチャーが参加してくると言っている。このベンチャーがPCではなくタブレットやスマートホンとして現れた。NECもちゃっかりAndroidタブレットを売っている。
 しかも当時の背景はWin16とWin32の過渡期で、現在の状況と非常に似ている。違うのはその影響力とコストだ。さらに、さらに現在でもこれを引きずっている。さらにいえばフォント回り、画像周りの上記記事で指摘されている課題はいまだに引きずっている。このような状況では消費者はNTの後継であるWindows10やOfficeの改悪に疲弊するだろう。何しろ表計算以外はスマホやタブレットでできてしまう。Windows+Officeのコストパフォーマンスはよくない。だがビッグデータをいくら集めてもマイクロソフトは絶対に認めない。ビッグデータを導入してもその結果は最初から分かっているし、それをやる気がないので役に立たたないのである。

 (前略)現在のWin32環境とは違い、Windows 1.01で作られた16bit CPU向けの「オペレーティングエンバイロンメント」では、最初にMS-DOSが起動しており、デバイスやファイルシステムのアクセスは、MS-DOSやBIOS経由で行なわれていた。当時の最新CPUはi386DX/SXだったが、Windows 3.0では16bitのリアルモードのみしかない8086でも動作するようになっていた。このため起動時にCPUやハードウェアに合わせて3つの起動モードがあった。

・リアルモード:8086の16bitリアルモードで動作
・プロテクトモード:80286の16bitプロテクトモードで動作
・エンハンスドモード:i386DX/SXの拡張プロテクトモード(32bitモード)で動作

 このうちリアルモードは、Windows 3.1では廃止された。

 Windows 3.0が出たとき、マイクロソフトとIBMは、次世代の標準プラットフォームをかけて競争の真っ最中だった。話は1985年にまでさかのぼる。マイクロソフトとIBMは、次世代OSの開発で提携する。

 今にしてみれば、なぜIBMとマイクロソフトが提携してOSを開発することになったのかはよくわからないが、当時の記憶では、IBMが1984年に発表したMS-DOSのマルチタスク環境であるTopViewを極度に警戒していた。マイクロソフトは1983年にWindowsを発表していたが、出荷されるのは1985年になってから。IBMのTopViewは、テキスト表示ながらMS-DOSアプリをウィンドウ内に表示できるマルチタスク環境だった。

 このIBMとマイクロソフトの提携の成果として作られたのがOS/2である。OS/2は1987年にPS/2とともに出荷されるが、この時点ではGUIはなく、80286のプロテクトモードにしか対応していなかった。その後、マイクロソフトはOS/2を自社の製品ラインとはせず、OS/2 1.2(1989年)を最後にOS/2の開発から手を引き、OS/2 Ver.3として開発中だったOSをWindows NTとする。

 当時のマイクロソフトは、MIPSのR3000上でWindows NTを動かしており、PCのOEMメーカーにR3000ベースでのコンピュータ開発を打診していたことがある(ACEプロジェクト)。

 その裏でマイクロソフトが開発を進めていたのがWindows 3.0(1990年)だ。Windows 3.0は、本来はOS/2とAPI的に互換性を持たせる予定で、GUIのスタイルに関してはOS/2のプレゼンテーションマネージャーと同じになるように開発が進んでいた。しかし、Windows 3.0は、OS/2互換のAPIは採用せず、Windows 2.11(1989年)の上位互換であるWin16を継承している。

 この頃のWindowsは、MS-DOSの上に乗っており、仮想記憶も特権モードもなく、メモリ空間が最大でも1MBしかない8086で動作させるため、大変“無理”のある作りになっていた。マルチウィンドウを実現するためにマルチタスクが必要だったが、採用されたのは「協調的マルチタスク」であった。

 これは、アプリケーションが明示的に制御を戻したり、APIを呼び出したタイミングでタスクを切り替えるもの。アプリケーションが制御を返さなければ、ずっと他ののタスクは止まったままになる。こうしたさまざまな制限とMS-DOSとの互換性を保つために、Windowsのアプリケーションは特殊な構造になっていた。

進化するWindows 10のターミナル、“色”で30年来の制限から脱却

Windowsコンソールの表示色は
IBM PC当初のハードウェアの制限を受け続けていた

 そもそもWindowsのコンソールは、Win32アプリケーション(デスクトップアプリケーション)がコンソールAPIを使って出力などをするように作られたもの。コンソールは、文字や背景の色を16個のカラーコードで指定する。つまり全部で16色しか利用できない。

 WindowsアプリケーションはグラフィックスでRGB各8bitのフルカラーを使えるというのに、コンソールの中の文字や背景の色はたった16色しか指定できないのである。

 これは、IBM PCに搭載されたCGAなどのテキストモードの仕様を引き継いだからだ。現在のコンソールは、アプリケーションが指定した文字列をWindowsがフォントのビットパターンとして描画している。しかし、IBM PCが発売された当時は、CPUも高速ではなかったため、現在のような「ビットマップディスプレイ」で文字を扱うと描画速度が遅くなってしまう。
しかし時は流れて、マイクロソフトはWindows XPではMS-DOSを捨て、64bit版Windowsは16bitモードを捨てた。このため、もはやIBM PCのテキストディスプレイとはなんの関係もないはずにも関わらず、コンソールAPIの仕様はそのまま残っているのである。

(中略)色の問題は解決したが、Windowsコンソールが対応しなければならない問題はいくつもある。そのうちの1つが文字コードの問題だ。

 簡単に言えば、現時点では8bitまたは16bitにエンコードされた文字コードしか扱うことができない。たとえばUTF-8では1文字を表すのに1~4バイトが必要になる。さらに、絵文字などの表示では、指定されたフォントセットにない文字を他のフォントセットから切り替えて使う「Font-fallback」といった仕組みが必要になる。

 さらに細かく見ていくと、絵文字では、男女や肌の色などを切り替えるために文字の合成機能を使う。そこで複数の文字を組みあわせて1つの文字として表示する機能などが必要になる。コンソールは、このあたりが今のところまったく対応できていない。マイクロソフトのブログなどによれば、「October 2018 Update」(RS5、Windows 10 Ver.1809)には、UTF-8を扱うための基本的な仕組みは組み込まれたものの、完全なかたちでUTF-8をサポートするところまでは到達していないという。コンソール改良の道はまだ半ばというところか。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1