macでwindowを整理する便利ソフト - shiftit

Macはウィンドウを複数開いているときの管理が面倒です。

そこで、shiftitというアプリケーションを使うとこの煩雑さから解放されます。


shiftit - Project Hosting on Google Code 


インストールの方法はMac OS 10.6であれば、
ShiftIt_10_6_v1_2.zipをダウンロードして解凍し、/Applications 以下のディレクトリに置くだけです。
一度だけ、手動で起動すれば、以後はlogin時に自動起動してくれるようになります。

command + alt(option) + 矢印キーで自由自在にwinodowを整理することができます。



おすすめの方法は、windowを左右に割当てることでしょうか。画面がとても広く使えて、作業が楽になりました(^^)

R: survivalパッケージ

生存分析をするのに有用なsurvivalパッケージを紹介します。

#Rの起動
$ R


#mirror site の選択
> chooseCRANmirror()
# install package
install.packages("survival")

# load survival package
library(survival)


ためしに、survivalパッケージの中のkidenyについてKaplan-meier plotとロングランク検定を行います。

> data(kidney)
> attach(kidney)
> surv.bysex <- survfit(Surv(time, status==1)~sex)

> png("121125_kidney_survival.png")
> plot(surv.bysex, conf.int=F, col=c("magenta", "green"))
> dev.off()

#ロングランク検定
> survdiff(Surv(time, status==1)~sex)
Call:
survdiff(formula = Surv(time, status == 1) ~ sex)

       N Observed Expected (O-E)^2/E (O-E)^2/V
sex=1 20       18     10.2      5.99      8.31
sex=2 56       40     47.8      1.28      8.31

 Chisq= 8.3  on 1 degrees of freedom, p= 0.00395



Virtualboxのゲストマシーンにssh接続

mac os x10.6.8
vrtualbox 4.2.6
ubuntu 10.04

の環境を前提に書きます。


virtualbox を起動して、画面左上のvirtualboxの中のpreferenceをクリックします。

次にNetworkをクリックして、プラスボタンを押し、追加します。追加したものを選んで、ドライバーマークをクリックすると「edit host-only network」をクリックします。すると、IPV4やMACが表示されるので、とりあえずデフォルトでOKを押します。








次にOS選択画面のSetting -> Networkをクリックして、host-only Adaptor ,  vboxnet0, Denyとして設定を行い、okを押します。




あとは、ゲストにsshサーバーをインストールすればよいです。

$ sudo apt-get update
$ sudo apt-get install openssh-server


ホスト側から、
$ ssh 192.168.56.101
と入力して、ゲスト側のユーザーとパスワードを入力すればログイン可能です。

GRUBに関連するファイルを確認する。


Vine Linux 5.2 の環境を前提のお話。
マシーンはLet's CF-T7

###デフォルトインストールの状態で、マウントされているデバイスを確認。
###/dev/sdaがハードディスクを表している。

[root@localhost kappa]# mount
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
none on /proc type proc (rw)
none on /proc/bus/usb type usbfs (rw)
none on /sys type sysfs (rw)
/dev/sda1 on /boot type ext3 (rw)  (ブート関連のディレクトリ)
none on /dev/pts type devpts (rw,gid=5,mode=620)
none on /dev/shm type tmpfs (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
nfsd on /proc/fs/nfsd type nfsd (rw)

###ハードディスクのパーティションの構成を確認
###ちなみにgrubは/dev/sdaのMBR(Master Boot Sector)と呼ばれる、ハードディスクの最初のセクターに記述されている。
[root@localhost kappa]# fdisk /dev/sda
コマンド (m でヘルプ): p

Disk /dev/sda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes
Disk identifier: 0x000d5b1f

デバイス Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14       14593   117113850   8e  Linux LVM

: q

###ブート関連のディレクトリをのぞく

[root@localhost boot]# ls -l /boot
合計 7163
lrwxrwxrwx 1 root root      23 11月 4日 11:48 System.map -> System.map-2.6.27-52vl5
-rw-r--r-- 1 root root 1136599  1月10日  2010 System.map-2.6.27-52vl5
lrwxrwxrwx 1 root root      23 11月 1日 13:19 System.map.old -> System.map-2.6.27-52vl5
-rw-r--r-- 1 root root   88489  1月10日  2010 config-2.6.27-52vl5
drwxr-xr-x 2 root root    1024 11月 3日 12:21 grub/
-rw------- 1 root root 3798240 11月 1日 13:32 initrd-2.6.27-52vl5.img
lrwxrwxrwx 1 root root      23 11月 1日 13:19 initrd.img -> initrd-2.6.27-52vl5.img
lrwxrwxrwx 1 root root      23 11月 1日 13:19 initrd.old.img -> initrd-2.6.27-52vl5.img
-rw-r--r-- 1 root root     405 11月 1日 13:19 kernel.h
drwx------ 2 root root   12288 11月 1日 13:17 lost+found/
lrwxrwxrwx 1 root root      20 11月 1日 13:19 vmlinuz -> vmlinuz-2.6.27-52vl5
-rw-r--r-- 1 root root 2261776  1月10日  2010 vmlinuz-2.6.27-52vl5
lrwxrwxrwx 1 root root      20 11月 1日 13:19 vmlinuz.old -> vmlinuz-2.6.27-52vl5

###grubの設定ファイルの中身をみる
#menu.lst に対してリンクが張られていることがわかる。
[kappa@localhost grub]$ ls -l /boot/
合計 367
-rw-r--r-- 1 root root    197 11月 1日 13:32 default
-rw-r--r-- 1 root root     63 11月 1日 13:32 device.map
-rw-r--r-- 1 root root     30 11月 1日 13:19 device.map.rpmsave
-rw-r--r-- 1 root root   7552 11月 1日 13:32 e2fs_stage1_5
-rw-r--r-- 1 root root   7392 11月 1日 13:32 fat_stage1_5
-rw-r--r-- 1 root root   6688 11月 1日 13:32 ffs_stage1_5
lrwxrwxrwx 1 root root     10 11月 1日 13:32 grub.conf -> ./menu.lst
lrwxrwxrwx 1 root root      8 11月 1日 13:19 grub.conf.rpmsave -> menu.lst
-rw-r--r-- 1 root root   6688 11月 1日 13:32 iso9660_stage1_5
-rw-r--r-- 1 root root   8160 11月 1日 13:32 jfs_stage1_5
-rw-r--r-- 1 root root    813 11月 3日 12:21 menu.lst
-rw-r--r-- 1 root root     37 11月 1日 13:19 menu.lst.rpmsave
-rw-r--r-- 1 root root   6848 11月 1日 13:32 minix_stage1_5
-rw-r--r-- 1 root root   9216 11月 1日 13:32 reiserfs_stage1_5
-rw-r--r-- 1 root root  41458 11月 3日 12:06 splash.xpm.gz
-rw-r--r-- 1 root root    512 11月 1日 13:32 stage1
-rw-r--r-- 1 root root 100426 11月 1日 13:33 stage2
-rw-r--r-- 1 root root 100426  1月21日  2009 stage2_eltorito
-rw-r--r-- 1 root root  41458 11月 3日 01:46 tux.xpm.gz
-rw-r--r-- 1 root root   7040 11月 1日 13:32 ufs2_stage1_5
-rw-r--r-- 1 root root   6240 11月 1日 13:32 vstafs_stage1_5
-rw-r--r-- 1 root root   8904 11月 1日 13:32 xfs_stage1_5

# less /boot/grub/menu.lst

############ここから#############
# menu.lst generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
#          initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5

splashimage=(hd0,1)/boot/grub/splash.xpm.gz

title Vine Linux (Kappa kernel)
        root (hd0,0)
        kernel /vmlinuz ro root=/dev/VolGroup00/LogVol00 resume=swap:/dev/VolGroup00/LogVol01 vga=0x314 splash=silent 
        initrd /initrd.img

title Vine Linux (Previous kernel)
        root (hd0,0)
        kernel /vmlinuz.old ro root=/dev/VolGroup00/LogVol00 resume=swap:/dev/VolGroup00/LogVol01 vga=0x314 splash=silent 
        initrd /initrd.old.img
############ここまで#############


###実際に、設定ファイルに内容がgrubに反映されていることを確認する。
###リブートして、grubを開き、「e」を押す

root (hd0,0)
kernel /vmlinuz ro root=/dev/VolGroup00/LogVo100 resume=swap:/dev/Vol01 vga=0x314 splash=silent
initrd /initrd.img

buildrootを用いてusbブートのLinuxをビルドする。

ネット上の様々な有用情報を頼りにして、buildrootとLinuxカーネルのソースコードから、usbブート可能なLinuxをビルドし、usbにgrubとともにインストールすることができました。一連の行程を備忘録として残しておきます。

USBから起動できる最小構成のLinuxをビルド。

<参考Web site>

<(0)開発環境>
Vine Linux 5.1 on Let's note CF-T7
ユーザー名:kappa

※今回作成するMinuxというネーミングはhttp://plaza.rakuten.co.jp/slothstyle/diary/201105150000/のブログのものです。すばらしい内容で大部分を参考にさせていただきましたので、敬意を込めてそのままの名前を使用させていただきます。

<(1)ルートファイルシステムの作成>
Buildrootというソフトウェアを利用/buildrootとはルートファイルシステムを作成するためのtoolchan。uClibcやbusyboxをはじめとする様々なプログラムをビルドするためのMakefileやpatchで構成されている。
###Buildroot(buildroot-2011.02.tar.gz)をダウンロードする。
$ pwd
/home/kappa
$ mkdir minux
$ cd ./minux
$ wget http://buildroot.uclibc.org/downloads/buildroot-2011.02.tar.gz
$ tar -zxvf buildroot-2011.02.tar.gz

###Buildrootのソースコードダウンロード先ディレクトリを作成。Buildrootの設定でダウンロード先を指定することで、ダウンロードファイルを一箇所にまとめて共通化が可能。
$ pwd
/home/kappa/minux
$ mkdir buildroot-dl

###ビルドディレクトリを作成。 "minux" を親ディレクトリとし、Buildroot用に "br" という子ディレクトリを作成。
$ pwd
/home/kappa/minux
$ mkdir br

###"allnoconfig" でBuildrootの設定を初期化します。
$ pwd
/home/kappa/minux
$ make -C  /home/kappa/buildroot-2011.02 O=/home/kappa/br allnoconfig

###Buildrootの設定
$ cd ./br
$ make menuconfig

以下のようにオプションを設定。

(a)
Build options -> Download dirの
"$(TOPDIR)/dl"
"/home/admin/minux/buildroot-dl"
に変更。

(b)
BusyBoxをビルドするように設定。
Package Selection for the target -> BusyBox /// ON

(c)
ルートファイルシステムのイメージファイルをcpio形式に指定。
Target filesystem options -> cpio root filesystem /// ON

exitした後、ビルドする。
(1時間ほどかかりました。自分の環境 core 2 duo, 1.20GHz。ファイルダウンロードが行われるため、インターネット接続は必須です。)

$ make all

### fakeroot_1.9.5..tar.gzがダウンロードできないことが理由でインストールが止まるので、該当ファイルをダウンロードし適切な位置に配置
$ mv fakeroot_1.9.5.tar.gz /home/kappa/minux/buildroot-dl/
$ make all

ビルドに成功すると、/br/images/rootfs.cpio" というファイルが作成されます。これがcpio形式でアーカイブされたルートファイルシステムのイメージファイルになる。
###ルートファイルシステム(rootfs.cpio)を圧縮し、/home/kappa/minuxにinitrdという名前でコピーしておく。
$ gzip /home/kappa/minux/br/images/rootfs.cpio
$ cp /home/kappa/minux/br/images/rootfs.cpio.gz /home/kappa/minux/initrd

<(2)最小構成でkernelをビルド>
続いてUSBブートするための最小構成のカーネルをビルドする。
###linux-2.6.37.2のソースコードをダウンロードしてビルドした。
 $ pwd
/home/kappa/minux/
$ wget http://www.kernel.org/pub/linux/kernel/v2.6//linux-2.6.37.2.tar.bz2
$ tar jxf linux-2.6.37.2.tar.bz2
$ mkdir kernel

###allnoconfigで設定を初期化を行う。
$ make -C ./linux-2.6.37.2 O=/home/kappa/minux/kernel allnoconfig
$ cd kernel
$ make menuconfig

###以下のオプションを有効化する。モジュール化はせず、カーネルに組み込む。(モジュールはallnoconfigで無効になっている。)

・General setup -> Initial RAM filesystem and RAM disk (initramfs/initrd) support /// ON
!!圧縮ファイルの展開関連のオプションも自動的に有効化される。!!

・Executable file formats / Emulations
-> Kernel support for ELF binaries /// ON
-> Write ELF core dumps with partial segments /// ON (auto)

###ビルドします。"bzImage"が生成されれば成功。

$ make bzImage
...
Setup is 14008 bytes (padded to 14336 bytes).
System is 770 kB
CRC 5b2917a6
Kernel: arch/x86/boot/bzImage is ready (#1)
のように表示が出れば成功。




<(3)USBメモリ(/dev/sdb)へのMinimal Linux の導入>

###まずはusbをフォーマット
$ su 
# fdisk /dev/sdb
p (パーティション内容の表示)
d (パーティションの削除)
n (パーティションの作成. デフォルトで/dev/sdb1というパーティションが生成する。)

###usbの/dev/sdb1をext3でフォーマット
# mkfs.ext3 /dev/sdb1

###usbをアマウントして再度場所を変えて(/mnt/usb)マウント(わかりやすくするためである)
# umont /dev/sdb1
# mount /dev/sdb1 /mnt/usb


###grubをインストールする。
# mkdir /mnt/usb/grub
# cp /boot/grub/stage* /boot/grub/e2fs_stage1_5 /mnt/usb/grub/
# umount /mnt/usb

###/dev/sdb1にMBR(master boot record)をインストールする。MBRはブート処理専用としてデバイス上に各区帆された512byteの非表示領域である。MBRのインストールには、GRUB関連の処理を行うシンプルなコマンドシェル、GRUBシェルを使用する。
# grub
grub> device (hd0) /dev/sdb
grub> root (hd0, 0)
grub> setup (hd0)
grub> quit

###usbの/dev/sdb1にビルドしたルートシステム(/home/kappa/minux/initrd)とカーネルイメージ(/home/kappa/minux/kernel/arch/i386/boot/bzImage)を/dev/sdb1のルート(/mnt/usbにマウントした状態では、ビルド環境のマシーンから見ると/mnt/usb/がルートディレクトリ)にコピーしていく。
# mount /dev/sdb1 on /mnt/usb
# cp /home/kappa/minux/initrd /mnt/usb/
# cp /home/kappa/minux/kernel/arch/i386/boot/bzImage /mnt/usb/


###grubの設定ファイルに、/dev/sdb1の構成を書き込む。 bzImage及び、initrdが/dev/sdb1のルートディレクトリにおいてあるだけのので、素直にその旨を記述する。
# vim /boot/grub/menu.lst

////////////////////////////////////
title Minimal Linux
kernel /bzImage root=/dev/sdb
initrd /initrd
////////////////////////////////////

<(4)おわり>
再起起動すれば、BIOSの設定がUSB起動になっていれば、CUIでLinuxが起動する。
"root" ユーザーでログイン可能。
パスワードは未設定である。