스택(Stack) 알고리즘. 흔희들 스택(Stack) 알고리즘을 가장 단순한 것으로 생각한다. 아니 다시말해서 가장 단순한 것으로 생각한 나머지 별 할일 없는 알고리즘으로까지 치부하는게 문제다. 하지만 스택 알고리즘은 가장 단순하면서 그 단순함으로 인해서 가장 강력하고 널리쓰이는 알고리즘이다. 스택(Stack) 을 말할때에 가장 먼저 떠오르는 것이 LIFO 다. Last-In First-Out. 가장 나중에 들어간 데이터가 가정 먼저 나온다는 것을 영어로 표현한 것인데, 이것을 다른 관점에서 생각해보면 역정렬 알고리즘에 일종이기도 하다. 스택에 넣었다 꺼내면 역정렬된 상태가 된다. 이를 잘 활용할 수 있는 것이 있는데, 진수 변환이다. 10진수를 […]
KVM 의 Bridege 를 OpenvSwitch 로 바꾸기.
KVM은 리눅스 커널 기반의 가상화 시스템이다. KVM 을 이용하면 네트워크도 가상화를 해주는데, 이는 KVM 의 네트워크 가상화는 Bridege 네트워크를 이용하도록 되어 있다. 위 그림은 KVM 하이퍼바이저의 가상 네트워킹을 보여준다. 네트워크 가상화를 하이퍼바이저내에서 이루어지다보니 가상 시스템을 모아놓은 상태에서 전체 네트워킹을 설정하고 변경하기가 쉽지가 않게 된다. 가상 네트워킹을 관리하기 좀 더 쉽게 하이퍼바이저내에서 빼내서 가상 네트워킹을 가능하도록 한다면 어떨까. OpenvSwitch 가 이것을 가능하게 해준다. 1. 환경. CentOS 7 의 KVM 환경이다. OpenvSwitch 는 2.0 버전이며 이는 OpenStack IceHouse 패키지 저장소에 있는 것을 […]
Virtual networking in Linux.
이 포스트의 내용은 다음의 영문내용을 번역한 것 입니다. Virtual networking in Linux Virtual networking in Linux 플랫폼 가상화의 폭발적인 성장과 함께, 기업 생태계의 다른 부분이 가상화되고 있다는 건 놀라운 일이 아니다. 아주 최근에 영역은 가상 네트워킹(virtual networking) 이다. 플랫폼 가상화의 초기 구현은 가상 NIC 생성지만 오늘날에는 네트워크의 큰 부분들이 가상화되어지고 있는데, 서버의 VM 간에 통신을 지원하거나 서버간의 분산된 스위치같은 것들이다. 가상 네트워킹의 배경이되는, NIC 및 스위치 가상화에 초점을 맞춰, 아이디어를 설명한다. Computing today is undergoing something of a revival. 비록 […]
Python 2.7 설치하기.
최근에 발표된 CentOS 7 에서는 Python 2.7.5 버전이 설치되어 있습니다. 하지만 CentOS 6.x 버전에서는 Python 2.6 버전이 설치되어 있어서 2.7 버전 소스 설치에 대해 정리했습니다. Python 2.7 은 Python 2,x 대의 마지막 버전이 될 것입니다. 현재 Python 3.x 가 최신이지만 Python 2.x 대도 여전히 많이 쓰이고 모듈도 많이 있어서 지금도 많이 쓰입니다. 특히나 Python 2.7 은 다음과 같은 기능상의 변화가 있었습니다.
1 2 3 |
Updated module: The io library has been upgraded to the version shipped with Python 3.1. For 3.1, the I/O library was entirely rewritten in C and is 2 to 20 times faster depending on the task being performed. The original Python version was renamed to the _pyio module. |
1. Download and Unpack
1 2 3 4 |
cd /usr/src wget https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz tar xzf Python-2.7.8.tgz cd Python-2.7.8 |
2. Configure && make && install
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# python 기능이 필요한 라이브러리 추가 설치. yum install -y valgrind-devel.x86_64 yum install -y sqlite-devel.x86_64 # Complie option For AMD 지정. export CFLAGS="-m64 -march=generic -D_GNU_SOURCE -fPIC -pipe -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE" export CXXFLAGS="-m64 -march=generic -D_GNU_SOURCE -fPIC -pipe -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE" export LDFLAGS=-L/usr/lib64 export LINKCC="gcc" # LDFLAGS for openssl if pkg-config openssl ; then export CFLAGS="$CFLAGS `pkg-config --cflags openssl`" export LDFLAGS="$LDFLAGS `pkg-config --libs-only-L openssl`" fi export CHOST="x86_64-pc-linux-gnu" export CC=gcc # configure ./configure --prefix=/usr/local/python2.7 \ --with-signal-module \ --with-threads \ --with-pth \ --with-fpectl \ --enable-shared \ --enable-unicode=ucs4 \ --with-valgrind \ --enable-big-digits \ --with-wctype-functions make make install |
3. Post Python 설치를 시스템 Path […]
Hello world!
Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!
1 2 3 4 |
<?php $a = array(1,2,4); echo is_array($a); ?> |