Macintosh Developer Online (MDOnline)


2001年9月4日発行号 - Vermont Recipesに新しい章



業界内で動きがいろいろ出てきましたが、HPのCompaq買収はかなり大きな話です。合併ということになっていますが、存続するのはHPという会社の方ですから、これは買収ですね。Compaqも、タンデムやDECを買収して巨大になったわけですが、さらにHPに飲み込まれるわけですから、あまりにダイナミックです。売り上げ高は1位のIBMに迫るわけですが、実際にそこまでの売り上げを買収後にも実現できるかと言うところが大きな鍵になるでしょうか。パソコン事業がもはや撤退しか残された手はないみたいに言われていたHPですが、Compaqを吸収したことでその点は解決が付くでしょう。PC製品はCompaqブランドを残すという手もあるわけですし、PDA関連もHPとしては欲しかった事業だと思います。プリンタ関連はHPの得意とするところです。不透明なのはソリューションビジネスです。CompaqがDECを買収した時にはDECのソリューションビジネスを得るという側面が言われていたと思うのですが、実際にCompaqの中でどれくらいの収益を上げているかと言うことは、あまり評価されていません。Compaqの一連の大形買収の成果がどれくらいのものだったのかを検証する前に買収されてしまったというところでしょうか。ただ、ソリューションビジネスは重複があったとしてもうまくやれる範囲でしょうから、確かに相乗効果はあるかもしれません。そう考えると、うまい組み合わせとも言えるかもしれません。一方、ゲートウエイやデルは規模縮小を余儀無くされていますが、違いは数年前からソリューションに力を入れているかどうかだと思います。もっとも、新興のPCメーカーと、汎用機からやってるメーカーとでは、ソリューションビジネスのパワーに大きく違いがあるのは明白だけに、IBM、HPはその意味で有利な立場に最初からあったわけです。数年前、これからはホームPCの時代が本格的に…と言っているときに、ソリューションビジネスを地味に広げていったメーカーが勝利しているという構図のような気がしますし、その傾向は今後も続くでしょう。いずれにしても大型機が花形ではなくなって久しいのですが、PCプラットフォームでは、パソコンあるいはWindowsなどのOSというものですらすでに花形でなくなっているような気がします。それに最初に気付いたのはIBMでしょうか。その意味では、ハードもOSも注目を浴びるアップルの市場は異彩を放っていると言えるかもしれません。
(新居雅行 msyk@mdonline.jp


Vermont Recipesの新しい章が公開、形式を限定したテキストフィールドの実現方法

Bill Cheeseman氏によるCocoaプログラミングの解説文書Vermont Recipesの5つ目がStepwise.comのサイトで公開された。今回はテキストフィールドで、書式を整えたテキストを扱う方法を説明している。CocoaではNSFormatterという抽象クラスがFoundationフレームワークに用意されている。これにより、数字や日付といった決められた形式のテキストデータだけをテキストフィールドで扱うことができるようになっている。こうしたクラスを利用して、数値、あるいは電話番号だけを扱うといったテキストフィールドを実現する方法が、非常に詳しく説明されている。Objective-CでCocoaの学習をしている人には、ちょっと長いけどていねいに説明されているだけに必読のドキュメントと言えるだろう。

関連リンク:Vermont Recipes 5 - Formatting Text Fields
カテゴリ:サードパーティの開発資料, Cocoa


コントロール類のライブラリであるTools ProがMac OS X対応を前に、Classic版のソースを公開

Water’s Edge Softwareは、数多くの種類のコントロールやウインドウ、ダイアログボックスを利用できるライブラリの「Tools Plus Pro libraries + framework」や「SuperCDEFs」を公開しているが、現在のバージョンのVer.5のソースを公開する。なお、Mac OS Xに対応したTools Plus 6を2001年9月末にリリースする予定となっている。Tools Pro 5やSuperCDEFsはClassic対応となっており、Pascalで記述されたコードである。コンパイルはTHINK Pascal 4.0.2あるいはCodeWarrior 10にパッチを当てたものを使うとなっているため、ソースコードの利用についてはあまり現実的ではないとは思われるが、コントロールをMac OSで実現する手法などは情報として得られるだろう。Tools Proは、Mac OSでサポートされていないさまざまな形式のコントロールを利用可能なライブラリで、C/C++からの利用が可能となっている。同社のライブラリは、Mac OSのコントロール類が基本的なものに限られていた時代では重宝されていたが、Appearance ManagerやControl Managerの改定によって、Mac OS標準のものとの差が縮まってしまっている。Mac OS Xに向けて、どういったコントロールを提供するのかは注目したいところだ。Tools Pro 5の価格は$199だが、Pro 6の発売までに間に購入した場合には、Pro 6へのフリーアップグレードが可能となっている。

関連リンク:Water’s Edge Software
カテゴリ:ライブラリ


Browsing Mac OS X》“ルートになってファイルを変更する”ってなんのことでどうすればいい?(1)

Mac OS Xはよく言われているように、コア部分はUNIXである。UNIXはもともとマルチユーザでの利用を可能にしているものであって、OSのさまざまなリソース、たとえばアプリケーションを起動してメモリを使うとか、ディスクをファイルやフォルダを使うといった場合に、「誰が使うのか」ということを明確にする必要があるシステムなのである。誰なのかを特定するのが「ユーザ」と呼ばれるものであるが、「アカウント」などとも呼ばれる。また、OSのさまざまなリソース類に対して、誰が使っていいのかということも規定できるようになっている。そうして、複数のユーザ利用に対する基本的なセキュリティが確保されているというわけだ。こうした考え方は、Mac OSには基本的にはなかった。AppleShare IPだとか、マルチユーザ機能を使うといくらかは体験できたかもしれないが、OS自体にユーザという考え方が薄かったのである。だからこそ、使いやすさもあったが、逆にセキュリティ面での管理のやり方も難しくなる場合があった。
UNIXがエンジニアを中心に使われている時代は、「きちんと勉強しろ」とかいったことがまかり通っていた。だがインターネットがこれだけ普及すると、UNIXを知らない人でもホームぺージを作るようになった。もちろん、単なるホームページを作るくらいないらUNIXの知識はいらないが、CGIを使いたいというユーザが増えてくる。CGIはある意味ではUNIXあるいはサーバOSの世界に入り込むわけで、おそらく人気のCGIプログラムをフリーで公開している人は、「常識的」であるはずのことがすっかり知らない利用者のサポートにうんざりしたこともあるのじゃないだろうか。次第に、「とにかくこうしなさい」という方針でCGIのインストール方法が掲載され、今ではUNIXのことは何も知らないでもCGIを使えるようにしているのが一般的な路線ではないだろうか。このことは、ユーザ、アクセス権、実行権限とかいったものは、一般的なユーザ層にはそう簡単には理解してもらえない事柄なのだということを学習したことになる。
しかしながら、Mac OS XにはコアOSにUNIXが稼動するようになり、内部的にはユーザというものをどうしても扱わないといけなくなった。そしてどのようにMac OS Xはそうした点をカバーするのかということに大きく注目したものだ。利用者がユーザを意識しないといけないのか、そうじゃないのか…2001年3月にリリースされた正式版は、インストールの時には確かに初期アカウントの登録が必要になるものの、それ以外の場面ではほとんど意識はしなくても使えるような配慮があった。その点では一般ユーザ向けOSの要件はかなりいい具合にクリアされていると言えるだろう。ただし、初期アカウントとそのときに設定したパスワードは普段は知らなくもいいけど、少しシステムに深く入ろうと思ったら必ず必要なので、メモしておくなどの処置は必ずしておいてもらいたい。
ちなみに気の早いMacユーザは、ルートというものの存在を知り、自由にMac OS Xを使うにはルートにならないといけないという早とちりをしたと思うが、普通にアプリケーションを使って文書作成やグラフィックス、インターネット利用をする上ではそんな必要はまったくない。インストーラで設定したアカウントのユーザとして自動ログインされた状態をそのまま使う上でまずもって問題は出ないと思ってよい。
このルートというのは、実は既登録のアカウントなのである。Mac OS Xに自動的にrootといアカウントが登録されている。rootユーザだと制約無しになんでもできる。言い換えれば、アクセス権として設定された制約を無視して作業ができると考えればよい。おそらく世の中のUNIXはすべてrootアカウントは存在すると思う。ディスクのフォルダの階層構造は、木の枝分かれ的になっているが、そのいちばん最初の部分は「ルート」と呼ばれる。一般ユーザはユーザのホームフォルダ(ディレクトリ)以下が自由になるのに対して、ディスク全体を自由にできるという意味でルートと名前が付いたという話をどこかで聞いたことがある。rootユーザはシステム全体の管理のためには必要な機能である。
LinuxやFreeBSDでは、rootとしてシステムを使うには、rootとしていきなりログインをするというのは通常はマシンに繋がれているキーボードとディスプレイでログインするときだけで、ネットワークからログインしているときにはそうした方法は一般にはとれなくなっている。そのため、まず「ルートになることができるアカウント」というもので一旦ログインをする。そのアカウントは、wheelというグループ(ユーザを分類するもの)に所属させてあるアカウントである。そして、ログインをしてから「su」というコマンドを入れて、さらにrootのパスワードを入れて、rootになるという手続きを踏む。その意味では、ネットワークからのログインでrootになるには、2重のパスワード保護がかかっているとも言えるだろう。

Mac OS Xも同じようになっているかというと、そうではない。インストールした直後の状態では、rootユーザにはなれないようになっている。ログインもできなければ、suコマンドでルートになることもできない。しかしながら、それではある意味不便ではあるので、「sudo」コマンドを使う方法を用意している。このsudoコマンドは、引数に指定したコマンドを、一瞬(というかコマンドを実行する上で)rootになって実行するというものだ。sudoの後に、インストールする時に設定したログインをしている自分のアカウントのパスワードの入力が必要になる。しかしながら、そうすることで、rootとしてコマンドを実行できる。もちろん、Terminalを起動して、そこでsudoコマンドを入れるのである。
なお、これだと、ルートになって実行しないといけないコマンドがたくさんある場合には不便だ。だから、suコマンドでルートになることはできるが、NetInfo Managerを使ってシステムの設定を変える必要がある。この方法については、MDOnlineで配信した以下の記事を参照してもらいたい。

2001/4/5●Browsing Mac OS X》アカウントとルートについて、あえてルートになる必要はない
2001/4/6●Browsing Mac OS X》ルート関連記事の追加情報、ルートが無効でもsudoは使えるなど

もし、誰でも簡単にルートになることができるのであれば、間違えてルートになり、システム管理上、重大な損傷を起こしてしまう可能性は高い。だけど、Mac OS Xのようなやり方だと、間違えてルートになることはまずないだろう。それなりに知った上でルートになるというのが一般的だと思われる。つまりは自然な意味でのガードがかかっていると言えるわけだ。
(続く)

カテゴリ:ユーザ管理, Browsing Mac OS X


Browsing Mac OS X》“ルートになってファイルを変更する”ってなんのことでどうすればいい?(2)

アカウントに関する説明が長くなったが、本題に入ろう。Mac OS Xでは、システムの設定は「システム環境設定」を行うなど、基本的には通常の利用でできるようになっている。しかしながら、いくつかの設定はどうしても、通常の利用ではできない。たとえば、ネットワーク設定に関する重要な設定が、/etc/hostconfigというテキストファイルに記載されている。このファイルを書き直すには、rootの権限が必要なのである(参照は誰でもできる)。
今までのMDOnlineの記事でも、「ルート権限を得て/etc/hostconfigを修正し…」などと一言で済ませていることも多いが、おそらくアカウントのことなどの詳細を知らないとここで何のことか分からなくなるだろう。これまでに説明してきたことを踏まえて、この/etc/hostconfigを編集する方法を説明したいが、まず大きく分けて、Terminalで行う方法と、テキストエディタを使う方法の2つがある。Terminalを使う方法は、他のUNIXと同様、コンソールで動くエディタを使う方法であり、Mac OS X独特の方法ではない。たとえば、suコマンドでルートになっておき、その後、viやpicoというコマンドで、エディタを起動する。一般には、ファイルのあるディレクトリをカレントディレクトリにしておいて、viやpicoに続いてファイル名を入力する。つまり、Terminalで、su→パスワード入力→cd /etc→pico hostconfig、という具合にコマンドを入力するというわけである。
viについては、以前から使っていて慣れている方には、もちろんかまわないが、やっぱりいちいちコマンドを入れてはエディットを行うというのは、通常のエディタに慣れてしまうとかなり面倒くさい。むしろ、一般的なエディタと同じように使いたいのなら、picoをお勧めする。control+O、そしてreturnキーを押すことで上書き保存ができ、control+Xでpicoを終了できることを知っておけばとりあえず使える。あとは矢印キーでカーソルを動かし、キータイプや削除などを行えばいいというわけである。

一方、Mac OS Xに付属するTextEditを使って、ルート権限が必要な編集作業を行うには、一般的には次のように作業する。まず、Terminalを起動して、「sudo open /Applications/TextEdit.app」とコマンド入力を行う。その後、求められたら、ログインしているアカウントのパスワードを入力する。すると、TextEditが起動する。そこで「ファイル」メニューから「開く」を選択して、ダイアログボックスで開きたいファイルを指定する。もちろん、ここで見えているファイルは普通に作業すればいいが、/etcディレクトリのファイルは見えていない。その場合は、「移動先」にパス名を記述してしまえばよい。

◇開くファイルのパス名を記述する
 

「移動先」にたとえば「/etc」と記載すると、etcディレクトリの内容が一覧できるなど、通常は見えていないディレクトリでも移動先に記述すれば参照できるようになるのである。「移動先」にパスを含むファイル名を記述するとそのファイルを開く。
さらに開くファイルが分かっているのであれば、TerminalでTextEditを起動する時に、「sudo open -a /Applications/TextEdit.app /etc/hostconfig」のようにコマンドを入れてもよい。-aの後にアプリケーションへのパスを書き、最後に開くファイルのパスを記述する。
開いたファイルは、通常通り、TextEditで編集を行って保存をすればよい。ProcessViewerなどで確認してもらいたいが、TextEditは、ユーザrootとして実行しているため、基本的にはアクセス権に関係なくファイルの書き込みもできてしまう(もっともhostconfigはファイルの所有者はrootである)。終了も通常通り行えばよい。

root権限でないと編集できないファイルも、以上のような仕組みを知っておき、その上でいずれかの方法を使って行えばとりあえず良いということだ。もちろん、Terminalを使う方法はUNIXに慣れている方は十分御存じだろうが、TextEditを使う方法も知っておくと、作業自体は楽だ。特に複雑に編集作業をするとなるとやっぱりTextEditなどのエディタを使うのがやりやすい。ただ、バージョンアップを重ねるごとに、さらにこうしたことはしなくてもいいようになる可能性も出てくることも、頭の片隅に入れておこう。

カテゴリ:ユーザ管理, Browsing Mac OS X