【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
" " > > & & < < 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