본문 바로가기

컴퓨터 과학(CS)/리눅스3

소프트 링크, 하드 링크 링크(Link) 링크는 컴퓨터 상에서 어떤 대상으로의 연결이나 그와 연관한 복사본을 가리킨다. 우리가 윈도우에서 보는 모든 파일도 실제 파일에 대한 파일 시스템의 링크이다. 파일 시스템은 하드디스크 안의 실제 데이터에 쉽게 접근할 수 있도록 파일을 조직하고 관리하는 체제이다. 우리는 디스크에 기록된 실제 데이터를 직접 보는 게 아니라 파일 시스템에 기록된 파일의 정보(Inode)를 보고 있는 것이다. 파일 시스템 정보에는 파일에 대한 여러 정보와 함께 실제 파일이 저장된 디스크에 찾아갈 수 있는 링크 또한 저장되어 있다. 심볼릭 링크와 하드 링크를 이해하기 위해서는 Inode 개념을 먼저 이해해야 한다. 아이노드(Inode) 위키피디아 Inode는 유닉스 계통의 파일 시스템에서 사용하는 자료 구조다. I.. 2022. 1. 18.
표준 스트림(Standard Stream), 파이프(pipe) 표준 스트림 위키피디아 유닉스 및 유닉스 계열 운영 체제에서 프로그램(프로세스)과 주변 장치 사이에 미리 연결된 입출력 통로이다. 보통 입출력은 물리적으로 연결된 시스템 콘솔의 키보드와 모니터를 통해 일어나는데, 표준 스트림은 이것을 추상화한 것이다. 🔎 키보드와 모니터 같은 장치들의 입출력을 추상화한다는 것은 대체 무슨 뜻일까? 예전에는 입출력 장치를 다룰 때 각각의 장치들마다 전용 함수가 존재했다. 전용함수가 존재한다는 것은 어떤 입출력 장치를 사용할 때 어떤 데이터 형식을 사용할 것인지가 이미 정해져 있다는 뜻이다. 예를 들어, 키보드로 키를 입력받는 경우 getch와 같은 콘솔함수를 사용했고 이 함수는 4바이트 정수형 데이터 값을 반환하게 된다. 그래서 다양한 입출력 장치를 사용하기 위해서는 각 .. 2022. 1. 17.
도커를 위한 리눅스 쉘(bash) 이해 Docker는 기본적으로 리눅스 커널이 제공하는 기능 위에서 동작한다. 커널은 시스템 자원들을 관리하는 운영체제의 핵심이라고 했다. 쉘이라는 인터페이스를 통해 사용자의 명령어를 커널에 전달하여 시스템 자원들을 관리할 수 있다. 즉, 리눅스 커널을 조작하기 위해 리눅스 쉘 사용법을 알아야 한다. 리눅스 쉘에는 Bourne shell(sh), Bourne-again shell(bash), C shell, Korn shell(ksh) 등이 있는데, 현재 linux의 기본 shell 이자 가장 범용적으로 사용되는 것은 Bourne-again shell(bash)이다. 리눅스 bash는 사용자가 명령 줄을 입력하는 방식(CLI)의 장치이므로, 리눅스 명령어를 익힌다는 것은 결국 bash가 제공하는 명령어를 배우는.. 2022. 1. 17.