Linux コーナ お待たせしました! 連載再開 ハードを隠ぺいしたお任せ OS を組み込みで使う可能性を探る 実験リサーチ! カーネル内部 とことん可視化計画 Linux応答時間 の 実力 第 7 回 カーネル圧縮方式と起動時間の関係 裏に 32M バイトのフラッシュ ROM ターゲット基板CAT724+EB724A 自作ブートローダ を書き込む SH-4Aマイコン SH7724 NORフラッシュ ROM 32Mバイト CPU 海老原 祐太郎 CPU ボード CAT724 Linuxカーネルの バイナリの圧縮方法 をいろいろ変えて 起動速度を測る ターゲット: SH4 プロセッサ SH7724 図 1 今回の実験…さまざまな圧縮方式で Linux カーネルのバイ ナリを作って自作ブートローダで起動する Linux カーネルは,バイナリとしてブートローダ から起動されます.このブートローダを自作すれば, マイコンの内蔵フラッシュや外付けフラッシュなど, 環境に応じて Linux を起動できるようになります. 今回は,カーネルのバイナリを呼び出すブートロー ダを自作します.さらに,カーネルの圧縮方式をい ろいろと変えて,CPU を起動してからカーネルをロー ドするまでの時間や,バイナリのファイル・サイズ を測ってみます.基板の構成や用途に応じてバイナ リの圧縮方式を選べるようになります. (編集部) こんな実験 ● いろいろな形式で圧縮した Linux カーネルを ブートローダで起動する 図 1 に実験の構成を示します.SH-4A マイコン搭載 基板用のブートローダを自作し,外付けの NOR フ ベースボード EB724A には拡張コネクタが搭載されている 写真 1 実験に使用した SH-4A マイコン搭載 Linux ボード CAT724 とベースボード EB724A ラッシュ ROM から CPU を起動し,圧縮された Linux カーネルのバイナリを呼び出します.このカーネル・ バイナリはビルド時に圧縮方法を選べるので,デフォ ルトの gzip 圧縮,bzip2 圧縮,lzma 圧縮などのほか, 非圧縮などでバイナリを作ってロード時間やファイ ル・サイズを調べます.その結果を表 1 に示します. ● ハードウェア 実験に使用するボードは,写真 1 に示す SH-4A マイ 表 1 カーネルの圧縮方法をいろいろ変えてみた デフォルトの圧縮方式 gzip(gz)を基準として測定した 圧縮方式 ロード時間[ms] zImage(gz) 圧縮方式 サイズ[バイト] 非圧縮(vmlinux.bin) 560 34% 非圧縮(vmlinux.bin) 4,781,408 191% zImage(gz 圧縮) 1,648 100% zImage(gz 圧縮) 2,506,784 100% zImage(bzip2 圧縮) 4,733 287% zImage(bzip2 圧縮) 2,383,904 95% zImage(lzma 圧縮) 3,815 231% zImage(lzma 圧縮) 2,056,224 82% zImage(xz 圧縮) 3,328 202% zImage(xz 圧縮) 2,056,224 82% zImage(lzo 圧縮) 770 47% zImage(lzo 圧縮) 2,711,584 108% (a)ロード時間 152 zImage(gz) (b)カーネルのファイル・サイズ 第 1 回 電源投入からカーネルが起動するまでの動作(2013 年 11 月号) 第 2 回 ハード制御で需要! 割り込み処理を時間で終わらせる三つのしくみ(2013 年 12 月号) 第 3 回 マルチタスク OS のキモ! タスク切り替えの基本動作(2014 年 1 月号) 2014 年 9 月号
© Copyright 2024