CS 19

[Linux] 사용자와 그룹

사용자(User)란?사용자(user)는 리눅스 시스템에서 자원을 사용할 수 있는 개별적인 계정을 의미한다. 각 사용자는 고유한 사용자 이름과 사용자 ID(uid)를 가지며, 시스템 내에서 특정 권한과 접근 권한을 부여받는다.리눅스는 다중 사용자 시스템이며 root라는 이름을 가진 슈퍼유저가 있다.그룹(Group)이란?그룹(group)은 여러 사용자를 하나로 묶어 공통된 권한을 부여하기 위한 단위이다. 각 그룹은 고유한 그룹 이름과 그룹 ID(gid)를 가지며, 그룹에 속한 모든 사용자는 동일한 그룹 권한을 공유하게 된다.사용자와 그룹의 관계리눅스 시스템에서는 사용자가 하나 이상의 그룹에 속할 수 있으며, 이를 통해 파일과 디렉토리에 대한 접근 권한을 세밀하게 관리할 수 있다. 기본적으로 각 사용자는 하나..

CS 19:30:39

[Linux] 마운트

마운트(mount)는 외부 저장 장치나 파일 시스템을 리눅스의 디렉토리 트리에 연결하는 과정을 의미한다. 이를 통해 사용자는 외부 장치의 데이터를 로컬 파일처럼 접근하고 조작할 수 있다.파일 시스템 접근성 향상: 외부 장치의 데이터를 로컬 파일 시스템과 동일하게 사용할 수 있다.데이터 관리 용이성: 다양한 저장 장치를 효율적으로 관리하고 사용할 수 있다.시스템 확장성: 필요에 따라 저장 용량을 쉽게 확장할 수 있다. 마운트의 종류 및 사용 사례리눅스에서는 다양한 마운트 방법과 옵션을 제공하여 사용자가 필요에 맞게 외부 장치를 관리할 수 있도록 한다. 아래는 주요 마운트 종류와 사용 사례를 정리한 표이다.마운트 종류설명사용 사례자동 마운트(Auto Mount)시스템 부팅 시 자동으로 마운트되는 방식USB ..

CS 18:19:16

[Linux] vi 에디터

vi 에디터는 리눅스와 유닉스 계열 운영체제에서 기본적으로 제공되는 텍스트 편집기다. 빠른 속도와 강력한 기능으로 인해 많은 시스템 관리자와 개발자들이 선호한다. vi는 다양한 모드로 작동하며, 효율적인 텍스트 편집을 가능하게 한다. vi의 모드vi는 크게 두 가지 모드로 구성된다:명령 모드 (Command Mode): 기본 모드로, 커서 이동이나 텍스트 편집 명령을 입력할 수 있다.입력 모드 (Insert Mode): 텍스트를 실제로 입력할 수 있는 모드다.모드 전환은 다음과 같이 한다:명령 모드에서 입력 모드로 전환: i, a, o 등을 누른다.입력 모드에서 명령 모드로 전환: Esc 키를 누른다. 기본 조작법커서 이동vi의 강력한 기능 중 하나는 효율적인 커서 이동이다. 명령어기능설명h왼쪽으로 이동..

CS 17:15:09

[Linux] 런레벨

런레벨의 개념런레벨(runlevel)은 리눅스 시스템의 운영 모드를 정의하는 숫자 또는 이름이다. 각 런레벨은 시스템이 어떤 서비스와 데몬을 실행할지를 결정한다. 현대적인 배포판에서는 systemd를 사용하여 타겟(target)이라는 개념으로 런레벨을 관리한다. 런레벨의 종류아래는 systemd에서 사용되는 타겟과 전통적인 런레벨 간의 대응 관계를 나타낸 표이다.런레벨영문 모드systemd 타겟설명0Power Offrunlevel0.targetpoweroff.target시스템 종료 모드이다. 시스템을 안전하게 종료한다.1Rescuerunlevel1.targetrescue.target구조 모드(단일 사용자 모드)이다. 최소한의 서비스만 실행된다.3Multi-Userrunlevel3.targetmulti-u..

CS 15:08:05

[Linux] 가상 콘솔

가상 콘솔이란?가상 콘솔은 하나의 물리적인 키보드와 모니터로 여러 개의 독립된 터미널 세션을 제공하는 기능이다. 리눅스는 기본적으로 여러 개의 가상 콘솔을 지원하며, 사용자는 간단한 키 조합으로 콘솔 간 전환이 가능하다.주요 특징다중 사용자 환경 지원: 여러 사용자가 동시에 로그인하여 작업할 수 있다.서버 관리 편의성: 그래픽 환경 없이도 여러 작업을 병렬로 수행할 수 있다.시스템 디버깅 및 유지보수: X 서버나 데스크톱 환경에 문제가 발생했을 때 유용하다.주의 사항원격 접속 시: SSH 등을 통해 원격으로 접속하는 경우 가상 콘솔은 영향을 받지 않는다.클라우드 및 가상 머신 환경: 물리적인 서버에서는 가상 콘솔이 유용하지만, 클라우드나 가상 머신 환경에서는 가상 콘솔에 직접 접근하기 어렵다.보안 경고:..

CS 14:46:32

[Linux] 개요

LinuxLinux는 1991년 핀란드의 대학생 리누스 토르발스(Linus Torvalds)가 개발한 오픈 소스 커널(kernel)이다. 처음에는 개인 프로젝트로 시작되었지만, 전 세계 개발자들의 참여로 빠르게 성장하여 오늘날 다양한 분야에서 사용되고 있다.특징오픈 소스: 소스 코드가 공개되어 누구나 수정 및 배포가 가능하다.유연성: 다양한 하드웨어와 소프트웨어 환경에서 동작하도록 설계되었다.다양한 배포판: Ubuntu, Fedora, Debian 등 수많은 배포판이 존재하여 선택의 폭이 넓다.안정성과 보안성: 서버, 데스크톱, 임베디드 시스템 등에서 높은 안정성과 보안성을 제공한다. 커널이란 무엇인가?커널(kernel)은 운영체제의 핵심 구성 요소로, 하드웨어와 소프트웨어 간의 상호 작용을 관리한다. ..

CS 2024.09.15

[Linux] 파일 시스템(/etc/fstab)

/etc/fstab 파일은 리눅스 시스템에서 파일 시스템을 부팅 시 자동으로 마운트 할 수 있도록 설정하는 중요한 구성 파일이다. 이 파일에는 시스템의 각 파일 시스템, 스왑 공간, 네트워크 파일 시스템(NFS) 등을 정의하고, 부팅 시 어떤 위치에 어떻게 마운트 할지를 결정한다.만약 이 파일의 구성이 잘못되어 버린다면 부탕시 파일시스템 마운트 과정에서 부팅이 멈추어 버릴것이다. /etc/fstab 파일의 형식각 라인은 특정 파일 시스템 또는 스왑 공간을 나타내며, 다음과 같은 필드를 포함한다:파일 시스템 (UUID 또는 디바이스 경로):예: UUID=0400035f-3725-4df6-822a-4d41da31ff41파일 시스템의 고유 식별자(UUID) 또는 장치 파일 경로(예: /dev/sda1)를 지정..

CS 2024.08.26

[Linux] 호스트네임 관리와 네트워크 설정

시스템 호스트네임 관리리눅스 시스템에서 호스트네임은 시스템을 네트워크 상에서 식별하는 중요한 요소이다. 호스트네임은 네트워크 통신에서 다른 컴퓨터와의 연결 및 식별에 사용된다. 호스트네임 설정hostnamectl 명령어는 시스템의 호스트네임을 설정하거나 변경하는 데 사용된다. 단순히 시스템의 이름을 설정하는 것 이상으로, 이 명령어는 시스템이 재부팅되더라도 설정된 호스트네임을 유지하게 하며, 네트워크 상에서의 시스템 정체성을 확립한다.새로운 호스트네임을 설정하려면 다음과 같은 명령어를 사용한다.sudo hostnamectl set-hostname new-hostname이 명령어를 실행하면, 시스템의 호스트네임이 new-hostname으로 변경된다. 이 변경 사항은 즉시 적용되며, 시스템의 네트워크 식별자..

CS 2024.08.26

[Linux] 스왑 공간

스왑 공간은 리눅스 시스템에서 물리적 메모리(RAM)가 부족할 때, 디스크의 일부를 임시 메모리로 사용하는 공간이다. 시스템의 RAM이 가득 차면 사용하지 않는 데이터나 프로그램의 일부를 스왑 공간으로 옮겨 RAM을 확보하게 된다. 이 과정을 스왑아웃(swap out)이라고 하며, 스왑 공간에서 다시 RAM으로 데이터를 가져오는 과정은 스왑인(swap in)이라고 한다.스왑은 크게 두 가지 형태로 존재할 수 있다:스왑 파티션: 디스크의 일부를 스왑 전용 파티션으로 할당한 것.스왑 파일: 일반 파일 시스템에서 파일로 존재하는 스왑 공간. 스왑 공간의 역할메모리 부족 시 도움: RAM이 부족해지면 스왑 공간을 활용하여 시스템의 안정성을 유지할 수 있다.대용량 작업 지원: 스왑 공간을 활용하면 대규모 데이터 ..

CS 2024.08.26

Blocking I/O & Non-Blocking I/O

블록 I/OI/O 작업을 요청한 프로세스나 스레드가 작업이 완료될 때까지 대기하는 방식이다. 이 방식은 단순하고 직관적이지만, 블록 상태로 인해 자원 활용에 비효율적일 수 있다.물론, 스레드가 I/O 작업 때문에 블록 되는 동안, CPU 코어는 다른 스레드에게 할당될 수 있다. 이 경우 CPU는 여전히 다른 작업을 수행할 수 있지만 대량의 스레드가 블록 상태로 대기하면 시스템 자원(메모리, 스레드 관리 오버헤드 등)을 낭비할 수 있다.동작 과정스레드가 read 시스템콜을 수행한다.스레드는 블락 상태가 되어 커널 모드로 전환된다.커널이 I/O 작업을 수행하고 관련 디바이스에 요청을 보낸다.디바이스가 요청을 처리하고 커널로 응답을 보낸다.커널이 유저 스페이스로 데이터를 이동시킨다.스레드는 작업이 완료되면 다..

CS 2024.08.12