完成させたつもりの i686-linux 環境がデタラメであることに気づいた。
おおよそ1週間かけてやった作業は、微妙に不完全だったくさい...orz
正しいやり方としてはこういう順番で下準備をするんだそうな。
- binutils(クロスコンパイル仕様)の構築
- クロスコンパイル環境の整備(glibc、kernel-headerの設定)
- gcc(クロスコンパイル仕様)の構築
- linux-kernel再構築
オイラがやった順番とまったく逆順だったりするww
システムのアーキテクチャ変数が
どうやっても i386 だったのはそういうことか、とw
やり方は分かっているのでビルドだけやり直すことにした。
kernel から コンパイラまで、フルでリビルドするとなると半日かかるとか...orz
ついでなので要らない知識解説を少々してみる。
i386 とか i686 とかいうのは、CPUの種類名だ。
先頭につく i は intel の i を意味する。
intel が作った 8086 に互換性のある CPU を x86 という。
i386 なら第3世代、i686なら第6世代ということになる。
発表されてる最新アーキテクチャは第8世代だ。
それでも、家庭で使う PC は8割くらい i686 なんじゃないかと思う。
第7世代、第8世代のCPUはi786 とか i886 とかいう呼び方をしないから、
「i686 でない=i586以前のCPU」になるわけだ。
第7世代の P7 アーキテクチャは 64ビットCPU だ。
他の ix86 は 32ビットCPU だけど P7 だけ 64ビット だ。
P7 を指す言葉としては IA64 とか x86_64 を使う。
第8世代の P8 アーキテクチャーは、
コア部分が P6 とあまり変わっていない。
変わってなければ区別する必要もない。
P8 アーキテクチャのCPUも i686 と呼ばれる。
(細かいことをいうと x86_64 なCPUもあるけどw)
ちなみに第6世代 P6 というのは、
本来は Pentium Pro 以降 Pentium III までを指している。
基本的には枯れた(=古い)技術のはずだけども、
実質的には主流環境であるといえる。
第8世代の Pentium4 も i686 に含まれると書いたけれども、
ぶっちゃけた話、最新 Core 2 テクノロジも Pentium IIIの拡張だ。
いかな Core 2 Quad といえども、
32ビットで動作させる限り i686なわけだ。
(Core2系CPUは64ビット動作も可能)
オイラがやっきになって i686環境を構築しようとしているウラには、
そんな CPU アーキテクチャの変遷事情がある。
いまどき、本物の i386 使ってるヤツなんていねーべ?
(注:本物のi386 = i386DX の動作クロック 20MHz とかw)
確か、MMX Pentium までは動作クロック100MHz未満なはず。
一番最初の i686 CPU である Pentium Pro が 133MHz だから。
現在では5,000円弱で入手できる安物ルーターのCPUでさえ
200MHzくらいは逝ってるはずなんだけどねぇ。
おそるべし、「ムーアの法則」・・・。

コメントする