About
Book
Github
개발기
About
Book
Github
개발기
#OS
포스트
리눅스 명령어 모음
※레드햇 계열인 Rocky Linux를 기준으로 정리했습니다. 0. 팁 관련 파일 위치를 모를 땐 find # 루트 경로부터 이하 중에서 파일 이름 찾기 sudo find / -name "파일 이름" 매뉴얼은 man man useradd # configuration 파일도 매뉴얼이 있음 man sshd.conf 명령어가 생각이 안 날 땐 compgen -c # 가능한 명령어를 모두 출력 compgen -c # 그중에서 pv가 들어있는 명령어 목록 출력 compgen -c | grep pv 1. 사용자 및 그룹 관리 useradd 요약 create a new user or update default new user information 새로운 유저를 생성하거나 새로운 유저에게 할당되는 기본값을 업데이트하기
인프라
-
Linux
#
OS
#
Linux
2025.05.05
· Updated 2025.05.12
Detail
운영체제와 리눅스에 대해 이해하기
들어가며 몇 번의 프로젝트에서 인프라를 맡아 리눅스를 어느 정도 다룰 줄은 알지만 체계적으로 공부해본 적이 없습니다. 이번 기회에 리눅스 개발 코드도 뜯어보면서 심도 깊게 이해해보겠습니다. 리눅스에 대해서 공부하기 전에 리눅스는 운영체제의 일종이므로 운영체제에 대해서 먼저 이해해야 합니다. 이번 글에서는 운영체제가 무엇인지 간단하게 공부하고, 리눅스를 입문해봅시다. 운영체제 개요 운영체제란? 운영체제의 정의 운영체제(Operating System; OS)는 컴퓨터의 CPU, 메모리와 같은 하드웨어 자원을 효율적으로 관리하는 시스템 소프트웨어입니다. 또한 응용 프로그램이 동작할 수 있는 환경을 제공하고, 사용자와 하드웨어 간의 상호작용을 위해 사용자 인터페이스 를 제공하는 역할을 하기도 합니다. 운영체제의
인프라
-
Linux
#
OS
#
Linux
2025.02.15
· Updated 2025.02.16
Detail
운영체제 개요
운영체제란 무엇인가? 운영체제 (Operating System, OS) 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층 커널 운영체제의 핵심 부분으로 메모리에 상주하는 부분 좁은 의미의 운영체제 : 커널 넓은 의미의 운영체제 : 커널 + 각종 주변 시스템 운영체제의 목적 컴퓨터 시스템의 자원을 효율적으로 관리 컴퓨터 시스템을 편리하게 사용할 수 있는 환경 을 제공 운영체제의 분류 동시 작업 가능 여부 단일 작업(Single Tasking) - 한 번에 하나의 작업만 처리 다중 작업(Multi Tasking) - 동시에 두 개 이상의 작업을 처리 사용자의 수 단일 사용자(Single User) 다중 사용자(Multi User) 처리 방식 일괄 처리(
Computer Science
-
OS
#
OS
2024.12.16
· Updated 2025.01.19
Detail
메모리 관리
한정된 메모리 공간을 어떻게 하면 효율적으로 관리할 수 있을까? CPU는 2차 메모리 즉 저장장치에 직접 접근할 수 없으며 필요한 데이터를 메인 메모리에서 가져와야 합니다. 하지만 메모리 공간은 한정적입니다. 여러 개의 프로그램을 동시에 실행해야 하는 운영체제는 한정적인 메모리 공간을 최대한 효율적으로 관리해 서 CPU에게 필요한 데이터를 빨리 제공해야 하는 것이 목표입니다. CPU는 주소 값을 통해 메모리에 접근하기 때문에 주소 공간에 대해 먼저 알아봅시다. 주소 공간(Address Space) 운영체제에서 주소 공간이란 프로세스가 접근할 수 있는 메모리 주소 범위를 의미합니다. 각 메모리 주소는 1 바이트(8 비트)를 가리키며, 주소 하나가 비트가 아니라 8비트 (1바이트) 단위를 식별합니다. 위의 그림
Computer Science
-
OS
#
OS
2025.01.07
· Updated 2025.01.08
Detail
가상 메모리
요구 페이징 요구 페이징은 프로그램 실행 시 프로세스를 구성하는 모든 페이지를 한꺼번에 올리는 것이 아니라 당장 사용할 페이지만 메모리에 올리는 방식입니다. 따라서 특정 페이지에 대한 요청이 CPU로부터 들어온 후에 해당 페이지를 메모리에 적재합니다. 요구 페이징은 당장 필요한 페이지만 메모리에 적재하기 때문에 메모리 사용량이 감소하고 프로세스 전체를 메모리에 올리는 데 소요되는 입출력 오버헤드를 줄입니다. 추가적으로 물리적 메모리의 용량 제약을 벗어나 물리적 메모리보다 더 큰 프로그램도 실행할 수 있습니다. 각 페이지가 메모리에 존재하는지 여부를 판단하기 위해 요구 페이징에서 유효-무효 비트(Valid-InValid Bit) 를 표시합니다. 이러한 비트는 각 프로세스를 구성하는 모든 페이지에 존재해야 하
Computer Science
-
OS
#
OS
2025.01.08
· Updated 2025.01.08
Detail
파일 시스템
파일과 파일 시스템 파일 (File) 파일은 컴퓨터에서 데이터를 저장하기 위한 논리적인 단위입니다. 텍스트, 이미지, 비디오, 오디오, 프로그램 실행 파일 등 다양한 데이터 형식이 파일로 저장됩니다. 운영체제는 다양한 저장장치를 File이라는 논리적 단위로 볼 수 있게 해줍니다. 메타데이터 (Metadata; File Attribute) 메타데이터는 파일 자체의 내용이 아니라 파일을 관리하기 위한 각종 정보들의 집합입니다. 파일 이름, 유형, 저장된 위치, 파일 사이즈와 같은 정보 뿐만 아니라 읽기/쓰기/실행에 대한 접근 권한과 생성 시간/변경 시간/사용 시간, 소유자 등의 정보까지 기록되어 있습니다. 파일 시스템 파일 시스템은 운영체제에서 파일을 관리하는 소프트웨어 구현부로 하드 디스크, SSD와 같은
Computer Science
-
OS
#
OS
2025.01.08
· Updated 2025.01.08
Detail
입출력 시스템
디스크 구조 디스크는 대용량 데이터를 영구적으로 저장하는 대표적인 저장 장치입니다. 이차 메모리라고도 합니다. 디스크의 물리적 구조 HDD는 여러 개의 자기 디스크 플래터로 구성되며, 각 플래터는 양면에 데이터를 저장할 수 있습니다. 플래터는 고속으로 회전하며, 데이터를 읽고 쓰기 위해 디스크 헤드(head)가 움직입니다. 디스크의 주요 구성 요소 플래터(Platter) 트랙(Track) 섹터(Sector) 실린더(Cylinder) 디스크 헤드(Head) 암(Arm) 스핀들(Spindle) 디스크의 논리적 구조 운영 체제는 디스크의 물리적 구조를 기반으로 데이터를 저장하고 관리합니다. 디스크의 논리적 구조는 블록 단위로 데이터를 관리하며, 블록은 디스크의 섹터와 관계됩니다. 블록(Block) 파일 시스템(F
Computer Science
-
OS
#
OS
2025.01.08
· Updated 2025.01.08
Detail
병행 제어 2
공유 데이터에 접근하는 Critical Section 문제를 해결하기 위해 상호 배제, 진행, 유한 대기 조건을 충족해야 하며, 세마포어와 다양한 알고리즘을 통해 동시 접근을 관리할 수 있다. Block/Wakeup 방식이 일반적으로 더 좋지만, Critical Section이 짧을 경우 Busy-wait 방식이 유리할 수 있다.
Computer Science
-
OS
#
OS
2024.12.31
· Updated 2025.01.01
Detail
데드락
교착 상태(Deadlock) 일련의 프로세스가 서로가 이미 가지고 있는 자원을 기다리면서 block되어 있는 상태 데드락 발생의 네 가지 조건 상호배제: 매 순간 하나의 프로세스만 자원을 사용할 수 있음 비선점: 프로세스가 자원을 강제로 빼앗기지 않고 스스로 내어놓음 점유 대기 : 자원을 가진 프로세스가 다른 자원을 기다릴 때 보유한 자원을 내놓지 않고 계속 가짐 순환 대기 : 자원을 기다리는 프로세스 간에 사이클이 형성되어야 함 자원 할당 그래프 사이클이 생기면 Deadlock 근데 자원 안의 instance의 개수가 중요한데, instance의 개수가 여러 개면 데드락이 발생하는지 따져봐야함 데드락의 처리 방법 Deadlock Prevention 데드락을 미연에 방지하는 방법 중 Prevention은 가
Computer Science
-
OS
#
OS
2024.12.31
· Updated 2025.01.01
Detail
프로세스 관리
프로세스는 부모 프로세스에 의해 생성되며, fork()와 exec() 시스템 콜을 통해 관리된다. 종료 시 exit() 시스템 콜로 종료되고, 부모는 wait()를 통해 자식의 데이터를 받는다.
Computer Science
-
OS
#
OS
2024.12.18
· Updated 2024.12.31
Detail
1
© Churnobyl 성철민
Contact: tjdcjfals@gmail.com