オープンソースの利用

弘前学院 聖愛高等学校 安達 順一

構成

オープンソースを発展させよう

オープンソースを使おう

改良・普及活動に参加しよう

データ形式の標準化を考えるのは教育の務め

本校の情報教育システム

サーバー

クライアント

運用のために

オープンソースを発展させよう

オープンソースとは

ソースコードを公開して、プログラムを自由に使用・修正・配布できるようにする

無料で使えればオープンソースか…NO

ソースがオープンなら「オープンソース」か…NO

ソフトウェアの作者がソースを公開しお互いに自由に利用し合うことをみとめ、なおかつ作者自身が公開するメリットとソフトの品質を確保し、より優れたソフトが多く作られるという社会的に好ましい状態を実現させたい。というのがオープンソースの基本的な考え方である。

現在の所インターネットを媒体にした仲間を作って協同して改良を重ねるという形態をとるものが多い。

このような開発形態や成果のソフトをオープンソースと呼んでいる。またソフトはオープンソースソフトウェアと呼ばれることもある。

このような理解に落ち着くまでにはさまざまな議論があり、いまでも一枚岩ではないが基本的な考え方はそれほど外れることはない。

オープンソース化によりソフトウェアが普及しても、作者に直接的なメリットは無い。しかし、自分が作りたくて作っているものが多くの人に使われ、感謝もされ、よい提案がなされてより洗練されたり、名声が上がることが期待される。企業の中のプログラマーはどんなによいアイディアを持っても売れないソフトは書くことができないので、これは大きな動機になりうる。さらに、雇用に有利になったりサポートや教育・著作などで収入を得る可能性もある。

せっかく無料なのだから

2000年度にコンピュータシステムを入れ替えたときに予算の不足からサーバーをLINUXにし、SAMBAというソフトウェアでWindowsNTサーバーの代わりをさせました。クライアントはWindowsMeでKyPlotというフリーソフト(シェアウェアになる前)で表計算、AL-Mailというシェアウェア(学校で使用する時は送金免除)をメールソフトに、K2Editorというフリーソフトのエディタを使いました。

サーバーのハードも古いPCを利用したのでハードディスクを増設したぐらいで済んでいる(当時は生徒の個別領域を全部で20GB用意した)。

これだけ徹底してお金をかけないサーバーで800人規模のユーザーを管理し、パスワードによる認証から移動ユーザープロファイルまでを実現したことは誇れることであると思っている。

当時はオープンソースという言葉はなく、無料のソフトを使って安く上げたとしかいえなかった。オープンソースという言葉には耳ざわりをよくする効果がある。

オープンソースをとりまく腹立たしい発言

オープンソースは使えるか(雑誌記事)
メーカー製ソフトは使えるか…と問うことはない。使えるものもあるし使えないものもあるのはどちらも同じ。apacheやbind,sendmail,Postfixの様にインターネットで日々お世話になっているソフトに失礼。
だからフリーソフトってのは嫌いなんだ(教科情報講習会講師)
画像処理のソフトは得意分野が限られていることが多いけどいくつぐらい使ってみましたか。善意で公開しているものに悪態をつくのはどうですかね。
Linux の TCO はWindoewsより5%〜20%高い(Microsoft)
TCO (total cost of ownership 総所有コスト) 大半は移行時にかかる研修費。住民税は高いけれど、引っ越しに費用を考えるとがかかるからという論法。住民税は毎年(バージョンアップごと)かかるということを計算しないなど都合のよい計算をしている。

参加するオープンソース

作る人も使う人もソフトウェアをよりよいものにしていくことに参加できるのがオープンソース。

授業に使用していて気づいた問題点を報告したり、質問したりしている。一般に親身にあつかってくれる。

生徒に対してこのようなコミュニティが存在することを紹介するのは大きな意義があると感じている。生徒全般の関心は今ひとつだが。

データ形式の標準化

独立行政法人 情報処理推進機構(IPA)が「学校教育現場におけるオープンソースソフトウェア活用に向けての実証実験」の報告書を7月19日に公開した。これによると、Linux専用パソコンを全国の9校に307台を導入し,生徒3089名が授業で使った実験の教師の評価。

学校での利用に適している    23.6%
不十分な点もあるが適している  45.5%
不十分な点が多く,検討を要する 27.3%
学校での利用には適していない   3.6%

この中で次のような課題が指摘されたとある。

  1. ウェブページではインターネットエクスプローラ(IE)でないと見えないページがある
  2. オフィス・スイートのデータ互換性が悪い
  3. 実社会ではExcelが利用されており,OpenOffice.orgを学んでも就職に役立たない
  4. マルチメディア・データの取り扱いに問題がある
  5. リムーバブル・メディアの取り扱いが難しい

1 ウェブページはOSが異なっても共通に使えるように考えられ、W3Cが標準化をしている。IEの寡占状態が続いているのでIEで見えることを基準にしがちだが、それは間違い。「IEでないと正しく見えないページがあるからWindowsを使うのが無難」ということで正常な市場競争がなくなり消費者が不利益を被る。IEは無料だがWindowsは高価。特に公的な機関がIEでなければ正常に見られないページを作るのは特定の企業を有利に扱うことになるのであってはならないこと。

教育の場ではなるべく標準に基づいて表示するブラウザがむしろふさわしい。現在ウェブページはレイアウトやデザインにスタイルシートを使うようになっているがIEはバグや未対応が多く、古いものになってしまっている。

2 ここでいっているオフィス・スイートとはもちろんマイクロソフト社のワードやエクセルを指すものだ。寡占状態になっているソフトを使うことでデータの交換が楽になる側面も確かにある。個々人が市場動向を見て多数派につくことは問題ないが、公的な性格を持つ学校が特定の企業のソフトウェアだけを取り扱い、推奨することは問題がある。文字コードが情報交換のために必要不可欠の社会基盤(インフラ)であるようにワープロ・表計算などのファイル形式も一企業に依存しないものがほしい。

現在はOpenOffice.orgというオープンソースのオフィス・スイートがあり、だれでもその形式のファイルを読むソフトを無料で手に入れられる。また、ファイル形式も公開されているので企業がその形式のファイルを読めるようにすることも可能だ。ワードやエクセルではそもそもデータ形式は非公開なのでこれを標準にすることは問題がある。それでもOpenOffice.orgはかなりの正確さでワードやエクセルのデータを読み書きできるようにはなっている。

プレインストールも増えたがワード・エクセルは別売りの商品。しかもかなり高価である。学校で練習したものを家でもと考えると家のコンピュータにもワード・エクセルを買いそろえなければならないが、OpenOffice.orgなら無料だ。しかもWindows,Linux,Mac,FreeBSDなどいろいろなOSで使用できる。ワード・エクセルならWindowsを将来的にも使い続けなければならない。値段の下がったPCの部品で一番効果なのがWindowsとなってしまっている。

3 実社会ではExcelが…。学校では表計算の考え方を教えるのが本来だが、就職戦略として考えるのはあってもよい。しかし、オープンソースが普及すれば逆の戦略もあり得る。安く済むなら学校にも企業にも得なことなのだが、問題はお役所である。

県の役所や職業安定所などから、いろいろな調査や報告をワードやエクセルのファイルでと要求される。

私はできるだけ「自分はワードやエクセルを使っていないのだけれど どうしてもその形式でないとだめですか」と聞くことにしている。 大抵は話が通じないのですが、わかってくれなくても 公的機関が特定の商用ソフトを使うことを強制する結果になるのは よくないという主張はしておきます。

でも、中にはいくつかのソフトをあげて認めてくれるところもあります。 そればかりか同じエクセルも表の項目の構成についても 必ずしも合わせなくてもいいといってくれるところもありました。

この研修会もワード・エクセル指定でした。でもネタにするつもりだったので抵抗せず、OpenOffice.orgで作って送りました。行間が狭くなっているのはそのせいです。連番を指定していない見出しに、ア・イ・ウの連番がつくこともあったようですが、これはワード同士でもバージョンが違うとあることのようです。

公開された標準のファイル形式を指定するか、メジャーなソフトをいくつかあげてこの中のどれかの形式で提出してくださいとするのが正しい。

複数の形式を認めると新たなことに追加人員を割くのは難しいという

これは一般企業に追加人員を割けと言っていることだ。公官庁は職員をたくさんの応募の中から有能なものを選べる立場にある。能力のある方が合わせるのが合理的。

なによりも公官庁が外部に特定の商用ソフトを使うことを強要することが問題とされているときに、仕事が増えるのでできないというのは、生活が苦しいものは泥棒をしても許されるというのに等しい。

また、従来は紙に記入されて提出されるデータを、 お役所で集計しデータ化していたわけですが、これを電子化すると お役所のやっていた入力部分を下々のものがやってあげていることにならないか。 だったらせめて2,3種類のフォーマットを認めてくれてもよいと思う。

というと、そうはうまくいっていなくて、一度印刷して入力し直しているというのも多い。といいます。これは自業自得です。

オープンソースは世界の流れ

ドイツなどではかなり普及しています。日本でも学校でLinuxクライアントが実験されたり、経済産業省がはIEでしか読めないページや,電子申請システムなどをなくす方向で動いています。

みんながOpenOffice.orgを使わなければならないというのではありません。一般企業が内部で使用するソフトウェアをワード・エクセルに統一するのもかまいません。でも公になるものについては一企業を有利にするような強要をしないということです。

個人的には標準のファイル形式があって、好みのソフトウェアを使って文書なりデータを作成できるというのが理想です。今のところ期待がもてるのはXMLです。

本校の情報教育システム

サーバーとクライアントの関係

当時(1999年)はクライアントはWindows以外考えられなかった。運用に必要なものを次のように考えた

認証
ユーザー名とパスワードでユーザーを特定し、設定や作成したファイルをユーザーごとに管理する。
移動ユーザプロファィル(windowsの用語だが…)
使用するコンピュータが違っても同じ環境で作業できる。(故障時や放課後のため)
ファイルサーバー
生徒の作成したデータをサーバーに保存すれば、サーバーさえ動いていれば課題を採点できる。課題の配布にも使える。
ウェブサーバ
ブラウザを教材提示装置として使用する。
メールサーバー
メールの実習をする。

サーバー

OS

Linuxを使っています。実験ではSlackware、本格稼働では Turbo Linux 4.2, MiracleLinux 1.3, RedHat 7.2, と変化しています。次世代としては Debian を用意しています。

印刷されたマニュアルとサポートが必要になった時のために購入したこともあります(当時2万円程度)。しかし、問題が起こるのがサポートの時間外でインターネットの検索で解決したりでサポートを受けたことがありません。販売しているものとの違いは日本語フォントなどサーバーには必須でない部分なので、知識があれば(度胸だけでも可)雑誌付録でも問題ないと考えています。

GUI(X-Windowシステム)を入れずにCUI(コマンドライン)で設定しています。これにより、能力の低いPCでも処理能力に余裕がでます。サーバー第1号は200MHz, 第2号は600MHzのCPUでどれもWindowsで使うのが力不足になってサーバーにしたというものです。ハードディスクだけは(特に生徒のデータを入れるものは)新調します。これで一度に80人の相手をして全く問題はありません。

CUIでやっているおかげで telnet(現在はssh)でリモートでメンテナンスできます。

業者はNetWaerを勧めていました。WindowsNTサーバーよりはよいと思いましたがかなり高価でした。この業者はNTサーバーを使うにはコツがいるといっていました。10台以上つながないこと。毎朝リセットすること。

認証・ファイルサーバー

samba を使っています。1997年に出版された「UNIX-Windowsネットワーキング」という本がすべての始まりでした。

sambaは基本的には自分をNTサーバーに見せかけるサーバーソフトで、教員系のネットワークにも設置している。本校の設定ではサーバー上にはshareという共有フォルダとユーザー名がついた個人専用フォルダの2つだけが見える。この他に\\servername\servicename というUNC ( Universal Naming Convention ) 形式の名前をリンク先にするショートカットを作る方法もある。アクセスはユーザー名とパスワードで管理されており、shareは教員グループ、個人専用は本人のみが可能となっている。

生徒用もファイルサーバーとしては同様だが、さらにログオン時の認証をおこない、ログオン時の自動実行プログラムの実行と、移動プロファイル(生徒の設定データのコピー)を実現させている。

ウェブサーバー

apache を動かしている。教材提示装置として使用する他、生徒のウェブページ作成実習にも使用している。http://www.st.seiai.ed.jp/~username/ でアクセスできる。

CGIを使ってフォームでメールを出してもらうようなページを作ることが可能。

PHP を動かすことが可能。将来的にはデータベースの実習を計画している。

メールサーバー

かつては sendmail 現在は postfix を使っている。メール送受・添付ファイルの実習に使用。

グローバルアドレスが必要なことと、ウイルスやスパムの心配から設定により校内に限るようにしている。

DNSサーバー

Bind 8系 を使用。

校内専用に設定している。ウェブへのアクセス、メールなどでインターネットと同様にドメイン名を使用できるようにするため。

プロキシーサーバー

squidを使用。生徒機からはこのプロキシーを使用しないとインターネットにアクセスできない様になっている。このサーバーの設定を変更することにより、教室ごとにインターネットへの接続を制御できるようにしている。

容量制限

quotaを使用してユーザーごとにサーバー上のディスクの使用量の上限を設けることができる。現在は1人90MBにしてあるが、特殊なことをしなければ十分。ただしブラウザのキャッシュを含めないようにする必要がある。(含めて一人150MBにしても十分と思う。1学期終了時点では全体で8GB程度。1,2年494名、3年選択92名)

ついでにインターネット接続

NAT+ を装備した所謂ブロードバンドルーターでの接続である。この値段でできるのだから、いまどきDNSやウェブサーバーを自前で管理する必要はないと考える。

固定IPアドレスも持たないので外部から接続してのメンテナンスやデータの取り寄せはできないが、それなりのセキュリティ上の危険を伴うので今の状態でよいと考えている。

ウェブページの更新は校内外からできる。

メールはホスティング先にリモート接続をしてアカウントの加除は簡単にできる。現在教職員用に54件、校内組織用に6件登録してある。もちろん校内外からメールを送受することが可能だ。

さすがに授業で全員が異なるサイトにアクセスすると遅いと感ずるが、教材として指定されたサイトへのアクセスならプロキシーが校内にあるのでとても快適になる。

授業のように一斉でなければ多人数が同時にブラウザを利用していても十分な速度はこの程度でも確保できる。ただし、動画や大きいファイルの取り寄せが重なると苦しいだろう。

項目 月額
回線(ADSL 8M) 3,297
接続料(ISP)
コンテンツフィルター付き
1,200
ドメイン管理料 438
ホスティング
Web:100MB
mail:100ac,200MB
3,990
8,925

クライアント

Windows ME。ユーザー名・パスワードで認証の上、移動ユーザープロファイルでユーザーごとの設定をどの機械からログオンしても確保している。

システムポリシーをかけて、ネットワークの設定とコントロールパネルの一部は生徒が変更できないようにしている。システムポリシーはシステムポリシーエディタで設定したものを認証サーバーの決められたところに置いておくことで有効になる。Windows95のリソースキットに含まれているエディタをWindows98上で使っている。ここ何年か設定を変えていないのでWindowsMeや2000でエディタが使えるかは不明だが、設定されるクライアントはMeでも大丈夫だ。

壁紙やウインドウの大きさ、辞書の設定はユーザープロファイルの項目なのでユーザーごとに個別に変更できる。壁紙をかえることは教えないが自然に広まる。同じ機械を使う他の生徒に影響を与えることはない。

ただし、NT系と違ってMeではソフトのインストールが生徒にもできてしまう。ファイルの種類の関係づけはユーザープロファイルでないので注意が必要。(めったに問題にならない)

マイドキュメントはユーザープロファイルに含めていない。その代わりにファイルサーバーから提供される個人専用フォルダをネットワークドライブとして接続し、そのドライブをマイドキュメントに指定する。生徒がマイドキュメントに保存すれば、ファイルサーバーに保存したことになる。NTサーバーを使用している某工業系公立高校では生徒はサーバーの中から自分のフォルダを選んで保存していた。

ログオンした時にシステムポリシーのデータと同じ所にlogon.batというバッチファイルがあるとそれを実行することになっている。ネットワークドライブの接続と時刻の同期はこれでおこなっている。

logon.bat ではMS-DOSの時代の作業しかできない。WSH を使うとjavascriptまたはvbscriptを使うことができる。これだとユーザー名をスクリプトの中に含めたり、レジストリを設定したり、デスクトップなどの場所を特定できるので高度な処理ができる。デスクトップに新たなショートカットを作ったり、ローカルなハードディスクに小さなファイルをコピーしたりと、クライアント機のメンテナンスを自動的におこなうことができる。

クライアントから使うソフト

firefox

Mozilla.orgのブラウザ。IEよりも便利で安全なので教材提示、ウェブページ実習で常用している。非力な機械でも割合に高速に立ち上がる。

現在さかんに改良されている。サーバーにインストールして80台のクライアントから使っているが快適に使えている。

インストールの方法はネットワークドライブの接続をしたshareのドライブを指定してインストールし、ショートカットをWSHなどで生徒のデスクトップなどに配布すればよい。

Windows版の他、Linux版、Mac版もある。

thunderbird

Mozilla.orgのメールソフト。Outlook Expressより安全な上、スパムフィルターもついている。htmlメールも使用できるが、デフォルトはお行儀よくプレーンテキスト。

これも現在さかんに改良されている。サーバーにインストールして80台のクライアントから使っているが快適に使えている。

インストールの方法はfirefoxとおなじ。ただし保存したメールがデフォルトでプロファイル内に保存される。Meだと他人に読まれる可能性があるので直接サーバーの個人専用フォルダに保存するよう設定してある。このためにかなりの実験をおこなって調べた。

Windows版の他、Linux版、Mac版もある。

OpenOffice.org

同名の団体が作っているオフィス・スイート。ワープロ、表計算、プレゼンテーション、図形描画(ほぼ花子)、(数式エディタ機能、データーベース接続機能、PDF出力機能あり)のセット。Windows, Linux, Solaris, FreeBSD, Mac 用のソフトがあり、データは相互に使える。MSオフィス(ワード・エクセル)とのデータ互換あり。

現在バージョンは1.1.4。近く2.0がでる。

操作方法は全く同じではないが、特に表計算はほとんど違和感はない。

これもサーバーインストールできるが、起動時にたくさんのプログラムファイルを開くので数人以上のユーザーが同時に起動すると2分ぐらい待たされる。各個のコンピュータにインストールした方がいいだろう。ただし複数のユーザーで使うのでマルチユーザーインストールという方法で管理者がインストールし、各ユーザーは後で個別インストールの必要がある。個別インストールは様々な設定ファイルをプロファイル領域にコピーするだけなのですぐに終わる。これは生徒にやらせている。

K2Editor

エディタ。これはオープンソースではありません。ソースは公開していますが日本語でいうフリーソフト(無料ソフト)です。

入力練習、ウェブページ作成実習で使用しています。見出し部分やタブを色づけしてくれるのでhtmlの作成には重宝します。キーボードマクロや正規表現の使える置換機能など奥の深いソフトです。

サーバーにインストールして使用しています。このソフトはユーザープロファイルをプログラム本体のあるフォルダにユーザー名のフォルダを作って保存しますから、サーバーのフォルダには書き込みを許可しておく必要があります。また卒業などで使わなくなったものは削除する必要があります。

ラッパープログラムがあります。これを使ってネットワークドライブとして接続していないサーバーのフォルダに置いたプログラムを起動することができます。おまけ的な機能ですが、なかなか面白いソフトです。

十進BASIC

プログラミング言語。これはオープンソースではありません。日本語でいうフリーソフト(無料ソフト)です。

もともと数学の図形(写像)などを念頭にJISに準拠した文法でつくったもの。十進法で計算するので二進法特有の誤差がでない。有効桁数が普通で16桁、指定すると1000桁までなので、暗号などの授業もできそうだ。複素数もそのまま扱うモードもります。

再帰的なプログラムも組める本格的なもの。最近Linux版も作られました。

Java

プログラミング言語。これはオープンソースではありません。でも無料で使えます。

一度プログラムすれば、Windows上でもLinux上でも動くソフトが作れるという、今はやりの言語です。

Windows版、Linux版、Solaris版もあります。

Linuxクライアントに向けて

K2Editor以外はすべて同じソフトがLinux版としてあります。これは意図的に準備してきたものです。最近のLinuxはサーバーとしてだけでなくデスクトップPCとしても使用できる環境を獲得してきました。VineLinux3.1では学校のキャノンのプリンタを使うことができました。実際にOpenOfficeを使って文書を作成して印刷もしました。USBメモリも使えます。操作性もWindowsに極めて近く、エディタはviと思っている私は驚いています。

問題は日本語の入力部分とフォントですが、教育目的のレベルであれば問題ないでしょう。

NFSを使ってWindowsクライアントの時にユーザーの個人専用フォルダをLinuxでも個人専用フォルダとして使うことができます。ダブルインストールしてどちらも使用できるようにするつもりでいます。

運用のために

partimage

Linux上のバックアップソフト。オープンソース。

ひとつのPCにOSと必要なアプリケーションソフトを入れて、そのパーティション以外にあるLinux(CD-ROMなど)で起動し、パーティションごとひとつのファイルに書き出す。データは別のパーティションや独自のプロトコルやnfs経由でサーバーに保存する。

次のPCを同様に書き込むパーティション以外のLinuxで起動し、パーティションを下記戻すかたちでコピーをする。1GB程度のデータになり、数分で書き戻すことができる。(CPUとハードディスクの速さによる)

ユーザーの登録

パスワードを自動生成する。(Windows上の自作BASIC)

ユーザー名を生徒名から決める(2005年入学Aクラスの山田花子ならa5hanakoなど)

自作のperlスクリプトでパスワードを含め登録する。

perlはLinuxでは事実上システムと一体化しているスクリプト言語。オープンソース。

このスクリプトは現在のところlinuxへの登録、sambaへの登録、ひな形ユーザーのプロファイルのコピー、容量制限の設定を含んでいる。

生徒へはユーザー名とパスワードを書いた紙を渡して暗記することを宿題とする。

課題の収集

サーバーの生徒の個人専用フォルダから課題を収集するための自作perlスクリプト

ファイル名を指定して生徒毎のフォルダにコピーするタイプと、課題毎にファイル名をユーザー名に変えて課題毎のフォルダにコピーするタイプ、課題ファイルの有無を一覧表に作るタイプなどを作ってきた。

オープンソースを使う教育上の理由

生徒が家のコンピュータにもインストールして使える

情報の共有の観点から"データの標準化"に目を向けさせることができる

オープンソースコミュニティの共同作業の仕方や意志決定の方法などよりよいものを作るための運営の仕方から共同体形成のあり方を学ぶことはできないか

ソースを学ぶことができる

特定の企業のソフトウェアの使用法をそれしか選択肢がないように教えるの公平の観点から正しいか

−特定メーカの製品のファイル形式を指定することでその製品の購入を促すことはいいのか


安達 順一
http://www.seiai.ed.jp/
Last update: