Study: ComputerScience(CS)

    [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) 부..

    [OS] 리눅스 구조: 커널(Kernel), 쉘(Shell), 프로세스(Process), 쉘 세션(Shell Session)

    리눅스 구조 리눅스 란? 유닉스와 거의 비슷한 운영체제지만, 유닉스의 장점을 포함하면서도 새로운 여러 기능을 부가적으로 가지고 있는 운영체제입니다. Linus Torvalds라는 필란드 사람이 대형 컴퓨터에서 사용하던 유닉스 소스를 수정하여 개인 pc에도 사용할 수 있는 공개 운영체제로 개발하였습니다. 유저 & 쉘 & 커널 관계 유저가 CLI를 통해 명령어를 입력하면 명령어가 쉘에게 전달됩니다. 쉘이 명령어를 커널이 이해할 수 있게 번역해 커널에게 넘기면, 커널은 이 명령어를 통해 하드웨어를 컨트롤하여 다시 유저에게 output처리를 합니다. 리눅스 구성요소 커널 (Kernel) '커널'이란 운영체제(OS)의 두 가지 구성요소 중 하나입니다. 커널은 하드웨어를 직접적으로 제어하는 운영체제의 핵심이며 프로..

    [OS] 리눅스의 쉘(Shell)과 설정 파일 적용 순서(feat. bash, zsh, ...)

    💡 본 문서는 'Shell과 쉘(Shell) 스크립트(*.sh)'에 대해 정리해놓은 글입니다. 기본적인 리눅스에서의 Shell과 설정파일 적용 순서에 대해 정리하였으니 참고하시기 바랍니다. 1. 쉘(Shell) 이란? 쉘(Shell)은 커널과 사용자 사이를 이어주는 매개체 역할을 하는 프로그램입니다. 쉘은 하나의 명령어 처리기(Command Processor)로써, 사용자으로부터 명령어를 입력 받아 그것을 프로세싱하기 위해 커널에게 넘겨주는 일을 하는 프로그램입니다. 우리가 흔히 사용하는 윈도우의 명령 프롬프트(CMD)도 쉘이며, 다양한 종류의 쉘을 알아보도록 하겠습니다. 2. 쉘(Shell) 종류 현재 가장 일반적으로 사용하는 쉘은 linux에 기본적으로 깔려있는 bash 쉘 프로그램이기에 이것만 잘 ..