CHANGES IN THE LINUX v0.95a ROOT DISKETTE
今回は 'CHANGES IN THE LINUX v0.95a ROOT DISKETTE' という文章を和訳してみました。linux-0.95a と同日の 1992年3月17日に公開された文章です。
この文章は、Linus Torvalds 氏ではなく、Jim Winstead Jr. 氏が公開しました。Linux についての文章は、(NetNews のやりとり等を除いて) これまで Linus Torvalds 氏が書いた物でした。別の方が書かれた文章という事で、分業化が進んでいる事が分かります。また、これまで語られる事の少なかった root-disk について詳しく書かれています。
現在まで続く Linux の distribution の基礎となる文章だと思います。
前回 の RELNOTE-0.95a の和訳へのリンクです。
使用したサービス
RELNOTES-0.95a の時と同様に、以下のサービスを使用して和訳しました。
Shaper : 英文の改行・空白を除去する
DeepL 翻訳 : 高精度な翻訳ツール
Google 翻訳 : Google の翻訳サイト
手順も変更ありません。
- 段落毎に Shaper で空白を除去
- 主に DeepL 翻訳、副に Google 翻訳を使用
- 元の英文と比較して内容を確認
- 最終的に括弧等の記号の全角 -> 半角、用語の統一、レイアウトなどを調整
という手順です。
CHANGES IN THE LINUX v0.95a ROOT DISKETTE 和訳
原文は下記のリンク先にあります。リンクの名称は RELNOTES-0.95a となっていますが中身は root-disk についての説明です。
全文について和訳しました。メールアドレスは、現在も使われているか分かりませんので、ドメインを domainname に変更しました
原文の整形が少々特殊ですので、スペース / タブを適宜調整しました。
Please FIRST read the RELNOTES-0.95 file, then read this. This is only
a listing of the differences between this release and the last. [-mkj]
CHANGES IN THE LINUX v0.95a ROOT DISKETTE
Jim Winstead Jr. - March 17, 1992
This file mostly contains info about the changes in the root diskette
from Linux v0.95/0.12 to Linux v0.95a.
まず、RELNOTES-0.95 ファイルを読んでから、これを読んでください。 これはこのリリースと前回のリリースの相違点のリストでしかありません。[-mkj]
LINUX v0.95a ルートディスクの変更点
Jim Winstead Jr. - March 17, 1992
このファイルの大部分は、Linux v0.95 / 0.12から Linux v0.95aへのルートディスケットの変更に関する情報を含んでいます。
先ずは RELNOTES-0.95 を先に読んでと書かれています。Linux v0.95 / v0.12 の root-disk からの変更に関する情報です。
rootimage-0.97.Z までは見つけたのですが、残念ながら rootimage-0.95a.Z は見つけられませんでした。bootimage であれば、もう少し古い bootimage-0.11.Z までは見つけたのですが。
折角なので、どうやって中身を見ようか思案中です。単純な loopback mount ではダメでした。和訳が 0.97 に達するまでの間に、もう少し調べてみます。
CHANGES
With the release of Linux v0.95a, the maintenance of the root diskette
has been assumed by Jim Winstead Jr. (jwinstea@domainname).
This means there are a few large changes between the Linux 0.95 and
0.12 root floppies and the Linux 0.95a root floppy. These are
detailed (as much as I remember them) below:
- 'bash' has been replaced with 'ash', the BSD 4.3 /bin/sh. This
freed up nearly 200k on the root floppy. However, there are
some problems with 'ash' that haven't been resolved:
- sometimes the backspace key will not work on a virtual
console. I've found that it usually works on all _but_ one
console, so this is only a minor hinderance.
- 'ash 'supports BSD-style job control, and this has not yet been
adapted to Linux's more POSIXish job control. This means
that 'ash' does not yet support job control, but it's being
worked upon.
- 'tar' and 'compress' are back on the root floppy. 'tar' is
compressed, and both utilities are in /bin.
変更点
Linux v0.95a のリリースに伴い、ルートフロッピーのメンテナンスは Jim Winstead Jr. (jwinstea@domainname) に引き継がれました。つまり、Linux 0.95 および 0.12 のルートフロッピーと Linux 0.95a のルートフロッピーとの間には、いくつかの大きな変更があるということです。以下、(覚えている範囲で) 詳しく説明します :
- 'bash' は 'ash'、BSD 4.3 /bin/sh に置き換えられました。これにより、ルートフロッピーは 200k 近く解放されました。しかし、'ash' にはまだ解決されていない問題がいくつかあります :
- バーチャルコンソールでバックスペースキーが効かないことがあります。通常、1つのコンソールを除いたすべてのコンソールで機能することが判明しましたので、これは些細な障害に過ぎません。
- 'ash' は BSD スタイルのジョブ制御をサポートしており、これはまだ Linux より POSIX 的なジョブ制御には適応していません。つまり、'ash' はまだジョブ制御をサポートしていませんが、現在作業中です。
- 'tar' と 'compress' がルートフロッピーに戻りました。'tar' は圧縮され、両方のユーティリティは /bin にあります。
フロッピーの root image のメンテナンスが Linus Torvalds 氏から Jim Winstead Jr. 氏に引き継がれた事が明記されています。Linus Torvalds 氏は Linux kernel の開発に専念し、その周辺環境の rootimage のメンテナンスは、これからは Jim Winstead Jr. 氏が行う事になりました。
変更点その1です。
- linux-0.95 で Bash のバイナリが大きくなり、boot に要する時間が長くなった事、compress や tar が root フロッピーに入らなくなった事が書かれていました。その対策として、Bash の代わりに BSD 4.3 の ash を使うように変更しました。200 kB の削減というのは当時のフロッピーディスクとしては大きな削減です。
- ただし不具合もあって、バックスペースキーが効かない事と、Linux の POSIX ジョブ制御には適用していないようです。(当時としては些細な障害なのでしょう)
- 'tar' と 'compress' が rootimage に戻りました。使う頻度の高いコマンドが rootimage に戻った事、これが優先順位の高いメリットだったのでしょう。
- 'pfdisk', a disk partitioner, was added to the root floppy.
This makes it (almost) possible to install Linux on a machine
without looking at another OS.
- the file pager 'more' has been added to the floppy. This was
added because of the addition of some documentation files on
the root floppy.
- 'cat' has been added to /bin.
- many utilities have been moved from /usr/bin to /bin, to
conform to the Linux Directory Structure Standard (v1.0).
These utilities are ones that are 'vital to the restoration of
other file systems in the case of a corrupting crash.'
- 'init' and 'update' have been moved to /etc from /bin. This
was done because neither program should be executed from the
command line by any user, including root. (That means don't
put /etc in your PATH!) This has been a matter of some
controversy, but this is how it will stand until the Linux
Standards mailing list/committee decides otherwise.
- tty64, tty65, etc, have been renamed to ttys1, ttys2, etc.
- the directory /INSTALL was added, which contains some
documentation, and three simple shell scripts to make
installing Linux on a hard drive partition easier. These are:
- 'mktree', which makes a directory tree on the specified
mounted device.
- 'mkdev' which creates the standard devices in the dev
directory of the specified mounted device
- 'install' which installs the programs on the root diskette
to the specified mounted device
These programs will normally be called with '<name> /mnt'.
- 'pfdisk' というディスクパーティショナーがルートフロッピーに追加されました。これにより、他の OS を意識することなく、Linux をマシンにインストールすることが (ほぼ) 可能になりました。
- ファイルページャー 'more' がフロッピーに追加されました。 これはルートフロッピーにいくつかのドキュメントファイルを追加したために追加されたものです。
- 'cat' が /bin に追加されました。
- Linux ディレクトリ構造標準 (v1.0) に準拠するため、多くのユーティリティが /usr/bin から /bin に移動しました。これらのユーティリティは "破壊的なクラッシュが発生した場合に、他のファイルシステムを復元するために不可欠" なものです。
- 'init' と 'update' が /bin から /etc に移動さ れました。これは、どちらのプログラムも、root を含むどのユーザーからもコマンドラインから実行されるべきではないからです。(つまり、/etc をあなたのPATH に置くなということです!) このことは、いくつかの論争になっていますが、Linux 標準メーリングリスト/委員会がそうでないと決定するまでは、このようになるでしょう。
- tty64、tty65 などは ttys1、ttys2 などに改名されました。
- ディレクトリ /INSTALL が追加され、いくつかのドキュメントと、ハードドライブのパーティションに Linux を簡単にインストールするための3つの簡単なシェルスクリプトが含まれています。以下の3つです :
- 'mktree'は、指定されたマウント・デバイス上にディレクトリ・ツリーを作成します。
- 'mkdev' は、指定されたマウントデバイスの dev ディレクトリに標準デバイスを作成します。
- 'install' は、ルート・ディスケット上のプログラムを、指定されたマウント・デバイスにインストールします。
これらのプログラムは通常、 '<name> /mnt' で呼び出されます。
変更点その2です。
- 'pfdisk' コマンドの追加により、パーティションを作成する事が出来るようになり、Linux 単独で (Minix なしで) インストール出来るようになりました。
- ドキュメントを読む為に 'more' コマンドが追加されました。今だと 'less' や 'lv' を使う方の方が多いでしょう。
- 'cat' が追加されました。(というか、この時点では未だ cat コマンドが無かったのですね…)
- 多くのユーティリティーが /bin に移動しました (これまでは /usr/bin)。この辺りは、パーティション分けをどうするかにも寄りますので、時代と共に変遷していく所でしょう。昔は /usr と /home を '/' と分けるのが普通でした。今なら、個人用途ならパーティションを分けずに '/' にしておくのが一般的でしょう。
- シリアルラインのデバイス名称が ttys1、ttys2 等に変更になりました。現在は ttyS0 等、大文字の 'S' になっています。
- Linux のインストール方法を改善していく途中の模様です。/INSTALL 以下にドキュメントとシェルスクリプトが3つ追加されました。'mktree'、'mkdev'、'install' の3つです。(実際に boot / root disk を眺めた時に確認してみます)
- rootdev is different than the one on v0.95. A couple of days
after the release of 0.95, a program called 'rdev' was posted
to alt.os.linux that duplicated and extended the functionality
of rootdev. This was renamed to rootdev and replaces the old
rootdev.
- agetty was renamed to getty, to be consistent with common Unix
practice.
- an improved fdisk was added that correctly reports extended
partitions, (Thanks to Linus!)
- /dev is complete, or at least more complete than the last few
releases of the root diskette, which always seemed to be a
major complaint. :)
- /etc/issue and /etc/motd have been expanded to be a little
more informative. (Yeah, I know, big deal! :)
- chgrp was removed. You can use chown to get the same effect,
but you just have to specify an owner, too.
Many of these changes were discussed on alt.os.linux, or the Linux
Standards group, so they may look familiar.
If you have questions, problems, or complaints about the root
diskette, either post to alt.os.linux, or send mail to me at
jwinstea@domainname.
If you have questions, problems, or complaints about the boot diskette
or the kernel itself, post to alt.os.linux or send mail to Linus
Torvalds at torvalds@domainname.
Remember, the only stupid questions are the ones you don't ask.
- rootdev は v0.95 のものとは異なります。0.95 のリリースの数日後、'rdev' と呼ばれる、rootdev の機能を複製し拡張したプログラムが alt.os.linux (訳注 : NetNews のカテゴリの名称) に投稿されました。 これは rootdev に改名され、古い rootdev に取って代わられました。
- agetty は getty に改名され、一般的な Unix の慣行と一致するようになりました。
- 拡張パーティションを正しく報告するように改良された fdisk が追加されました、(Linus に感謝!)
- /dev は完璧です、少なくともここ数回のルート・ディスケットのリリースよりは完璧です、これは常に大きな不満であったようです :)
- /etc/issue と /etc/motd が拡張され、少し情報量が増えました。(ああ、わかってるよ、大したことだ!:)
- chgrp は削除されました。chownを使っても同じ効果が得られますが、所有者を指定する必要があります。
これらの変更の多くは、alt.os.linux や Linux Standards グループで議論されたものなので、見覚えがあるかもしれません。
ルートディスケットに関する質問、問題、苦情は、alt.os.linux に投稿するか、jwinstea@domainname までメールをください。
ブートディスケットやカーネルそのものについて質問、問題、苦情がある場合には、alt.os.linux に投稿するか、Linus Torvalds torvalds@domainname にメールください。
覚えておいてほしいのは、愚かな質問は、あなたが尋ねないことです。
変更点その3です。
- rootdev が更新されました。(中身は古い boot / root image を見た時に確認してみる予定です)
- agetty が getty に改名されました。
- 拡張パーティションが使えるようになりました。
- /etc/issue と /etc/motd が拡張されました。
/etc/issue は、コンソールからログインするときに、ログインプロンプトの前に表示されるメッセージを記述するファイルです。 /etc/motd とは、ログイン時に表示されるメッセージのことです。motd は message of the day の略で、システム管理者がユーザーに伝えたい情報を記載することができます。
この仕組みを使用して shutdown 予告とかメンテナンス予定が表示されていた記憶があります。
どちらも、root ユーザーからのメッセージを表示する仕組みで、Ubuntu 22.04 LTS では /etc/issue は現存しています。/etc/motd はありませんでした。
- chgrp が無くなり chown で設定するようになりました。容量節約の為で、今のシステムでは chgrp が復活しています。
chgrp とは、ファイルやディレクトリのグループ所有権を変更するコマンドです。chown とは、ファイルやディレクトリの所有者やグループを変更するコマンドです。chown であれば、グループと所有者の両方を一度に変更できます
alt.os.linux という NetNews のグループに投稿するかメールで質問してね、質問しないのが最も愚かな事ですよ、という言葉で締められています。
以下は、将来の構想と取り組んでいる内容について、です。
FUTURE CHANGES
I'm already anticipating some changes for the next release, so here's
a sneak preview:
- shared libraries. These are currently in alpha testing, and
will hopefully free up some more room on the root floppy for
more goodies.
- a generic mtools might be added to the root floppy.
- a better fdisk to replace the current fdisk/pfdisk pair. You
won't need to know your drive's geometry for this, and it will
know about Linux extended partitions.
- an improved sh. I'm working on the backspace problem, and
adding job control. I'm also going to look at using the GNU
readline library for input, as long as it doesn't add
substantially to the size of sh.
- init/getty/login may be removed from the root floppy. The
main reason they'll still on there is the backspace problem
with ash.
- improved installation documentation. People have started work
on this already - read alt.os.linux for previews.
- more robust installation scripts. The current ones are quick
and dirty, and work well, but I'd like to add better ones.
- miscellaneous utilities added. I'd really like to add an
editor to the root disk, but I haven't found one small enough.
Any suggestions?
- various other things that I can't remember right now.
Again, mail your questions, comments and suggestions about the root
diskette to me at jwinstea@domainname.
...(snip)...
将来の変更点
次回のリリースに向けて、すでにいくつかの変更を予定していますので、ここでこっそりとお見せしましょう :
- 共有ライブラリ。 これらは現在アルファテスト中で、うまくいけば、ルートフロッピーにもっと多くの機能を追加できるスペースができるはずです。
- 一般的な mtools がルートフロッピーに追加されるかもしれません。
- 現在の fdisk/pfdisk ペアを置き換える、より良い fdisk。 これにより、ドライブのジオメトリを知る必要がなくなり、Linux 拡張パーティションについても知ることができるようになります。
- 改良された sh。 バックスペースの問題とジョブ・コントロールの追加に取り組んでいます。sh のサイズを大幅に増やさない限り、入力に GNU readline ライブラリを使うことも検討するつもりです。
- init/getty/login はルートフロッピーから削除されるかもしれません。まだ残っている主な理由は、ash のバックスペース問題によるものです。
- インストールドキュメントの改善。この作業はすでに始まっており、alt.os.linux でプレビューを見ることができます。
- より強固なインストールスクリプト。 現在のスクリプトは早くて汚いし、うまく機能していますが、もっと良いスクリプトを追加したいと思っています。
- 雑多なユーティリティを追加。 本当はルートディスクにエディタを追加したいのですが、十分小さいものが見つかりません。何か提案はありますか?
- ほかにもいろいろあって、今はよく覚えていません。
繰り返しになりますが、ルート・ディスケットに関するご質問、ご意見、ご感想は、jwinstea@domainname までお寄せください。
...(以下略)...
将来の変更点です。
- 共有ライブラリは、この時点ではアルファテスト中だったのですね。現在では主流です。
linux では、共有ライブラリという仕組みを使って、プログラムの実行時に必要なコードやデータを動的に読み込むことができます。共有ライブラリは、.so という拡張子を持つファイルで、一つのライブラリを複数のプログラムで共有することができます。これにより、ディスクやメモリの節約や、プログラムの更新や修正の容易さなどのメリットがあります。
- 共有ライブラリによってスペースが確保できれば、mtools や改良された sh がルートフロッピーに追加されるかもしれないと記載されています。
- fdisk / pfdisk の代替としてのよりよい fdisk。この時点の fdisk / pfdisk はディスクのジオメトリを知る必要がありました (自分の所有するハードディスクの CHS を把握しているのは、当時としては普通でした)。
ハードディスクのジオメトリとは、ハードディスクの物理的な構造や配置を表す用語です。ハードディスクのジオメトリには、シリンダー (Cylinder)、ヘッド (Head)、セクター (Sector) などの要素があります。シリンダーとは、ハードディスクの円盤(プラッタ)に沿って平行に並んだ磁気トラックの集合です。ヘッドとは、磁気トラックにデータを読み書きする装置です。セクターとは、磁気トラックを一定の角度で区切った最小単位のデータ領域です。ハードディスクのジオメトリは、ハードディスクの容量やパフォーマンスに影響します。例えば、シリンダー数やセクター数が多いほど、ハードディスクに保存できるデータ量が増えます。しかし、ヘッドの移動距離や時間も増えるため、アクセス速度が低下する可能性があります。ハードディスクのジオメトリは、通常、ハードディスクの製造時に決まりますが、パーティショニングやフォーマットなどの操作で変更することもできます
- エディタを追加したいと書かれていますが、当時であれば ex でしょうか、vi でしょうか。nano は curses ライブラリが必要で、emacs は '環境' と呼ばれる程の巨大なエディタですので、フロッピーに入れるのは難しいでしょう。どのエディタが含まれるようになったのかは、この先に公開された文章で明らかになると思います。
エディタも Linux よりも更に長い歴史と種類があり、特に vi vs. emacs は "論争" になるほど嗜好性の高いものです。現在は Visual Sutudio Code (vscode) が主流になっていますが、それでも vim や emacs に拘りを持つ方は多いと思います。私は vim 派 (昔は SKK で日本語入力していました) ですが、現在はマクロ等は使用せず簡単な編集にだけ使用しています。
ex は、テキストファイルを編集するためのコマンドラインツールです。ex は vi の基礎となったエディタで、vi は ex のビジュアルモードとして機能します。ex は、行番号やパターンに基づいてテキストを操作するコマンドを受け付けます。ex は、UNIX や Linux のシステムで標準的にインストールされていることが多く、スクリプトやバッチ処理にも利用できます。
vi は、1976年にビル・ジョイによって開発されたテキストエディタです。UNIX 環境で人気があり、Emacs と並んでエディタ戦争の火種となりました。vi はラインエディタの ex を先祖に持ち、コマンドモードと挿入モードなどのモードを切り替えながら編集します。vi はコンパクトで負荷が小さいため、多くの UNIX 系 OS に標準で含まれています。現在は vi の上位互換である Vim が広く普及しており、多数のプラットフォームに移植されています。
nano とは、UNIX 系のシステムで使われる、curses を使ったテキストエディタの一種です。スクリーンエディタの一種でありながら、CUI を用いて編集を行うことが可能です。nano は Pico と呼ばれるエディタのクローン実装系で、比較的学習コストの低いエディタと考えられます。nano はコマンドとして nano を実行する時に、引数としてファイルパスを指定するだけでファイルを開くことができます。カーソルキーや Del キー、BackSpace キーなどで文字の入力や削除ができます。ファイルの保存や終了は Ctrl-X キーを押して行います。nano は検索や置換、取り消しやり直し、シンタックスハイライト、自動インデントなどの機能も備えています。
curses ライブラリは、Unix 系システムでの端末制御ライブラリであり、テキストユーザインタフェース (TUI) アプリケーションを作成するのに使われます。名称は “cursor optimization” に由来します。文字のみを表示する端末 (例えば VT100) を表示に使うアプリケーションが画面を管理する機能を集めたライブラリです。curses ライブラリは、初期設定関連の処理、出力関連の処理、入力関連の処理、表示属性関連の処理などの様々な関数やマクロを提供します。これらを使って、カーソルの移動や文字・文字列の表示・入力、カラー表示や強調表示などの機能を実現できます。ncurses は curses の代替として Linux や各種 Unix 系システムで使われるライブラリであり、POSIX 準拠です。
emacs は、1970年代に開発されたエディタの一種で、高い拡張性とカスタマイズ性を持ちます。emacs は、多くのプログラミング言語や文書フォーマットに対応しており、さまざまな機能を追加することができます。emacs は、キーボードのショートカットやマクロを使って効率的に操作することができます。emacs は、長年にわたって開発されてきた歴史あるエディタで、多くのユーザーに支持されています。
結び
今回は 'CHANGES IN THE LINUX v0.95a ROOT DISKETTE' という文章を和訳してみました。
Linus Torvalds 氏 が Linux kernel の開発に専念できるように、rootimage の作成を Jim Winstead Jr. 氏が引き継いで作成した文章です。
rootimage の作成やハードディスクへのインストール方法の改善は、この後に公開される SLS や Slackware 等の Linux distribution の先駆けとなった事です。この記事を元にして、更にインストール方法が改善されて、Linux distribution の公開へと繋がります。現在まで続く Linux distribution の基礎となる文章だと思います。
次回は、linux-v0.96a に達する前までの 'Second 0.95a alpha-patch'、'linux-0.95c known bugs'、'pre-0.96' の3つの文章を和訳しようと考えています。linux-0.95a の公開は 1992年3月7日でしたが、それぞれ 4月4日、4月8日、4月21日と立て続けに公開された patch に付属していた文章です。
最近は USB メモリは 128 GB の品を購入するようにしています。BUFFALO のキャップレスを2個連続で購入しましたが、トラブルなく使えています。フロッピーの 1.2M / 1.44M の事を調べていながら、使っているのは 128 GB というギャップが、個人的には面白く感じます。読み書き速度はスティックタイプの SSD が上ですが、価格と扱いやすさから Flash Memory タイプを選択しています。
コメント