๐ฅ๏ธ Linux (5) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ Notepad๋ก UTF-8 BOM ๋ฌธ์ ํด๊ฒฐํ๊ธฐ UTF-8 ์ธ์ฝ๋ฉ์ผ๋ก ์ ์ฅ๋ ์คํฌ๋ฆฝํธ ํ์ผ์์ $'\357\273\277cd์ ๊ฐ์ ์ค๋ฅ ๋ฉ์์ง๊ฐ ๋ฐ์ํ ์ ์ด ์๋์?์คํฌ๋ฆฝํธ ํ์ผ์ ์์ฑํ์ฌ ์คํ ์ค์... ์ด๋ฐ ์ค๋ฅ๊ฐ ์์ด์ ํ๋ฃจ๋ฅผ ๋ ๋ ค๋ฒ๋ ธ์ต๋๋ค.์ธ์ ์ฏค ์ฝ์ง์ ์ํ๊ฒ ๋ ๊น์? ํํํ ์ด ์ค๋ฅ๋ ์ฃผ๋ก ํ์ผ์ ์์ ๋ถ๋ถ์ ํฌํจ๋ BOM(Byte Order Mark) ๋๋ฌธ์ ๋๋ค. BOM์ ํ์ผ์ ์ธ์ฝ๋ฉ ๋ฐฉ์์ ํ์ํ๋ ํน์ ๋ฌธ์๋ก, ์ ์คํฌ๋ฆฝํธ์ ๊ฐ์ ํ ์คํธ ํ์ผ์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ๋ฌธ์ ์ ์์ธ BOM(Byte Order Mark)์ ํ์ผ์ ์์ ๋ถ๋ถ์ ๋ถ์ด ์ธ์ฝ๋ฉ ๋ฐฉ์์ ํ์ํฉ๋๋ค. UTF-8๋ก ์ ์ฅ๋ ํ์ผ์ด BOM์ ํฌํจํ๊ณ ์์ผ๋ฉด ์์์ BOM ๋ฌธ์๋ฅผ ๋ถํ์ํ ๋ฌธ์๋ก ์ธ์ํ์ฌ ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ, ์คํฌ๋ฆฝํธ๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ค.. OpenSSL docs ์ ๋ฆฌ (์ ๋ฐ์ดํธ ์์ ) OPENSSL_malloc - ๋ฉ๋ชจ๋ฆฌ ํ ๋น, ONENSSL_free์ ๊ฐ์ด ์ฌ์ฉ CRYPTO_num_locks - ์ต๋ ์ฒ๋ฆฌ๊ฐ๋ฅํ mutex ๊ฐ์ - mutex ๊ด๋ จํ์ฌ int ํ ์์๋ฅผ ๋ฐํ, ์ด๋งํผ์ ์ฒ๋ฆฌ ํ ์ ์์ด์ผํจ - OpenSSL-1.0.1j ๊ธฐ์ค์ผ๋ก 41์ - openssl/crypto/lock.c ์์ค์์ ํ์ธ ๊ฐ๋ฅ - ๋ค์ค ์ค๋ ๋๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ ์ถฉ๋ ํ ์ ์์ผ๋ฏ๋ก lock ์ฌ์ฉ CRYPTO_THREADID_set_callback - ์ฃผ์ด์ง lock type๊ณผ ์ ๊ธ ํด์ ์ฌ๋ถ(mode)๋ก ํด๋น lock๋ฅผ ๊ด๋ฆฌํด์ค - ํ์ฌ ์คํ ์ค์ธ ์ค๋ ๋์ tid ๋ณ๋ก ๋ฑ๋กํด์ ๊ด๋ฆฌ ํจ → CRYPTO_THREADID_set_numeric์ ์ฌ์ฉํ ์ฝ๋ฐฑ์ ๋ฑ๋ก - ์ฝ๋ฐฑ ๋ฑ๋ก ํ์ง ์์ผ๋ฉด ๊ธฐ๋ณธ ๊ตฌํ์ผ๋ก .. ls ๋ช ๋ น์ด/ํ์ผ๋ชฉ๋ก/linux ls ์งค๋งํ ls ๋ช ๋ น์ด๋ฅผ ์ ๋ฆฌํ๋ ค๊ณ ํ๋ค ์๋ฃจ ํ๊ณ ์์๋๋ฐ ์๊ฐ์ด ๋๋ฌด ์๊น์์ ๋ญ๋ผ๋ ๋จ๊ฒจ์ผ๊ฒ ๋ค 1. ls ๋ช ๋ น์ด (list) ๋๋ ์์ฐฝ์ ํค๋ฉด ๊ทธ๋ฅ ์์ฐ์ค๋ฝ๊ฒ ls ๋ช ๋ น์ด๋ฅผ ์น๋ค ํ์ผ ๋ชฉ๋ก์ด๋ผ๋ ์ผ๋์์ผ ๋ ๊ฒ ๊ฐ์์ ls๋ list์ ์ค์๋ง๋ก, ๋ง ๊ทธ๋๋ก ํ์ผ ๋ชฉ๋ก์ ๋ณด์ฌ์ค๋ค ์ฌ์ฉ๋ฒ์ ์๋์ ๊ฐ๋ค CLI> ls []... []... ์๋ฅผ๋ค์ด์, ์๋์ ๊ฐ์ ํ์ผ๊ตฌ์กฐ๊ฐ ์๋ค๋ฉด ls ๋ช ๋ น์ด๋ฅผ ์ณค์ ๋ ๋์ค๋ ํญ๋ชฉ์ ์๋์ ๊ฐ๋ค CLI> ls Makefile main.cpp release test.cpp ์๋ ๊ฒ ํ์ฌ ๋๋ ํ ๋ฆฌ์ ์๋ ํ์ผ ๋ชฉ๋ก์ ๋ณด์ฌ์ค๋คใ ls ๋ช ๋ น์ด๋ ๋ง์ ์ต์ ๋ค์ ๊ฐ๊ณ ์๋ค ํ์ผ ๋ชฉ๋ก๋ค์ ์ ๋ณด๋ฅผ ๋ค ๋ณด์ฌ์ฃผ๋ ๋ช ๋ น์ด๋ผ์, ํ์ผ์ ๊ถํ/ํ์ผ ํฌ๊ธฐ/์ฌ์ฉ์/์์ ๋ ์ง ๋ฑ๋ฑ ๋ํ ํ์ธ ๊ฐ๋ฅํ๋ค .. ํ๋ก์ธ์ค/ps ๋ช ๋ น์ด/pstack ๋ช ๋ น์ด/kill ๋ช ๋ น์ด ์ค๋์... ์ด๋ฐ ๋ถ๋ค๊ป ๋์์ด ๋๋ฉด ์ข๊ฒ ๋ค ํ๋ก๊ทธ๋จ์ ์คํ ์์ผฐ๋๋ฐ ์ด๊ฒ ์ง์ง ์คํ๋๊ฑด์ง ํ์ธํด๋ณด๊ณ ์ถ๋ค ๐ ์์ ์ด ์คํ์ํจ ํ๋ก๊ทธ๋จ์ด ์์ฃฝ์ด๋ณธ ์ ์ด ์๋ค ๐ ์ ์์ฃฝ๋์ง ๋ชจ๋ฅด๊ฒ ๋ค ๐ ์ข๋น ํ๋ก์ธ์ค๋ฅผ ๋ง๋ค๊ณ ๋นํฉํ์ ์๋ค ๐๐๐ ๋ฐ๋ก ๋์ผ๋ ๋ฆฌ๋ ์ค ํ๊ฒฝ์์ ํ๋ก๊ทธ๋จ์ ์ง๋ดค๋คํ๋ฉด ํ๋ฒ์ฏค์ ๋ค์ด๋ดค์ process(ํ๋ก์ธ์ค)์ PID์ ๋ํด์ ์์๋ณด๊ณ ์ ํ๋ค ๊ทธ๋ฆฌ๊ณ ์ด๋ฅผ ํ์ธํ ์ ์๋ ๋ช ๋ น์ด๋ ์ ๋ฆฌํ๋ ค๊ณ ํ๋ค 1. Process(ํ๋ก์ธ์ค)๋? ํ๋ก์ธ์ค๋ ๋จ์ด๋ ๋ง์ด ์ต์ํ ํ ๋ฐ, ๋ฑ ๋ญ๋ผ๊ณ ์ ์ํ๊ธฐ๋ ์ด๋ ค์ด ๋จ์ด๋ค ๋ณดํต ํ๋ก๊ทธ๋จ๊ณผ ๋ง์ด ๋น๊ต๊ฐ ๋๋ค ํ๋ก๊ทธ๋จ์? ํ๋ ๋์คํฌ์ ์ ์ฅ๋์ด ์๋ ์คํ์ฝ๋ ํ๋ก์ธ์ค๋? ํ๋ก๊ทธ๋จ์ ๊ตฌ๋ํ์ฌ ํ๋ก๊ทธ๋จ ์์ฒด์ ํ๋ก๊ทธ๋จ์ ์ํ๊ฐ ๋ฉ๋ชจ๋ฆฌ ์์์ ์คํ๋๋ ์์ ๋จ์ ์ฆ, ์คํ์.. ์ฌ๋ณผ๋ฆญ ๋งํฌ(Symbolic Link) ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ์์๋ณผ๊ฑฐ๋ค ๊ตฌ๊ธ๋ง ํ๋ฉด์ ๋ช ๋ น์ด๋ง ์๊ณ ์ถ์๋ ์ ์ด ๋ ๋ง์์, ๋ช ๋ น์ด->์ค๋ช ์์ผ๋ก ์ ๋ฆฌํด์ผ๊ฒ ๋ค - ์ฌ๋ณผ๋ฆญ ๋งํฌ ์์ฑ ์ปค๋งจ๋(์์ฑ, ๋ณ๊ฒฝ, ์ญ์ ) - ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ ๋ฌด์์ผ๊น 1. ์ฌ๋ณผ๋ฆญ ๋งํฌ(Symbolic Link) Command 1) ์ฌ๋ณผ๋ฆญ ๋งํฌ ์์ฑ CMD> ln -s {๋งํฌ๊ฑธ๊ณ ์ถ์ ํ์ผ} {๋งํฌ ์ด๋ฆ} ์์ ๊ฐ์ด ์ธ ์ ์๋ค ํฉ๊ณ 0 drwxr-xr-x. 2 pp pp 48 12์ 17 17:17 . drwxr-xr-x. 3 pp pp 17 12์ 17 16:58 .. -rw-r--r--. 1 pp pp 0 12์ 17 16:59 library.so.0 -rw-r--r--. 1 pp pp 0 12์ 17 17:17 library.so.0.1.0 ๋ง์ฝ ๋งํฌ ๊ฑธ๊ณ ์ถ์ ํ์ผ์ด lib.. ์ด์ 1 ๋ค์