Study: ComputerScience(CS)/CS: Linux
[Linux] 프로세스 종류 및 특징 (feat. Demon과 Background Process의 차이)
Process 프로세스란 하드디스크에 저장된 프로그램이 현재 실행된 상태로 메모리에 상주해 있는 프로그램을 말합니다. 각각의 process는 랜덤한 고유 PID(Process ID)를 부여 받게 됩니다. 이러한 프로세스는 사용자와 상호작용 여부로 2종류로 구분합니다. Foreground Process (이하 fg) 실행하면 화면에 나타나 사용자와 상호 작용하는 프로세스 현재 실행중인 fg 작업을 취소하고 싶을 때: 'ctrl+c' 현재 실행중인 fg 작업을 bg 작업으로 변경하고 싶을 때: 'ctrl+z'를 눌러 잠시 실행을 멈춘 다음 '#bg'명령으로 해당 작업을 bg로 보낼 수 있습니다. Background Process (이하 bg) 실행은 되었지만 화면에 나타나지 않고 뒤에서 실행되고 있는 프로세..
[Linux] 리눅스 로컬네임서버(/etc/hosts) 설정: DNS 서버 만들기
DNS(Domain Name System) 란? DNS는 호스트의 도메인 이름을 호스트의 네트워크 주소로 바꾸거나 그 반대의 변환을 수행할 수 있도록 하기 위해 개발되었습니다. 특정 컴퓨터(또는 네트워크로 연결된 임의의 장치)의 주소를 찾기 위해, 사람이 이해하기 쉬운 도메인 이름을 숫자로 된 식별 번호(IP 주소)로 변환해 줍니다. e.g. 브라우져에 "www.naver.com" 을 입력하면 자동으로 Naver 서버의 IP를 찾아 접속하게 됩니다. i.e. "www.naver.com" 도메인을 DNS 서버에서 조회하여 IP를 받아오게 되는 것입니다. 조회 순서는 다음과 같습니다. 로컬 캐시 조회 /etc/hosts 조회: /etc/hosts DNS 서버 조회: /etc/resolve.conf 1. ..
[Linux] 리눅스 파일 시스템(File System)
리눅스 파일 시스템 구조 리눅스 파일 시스템 리눅스 파일시스템 특징은 유닉스 파일시스템을 모태로 하고 있습니다. 리눅스 파일시스템은 프린터, 터미널, 디스크 동 모든 주변 장치들도 하나의 파일로 취급합니다. 이것을 가상 파일 시스템이라고 칭하기도 합니다. 리눅스는 디렉토리와 서브 디렉토리 간에 트리형태로 되어있습니다. 루트 디렉터리부터 "트리"구조로 되어있습니다. 여기서 알아할 지식은 루트 디렉터리(root directory)는 '/'로 표시됩니다. 또한 아스키 파일과 이진 파일을 동등하게 취급합니다. 유닉스하고 리눅스는 이 둘을 동등하게 취급합니다. 윈도우는 동등되게 취급되지 않습니다. 윈도우는 텍스트파일은 변형과정을 거쳐서 프로세스로 올라오는 반면 이진파일은 없습니다. 하지만 리눅스 유닉스는 차이 없..
[Linux] 리눅스 디렉토리(폴더) 구조: /home, /bin, /etc, /usr...
💡 본 문서는 리눅스를 설치하면 기본적으로 생성되는 폴더 구조에 대해 정리한 글입니다. 리눅스의 디렉토리는 대부분 유닉스와 유사하며, 유닉스의 종류(AT&T 계열과 BSD계열)에 따라 약간의 차이가 있습니다. 리눅스 연합에서는 이러한 배포판의 파일 시스템 차이를 표준화하기 위해 FSSTND(File System Standard) 표준안을 마련해 놓고 있으며, 아래는 리눅스의 파일시스템 구조를 나타낸 것입니다. 파일(폴더) 구조 / 리눅스 파일 최상위 디렉토리 모든 디렉토리들의 시작점으로 일반적인 데이터를 저장하지 않습니다. /bin (BINaries) 대부분의 실행파일을 포함합니다. 시스템을 운영하기 위한 기본적인 명령어들이 있습니다. e.g. cp, mv, cd, vi.... /boot (BOOT) 부..
[Linux] 리눅스 *.so.* 파일 경로: 동적 라이브러리 링킹하는 방법 (feat. 정적(static) vs 동적(dynamic))
💡 본 문서는 '동적 라이브러리 링킹하는 방법'에 대해 정리해놓은 글입니다. 리눅스에서 간혹 어떠한 프로그램을 설치하거나 실행할 때, 무슨무슨 so 파일(*.so), 가령 libX11.so.6 파일(*.so.*)이 없다고 할 때가 발생합니다. 이 문제에 대한 개념 및 원인과 해결책에 대해 정리하였으니 참고하시기 바랍니다. 1. 동적 라이브러리 1.1 정적 VS 동적 라이브러리 정적 라이브러리의 경우: 프로그램을 컴파일할 때 실행파일에 포함되어 배포됩니다. 속도가 빠르다는 장점을 가지고 있지만, 실행파일의 크기가 커지고 메모리를 상당히 차지하게 됩니다. 동적 라이브러리의 경우: 실행 프로그램에서 필요할 때만 라이브러리를 메모리에 올립니다. 여러 명령어에서 사용되는 동일한 부분을 특정 디렉터리를 만들어 모아..