ファイルとフォルダ

ストレージとメモリ

普段スマホしか使わない人はあまり意識することはないのかもしれませんが、スマホを含め、たいがいのコンピュータは、いろいろなデータ(デジカメで撮った写真とかワープロで書いた文書とか)をファイル(file)という形でストレージ(storage)に保存します。そして、そのデータを実際に使う時(写真を見たり、ワープロで文書を編集する時)は、それを主記憶と呼ばれるメモリ(memory)にコピーします。コンピュータの中で、実際にプログラムを実行するのは、CPU(Central Processing Unit:中央処理装置)ですが、CPUが読み書きするのはメモリです※1

図1: ストレージとメモリ

主記憶として使われるメモリは、こちらでも説明していますが、ダイナミックRAM(Dynamic RAM:DRAM)と呼ばれるものです。これは、ストレージに比べればかなり高速にアクセス(読み書き)できるのですが、電源を切ると内容が消えてしまいます。

それに対してストレージは、電源を切っても内容が消えません(不揮発性といいます)。また、容量当たりの価格が主記憶よりも安いので、大容量です。

たとえ話は好きではないですが、メモリとストレージの関係は、「机の上」と、「引き出しの中」にたとえられるでしょう。仕事なり勉強なりをするために、引き出しから書類を出して、机の上に並べて作業します。机の上が広ければたくさんの書類を広げることができるので、作業がはかどります。メモリがたくさんある方が動きが早くて快適だ、というのは、イメージとしてはそういう意味です。引き出しの中にはたくさん書類を入れられますが、いちいち取り出したりしまったりするのには手間がかかります。Windows含め、現代のOSは、メモリが足りなくなったらあまり使っていない部分を自動的にストレージに追い出す機能がありますが、これが起きると体感的にかなり遅く感じます。

そして、何かの作業がひと通り終わったら、結果は引き出しにしまいますし、その日の仕事を終えて電源を切るときには、すべてを引き出しにしまって机の上はきれいにしておくでしょう。これがシャットダウンに相当します。

表1: メモリとストレージの対比
容量アクセス速度電源を切ると
メモリ(ストレージに比べれば)小さい(ストレージに比べれば)めちゃくちゃ速いデータは消える
ストレージ(メモリに比べれば)大きい(メモリに比べれば)遅いデータは消えない

10年くらい前までは、ストレージと言えば、ハードディスクドライブ(HDD:Hard Disk Drive)が主流でした。ハードディスクドライブには、その名の通り、磁性体が塗られた硬い円盤(たいていはアルミかガラス製)が入っていて、それに対して磁気で情報を記録します。中身は大昔のレコードプレイヤーに似ていて、高速回転する円盤(プラッタといいます)にアームが伸びていて、アームの先のヘッドで情報を読み書きします。Wikipediaあたりを見れば写真があります

ハードディスクのプラッタは、結構高速に回転するのですが(速いものだと毎分15,000回転とか)、いまどきのコンピュータの処理速度と比べれば、そうやって機械的に円盤が回るのを待つ、というのはかなり遅い部類に入ります。そこで、最近は、SSD(Solid State Drive)という、フラッシュメモリ(flash memory)を使用したストレージが主流です(少なくともCドライブ(後述)としては)。

フラッシュメモリというのは、一度書き込んだら電源がなくても数年は値を保持するという性質を持つメモリです。ハードディスクと違って、機械的に回るような部分がないので高速ですし(ただしDRAMよりは遅い)、振動や衝撃にも強く、小型化できるという特徴があります。これがずいぶん安くなってきたので、ストレージの役割がハードディスクからSSDに移りつつあるわけですが、まだ現状では、容量あたりの価格はハードディスクよりは高いです。

フラッシュメモリは、パソコンのストレージとしてのSSDだけでなく、スマホのストレージや、SDカード、USBメモリなどにも使われています(ものによりますが、USBメモリを解体すると、中からSDカードが出てきたりする)。

メモリ、RAM、ROM……

上で、ストレージとメモリについて書いていますが、ストレージとメモリは別のものであるかのように書いているのに、途中から今のストレージはフラッシュメモリだと書いていて、混乱した読者もいるかもしれません。

コンピュータの業界で「メモリ」といえば、部品としてなら、現代は半導体メモリのことを指すでしょう。そういう意味では、フラッシュメモリは確かにメモリです。しかし、昔はストレージといえばハードディスクだったので、主記憶を単に「メモリ」と呼んでもまぎらわしくなかったのです。というか、電源を切っても保持される記憶装置(二次記憶装置)のことを「ストレージ」と呼ぶのも割と最近の言い方で、以前は単に「ハードディスク」と呼んでいました。今はSSDが主流となりましたが、ハードディスクも残っているので、どちらでもよいように「ストレージ」と読んでいるのだと思います※2

この手の用語の混乱はいろいろあって、たとえばDRAM(ダイナミックRAM)の「RAM」というのはRandom Access Memoryの略です。ランダムアクセス(random access)というのは、アドレスさえ指定すれば好き勝手な場所の内容を読み書きできる、という意味です。これの反意語はシーケンシャルアクセス(sequencial access)といって、かつてのビデオテープや音楽用のカセットテープのように、テープの先頭から順に読んでいくことしかできないことを意味します。「テープはさておき、そんなメモリがあるものか」と思う人がいるかもしれませんが、どうやら昔はあったようです。世界最初のコンピュータのひとつとされるABC(Atanasoff Berry Computer)では、現在のDRAM同様に蓄電器を使用したメモリを使っていましたが、この蓄電器は毎秒1回のスピードで回転するドラムに取り付けられており、読み取る際は、目的のビットが回ってくるまで最大1秒待つ必要がありました。これはシーケンシャルアクセスメモリ(SAM)といえます。

ところが、その後、メモリといえばランダムアクセスできるのが当たり前という時代になったせいか、「RAM」という言葉は、「読み書きが可能なメモリ」という意味に変わります。この反意語はROM(Read Only Memory)で、「読み出し専用メモリ」です。ある程度以上の年齢の人は、かつてファミコンのカセットが「ROMカセット」とか「ROMカートリッジ」と呼ばれていたことを知っていると思います。あれは、ゲームのプログラムをROMに記録したものです。現代のパソコンなら、BIOS(Basic Input/Output System)のプログラムなどはROMに格納されています。

というわけで、RAMは読み書き可能なメモリ、ROMは読み出し専用のメモリ、という意味で長いこと通ってきたのですが――どうも最近はまた意味が変わりつつあるようです。スマホ等のカタログで、ROMが何ギガバイト、と書いてあるとき、それはストレージの容量を指すそうです。ストレージは電源を切っても内容が消えないだけで、別段読み出し専用ではないので、これをread only memoryと呼ぶのはさすがにおかしいだろう、と私などは思うのですが……

もっとも、ROMといっても、本当に絶対に書き込みができないタイプ(マスクROMとかPROMがこのタイプ)だけではなく、量産前の開発段階とか、何かバグ等あったときに差し替えるために、専用機器で紫外線を当てれば再書き込みができるEPROM(Erasable Programmable Read Only Memory)というものは昔からありましたし※3、これをさらに発展させて専用機器がなくても書き込めるEEPROM(Electrically Erasable Programmable Read Only Memory)というものもあり、フラッシュメモリはEEPROMの一種ですから、フラッシュメモリでできたストレージをROMと呼ぶのもわからなくはないのですが、いやそれにしても。

スリープ、休止状態、シャットダウン、再起動

今日の作業が終わってパソコンを電源を切るとき、Windows10なら、スタートメニューから「電源」を選びます。

ここで表示される選択肢、スリープ、休止状態、シャットダウン、再起動がどういうものであるかは、メモリとストレージの関係を知っていればよく理解できるでしょう。

スリープ
コンピュータを省電力モードにします。メモリには電気を流しているので、作業中の内容は消えません。なので、翌朝電源を入れたら、すぐに作業を再開できます。
省電力モードとはいえ電気は流れているので、ノートパソコンをスリープにして数日もすると、バッテリー切れになっている可能性があります(その時、メモリにあった情報が失われるかどうかは、設定に依存します。ハイブリッドスリープがONになっていれば、下の休止状態と同じように、メモリの内容はストレージに保存されています)。
休止状態
メモリの中身をいったんすべてストレージに書き込んで、電源を完全に切ります。よって、電気を(ほぼ※4)食いません。翌朝電源を入れると、ストレージに保存した内容をメモリに読み込みなおして作業を再開します。作業再開時は、メモリに読み込む時間分だけちょっと手間取ります。
いまどき、SSDならそのちょっと手間取る分の時間なんてわずかなので、翌朝前の晩と同じ状態から作業を始めたければ、一番実用的なのはこの休止状態だと私は思うのですが、なぜかWindows10では、デフォルト(初期状態)では、休止状態は選択できないようになっています。使えるようにするには、たとえば以下のページを参照してください。
Windows 10の電源メニューに「休止状態」を表示する:Tech TIPS - @IT
https://www.atmarkit.co.jp/ait/articles/1808/20/news026.html
シャットダウン
動いているプログラムをすべて終了させて、メモリの内容は必要があればすべてストレージに退避したうえで、電源を完全に切ります――と、昔のシャットダウンは確かにこういうものだったのですが、最近はちょっと話が変わってきました。シャットダウンすると、次回のPCの起動時には、システムの起動を完全に最初からやり直す必要があるので、起動に時間がかかります。そこでWindows8以降、高速スタートアップという機能が導入されて、シャットダウン時に一部の情報をストレージに保持するようになりました。これだけ見ると休止状態と同じようですが、保存される情報は休止状態よりずっと限られています。我々ユーザが開いたワープロなどの状態は保持してくれません。
再起動
システムをシャットダウンしてからもう一度電源を入れます。この時は、高速スタートアップではなく、完全シャットダウンを行います。再起動は、Windows Updateをかけたり設定を変えたり周辺機器を追加したりして、システムを完全に最初から起動したいときに行うものだからです。

ファイルとフォルダ

ストレージにはたくさんのファイルが保存されている、ということを説明しました。パソコンの電源を切っても消したくないデータは、ほぼすべて、ファイルの形で保存します。みなさんはこれからJavaScriptでプログラムを書きますが、そのJavaScriptのプログラムもファイルで保存します。

ストレージには、膨大な数のファイルを保存しますから、分類して整理しないと人間が管理しきれません。そこで登場するのがフォルダ(folder)です。

ここからは、実際にWindowsを操作しながら見ていく方が理解が早いでしょう。

エクスプローラー

Windowsでファイルやフォルダを扱うには、エクスプローラー(explorer)というプログラムを使用します。

おそらく、画面下部のタスクバーに、エクスプローラーのアイコンがあるかと思います。この、紙製の書類入れ(フォルダー)のようなアイコンが、エクスプローラーのアイコンです。

これをクリックすると、こんなウインドウが開きます(クリックで拡大)。

もしタスクバーにエクスプローラーのアイコンがないようなら、左端のスタートボタン(この→のボタン)を押して、「W」のところにある「Windows システムツール」を開いて中から「エクスプローラー」を選ぶか、あるいは、キーボードの一番下の列の左の方にあるWindowsキー(このマーク→が印刷されているキー)を押しながらアルファベットの「E」を押してください。エクスプローラーはよく使うので、タスクバーにアイコンがないようなら、一度起動した後にタスクバーのアイコンを右クリックして、「タスクバーにピン留めする」を選んでおいた方がよいでしょう。

エクスプローラーの左側のエリアには、下図のように、「PC」というアイコンがあり、その下に「Windows(C:)」と書かれたアイコンがあると思います。

この「PC」は、あなたのパソコンを表していていて、この「PC」の下にある「Windows(C:)」は、Cドライブといって、あなたのパソコンに内蔵されたストレージを表しています。上の図では、「HDCL-UT(F:)」というのも表示されていますが、これはFドライブになります。私のパソコンには外付けのUSBハードディスクドライブを増設しているので、それがFドライブとして見えているわけです。なお、今は消えていますが、DVDドライブの電源を入れるとDドライブが出現します。このCとかDとかFとかいうのをドライブレターといって、Windowsでは、このドライブレターでストレージやDVDのような記憶装置を区別します※5

Windowsのドライブレターは通常Cから始まります。なぜCなんだ、AとBはどこに行った、とふつう思うでしょうが、これは、大昔、まだハードディスクが個人用のパソコンに積むにはあまりに高価だったころ、フロッピーディスクドライブが2台ついていたころの名残です。2台のフロッピーディスクドライブにそれぞれAとBを割り当てていたので、その後安くなって搭載されるようになったハードディスクには、Cが割り当てられることになったのです。そういうわけで、Windowsパソコンなら、必ずCドライブはあります。

「Windows (C:)」のところをクリックすると、右側に、Cドライブの直下に保存されている内容が表示されます。

黄色い、こんな形のアイコン→がフォルダを表しています。

私はCドライブ直下にいろいろフォルダを作っているので、みなさんのパソコンでは、こんなにフォルダはないかもしれません(人によってはもっとあるかもしれません)。ここでは、ひとまずWindowsパソコンであれば必ず存在するWindowsフォルダをダブルクリックしてみましょう。そうすると、今度はWindowsフォルダに保存されている内容を見ることができます。

Windowsフォルダの中にも、たくさんフォルダがあることがわかります。このように、フォルダの中にもフォルダを作ることができるので、ファイルを何階層にも分類して整理することができるわけです。

上のスクリーンショットを見ると、上部に、現在開いているフォルダの階層が表示されています。今はCドライブ直下からWindowsフォルダを開いたので、「Windows (C:) > Windows」のように表示されています(その前の「PC >」はいったん無視することにします)。上の階層に戻りたければ、この中で戻りたい階層をクリックするか、その左の「↑」ボタンをクリックします。

上のスクリーンショットではフォルダしか見えませんが、スクロールさせて下の方を見ると、フォルダとは違うアイコンが現れます。これらがファイルです。

たとえば、「notepad」というファイルが見えますが、これは、Windowsに標準で搭載されている簡単なテキストエディタ(メモ帳)のプログラムです。

ところで、あなたの環境で、上のスクリーンショットと同じように、(「notepad.exe」ではなく)「notepad」と見えているのなら、あなたの環境は拡張子が非表示設定になっています。拡張子というのは、ファイルの種類を示す情報で、めちゃくちゃ重要な情報なので、表示するようにすべきです。拡張子を表示するには、エクスプローラーの上部で「表示」タブを選んで、「ファイル名拡張子」にチェックを入れます。

「notepad」の表示が「notepad.exe」になったことがわかると思います。この「.exe」が拡張子です。「.exe」というのは、「実行可能なプログラム」であることを示す拡張子です。実行(execution)か実行可能(executable)の略だと思います。「実行可能なプログラム」とは何物か、と疑問に思う人はこちらへ。

拡張子は、実際には単なるファイル名の一部で、ファイル名の最後のピリオドから後ろの部分を指します。つまりnotepad.exeなら、本当のファイル名はnotepad.exeであり、notepadではありません。そして、Windowsは、この拡張子によって、ファイルをダブルクリックした時の動きを変えています。たとえば拡張子が.exeなら、これは実行可能なプログラムなので、ダブルクリックすればそのプログラムを実行します。あなたのパソコンにMicrosoft Officeがインストールされていれば、.docxという拡張子はマイクロソフトのワードというワープロのファイルを示す拡張子なので、ダブルクリックすればワードが起動します。

Windowsでは、デフォルトでは拡張子が非表示になっていて、これは初心者がうっかり拡張子を変えてしまったりすることがないようにという配慮なのかもしれませんが、拡張子が見えないのではファイルの種類がわからなくてあまりにも不便ですし、よそから送られた.exeファイルをうっかり実行してしまう、という事態が起こりやすくて※6セキュリティ的にもよろしくありません。Windowsを作っているマイクロソフトは、ユーザは馬鹿だから拡張子など理解できないと思っているのかもしれませんが、いや実際馬鹿なユーザは多いのかもしれませんが、これからプログラムを書こうというみなさんはそんな馬鹿ではないでしょう。

さて、ここでこの「notepad.exe」をダブルクリックすると、メモ帳のプログラムが起動します(クリックで拡大)。ここでは使わないので、起動したメモ帳は、右上の×ボタンで閉じておいてください。

このように、メモ帳のようなプログラムも、ファイルとしてストレージに保存されていることがわかります。

なお、エクスプローラーの表示が、上に挙げたような形式でなく、こんなアイコン表示とか、

こんな一覧表示に見えている場合は、

上部の「表示」タブで「詳細」を選ぶと、詳細表示にすることができます。好みで選べばよいですが、ファイル名や日付が表示されていて、並べ替えもできる詳細表示が一番便利だと私は思います。

Windowsでは(LinuxやMacでも同じですが)、このように、フォルダでファイルを分類できます。フォルダの中にもフォルダを作ることができるので、何階層にもファイルを分類できます。このような機能を階層型ファイルシステムと呼びます。

図2: 階層型ファイルシステム

ところで上の図は、上下ひっくり返した木のように見えないでしょうか。Cドライブが根(root/ルート)で、そこから枝が分かれている、と思って見てみてください。

階層型ファイルシステムのように、親となるフォルダがあって、その下に子のフォルダとかファイルとかがあり、子の(フォルダの)下にさらに子が作れる、というような構造を、上下をひっくり返した木のように見えることから木構造(もしくはツリー(tree))と呼びます。コンピュータの世界ではかなりいろいろなところでこのような木構造が登場します。

Cドライブ直下にフォルダを作る

みなさんはこれからJavaScriptでプログラムを書くわけですが、JavaScriptのプログラムも、テキストファイルという種類のファイルです。そのファイル等を置くためのフォルダを作ることにしましょう。

フォルダをどこに作るかですが、まずここでは、Cドライブ直下にフォルダを作る方法を説明します。

Cドライブは、各パソコンにひとつしかないわけですから、他の人と共用しているパソコンではCドライブ直下にフォルダを作るのはあまり行儀のよいことではないかもしれません。一般ユーザの権限ではできないように設定されている可能性もあります。そういう場合は、次の「デスクトップにフォルダを作る」方法を試してください。

さて、Cドライブにフォルダを作るには、エクスプローラーでフォルダを作りたいところ(この場合はCドライブ直下)に移動したうえで、エクスプローラーの右の方の空いたところを右クリックします。そうするとメニューが出るので、そこから「新規作成」を選び、その後「フォルダー」を選びます。

「右の方の空いたところ」は、上の図で赤い破線で示しているとおり、フォルダ名とか更新日時とか種類とかサイズとかの領域のさらに右なので、エクスプローラーを横に広げるか、「名前」とかの列を狭めないと出てこないかもしれません。これはWindows7以降の改悪で、XPやVistaの頃は、ファイル名/フォルダ名のすぐ右の空いたところでも右クリックできたのですが……

それはさておき、このようにフォルダの新規作成を行うと、「新しいフォルダー」という名前で新しいフォルダが作られます。

「新しいフォルダ―」を作った直後の状態では、上のようにフォルダ名が選択された状態になっているので、キーボードから新しいフォルダ名を打ち込めば、フォルダ名を変更できます。みなさんはこれからJavaScriptの勉強をするわけですから、ここでは、フォルダ名は「jslesson」としておきましょう(JavaScriptのレッスン、という意味で)。

フォルダ名やファイル名は、フォルダやファイルをクリックして選択状態にしたうえで、もう一度クリックすると、いつでも変更できます(速く2回クリックするとダブルクリックになってしまうので注意)。

新しく作ったjslessonフォルダをダブルクリックして開くと、まだ作ったばかりなので中身は空です。この下に、もうひとつフォルダを作ることにしましょう。先ほどと同じように適当に空いたところを右クリックして(今度は中身が空なので、右の方を右クリックする必要はありません)、「新規作成」と「フォルダー」を順にクリックします。

最初のレッスンなので、lesson01という名前のフォルダにしましょう。

lesson01フォルダの下に、新しくテキストファイルを作ることにします。lesson01フォルダをダブルクリックしてlesson01フォルダを開き、その中で右クリックして「新規作成」、その後今度は「テキストドキュメント」を選択します。

「新しいテキスト ドキュメント.txt」という名前でテキストファイルが作られるので、適当に名前を変えます。この時、拡張子をうっかり変えてしまわないよう、拡張子以外の部分だけが選択されていることがわかると思います。

たとえば「lesson01.txt」というファイル名に変えて、それをダブルクリックすると、標準ではメモ帳のプログラムが起動し、lesson01.txtを開くことができます。

そこで、何らかの内容を入力して、

「ファイル」メニューから「上書き保存」を選択、もしくは(メニューの「上書き保存」の行の右端にCtrl+Sと出ていることから分かるように)Ctrlキーを押しながらSを押すと、入力した内容をストレージに保存します。上の図1で、「ストレージの内容をメモリにコピーする」と書きましたが、メモ帳でファイルを開くと、ストレージの内容がメモリにコピーされ、ユーザはそこで編集を行います。それを上書き保存することで、ストレージの内容を書き変えることができるわけです。

右上の×を押すことでメモ帳は終了しますが、たとえば後日、もう一度lesson01.txtをダブルクリックすれば、先ほど入力した内容はちゃんと保存されているはずです。

ここで、lesson01.txtをダブルクリックした時になぜ「メモ帳」が起動したのかといえば、「.txt」という拡張子がメモ帳に対応付けられているからです。拡張子について「めちゃくちゃ重要な情報」と上で言ったのは、このためです。「.txt」という拡張子はテキストファイル(文字しか入っていないファイル)を意味しており、テキスト(text)の略です。「なんだtextを1文字省略して.txtにしたのか。1文字しか縮まないなら.textでもよかったのに」と思うかもしれませんが、これは、Windows以前のMS-DOS時代、ファイル名が本体8文字拡張子3文字までしか使えなかった頃の名残です。

環境によっては、.txtファイルに対する対応付けが変更されていて、もっと高機能なエディタが起動するような設定になっているかもしれません(サクラエディタとか)。そういう人は、そのままそのエディタを使って行けばよいと思います。

なお、lesson01フォルダを開いている状態では、エクスプローラーの上部の、現在のフォルダの階層を示すエリア(アドレスバーと呼びます)は、以下のような表示になっていると思いますが、

この状態でアドレスバーの右の方の余白のエリアをクリックすると、こんな表示に切り替わります。

この表記のことをパス(path)と呼び、特に「C:¥」、つまり最上位のドライブからすべてを表記したパスのことをフルパス(full path)と呼びます。Windowsでは(というか、もっと昔のMS-DOSの頃から)、このパスを用いてファイルやフォルダの位置を示します。

Windowsのパスは、このように、ドライブレターとコロンから始まって、以後、¥マークを区切りとしてフォルダ階層を示します。

デスクトップにフォルダを作る

共用のパソコンなのでCドライブ直下にフォルダを作るのはちょっと、という場合は、もしあなたがそのパソコンに自分用のアカウントでログインしているのなら※7、デスクトップにフォルダを作るのがよいでしょう。

デスクトップにフォルダを作る場合は、デスクトップの空いたところを右クリックして、「新規作成」「フォルダー」を選択します。

これで「新しいフォルダ―」ができるので、

Cドライブ直下にフォルダを作った時と同様、名前を変更します。

――ところで、こうしてデスクトップに作ったフォルダは、本当はどこにあるのでしょうか?

デスクトップにできたjslessonフォルダをダブルクリックすると、エクスプローラーが起動します。

そのアドレスバーを見ると、まるでjslessonが最上位のフォルダであるように見えます。 しかし、すべてのフォルダは、どこかのドライブに入っているはずですから、いずれかのドライブレターの下にいるはずです。そういうわけで、クリックしてフルパスを表示すると、私の環境では、以下のように表示されました。

「C:¥Users¥beginner¥Desktop¥jslesson」と表示されていますが、このうち「beginner」の部分は、現在Windowsにログインしているアカウント名になります(よって、あなたの環境では、beginnerではないはずです)。このように、Windowsでは、C:¥Usersの下にユーザごとのフォルダを作って、その下にデスクトップ等のフォルダを格納しています。

では、Cドライブの直下にUsersというフォルダがあるのか、と思って見てみると――これが一見見当たらず、その代わりに「ユーザー」というフォルダがあります。

これは、日本人ユーザにとっつきやすくするために、日本語版Windowsでは「ユーザー」という別名を表示するようになっているからで、「ユーザー」フォルダの本当の名前はあくまで「Users」です。

そして、Usersフォルダの下の各ユーザのためのフォルダ(ユーザフォルダといいます)の下には、以下のようなフォルダがあります。

「デスクトップ」のように日本語表示されていますが、これも別名で、本当の名前は上で見た通り「Desktop」です。他も同様で、「ドキュメント」は「Documents」ですし「ダウンロード」は「Downloads」です。

日本語の別名はさておき、「なんだ、ユーザフォルダというものが用意されているのなら、最初からユーザフォルダの下(デスクトップとか)にフォルダを作ればいいじゃないか。それがWindowsでの標準的な考え方なのだろう」と思う人がいるかもしれません。

しかし、私は、新しいパソコンを買ってきたら(もしくは会社で支給されたら)真っ先にCドライブ直下に自分の名前のフォルダ「C:¥maebashi」を作り、以後はその下にいろいろなフォルダを作ってファイルを管理するようにしています。Windowsのあてがいぶちのユーザーフォルダは、まずフォルダ階層が深くなってエクスプローラーのアドレスバーでのパスの手打ちやコマンドプロンプト等で移動するのに面倒ですし、うっかりユーザのアカウント名が日本語になっていたりするとユーザフォルダのパスにも日本語が含まれることになり、これまたアドレスバーでのパスの手打ちやコマンドプロンプト等での移動が面倒になるだけでなく、ツールによってはまともに動かないこともあるためです(Android Studioではまったことがあります)。

まあ、この入門の範囲でなら、デスクトップにフォルダを作ろうが、そのフォルダ名が日本語だろうが、おそらく問題は起きません。なので、Windowsの本来のポリシーに基づいてユーザフォルダ以下のデスクトップ等にフォルダを作る、というのもありだと思います。プログラム開発に使うフォルダ名に日本語が入っていたり、空白を含んでいたりするとなんだか心配だ、と思うのは年寄りの発想なのかもしれません。老害?

この入門で、今後作るファイル等のフルパスを示す際は、Cドライブ直下にjslessonフォルダを作った前提で記載します。まあ、ユーザフォルダは、アカウント名が入るので読者ごとに異なりますし。

Windowsのパスの区切り文字はなぜ¥マークなのか

パスの区切り文字など何でもよいといえば何でもよいのでしょうが、¥マークというのはちょっと不思議かもしれません。

しかし、こちらのページで書いた通り、¥マークというのはJIS X 0201で定められた日本独自の記号であり、本来ここにはバックスラッシュ(⧵)が割り当てられていました。よって、英語設定のWindowsでは、¥マークではなくてバックスラッシュが区切り文字になります。

UNIXというOSでは、パスの区切り文字に区切り文字にスラッシュ(/)を使っています。Webページのアドレス(正しくはURL:Uniform Resource Locator)で区切り文字にスラッシュを使うのは、これを引き継いだものです。今あなたが見ているこのページのURLは、「http://kmaebashi.com/programmer/beginner/file.html」のはずです。ほら区切り文字はスラッシュです。

まだWindowsができる前、パソコンではMS-DOSというOSが使われていました。MS-DOSの初期バージョンでは、階層型ファイルシステムの機能はなく、さらにその前身となるCP/Mの慣習を引き継いで、コマンドのオプション指定にスラッシュを使っていました。バージョン2になって、階層型ファイルシステムの機能が入りましたが、スラッシュは既にコマンドのオプション指定に使われていたので使えず、代わりに逆向きのバックスラッシュを使ったのです。それが日本に入ってきて、¥で表示されることになりました。ちなみに、UNIXでは、コマンドのオプション指定にはハイフン(-)を使います。

OSとは何か

ファイルやフォルダの説明をしたところで、それらを実際に管理するプログラムであるOS(Operating System:オーエス)についても説明しておきます。

OSというのは、新聞報道などでは「基本ソフトウェア」と呼ばれたりする通り、コンピュータを動かすための基本的なソフトウェアです。なお、ソフトウェア(software)というのは要するにプログラムのことで、CPUやメモリといった物理的な装置であるハードウェア(hardware)と対比する意味でソフトウェアと呼びます。

OSには、大きく分けて、以下のふたつの機能があります。

コンピュータ資源を管理する

メモリやストレージやCPUといったコンピュータ資源を管理します。

メモリにしろストレージにしろ、各アプリケーションプログラム(後述しますが、メモ帳とかワープロとか)が好き勝手に読み書きしていてはぐちゃぐちゃになってしまいます。そこで、それらはOSが管理することにして、各アプリケーションプログラムは、「メモリがこれだけ欲しい」とか、「このパスのファイルを読みたい」とか、OSに対して要求を出す、という仕組みになっています。このページで説明したフォルダとかファイルとかの概念は、WindowsというOSが提供しているものです。

Windowsではたくさんのプログラムを同時に動かせますが、どのプログラムをいつどのCPU(コア)で動かすのかという、CPUの割り当てを決めているのもOSです。

OSの中でも、このような、コンピュータ資源の管理をする部分のことを、カーネル(kernel)と呼びます。

ユーザに対し、コンピュータを使うための機能を提供する

たとえば上で扱ったエクスプローラーというプログラムは、Windowsに付属しますし、OSの一部と言ってよいかと思います。エクスプローラーがなければファイルやフォルダの管理ができませんし、なにしろWindowsの場合、デスクトップもタスクバーも実はエクスプローラーが表示しています。これがなければWindowsは使い物にならないという点で、エクスプローラーがOSの一部ということに異論がある人は少ないと思います。

ただし、エクスプローラーは、カーネルから見れば、他のプログラムと特に変わりはありません。

では、Windowsに付属しているプログラムは全部OSの一部なのかといえば、そこは結構あいまいで、たとえばメモ帳はWindowsに付属していますが、あれはOSの一部ではなく、OSにおまけとしてついてくる普通のプログラム(アプリケーションプログラム)とみなす人が多いのではないかと思います。かつて、「インターネットエクスプローラーはOSの一部か否か」ということで裁判まで行われたことを見ても、このあたりの境界は結構あいまいです。

アプリケーションプログラム(application program)というのは、日本語では「応用プログラム」と呼んだりしますが、メモ帳やワープロのような、コンピュータを「応用」するためのプログラムです。

スマホなどには「アプリ」を入れますが、あの「アプリ」というのは、アプリケーションプログラムの略です。

公開日: 2021/06/20



前のページ | 次のページ | ひとつ上のページに戻る | トップページに戻る