【和訳】Linux kernel RELNOTES-0.12

white_kitten_running_sunny_meadow Linux
white_kitten_running_sunny_meadow
記事内に広告が含まれています。

Linux kernel RELNOTES-0.12

今回は RELNOTES-0.12 を和訳してみました。Linux の機能について説明している RELNOTES は、0.01 の次は 0.12 になります。RELNOTES-0.12 もセクション分けされていませんので、一定の区切り毎に引用元の英文と和訳を載せて、私のコメントを付加します。

linux-0.12 では、現在の Linux にも繋がる新しい機能が、他の方からの提案によって追加されています。linux-0.12 の前後から、今の Linux kernel のような開発体制の基礎が出来つつある事が分かります。

前回 の INSTALL-0.11 の和訳へのリンクです。

使用したサービス

INSTALL-0.11 の時と同様に、以下のサービスを使用して和訳しました。

Shaper : 英文の改行・空白を除去する

DeepL 翻訳 : 高精度な翻訳ツール

Google 翻訳 : Google の翻訳サイト

手順も変更ありません。

  • 段落毎に Shaper で空白を除去
  • 主に DeepL 翻訳、副に Google 翻訳を使用
  • 元の英文と比較して内容を確認
  • 最終的に括弧等の記号の全角 -> 半角、用語の統一、レイアウトなどを調整

という手順です。

Linux kernel RELNOTES-0.12 和訳

原文は下記のリンク先にあります。

NetNews に投稿したと思われる内容も含まれますが、RELNOTES-0.12 の部分のみの和訳です。この文章では、インストール方法は簡単に書かれていますが、INSTALL-0.11 を参照するように書かれています。

メールアドレスは、現在も使われているか分かりませんので、ドメインを domainname に変更しました。

タイトル ~ 序文 : 原文
		RELEASE NOTES FOR LINUX v0.12


This is file mostly contains info on changed features of Linux, and
using old versions as a help-reference might be a good idea.
タイトル ~ 序文 : 和訳
LINUX v0.12 のリリースノート

このファイルには、Linux の変更された機能に関する情報がほとんど含まれており、古いバージョンをヘルプ・リファレンスとして使うのは良いアイデアかもしれません。

INSTALL-0.11 にはあった日付が RELNOTES-0.12 ではまたなくなりました 😉 linux-0.12 は 1992年1月5日に公開されました。

Actually, 0.12 was out January 5th, and contained major corrections. It was in fact a very stable kernel: it worked on a lot of new hardware, and there was no need for patches for a long time. 0.12 was also the kernel that "made it": that's when linux started to spread a lot faster. Earlier kernel releases were very much only for hackers: 0.12 actually worked quite well.

実際に、(linux-) 0.12 は1月5日にリリースされ、大きな修正が含まれていました。実際、0.12 は非常に安定したカーネルでした。多くの新しいハードウェアで動作し、長い間パッチの必要はありませんでした。0.12 はまた、"成功" したカーネルでもありました。それ以前のカーネルリリースは、ハッカーのためだけのものでした : 0.12は実際にかなりよく動作しました。

https://www.cs.cmu.edu/~awb/linux.history.html

linux-0.12 も、当時は compress で圧縮されていましたが、現在残っているのは gzip 圧縮のファイルでした。linux-0.01 ~ linux-0.12 を比較してみました。(linux-0.02 と linux-0.03 は source が見つかりませんでした)

Ver.0.010.020.100.110.12
release date1991/9/171991/10/51991/11/41991/12/81992/01/05
compressed
kernel size (gz)
73 kBlosted95 kB96 kB130 kB
kernel sources size285 kBlosted376 kB381 kB508 kB
number of files88losted102100116
Linux kernel Ver.0.01 to 0.12

linux-0.12 で source size が大幅に増加しています。linux-0.12 は、これまでのバージョンに比べて、様々な環境で動作し、比較的安定していたようです。

$ ls -l linux*gz
-rw-r--r-- 1 hiro hiro 129729 Oct 30  1993 linux-0.12.tar.gz

$ du -sb linux-0.12
507775  linux-0.12

$ find linux-0.12 -type f | wc -l
116

$ tree -d linux-0.12
linux-0.12
├── boot
├── fs
├── include
│   ├── asm
│   ├── linux
│   └── sys
├── init
├── kernel
│   ├── blk_drv
│   ├── chr_drv
│   └── math
├── lib
├── mm
└── tools

15 directories

$ head -n 3 linux-0.12/kernel/Makefile
#
# Makefile for the FREAX-kernel.
#

v0.12 でも、kernel/Makefile には "FREAX" の文字が残っています 🙂

本文1 : 原文
		COPYRIGHT

The Linux copyright will change: I've had a couple of requests to make
it compatible with the GNU copyleft, removing the "you may not
distribute it for money" condition.  I agree.  I propose that the
copyright be changed so that it confirms to GNU - pending approval of
the persons who have helped write code.  I assume this is going to be no
problem for anybody: If you have grievances ("I wrote that code assuming
the copyright would stay the same") mail me.  Otherwise The GNU copyleft
takes effect as of the first of February.  If you do not know the gist
of the GNU copyright - read it.
本文1 : 和訳
著作権

Linuxの著作権は変更されるでしょう : GNU copyleftと互換性を持たせ、"金銭のために配布してはならない" という条件を削除してほしいという要望がいくつかありました。わたしは同意します。わたしは、著作権を変更し、コードを書くのを手伝った人々の承認を得るまで、GNU に確認するようにすることを提案します。これは誰にとっても問題ないでしょう : もし不満があれば ("著作権が変わらないと仮定してそのコードを書いた")、わたしにメールしてください。そうでない場合、GNU copyleft は2月1日から有効になります。 GNU 著作権の要点を知らなければ、読んでください。

linux-0.12 は、「著作権の変更」という意味で大きな転換点になりました。

これまでは Linus Torvalds 氏が決めた著作権表示でしたが、1992年2月1日からは GNU copyleft へ移行しますとの案内です。linux-0.12 は 1992年2月1日から、1992年3月7日に公開されたこの次のバージョンの linux-0.95 は公開当初から、著作権は Linus Torvalds 氏ですが GNU copyleft に従う事になります。

本文2 : 原文
		INSTALLATION

This is a SHORT install-note. The installation is very similar to 0.11,
so read that (INSTALL-0.11) too. There are a couple of programs you will
need to install linux: something that writes disk images (rawrite.exe or
NU or...) and something that can create harddisk partitions (fdisk under
xenix or older versions of dos, edpart.exe or something like that).

NOTE! Repartitioning your harddisk will destroy all data on it (well,
not exactly, but if you know enough to get back the data you probably
didn't need this warning).  So be careful.

READ THIS THROUGH, THEN READ INSTALL-0.11, AND IF YOU ARE SURE YOU KNOW
WHAT YOU ARE DOING, CONTINUE.  OTHERWISE, PANIC.  OR WRITE ME FOR
EXPLANATIONS.  OR DO ANYTHING BUT INSTALL LINUX - IT'S VERY SIMPLE, BUT
IF YOU DON'T KNOW WHAT YOU ARE DOING YOU'LL PROBABLY BE SORRY.  I'D
RATHER ANSWER A FEW UNNECESSARY MAILS THAN GET MAIL SAYING "YOU KILLED
MY HARDDISK, BASTARD.  I'M GOING TO FIND YOU, AND YOU'LL BE SORRY WHEN I
DO". 
本文2 : 和訳
インストール

これは短いインストールノートです。インストールは v0.11 と非常に似ていますので、そちら (INSTALL-0.11) もお読みください。ディスクイメージを書き込むプログラム (rawrite.exe や NU など) と、ハードディスクのパーティションを作成するプログラム (xenix や古いバージョンの dos では fdisk、古いバージョンでは edpart.exeなど) です。

注意!ハードディスクのパーティションを切り直すと、ハードディスク上のデータはすべて失われます (正確には違いますが、データを取り戻すのに十分な知識があれば、この警告は必要なかったでしょう)。ですから注意してください。

この文章をよく読んでから、INSTALL-0.11 を読み、自分が何をしようとしているのか理解できているのであれば、続けてください。そうでなければ、パニックになります。あるいは私に説明を求めてください。Linux をインストールすること以外はとても簡単ですが、何をやっているのかわからなければ、おそらく後悔することになるでしょう。"俺のハードディスクを壊したな、この野郎。見つけてやるから、その時は後悔することになるぞ" なんてメールをもらうよりはマシです。 

INSTALL-0.11 を参照下さいと書かれています。

後はいつもの注意事項「データが消えちゃうからね」に加えて、「手順をそのまま写経するのではなく理解して実行してね」「分からなければ聞いて。後で文句言わないで」という内容です。当時は Linux を使おうとするユーザーが少なかったので対応できたのでしょう。

その後、日本でも BSD 系と比べて Linux を使う人が増えた理由は「最初は誰でも初心者。初心者を育ててユーザーを増やそう。思いもよらないバグに遭遇して改善にも役立つ」という雰囲気があった事が理由だと思います。

2008年9月の @IT の生越 昌己さんの記事ですが、「タコ」=「初心者」により信頼性が向上し、文書にまとめる必要性から JF が始まった事が書かれています。生越さんの書かれた4つの記事は、Linux の黎明期 (といっても linux-1.0 の頃) の雰囲気を知るのに役立ちます。

本文3 : 原文
1) back up everything you have on your harddisk - linux-0.12 is still in
   beta and might do weird things.  The only thing I guarantee is that
   it has worked fine on /my/ machine - for all I know it might eat your
   harddisk and spit it out in small pieces on any other hardware. 

2) Test out the linux boot-disk with the root file system.  If it
   doesn't work, check the hardware requirements, and mail me if you
   still think it should work.  I might not be able to help you, but
   your bug-report would still be appreciated. 

   Test that linux can read your harddisk at least partly: run the fdisk
   program on the root-disk, and see if it barfs.  If it tells you about
   any partitions at all, linux can successfully read at least part of
   your harddisk. 

3) Make sure that you have a free /primary/ partition.  There can be 4
   primary partitions per drive: newer DOS fdisks seem to be able to
   create only 2 (one primary and one extended).  In that case use some
   other partitioning software: edpart.exe etc.  Linux fdisk currently
   only tells you the partition info - it doesn't write to the disk. 

   Remember to check how big your partition was, as that can be used to
   tell which device Linux thinks it is. 
本文3 : 和訳
1) linux-0.12 はまだベータ版で、怪しい動作をするかもしれません。私が保証するのは、/my/ マシンで問題なく動作しているということのみで、他のハードウェアでは、ハードディスクを食い荒らして細切れに吐き出すかも知れません。

2) ルートファイルシステムで Linux ブートディスクをテストしてください。もしうまくいかなかったら、ハードウェアの必要条件をチェックして、それでもうまくいくはずだと思うなら、私にメールをください。お役に立てないかもしれませんが、バグ報告をしていただけると助かります。

linux がハードディスクを少なくとも部分的に読み込めるかテストしてください。ルートディスクで fdisk プログラムを実行し、barfs するかどうか確認してください。もしパーティションがあれば、linuxはハードディスクの少なくとも一部を読むことができます。

3) /primary/ パーティションが空いていることを確認してください。ドライブごとに4つのプライマリパーティションを作成できます。新しい DOS fdisk では2つ (プライマリと拡張) しか作成できないようです。その場合は、edpart.exe などのパーティション分割ソフトを使ってください。Linux の fdisk は今のところパーティション情報を教えてくれるだけで、ディスクには書き込めません。 

パーティションの大きさを確認するのを忘れないこと。Linuxがどのデバイスだと認識しているかがわかるからです。

linux-0.12 は、これより前のバージョンと比較すれば安定していたようですが、init や login も未だ無い状態でベータ版の扱いでした。未だ他のハードウェア環境では確実に動作するとは言い切れなかったのでしょう。

IBM PC/AT 互換機の環境は様々でしたので、フロッピーディスクとハードディスク及びそのインターフェースの全てを、この段階で網羅できている訳ではなかったでしょう。バグ報告歓迎と共に barfs するかどうか確認して欲しいと書かれています。

barfs とは、linux カーネルが panic や oops に陥ったときに発生するエラーメッセージのことです。barfs は「Big And Rather Fatal Splat」の頭文字で、linux カーネルが致命的な状態になったことを表しています。barfs が発生すると、システムは停止し、デバッグ情報やメモリダンプなどの詳細が画面に表示されます。

当時の Linux の fdisk コマンドは、パーティションの大きさ以外の情報を正確に表示できず、パーティションの大きさで判断する必要があったようです。また、fdisk コマンドは読み込みのみ、書き込みもできませんでした。

本文4 : 原文
4) Boot up linux again, fdisk to make sure you now have the new
   partition, and use mkfs to make a filesystem on one of the partitions
   fdisk reports.  Write "mkfs -c /dev/hdX nnn" where X is the device
   number reported by linux fdisk, and nnn is the size - also reported
   by fdisk.  nnn is the size in /blocks/, ie kilobytes.  You should be
   able to use the size info to determine which partition is represented
   by which device name. 

5) Mount the new disk partition: "mount /dev/hdX /user".  Copy over the
   root filesystem to the harddisk, eg like this:

	# for i in bin dev etc usr tmp
	# do
	# cp +recursive /$i /user
	# done

   You caanot use just "cp +recursive / /user", as that will result in a
   loop.

6) Sync the filesystem after you have played around enough, and reboot.

	# sync
	<wait for it to sync>
	ctrl-alt-del

   The folklore says you should do this three times before rebooting:
   once should be enough, but I admit I do it three times anyway :) THIS
   IS IMPORTANT! NEVER EVER FORGET TO SYNC BEFORE KILLING THE MACHINE.

7) Change the bootdisk to understand which partition it should use as a
   root filesystem.  See INSTALL-0.11: it's still the word at offset
   508 into the image. You should be up and running.


That's it. Go back and read the INSTALL-0.11
本文4 : 和訳
4) linuxをもう一度起動し、fdisk で新しいパーティションがあることを確認し、mkfs を使って fdisk が報告したパーティションのひとつにファイルシステムを作成します。"mkfs -c /dev/hdX nnn" と書いてください。X は linux の fdisk が報告したデバイス番号で、nnnは同じく fdisk が報告したサイズ、つまり kB です。サイズ情報を使って、どのパーティションがどのデバイス名で表されているかを判断できるはずです。 


5) 新しいディスクパーティションをマウントします : "mount /dev/hdX /user"。ルートファイルシステムをハードディスクにコピーします :

# for i in bin dev etc usr tmp
# do
# cp +recursive /$i /user
# done

"cp +recursive / /user" だけでは、ループになるので使えません。

6) 十分に遊んだらファイルシステムを sync して再起動します。

# sync
<wait for it to sync>
ctrl-alt-del

言い伝えによると、再起動する前に3回これを行うべきだそうです : 1回で十分なはずですが、私はとにかく3回やっています :) これは重要なことです ! マシンを停止させる前に sync することを絶対に忘れないでください。

7) ブートディスクがどのパーティションをルートファイルシステムとして使うかを理解できるように変更します。 INSTALL-0.11 を参照してください : イメージのオフセット508にある word の部分です。 これで起動できるはずです。

以上です。戻って INSTALL-0.11 を読んでください。

機能は限定されていたでしょうが、linux-0.12 では fdisk、mkfs、mount コマンドが動作していました。

この後の手順は INSTALL-0.11 と同様です。

現在の Linux では sync の重要性はここまでではないです 🙂 正常に shutdown すれば問題ありませんし、連続書き込みしている状態は別として、ある程度の時間が経過すればメモリキャッシュは HDD / SSD に書き込まれますので心配ありません。

本文5 : 原文
		New features of 0.12, in order of appearance
			(ie in the order you see them)

	Linux now prints cute dots when loading

WoW. Run, don't walk, to see this :). Seriously, it should hopefully now
load even on machines that never got off the ground before, but
otherwise the loading hasn't changed. Implemented by drew.

	Super-VGA detection for extended alphamun modes

I cannot guarantee it, I didn't write it, but it works great on a ET400
SVGA card.  I'm addicted to the new look with 100x40 character editing,
instead of a cramped 80x25.  This only works on VGA-cards that support
higher text-resolutions, and which are correctly identified. Implemented
by d88-man.

	Job Control.

Ok, everybody used to typing ^Z after they started a long command, and
forgot to put it in the background - now it works on linux too.  Bash
knows the usualy job-control commands: bg, fg, jobs & kill.  I hope
there will be no nasty surprises.  Job control was implemented by
tytso@domainname.
本文5 : 和訳
0.12 の新機能を登場順に紹介
(つまり、あなたが見る順番に)

Linux のロード時にかわいいドットが表示

素晴らしい。これを見るために、歩かずに走ろう :)。まじめな話、うまくいけば、今まで一度も起動しなかったマシンでもロードできるようになったはずですが、そうでなければロードは変わっていません。実装は drew が担当しました。

Super-VGA の検出による拡張アルファミュンモード

私が書いたわけではないので保証はできませんが、ET400 の SVGA カードでも問題なく動作しています。80桁 x 25行の窮屈な文字編集ではなく、100桁 x 40行の文字編集ができる新しいスタイルにはまりました。 これは、より高い文字解像度をサポートする VGA カードで、正しく識別されている場合にのみ動作します。d88-man により実装されました。

ジョブ・コントロール

さて、長いコマンドを入力し始めた後に ^Z をタイプし、それをバックグラウンドに置いているのを忘れてしまうことはよくあることですが、linuxでも使えるようになりました。bg、fg、jobs、kill といった通常のジョブコントロールコマンドを Bash は理解できます。厄介なサプライズがないことを望みます。 ジョブ制御は tytso@domainname によって実装されました。

linux-0.12 の新機能についての紹介です。

  • Linux のブート時に dot ('.') が表示されるようになり、ブートの進捗が見えるようになりました。それまではディスクアクセスのみで判断していたのでしょう。
  • Super-VGA の拡張モードに対応し、ET400 SVGA カードで高解像度で表示できるようになりました。
  • bash でジョブコントロールが出来るようになりました。

拡張アルファミュンモード (extended alphamun modes) とは、linux カーネルが Super-VGA ビデオカードの拡張モードを認識するための機能です。拡張モードとは、標準的な VGA モードよりも高い解像度や色数をサポートするビデオモードのことです。alphamun とは、Super-VGA の一種で、256色以上のカラーパレットを持つビデオモードのことです。

SVGA カードの ET400 は見つからなかったのですが、ET4000 であれば Wikipedia に情報がありました。

ET4000 は、1990年代初頭に多くの 386 / 486 互換機に搭載された SVGA グラフィックコントローラチップのシリーズです。ET4000 は、高速なホストインターフェースコントローラと深い FIFO バッファリングとキャッシング機能を備えており、他の SVGA チップセットと比べて優れた描画性能を発揮しました。

私も IBM PC/AT 互換機で DOS/V を使用して高解像度でテキストを表示した時も衝撃的でした。スクロール速度を競って PC-9801 の方が良い!なんて事も雑誌に載っていました。現在では PC-9801 は産業機器の中でしか見かけません。

bash のジョブコントロールも含め、バックグラウンドでプログラムを動作させる事は、シングルタスクの DOS からすれば別世界でした。Windows も複数のソフトウェアを安定して動作させられるようになったのは、Windows NT カーネルを使用した世代以降でした。

本文6 : 原文
	Virtual consoles on EGA/VGA screens.

You can select one of several consoles by pressing the left alt-key and
a function key at the same time. Linux should report the number of
virtual consoles available upon bootup. /dev/tty0 is now "the current"
screen, /dev/tty1 is the main console, and /dev/tty2-8 can exist
depending on your text-mode or card.

NOTE! Scrolling is noticeably much slower with virtual consoles on a
EGA/VGA. The reason is that no longer does linux use all the screen
memory as a long buffer, but crams in several consoles in it. I think
it's worth it.

The virtual consoles also have some new screen-handling commands: they
confirm even better to vt200 control codes than 0.11. Special graphic
characters etc: you can well use them as terminals to VMS (although
that's a shameful waste of resources).

	pty's

Ok. I have to admit that I didn't get the hangup-code working correctly,
but that should be easy to add. The general things are there.

	select

I've never used it, so I cannot say how well it works. My minor testing
seems to indicate that it works ok. vc's, pty's and select were
implemented by pmacdona, although I hacked it heavily.
本文6 : 和訳
EGA / VGAスクリーン上のバーチャルコンソール。

左の alt キーとファンクションキーを同時に押すことで、複数のコンソールの中から1つを選択できます。Linuxは、起動時に利用可能な仮想コンソールの数を報告するはずです。/dev/tty0 は "現在の" スクリーン、/dev/tty1 はメイン・コンソール、/dev/tty2-8 はテキスト・モードやカードによって存在する可能性があります。

注意!EGA / VGAでバーチャルコンソールを使うと、スクロールがかなり遅くなります。その理由は、linux がスクリーンメモリをロングバッファとして使わず、複数のコンソールを詰め込んでいるからです。その価値はあると思います。

バーチャルコンソールにも新しい画面処理コマンドがいくつかあります : 0.11 よりもさらに vt200 の制御コードが使えるようになっています。特殊なグラフィック文字など : VMS のターミナルとして使うことも十分に可能です (リソースの無駄遣いですが)。

擬似端末 (pseudo terminal)

ハングアップ・コードを正しく動作させられなかったことは認めなければなりませんが、追加するのは簡単です。一般的なものはそろっています。

選択

私は使ったことがないので、どの程度機能するかはわかりません。私が少しテストしたところでは、問題なく機能するようです。vc's、pty's、select は pmacdona によって実装されましたが、私がかなりハックしました。

linux-0.12 の新機能の続きです。

  • EGA / VGA スクリーン上のバーチャルコンソール
  • 疑似端末

バーチャルコンソールは、Linux を使い始めた直後には良く使用していました。kon で日本語を表示できるようにして、複数のコンソールを行き来して作業していました。X Window System が使えるようになってからは、どうしても強制的に shutdown したい時等に使用していました。現在でもこの機能は使用できます。実際に Ubuntu の GNOME が freeze してしまう現象が発生した際に、原因調査に利用しました。

IBM PC/AT 互換機にネットワークカードを増設する前には、SLIP (Serial Line Internet Protocol) / PLIP (Parallel Line Internet Protocol) で複数 PC を接続する事も試していました。

現在はほぼ使われていない技術でしょう。

本文7 : 原文
	387-emulation.

It's not complete, but it works well enough to run those gcc2.0 compiled
programs I tested (few).  None of the "heavy" math-functions are
implemented yet.

	Symbolic links.

Try out a few "ln -s xx yy", and ls -l. Note that I think tar should be
recompiled to know anout them, and probably some other programs too. The
0.12 rootimage-disk has most of the recompiled fileutilities.

	Virtual memory.

In addition to the "mkfs" program, there is now a "mkswap" program on
the root disk.  The syntax is identical: "mkswap -c /dev/hdX nnn", and
again: this writes over the partition, so be careful.  Swapping can then
be enabled by changing the word at offset 506 in the bootimage to the
desired device.  Use the same program as for setting the root file
system (but change the 508 offset to 506 of course). 

NOTE! This has been tested by Robert Blum, who has a 2M machine, and it
allows you to run gcc without much memory.  HOWEVER, I had to stop using
it, as my diskspace was eaten up by the beta-gcc-2.0, so I'd like to
hear that it still works: I've been totally unable to make a
swap-partition for even rudimentary testing since about christmastime. 
Thus the new changes could possibly just have backfired on the VM, but I
doubt it. 

	And that's it, I think.

Happy hacking.

			Linus
本文7 : 和訳
387-エミュレーション

完全ではありませんが、私がテストした gcc2.0 コンパイルされたプログラム (数本) を動かすには十分動作します。 "重い" 数学関数はまだ実装されていません。

シンボリックリンク

"ln -s xx yy"と ls -l を試してみてください。なお、tar は再コンパイルしておくべきだと思いますし、おそらく他のプログラムも再コンパイルしておくべきだと思います。0.12 の rootimage-disk にはほとんど再コンパイルされたファイルユーティリティが含まれています。

仮想メモリ

"mkfs" プログラムに加え、"mkswap" プログラムがルートディスク上にあります。構文は同じで、"mkswap -c /dev/hdX nnn" となります。繰り返します : これはパーティションに上書きしますので、十分注意してください。ブートイメージのオフセット 506 のワードを希望のデバイスに変更することで、スワッピングを有効にできます。ルートファイルシステムの設定と同じプログラムを使ってください (ただし、オフセット 508 を 506 に変更してください)。 

注意!これは 2M のマシンを所有する Robert Blum によってテストされたもので、メモリが多くなくても gcc を走らせることができます。しかし、私のディスクスペースは beta-gcc-2.0 に食われてしまったので、私はこれを使うのを止めなければなりませんでした :  クリスマスの頃以来、初歩的なテストのためにスワップパーティションを作ることさえ全くできなくなってしまいました。そのため、新しい変更が VM 上で裏目に出た可能性もありますが、それはないでしょう。 

これで全部だと思います。

ハッピー・ハッキング

Linus

linux-0.12 の新機能の続き、最終です。

  • 80387 コプロセッサのエミュレーション
  • シンボリックリンク
  • 仮想メモリ

Intel 80386 や 80486 SX は、浮動小数点演算用のコプロセッサが無く、別に用意する必要がありました。それぞれ Intel 80387 と 80487 です。(Intel 80486 DX はコプロセッサ内蔵)

コプロセッサを増設していない場合には、ソフトウェアで代替 (エミュレーション) するしかありません。linux-0.12 から、部分的ではありますが、Intel 80387 コプロセッサのエミュレーションが追加されました。

PC-9801DS はコプロセッサなしの 386SX で使用していましたが、学生時代の課題の数値計算は非常に遅かった記憶があります。研究室に配属になって、手元で仮に動作させる場合に我慢ができなくなり、IBM PC/AT 互換機を購入した際には Intel 80486 DX を選びました。

シンボリックリンクと仮想メモリは、どちらも現役で使われている技術です。シンボリックリンクは linux-0.12 からだったのですね。

当時はメインメモリ 2MB とか 4MB のメモリ (GB ではありません、MB です) が普通でした (PC-9801 も 640 kB でした)。そのような環境で gcc のコンパイルを行う為には、仮想メモリの機能は必須でした。

PC 用メモリの低価格化・大容量化により仮想メモリの恩恵を受ける機会は少なくなりました。私も 64GB (16GB x 4) にしていますので、普通に使う分にはメモリ枯渇の心配は無くなりました (生成 AI の為に VRAM の方がもっと欲しいです...)。とはいえ、Raspberry Pi 等の組込システムに近いコンピュータで重めの作業をさせる場合には、swap を使用する機会はまだ多いと思います。

結び

始めにも書きましたが、linux-0.12 はこれまでのバージョンと比較して、多くの環境で安定して動作していたようです。その為、1992年1月に公開された linux-0.12 の次のバージョンは、1992年3月に公開された linux-0.95 へと大きくバージョンが上がる事になります。

linux-0.12 は、linux-0.01 が一部の人に公開された 1991年9月から4カ月という短い期間で注目を集め、多くの環境で安定して動作する状態になりました。また、他の人からの改善提案も受け、現在にも繋がる新しい機能 (といっても Unix like な OS ではもちろん必要な機能ですが) を追加・成長している段階でした。

Linux の初期の distribution の SLS の公開は 1992年8月、Slackware の公開は1993年7月です。それまでの間は、Linux の環境構築は今では考えられない程に大変だったと思います。そのような状況でも「PC で Unix like な OS を使いたい」「Intel 80386、80486 の性能を十分に発揮する OS が欲しい」という要望の中で、Linux の kernel は着実に成長していた時期だと思います。

次回は RELNOTES-0.95 を和訳しようと考えています。

私の所有している Synology DS218plus の NAS には、内蔵2基外付1基の計3基の HDD を使用しています。本音を言えば WesternDigital と種類を分けたかったのですが、品切れの為に同一 HDD となりました。

稼働してから2年4カ月が経過しましたが、3基共にトラブルなく使用できています。

8TB に更新する前は 4TB でした。こちらは PC に内蔵して余生を過ごしています。こちらも未だ現役です。

コメント

タイトルとURLをコピーしました