ファイルストリーム
http://www.geocities.jp/ky_webid/cpp/library/033.html
残念ながら私の知識では回答することはできませんが、調べてみると面白そうな pdf を見つけたのでリンクを貼っておきます。
"Linuxカーネル2.4の設計と実装。ファイルシステム(後編)
http://www.mars.dti.ne.jp/~otk/bak/200105-linuxkernel24.pdf
この pdf の、図14のあたりにファイルのオープンやクローズについても書かれています。斜め読みしただけですが、参考になると思います。
あとは「C言語によるUNIXシステムプログラミング入門」という本が参考になるとおもいます。fopen などの関数の核になる、よりハードウェアに近い関数(低水準入出力関数)やファイルポインタが指しているもの(利用者ファイル記述子表)などについての説明もあります。
私が回答できるのはこれだけですので、参考程度に思ってください。
面白い質問だと思うので、私も他の方の回答を楽しみにしています。
基本的にプログラムは直接メディアにアクセスしてデータを読み書きするのではなくて、OS にお伺いを立てて行います。
OS は「ファイルオープンしたいんですけどー」という申請を受けて、そのファイルがシステム的に保護されてないかとか、他のプログラムから「独占的に使いたいから他のプログラムに使わせちゃダメ」とか言われてないかとか調べて、使ってもオーケーならファイルハンドルを渡します。
プログラムはファイルを使い終わったら OS に「終わったよー」と申請してクローズします。
http://q.hatena.ne.jp
コンピュータの世界ではレイヤーという考え方が基本にあります。
このレイヤーをごっちゃにしてコンピュータを理解することはできません。
例えば「ファイルを開く」はOSがデバイスドライバを使って下層のBIOSにデータの読み出しを指示します。BIOSは物理レイヤーからデータを取り出して上層のOSに返します。OSはもらったデータを上層のアプリケーションレイヤーに渡します。という手順になります。
OSには、ファイルシステムという仕組みがあります。WindowsではNTFSなどがファイルシステムです。これはファイルの目次情報と、ディスク上のデータのアドレスの番地情報の橋渡しをします。ディスク上では単なる01の磁気ですが、ファイルシステムによってファイルごとの意味のある情報になり、BIOSからOSに渡されてファイルという論理的な情報になります。
http://blog.livedoor.jp/papavolvol/
URLは私のブログです。今回の回答と直接の関連ではありませんが、ご縁がありましたら一度お越しくださいね。
コンピュータの中でOPEN、CLOSEと言われると確かに現在ではイメージしづらいかも知れません。
元々の発想や、旧来のコンピュータを考えると逆にイメージしやすいと考えます。
ファイルってご存知ですかね。コンピュータのではありません。キングやコクヨといった事務用品メーカの作っているファイルです。後、フォルダも。
キングジム キングファイルG A4タテ500枚 グレー 975GX
A4-SIF-B 個別フォルダーエコノミータイプA4青10冊入
コンピュータの黎明期というか、ノイマン以前の事務機械ってファイルとかバインダといった紙書類の保管システムの更新として期待されていたものですから、その当時の用語が残っています。
さらに初期のコンピュータだとメモリやDASDといった外部記憶媒体の容量が小さかったから差替えながら使っていましたからね。用語をそのまま使っていても違和感を感じなかったのでしょう。
実際にファイルをOpenするということは、パソコンだとFATなどを参照してハードディスク上のデータを特定してメモリに展開する。closeはメモリのロックを外して開放するといった動作になります。
http://support.microsoft.com/kb/100108/ja