【Memo Page】




【Memo】

授業等で使用される問題については、正解とは限りません。


2011/12/27

並列分散メモ Open MPI Java 01/04 17:00 集まり。 加算: 2の20乗 素数: 100万 発表時間10分 教科書の4.9

2011/12/21

ゲーム班メモ 配列にはnewを test: list の登録されたものをチェックできるルーチンを作る polygon pack に入れてやる pp[] polygon.cc new Scenegraphで設定 SceneGraph.cc を触ることになりそう model textureがわからん 【個人的なメモ】 c++, mercurial, gtagsについて軽くでいいから学ぶ。さっと。 emacs も少し使ってみる

2011/11/09

ssh

 Fedora15にopensshをインストールしたが、使えなかった。何故に?
 scpを使いたくて、sshにscpは含まれていると聴いてたので、
sshをインストールした……が、sshすらなぜか使えない。
#yum -y install openssh
ではダメなようでした。
sshすると幾つかのコマンドが使えなくなることがあると聞いて、それかなと
思ったが、そうでもない。コンソール上でも使えない。
 じゃあ、sshdの再起動……をしてみるが、それもできない。
 わけわからん、と思いながらあれこれ調べてみると、
#yum -y install openssh-server
#yum -y install openssh-clients
 の2つが必要なようです。初めて知ってテンション落ちました。

2011/11/01

OS 問題1.1

(1)
Fedoraの公式サイトからディスクイメージをダウンロードし、Virtual BoxでFedora Linuxをインストールする。installオプションに linux textを使用し、コマンドラインからインストールする。
インストールはすぐに終わった。かかった時間は10分程度である。
blade上にも移行し、動作した。ovftoolとvSphereClientを使い、.vmxファイルを.ovf形式に変換した。
最初はvirtual boxで試そうとしたが、virtual hardware familyがvirtual box-2.2となっており異なっているために.ovf形式に変換できず、更にvSphereConverterを使用してVMware
規格に変換しようとしたが権限の不足で断念した。
やはり仮想化ソフトはBlade上で動作しているものと同じベンダーのものがよいと考えられる。



(2)
【ls -l の結果】
095767E[TaikiTAIRA]% ls -la
total 2507736
drwxr-xr-x@ 24 TaikiTAIRA  staff        816 10 25 05:01 .
drwxr-xr-x   6 TaikiTAIRA  staff        204 10 25 01:48 ..
-rw-------@  4 TaikiTAIRA  staff  163774464 10 25 04:54 e095767-s001.vmdk
-rw-------@  4 TaikiTAIRA  staff  563478528 10 25 04:54 e095767-s002.vmdk
-rw-------@  4 TaikiTAIRA  staff   23527424 10 25 04:54 e095767-s003.vmdk
-rw-------@  4 TaikiTAIRA  staff   31588352 10 25 04:54 e095767-s004.vmdk
-rw-------@  4 TaikiTAIRA  staff  120258560 10 25 04:54 e095767-s005.vmdk
-rw-------@  4 TaikiTAIRA  staff   41615360 10 25 04:54 e095767-s006.vmdk
-rw-------@  4 TaikiTAIRA  staff  152502272 10 25 04:54 e095767-s007.vmdk
-rw-------@  4 TaikiTAIRA  staff   82247680 10 25 04:54 e095767-s008.vmdk
-rw-------@  4 TaikiTAIRA  staff  103088128 10 25 04:54 e095767-s009.vmdk
-rw-------@  1 TaikiTAIRA  staff     458752 10 25 04:54 e095767-s010.vmdk
-rw-------@  1 TaikiTAIRA  staff      65536 10 25 04:54 e095767-s011.vmdk
-rw-------@  1 TaikiTAIRA  staff       8684 10 25 04:54 e095767.nvram
-rw-------@  1 TaikiTAIRA  staff        863 10 25 04:43 e095767.vmdk
-rw-r--r--@  1 TaikiTAIRA  staff          0 10 25 01:46 e095767.vmsd
-rwxr-xr-x@  1 TaikiTAIRA  staff       2405 10 25 05:00 e095767.vmx
drwxrwxrwx   3 TaikiTAIRA  staff        102 10 25 04:42 e095767.vmx.lck
-rw-r--r--@  1 TaikiTAIRA  staff        262 10 25 01:46 e095767.vmxf
-rw-r--r--@  1 TaikiTAIRA  staff          0 10 25 05:01 quicklook-cache.png
-rw-r--r--@  1 TaikiTAIRA  staff     581575 10 25 04:39 vmware-0.log
-rw-r--r--@  1 TaikiTAIRA  staff     412332 10 25 04:16 vmware-1.log
-rw-r--r--@  1 TaikiTAIRA  staff      98673 10 25 01:48 vmware-2.log
-rw-r--r--@  1 TaikiTAIRA  staff     230252 10 25 04:54 vmware.log

仮想マシンの.vmdkファイルの大きさは、1282605056byte。これはzsh、gccインストール後のデータで、約1.28GBとなっており2GB以下に収まっている。

(3)
多少環境によって差が出るが、VMは物理的な設計とは独立しているため、
PCからBladeに移しても環境は変わらないと考えられる。
serial SATAを使用しているVirtual Boxは、物理構造そのものが違うため、
マウントする記憶媒体も異なる。なのでSCSIを使用しているVMwareとは
異なるメッセージを出すことが考えられる。
今回使用した仮想マシンはVMwareなので、ほぼ同一の出力がなされる。
以下はBladeとlocalのマシンのboot.logをdiffコマンドで取得したものである。
095767E[TaikiTAIRA]% cat diff.txt          [/Users/TaikiTAIRA/3rdClass/OS/Q1.1]
10a11,12
> Starting Stdio Syslog Bridge...
> Started Stdio Syslog Bridge.
21,23d22
< Starting Stdio Syslog Bridge...
< Started Stdio Syslog Bridge.
< Started Apply Kernel Variables.
26,27d24
< Started Apply System Clock UTC Offset.
< Starting udev Kernel Device Manager...
29a27,29
> Started Apply System Clock UTC Offset.
> Started Apply Kernel Variables.
> Starting udev Kernel Device Manager...
30a31
> Started Setup Virtual Console.
33d33
< Started Setup Virtual Console.
41,42c41
< systemd-fsck[560]: /dev/sda1: recovering journal
< systemd-fsck[560]: /dev/sda1: clean, 37/128016 files, 45904/512000 blocks
---
> systemd-fsck[537]: /dev/sda1: clean, 37/128016 files, 45904/512000 blocks
62d60
< Started Load Random Seed.
63a62
> Started Load Random Seed.
90,93c89,90
< Oct 25 15:04:27 localhost NET[1004]: /sbin/dhclient-script : updated /etc/resolv.conf
< Oct 25 15:08:17 localhost NET[1193]: /sbin/dhclient-script : updated /etc/resolv.conf
< Oct 25 15:09:55 localhost NET[1318]: /sbin/dhclient-script : updated /etc/resolv.conf
< [root@e095767 log]#
---
> Oct 25 16:22:03 localhost NET[957]: /sbin/dhclient-script : updated /etc/resolv.conf

bladeと異なっているのは、DHCP関係の出力と記憶媒体の出力である。
保存する場所が異なっているために、これらのステータスは変化している。


(4)
var/logの中には幾つかファイルがある。以下が/var/log内のファイルである。
anaconda  boot.log  cron        lastlog  maillog   secure   tallylog  yum.log
audit     btmp      dracut.log  mail     messages  spooler  wtmp
lastlog、spooler、tallylog、btmpはほとんど何も書かれていない。
yum.logはyumコマンドのログである。
maillogはメールのログである。
dracut.logは初期化のログである。



anaconda、audit、mailはディレクトリである。

messageでは、以下の文が記録されている。
Oct 25 12:59:25 localhost kernel: [    0.000000] x86 PAT enabled: cpu 0, old 0x0, new 0x7010600070106
Oct 25 13:22:08 localhost kernel: [    0.156345] Brought up 1 CPUs

新しく見つけたCPUの番号を割り当てていると考えられる。
massageにはCPUを差し替えると、情報が書かれる。

コンパイラ構成論 問題1.1

	gccのソースコードを取得する前に、準備をする。
1.gmp
2.mpfr
3.mpc
の3つを用意し、圧縮されているのなら解凍する。解凍後はディレクトリ名にversion番号が付与されているので、それを

mv gmp-4.3.2 gmp

というようにversion番号を抜いたものに改名する。3つ全てを改名し終えたら、次へ進む。

svn checkout svn://gcc.gnu.org/svn/gcc/trunk gccでsvnからgccを取ってくる。

gccの中に、上で改名した3つのディレクトリを置く。
Mac OS X Lionでは、デフォルトのコンパイラがLLVMに変更されているためgccのパスを指定する必要がある。
.zshrcのなかに、
export CPP=/usr/bin/cpp-4.2
export CXX=/usr/bin/g++-4.2
export CC=/usr/bin/gcc-4.2
export LD=/usr/bin/ld
と記述する。

次に、gccのとなりにディレクトリmygccを作成する。mygccへ入り、
../gcc/configure -prefix=$HOME/
を入力してconfigureを実行する。configureはシェルスクリプトであり、ソースファイルをコンパイルする前にインストール対象となるシステム特有の機能や情報をチェックし、チェック状況を記述したMakefileを作成するものである。configureをしなければ、Makefileを実行することができない。
5分ほどでconfigureを終えたら、次はmakeをする。
configureで作成されたMakefileがあるので、makeコマンドを実行することができる。
makeは長くかかり、1時間半程度で終わる。

以下はmakeを終えたディレクトリの中身である。
095767E[TaikiTAIRA]% cd mygcc                                                   [/Users/TaikiTAIRA/3rdClass/Compiler]
Makefile                         prev-gcc                         stage1-libcpp
build-x86_64-apple-darwin11.2.0  prev-gmp                         stage1-libdecnumber
compare                          prev-intl                        stage1-libiberty
config.log                       prev-libcpp                      stage1-mpc
config.status                    prev-libdecnumber                stage1-mpfr
fixincludes                      prev-libiberty                   stage1-x86_64-apple-darwin11.2.0
gcc                              prev-mpc                         stage1-zlib
gmp                              prev-mpfr                        stage_current
intl                             prev-x86_64-apple-darwin11.2.0   stage_final
libcpp                           prev-zlib                        stage_last
libdecnumber                     serdep.tmp                       x86_64-apple-darwin11.2.0
libiberty                        stage1-gcc                       zlib
mpc                              stage1-gmp
mpfr                             stage1-intl

この中のgccというディレクトリへ入る。

095767E[TaikiTAIRA]% ls -la | grep cc1                                [/Users/TaikiTAIRA/3rdClass/Compiler/mygcc/gcc]
-rwxr-xr-x    1 TaikiTAIRA  staff   19482964 11  1 15:34 cc1
-rw-r--r--    1 TaikiTAIRA  staff        195 11  1 15:34 cc1-checksum.c
-rw-r--r--    1 TaikiTAIRA  staff       2948 11  1 15:34 cc1-checksum.o
-rwxr-xr-x    1 TaikiTAIRA  staff   19937100 11  1 15:39 cc1obj
-rw-r--r--    1 TaikiTAIRA  staff        195 11  1 15:39 cc1obj-checksum.c
-rw-r--r--    1 TaikiTAIRA  staff       2952 11  1 15:39 cc1obj-checksum.o
-rwxr-xr-x    1 TaikiTAIRA  staff   22006028 11  1 15:37 cc1plus
-rw-r--r--    1 TaikiTAIRA  staff        195 11  1 15:37 cc1plus-checksum.c
-rw-r--r--    1 TaikiTAIRA  staff       2956 11  1 15:37 cc1plus-checksum.o

cc1が生成されていることが確認できる。

このcc1を使って、hello.cをコンパイルしてみる。
 ./mygcc/gcc/cc1 hello.c                                    [/Users/TaikiTAIRA/3rdClass/Compiler]
 __sputc main
Analyzing compilation unit
Performing interprocedural optimizations
 <*free_lang_data>    Assembling functions:
 main
Execution times (seconds)
 phase setup             :   0.00 ( 0%) usr   0.00 ( 0%) sys   0.01 ( 9%) wall    1051 kB (59%) ggc
 phase parsing           :   0.01 (100%) usr   0.00 ( 0%) sys   0.09 (82%) wall     671 kB (38%) ggc
 phase lang. deferred    :   0.00 ( 0%) usr   0.00 ( 0%) sys   0.01 ( 9%) wall       0 kB ( 0%) ggc
 phase generate          :   0.00 ( 0%) usr   0.00 ( 0%) sys   0.01 ( 9%) wall      29 kB ( 2%) ggc
 preprocessing           :   0.00 ( 0%) usr   0.00 ( 0%) sys   0.07 (64%) wall      90 kB ( 5%) ggc
 parser (global)         :   0.01 (100%) usr   0.00 ( 0%) sys   0.00 ( 0%) wall     553 kB (31%) ggc
 parser function body    :   0.00 ( 0%) usr   0.00 ( 0%) sys   0.02 (18%) wall       1 kB ( 0%) ggc
 TOTAL                 :   0.01             0.00             0.11               1769 kB
Extra diagnostic checks enabled; compiler may run slowly.
Configure with --enable-checking=release to disable checks.

hello.sが生成された。

095767E[TaikiTAIRA]% ls                                                         [/Users/TaikiTAIRA/3rdClass/Compiler]
gcc                gmp-4.3.2.tar.bz2  hello.s            mpc-0.8.1.tar.gz   mpfr-2.4.2.tar.bz2 s-c
gmp-4.3.2          hello.c            mpc-0.8.1          mpfr-2.4.2         mygcc

hello.sの中身は以下である。

095767E[TaikiTAIRA]% cat hello.s                                                [/Users/TaikiTAIRA/3rdClass/Compiler]
     .cstring
LC0:
     .ascii "hello,world\0"
     .text
     .globl _main
_main:
LFB1:
     pushq     %rbp
LCFI0:
     movq     %rsp, %rbp
LCFI1:
     leaq     LC0(%rip), %rdi
     movl     $0, %eax
     call     _printf
     movl     $0, %eax
     popq     %rbp
LCFI2:
     ret
LFE1:
     .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
EH_frame1:
     .set L$set$0,LECIE1-LSCIE1
     .long L$set$0
LSCIE1:
     .long     0
     .byte     0x1
     .ascii "zR\0"
     .byte     0x1
     .byte     0x78
     .byte     0x10
     .byte     0x1
     .byte     0x10
     .byte     0xc
     .byte     0x7
     .byte     0x8
     .byte     0x90
     .byte     0x1
     .align 3
LECIE1:
LSFDE1:
     .set L$set$1,LEFDE1-LASFDE1
     .long L$set$1
LASFDE1:
     .long     LASFDE1-EH_frame1
     .quad     LFB1-.
     .set L$set$2,LFE1-LFB1
     .quad L$set$2
     .byte     0
     .byte     0x4
     .set L$set$3,LCFI0-LFB1
     .long L$set$3
     .byte     0xe
     .byte     0x10
     .byte     0x86
     .byte     0x2
     .byte     0x4
     .set L$set$4,LCFI1-LCFI0
     .long L$set$4
     .byte     0xd
     .byte     0x6
     .byte     0x4
     .set L$set$5,LCFI2-LCFI1
     .long L$set$5
     .byte     0xc
     .byte     0x7
     .byte     0x8
     .align 3
LEFDE1:
     .subsections_via_symbol

2011/09/30

&quot; "
&gt; >
&amp; &
&lt; <
mysqldump -q データベース名 -p > ファイル名
rsync 移行ファイル名 移行先ディレクトリ

2011/09/18

gccコンパイラ
gcc -O2 -Wall -o 実行ファイル名 ソースファイル名
-O2 最適化
-Wall コンパイル時の警告
-g デバッグオプション
-s リンカに渡すオプション( -o オプションの前に記述)

#OS #コンパイラ


2011/09/07

sync
ディスクキャッシュをフラッシュする。
キャッシュの内容を、強制的にディスクに反映させる。

mount
ファイルシステムを、任意のディレクトリから参照、操作可能にする。
%mount デバイス名 マウントポイント

低水準入力関数
OS依存の関数。細かい作業が可能だが、OS依存なのでプログラムを他のOSに移植する場合はプログラムに変更が必要。
ファイルディスクリプタを使用。

高水準入力関数
一度OSが管理するメモリーに置く。ファイルポインタを使用する。
	

#OS


2011/09/06

$find . -name "*.c"
現在いるディレクトリのサブディレクトリすべてのcのソースファイルを見つける。
#chkconfig network on
network自動起動オンにする。
	

#OS


2011/09/03

#visudo sudoersの編集

/etc/passwdを編集してログインシェルの設定
which ファイル名で検索出来ることも忘れず。
find locate grep などなど使いこなす。
	

#OS


2011/08/31

//macスクリーンショット
command shift 3 画面全体
command shift 4 画面の一部

//perlメモ
perl -V
バージョンとか詳細表示
ここでithreads=undefなら無効
macportを使ってインストールする。
まずperlパッケージをmacportで検索
$port search perl
$port variants perl5.12.3
threadsを上記のなかで見つけたら
$sudo port install perl5.12.3 +threads

//nkfメモ
nkfインストール
$port search n/f
$sudo port install nkf

//nkf使用方法
文字コードチェック
$nkf -g [ファイル名]
$nkf -w --overwrite [ファイル名]

//サーバのアドレス変更
sshでログイン
$sudo vi etc/sysconfig/network-scripts/ifcfg-eth0
IPV6ADDR=
IPV6_DEFAULTGW=
この二つのアドレスを変更

//restart
$cd /etc/init.d
$./network restart

//Marcurial
サーバでクローンするディレクトリに、
$hg init [Mercurialで使うディレクトリ]
$ls -a
. .. .hg ←こいつがあったら成功

クライアントで
$hg clone サーバ名
サーバのディレクトリのクローンを持ってくる
$hg add
$hg commit コメント
$hg push
ここまでやってサーバに上げる
その後サーバでサーバの内容を更新
$hg update

//権限変更
$chomd [権限に対応する数字] [ディレクトリ名]
$chown [ユーザー名] [file名]

//hosts.allow
sshでログインして
$cd /etc
$sudo su -
パスワード入力して
$vi hosts.allow
ipv6関係を書き換え

//MAMP
普通にインストール
出てきたMAMPフォルダの下に.appがいる

//pukiwiki
普通にダウンロード
webサーバに乗っける
webサーバに乗っけるためにscpyコマンドを使用
$scp [filename] [server path] :~/index.html
$vi pukiwiki.ini
タイトル編集$adminpass='パスワード記入'←こいつで凍結の可否を管理できる。
すべてのフォルダに書き込み読み込みの権限を与える。
権限与え過ぎなのであとで変更
やらないと下記のフォルダを見てないかけない、っていうエラーが出る
'DATA_DIR', 'DIFF_DIR', 'BACKUP_DIR', 'CACHE_DIR'

//dovecotのステータス表示と再起動
$./etc/init.d/dovecot status
$./etc/init.d/dovecot restart

//時刻同期しなおし
./etc/rc.d/init.d/ntpd restert

//dovecot実験
login_process_size = 32

//tar使い方
圧縮: [wtopia]$ tar czvf sample.tar.gz math_formula (math_formula がディレクトリ名)
解凍: [wtopia]$ tar xzvf sample.tar.gz (sample.tar.gz がファイル名)
	

2011/08/30

SE Linux 無効
/etc/selinux/config
SELINUX=enforcing
SELINUX=disabled
#Linux
		
Memo Page Top 学科トップへ