
これは、Pascal Bourguignonの優れた記事への回答です。PascalBourguignon
では、PID 1でEmacsを起動する方法について
説明しています 。
誰もが知っているように、誰もEmacsを使用していません。
上記の提案は、これが別の聖戦の始まりであることを示唆しています。 始めてください。 あなたが私に何かを伝えたい場合、私の連絡先はすべて私のブログにあります。
実際、冗談はさておき。 これは素晴らしい記事だと思います。それを読んだ後、Vimで似たようなことができるかどうかを見たかったのです。 Linuxユーザーモードではなく、実際に起動するISOを作成します。 必要に応じて、「Vimで起動」と言うことができます。
本当に簡単です。 Vimを静的にコンパイルし、
init=をbootに設定して、完了です。
Tiny Core、Coreエディションの小さな(9Mb)ディストリビューションを使用し、静的にアセンブルされたVimに直接ダウンロードされるように構成します。
Vimをまとめる
静的にリンクされたVimの構築方法に関する他のガイドに従ってください。 その結果、実行可能ファイルが取得されます。このファイルは、このガイドの後半で使用します。
準備する
ISOをコンパイルするには、
cpio 、
tar 、
gzip 、
advdef 、および
mkisofsといういくつかのツールが必要です。 ほとんどの場合、まだインストールされていない場合は、パッケージマネージャーを使用してインストールできます。 最初にそれをしてください。
最初に、ビルドするディレクトリを作成します。
mkdir vim-as-pid-1 cd vim-as-pid-1
ISOを構築するためのディレクトリもいくつか作成します。
mkdir /tmp/isomount mkdir extract
最新バージョンのTiny Core、Coreエディション(GUIなし)をダウンロードします。
wget http://distro.ibiblio.org/tinycorelinux/5.x/x86/release/Core-current.iso
ダウンロードしたISOからファイルをコピーします。
mount Core-current.iso /tmp/isomount/ -o loop,ro cp -a /tmp/isomount/boot /tmp/
これらのコマンドは、ブートローダーと
core.gzファイルで
/tmp/bootを作成します。 アンマウントすることを忘れないでください:
umount /tmp/isomount
後ですべてをISOファイルにまとめるときに
/tmp/bootを使用します。
ISOファイルを変更する
core.gzが抽出されるディレクトリ(ファイルシステムのルートディレクトリ)に移動します。
cd extract
zcatと
cpioを使用して、
core.gzからファイルシステムのルートを抽出します。
zcat /tmp/boot/core.gz | cpio -i -H newc -d
これで、ファイルシステムのルートディレクトリが抽出されました。
前の手順でコンパイルしたVim実行可能ファイルを
bin/ディレクトリに配置します
cp ~/vim bin/
ブートローダーのメッセージを編集するなど、他の設定を行うこともできます。 ディレクトリ
/tmp/boot/isolinux/ boot.msgというファイルにあります:
初期化タブの変更
Vimに直接読み込むには、初期化設定を変更する必要があります。 次のファイルを編集します。
vim etc/inittab
これらの行を変更します。
::sysinit:/etc/init.d/rcS tty1::respawn:/sbin/getty 38400 tty1
に:
::sysinit:/bin/vim tty1::respawn:/bin/vim
真新しいISOを置く
まだ
extractというディレクトリにいることを確認してください。 次に、次のコマンドを入力して、新しい
tinycore.gzファイルを作成します。これは、ISOが
initramfsとして使用するものです。
find | cpio -o -H newc | gzip -2 > ../tinycore.gz
前にコピーした
/tmp/boot core.gzというファイルにコピーします。
cp ../tinycore.gz /tmp/boot/core.gz
新しいISOに含まれるファイル用の新しいディレクトリを作成します。
mkdir /tmp/newiso
ディレクトリ
/tmp/bootコピーし
/tmp/boot :
cp -a /tmp/boot /tmp/newiso/
mkisofsを使用してISOをビルドします。
cd /tmp/ mkisofs -l -J -R -V Boot_To_Vim -no-emul-boot -boot-load-size 4 -boot-info-table -b boot/isolinux/isolinux.bin -c boot/isolinux/boot.cat -o Boot_to_Vim.iso newiso
これで
/tmp Boot_to_Vim.isoというファイルがあります:
ls -la /tmp/Boot_to_Vim.iso -rw-r--r-- 1 root root 11044864 Sep 17 08:05 /tmp/Boot_to_Vim.iso
これを使用して、仮想マシンを起動したり、ディスクに書き込むことができます。 Vimを終了すると、再び起動します。

コマンドモードで
:!shと入力すると、実際のシェルを呼び出すことができます。 オフにするには、コマンド
:!halt使用します。
Tiny Coreのリマスタリングの詳細については、
こちらをご覧ください 。