VirtualBox Guest Additions on Fedora 16

December 16, 2011 Leave a comment

디스플레이 설정
– 비디오 메모리 : 128 MB
– 3D 가속 : Enable

Fedora 16 설치

사전작업
# yum update
# yum install kernel-devel kernel-headers dkms gcc gcc-c++

VM 재부팅

Guest Additions 설치
– VM 창의 장치 메뉴에서 게스트 확장 설치 실행 (CD/DVD 장치가 마운트되어 있어야 함)
– /media 디렉토리 하위의 VBOXADDITIONS 디렉토리로 이동
– # ./VBoxLinuxAdditions.run
– (GNOME 3 쉘 사용하려면) # restorecon -R -v /opt

VM 재부팅 (완료)

postgreSQL on Fedora 16 (설치 및 환경설정)

December 14, 2011 Leave a comment

서버설치
# yum install postgresql-sever

pgadmin 설치
# yum install pgadmin3

데이터베이스 생성
# postgresql-setup initdb
(Fedora 16부터 명령어 변경됨. 이전에는 “# service postgresql initdb”)

서비스 시작
# service postgresql start

postgres 계정으로 접속 및 패스워드 설정
# su – postgres
-bash-4.2$ psql postgres
psql (9.1.2)
Type “help” for help.

postgres=# ALTER USER postgres WITH ENCRYPTED PASSWORD ‘사용할 패스워드 문자열’;
postgres=# \q
-bash-4.2$ exit

접근방식 (ident -> password) 및 메모리 사용 설정 변경
# vi /var/lib/pgsql/data/pg_hba.conf
——————————————————————————————-
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# “local” is for Unix domain socket connections only
local   all             all                                     password
# IPv4 local connections:
host    all             all             127.0.0.1/32            password
host    all             all             0.0.0.0/0                  password
# IPv6 local connections:
host    all             all             ::1/128                 password
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     postgres                                peer
#host    replication     postgres        127.0.0.1/32            ident
#host    replication     postgres        ::1/128                 ident
——————————————————————————————-

# vi /var/lib/pgsql/data/postgresql.conf
——————————————————————————————-
listen_addresses = ‘*’
port = 5432
max_connections = 100
shared_buffers = 4096MB (이와 같이 설정했을 때 postgresql 서비스가 시작되지 못하는 문제가 발생된다. 원래대로 32MB로 설정할 것)
——————————————————————————————-

서비스 재시작
# service postgresql restart

pgadmin3로 접속 및 작업
# pgadmin3

vim 설치 및 환경설정

November 30, 2011 Leave a comment

버전확인 및 설치

  1. # rpm -qa | grep vim
  2. -> vim-minimal-7.2.446-2.fc14.i686 (최소버전만 설치되어 있는 경우)
  3. (vim 재설치) # yum install vim
  4. 재설치 후 vi 명령어를 실행하면 small 버전이, vim 명령어를 실행시키면 huge 버전이 실행.
  5. $Home/.bashrc 에 alias vi=”vim” 추가하고 재부팅하면 vi 명령어로 huge 버전 실행

사용자 환경설정

  1. $ vi ~/.vimrc
  2. 설정내용 작성
    set number
    set cindent
    set shiftwidth=4
    set softtabstop=4
    set fileendocing=utf-8
    set fileencodings=ucs-bom,utf-8,cp949,cp932,euc-jp,shift-jis,latin1

Fedora 16 설정

November 27, 2011 Leave a comment

Partitioning Schema

참고: http://docs.fedoraproject.org/en-US/Fedora/16/html/Installation_Guide/s2-diskpartrecommend-x86.html

Linux Box 2 (office)

  • swap : 4 GB
  • /boot : 250 MB
  • / : 150 GB
  • /home : 나머지 전부

그래픽 드라이버 설치

# yum install kmod-nvidia
# yum install kmod-nvidia-PAE (PAE 커널일 경우)
(참고) http://rpmfusion.org/Howto/nVidia
(사례) GEFORCE GT520 모델일 경우에도 위의 명령어로 설치된 드라이버가 문제없이 작동했다.

듀얼 모니터 사용도 가능하다. 다만, 아래와 같이 관리자 권한으로 설정 프로그램을 실행시키고, 주모니터만이 연결된 상태에서 설정을 한 후, 부모니터를 연결시킨다. 그리고 “Detect Displays”를 클릭하여 부모니터를 인식시킨 후 Twin View 설정을 진행한다.
# nvidia-settings

프린터 설치

OS 자체 기능으로 hp 레이저젯 프린터를 무사히 설치함.
프린터 설치 후 프린터 연결이 끊기는 현상이 계속 발생됨. 아래의 조치로 해결함.
# yum install hplip hpijs

한글입력 설정

  1. Input Method Selector 실행
  2. IBus -> Preferences -> Input Method -> Korean

/tmp 위치 변경 (SSD 관련 이슈)

  1. # vi /etc/fstab
  2. “tmpfs  /tmp  tmpfs  defaults  0 0” 행 추가

Firefox 캐시 설정 변경 (SSD 관련 이슈)

  1. 주소입력창에 “about:config” 입력
  2. 화면 상에서 우클릭 후 new -> string
  3. name 입력: browser.cache.disk.parent_directory
  4. string 입력: /tmp/firefox_cache

TRIM 기능 켜기 (SSD 파티션)

  1. # vi /etc/fstab
  2. UUID=…  /  ext4  defaults  1 1   ->   UUID=…  /  ext4  discard,defaults  1 1
  3. 재부팅 후 mount 명령으로 확인

noatime 옵션 사용 (SSD 파티션)

  1. # vi /etc/fstab
  2. UUID=…  /  ext4  discard,defaults  1 1   ->   UUID=…  / ext4  noatime,discard,defaults  1 1
  3. 재부팅 후 mount 명령으로 확인

I/O 스케쥴러 변경 (SSD 파티션)

  1. 상태확인: # cat /sys/block/sda/queue/scheduler   ->   noop deadline [cfq] (cfq로 설정된 상태)
  2. 즉시변경: # echo “noop” > /sys/block/sda/queue/scheduler
  3. 변경확인: # cat /sys/block/sda/queue/scheduler   ->   [noop] deadline cfq (noop으로 변경된 상태)
  4. # vi /etc/rc.d/rc.local
  5. rc.local 파일을 다음 내용으로 작성
    #!/bin/sh
    echo “noop” > /sys/block/sda/queue/scheduler
  6. # chmod 755 /etc/rc.d/rc.local

저널링 끄기 (SSD 파티션)

  1. live-system (USB 부팅) 등으로 부팅
  2. # tune2fs -O ^has_journal /dev/sda2
  3. 원래 머신으로 재부팅
  4. 변경확인: # dmesg | grep EXT4

Useful links related to filesystem

April 22, 2011 Leave a comment

[PROGRAMMING] 비트와 비트패턴

January 23, 2011 Leave a comment

기본적인 사항

● 비트는 2진수가 아닌 패턴으로 이해해야 한다.
● 숫자는 비트패턴으로 표현할 수 있는 수많은 정보 유형 중 하나일 뿐이다.
● N개의 비트로 표현할 수 있는 패턴의 수 = 2N
● 1 byte = 8 bits

비트패턴의 명명법 (Pattern Name)

● 비트패턴은 4비트로 묶어보는 것이 편하다. (0010 1000 1010 1010)
● 그래서 16진수 명명법이 많이 사용된다. (0x28AC)
● 3비트씩 묶어보는 경우도 있다 (001 101 010)
● 그래서 8진수 명명법이 사용되기도 한다. (0152)
● 2진수, 8진수, 16진수 명명법은 패턴을 표현하는 방법이며, 일반적인 숫자정보가 아니다.

비트, 바이트의 단위

● 바이트의 단위는 두 가지 방식으로 표현할 수 있다. [SI decimal prefixes], [IEC binary prefixes]
● 관습적으로는 IEC 수치를 SI 단위로 부른다 (210 = 1024 bytes = 1 kilobyte)

SI decimal prefixes   IEC binary prefixes    
kilobyte (kB) 103 kibibyte (KiB) 210 1,024
megabyte (MB) 106 mebibyte (MiB) 220 1,048,576
gigabyte (GB) 109 gibibyte (GiB) 230 1,073,741,824
terabyte (TB) 1012 tebibyte (TiB) 240 1,099,511,627,776
petabyte (PB) 1015 pebibyte (PiB) 250
exabyte (EB) 1018 exbibyte (EiB) 260
zettabyte (ZB) 1021 zebibyte (ZiB) 270
yottabyte (YB) 1024 yobibyte (YiB) 280


메모리 어드레스

● 하나의 어드레스는 하나의 바이트를 가리킨다.
● 16비트 어드레스 → 216개 비트패턴 → 216개 어드레스 → 최대 216 bytes 메모리
● 32비트 어드레스 → 232개 비트패턴 → 232개 어드레스 → 최대 232 bytes 메모리
● 216 = 26 * 210 = 64 * 1kB = 64 kB
● 224 = 24 * 220 = 16 * 1MB = 16MB
● 232 = 22 * 230 = 4 * 1GB = 4 GB

[PROGRAMMING] 기계 명령의 실행과 번역

January 21, 2011 Leave a comment

기본적인 기계 사이클 (Basic Machine Cycle)

① Fetch the instruction from the address in the Program Counter
② Increment the Program Counter
③ Execute the Instruction

● PC(Program Counter)는 인텔 아키텍처에서 IP(Instruction Pointer)로 불린다.

기계어로의 번역 과정 (Separate Translation)

Assembly Source Code –> Assembler –> Object Module –> Linker –> Load Module
C Source Code –> Compiler –> Object Module –> Linker –> Load Module

● 어셈블러는 소스 파일을 개별적으로 컴파일해서 각각의 오브젝트 모듈을 생성한다.
● 링커는 오브젝트 모듈들을 연결(linking)하여 로드 모듈을 생성한다. 로드 모듈이 실행파일이다.
● 라이브러리는 오브젝트 모듈의 집합체이다.