2025년 1월 17일 금요일

우분투 쉘 변경

우분투의기본 쉘:dash
 

ls -al /bin/sh

sudo dpkg-reconfigure dash


출처: http://jang574.tistory.com/82

2025년 1월 4일 토요일

WSL에서 SSH 사용하는 법

  1. sudo apt-get purge openssh-server
  2. sudo apt-get install openssh-server
  3. sudo nano /etc/ssh/sshd_config and disallow root login by setting PermitRootLogin no
  4. Then add a line beneath it that says:

    AllowUsers yourusername

    and make sure PasswordAuthentication is set to yes if you want to login using a password.

  5. Disable privilege separation by adding/modifying : UsePrivilegeSeparation no

  6. sudo service ssh --full-restart

     

    출처: https://superuser.com/questions/1111591/how-can-i-ssh-into-bash-on-ubuntu-on-windows-10

2023년 7월 23일 일요일

컴퓨터 하드웨어와 최적화

 

volatile

특정 메모리 주소는 일반 메모리가 아닌 장치 레지스터가 될 수 있음. 이 주소값은 동일한 스레드가 두 번 연속해서 읽는 사이에 변할수 있음. 변수를 volatile로 선언하면 레지스터에 값을 저장하고 재사용함으로 프로그램을 최적화 하는 대신, 컴파일러가 변수의 새 복사본을 가져옴

 

std::atomic

메모리를 단순 선형 바이트 저장소인 것처럼 작동하게 만듬

 

 

2018년 4월 12일 목요일

CentOS7에 mysql 5.7 설치

CentOS7에서 mysql 5.7버전을 사용하기 위해 yum repository package 다운로드
wget http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm

패키지 설치
sudo yum localinstall mysql57-community-release-el7-7.noarch.rpm

Mysql repository 활성화
sudo yum repolist enabled | grep "mysql.*-community.*"

Mysql 설치
sudo yum install mysql-server # 필요하면 추가로 설치 mysql-community-server mysql mysql-libs mysql-devel

Mysql 서비스 시작
sudo systemctl start mysqld

root 초기 패스워드 확인 (5.7버전부터)
sudo grep 'temporary password' /var/log/mysqld.log

Mysql 서버 접속 후 root 패스워드 변경
mysql -u root -p
패스워드 입력
 
mysql> use mysql;
mysql> set password = password('패스워드');
mysql> flush privileges;

보안 설정(옵션)
sudo mysql_secure_installation

원격접속
use mysql;
SELECT Host,User,authentication_string FROM mysql.user;

INSERT INTO mysql.user (host,user,authentication_string,ssl_cipher, x509_issuer, x509_subject) VALUES ('%','계정',password('패스워드'),'','','');
GRANT ALL PRIVILEGES ON *.* TO '계정'@'%';
FLUSH PRIVILEGES;

권한 추가
GRANT ALL PRIVILEGES ON DB명.* to 계정@'%' identified by '패스워드'
FLUSH PRIVILEGES;

2018년 4월 11일 수요일

CentOS 7.x Clang 6.0 설치

# 다운로드
wget http://releases.llvm.org/6.0.0/llvm-6.0.0.src.tar.xz
wget http://releases.llvm.org/6.0.0/cfe-6.0.0.src.tar.xz
wget http://releases.llvm.org/6.0.0/libcxx-6.0.0.src.tar.xz
wget http://releases.llvm.org/6.0.0/libcxxabi-6.0.0.src.tar.xz

unxz llvm-6.0.0.src.tar.xz
unxz cfe-6.0.0.src.tar.xz
unxz libcxx-6.0.0.src.tar.xz
unxz libcxxabi-6.0.0.src.tar.xz

tar -xvf llvm-6.0.0.src.tar
tar -xvf cfe-6.0.0.src.tar
tar -xvf libcxx-6.0.0.src.tar
tar -xvf libcxxabi-6.0.0.src.tar

# 아래에서 이 이름을 기준으로 빌드 방법을 설명할것이므로 변경하는게 좋음
mv llvm-6.0.0.src llvm
mv cfe-6.0.0.src clang
mv libcxx-6.0.0.src libcxx
mv libcxxabi-6.0.0.src libcxxabi

#llvm 빌드
mv clang ./llvm/tools
mkdir llvm.build
cd llvm.build
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ../llvm
make
sudo make install
cd ..

#libcxx, libcxxabi 빌드
# 1st round to build libcxx without libcxxabi
cd libcxx
mkdir tmp
cd tmp
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local/ -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ ..
make
sudo make install
cd ..
rm tmp -rf
cd ..

# Build libcxxabi with libc++
cd libcxxabi
mkdir tmp
cd tmp
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DLIBCXXABI_LIBCXX_INCLUDES=../../libcxx/include ..
make
sudo make install
cd ../..

# 2nd round to build libcxx with libcxxabi
cd libcxx
mkdir tmp
cd tmp
# This time, we want to compile libcxx with libcxxabi, so we have to specify LIBCXX_CXX_ABI=libcxxabi and the path to libcxxabi headers, LIBCXX_LIBCXXABI_INCLUDE_PATHS.
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DLIBCXX_CXX_ABI=libcxxabi -DLIBCXX_CXX_ABI_INCLUDE_PATHS=../../libcxxabi/include ..
make
sudo make install
cd ../..

CentOS7에 cmake 3.11.0 설치

wget https://cmake.org/files/v3.11/cmake-3.11.0.tar.gz
tar -zxf cmake-3.11.0.tar.gz
cd cmake-3.11.0
./bootstrap
make
sudo make install

2018년 1월 5일 금요일

Clang 3.9 빌드

Clang 3.9 빌드 (CentOS 기준)

  • 준비할 항목
wget http://llvm.org/releases/3.9.0/llvm-3.9.0.src.tar.xz
wget http://llvm.org/releases/3.9.0/cfe-3.9.0.src.tar.xz
wget http://llvm.org/releases/3.9.0/libcxx-3.9.0.src.tar.xz
wget http://llvm.org/releases/3.9.0/libcxxabi-3.9.0.src.tar.xz
 
unxz llvm-3.9.0.src.tar.xz
unxz cfe-3.9.0.src.tar.xz
unxz libcxx-3.9.0.src.tar.xz
unxz libcxxabi-3.9.0.src.tar.xz
  
tar -xvf llvm-3.9.0.src.tar
tar -xvf cfe-3.9.0.src.tar
tar -xvf libcxx-3.9.0.src.tar
tar -xvf libcxxabi-3.9.0.src.tar
  
# 아래에서 이 이름을 기준으로 빌드 방법을 설명할것이므로 변경하는게 좋음
mv llvm-3.9.0.src llvm
mv cfe-3.9.0.src clang
mv libcxx-3.9.0.src libcxx
mv libcxxabi-3.9.0.src libcxxabi

  •  llvm 빌드
mv clang ./llvm/tools
mkdir llvm.build
cd llvm.build
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ../llvm
make
sudo make install
  • libcxx, libcxxabi 빌드
# 1st round to build libcxx without libcxxabi
cd libcxx
mkdir tmp
cd tmp
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local/ -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ ..
make
sudo make install
cd ..
rm tmp -rf
cd ..
  
# Build libcxxabi with libc++
cd libcxxabi
mkdir tmp
cd tmp
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DLIBCXXABI_LIBCXX_INCLUDES=../../libcxx/include ..
make
sudo make install
cd ../..
 
 
# 2nd round to build libcxx with libcxxabi
cd libcxx
mkdir tmp
cd tmp
# This time, we want to compile libcxx with libcxxabi, so we have to specify LIBCXX_CXX_ABI=libcxxabi and the path to libcxxabi headers, LIBCXX_LIBCXXABI_INCLUDE_PATHS.
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DLIBCXX_CXX_ABI=libcxxabi -DLIBCXX_CXX_ABI_INCLUDE_PATHS=../../libcxxabi/include ..
make
sudo make install