전체 글1055 QEMU (Quick Emulator) QEMUQEMU는 Quick Emulator의 약자로, 오픈소스 머신 에뮬레이터이자 가상화 프로그램이다.잘 알려진 VMware나 VirtualBox 같은 가상화 도구와의 가장 큰 차이점은 머신 에뮬레이션 기능이다. VMware나 VirtualBox는 호스트 PC가 Intel x86 CPU라면 가상 머신 역시 동일한 Intel x86 아키텍처로 동작해야 한다. 반면, QEMU는 호스트 시스템과 다른 아키텍처(ARM, RISC-V 등) 머신을 가상으로 에뮬레이션하고, 그 위에서 해당 아키텍처용 운영체제를 실행할 수 있다는 장점이 있다. QEMU 가상화 방식공식 문서에서 소개하는 QEMU의 가상화 방식은 크게 두 가지로 나뉜다. 1. System Emulation (qemu-system-*)Syst.. 2026. 3. 22. Eye Opening Monitor (EOM) Eye Opening Monitor(EOM)는 고속 직렬 통신 IC에 내장된(On-Chip) 신호 품질 모니터링 기능이다. EOM을 이해하려면 먼저 Eye Diagram에 대해 알고 있을 필요가 있다. Eye Diagram이란?아이 다이어그램(Eye Diagram)은 오실로스코프 등 계측기를 이용해 고속 디지털 신호를 기준 클록에 동기화하여 샘플링한 뒤 1 비트 구간(Unit Interval)의 파형들을 화면에 중첩해 표시한 것이다. 파형이 마치 사람의 눈 모양과 비슷해 보인다해서 붙여진 이름이다. 신호의 품질, 지터, 노이즈, 상승/하강 시간 등을 한눈에 파악하고 평가하기 위해서 사용한다. 눈의 개방도(Eye Opening)눈이 크게 열려 있을수록 신호의 품질이 좋고 비트 오류율(BER, Bit Er.. 2026. 3. 15. 리눅스 디바이스 모델과 디바이스 드라이버의 종류 1. 서론 리눅스 디바이스 드라이버를 공부하다 보면 가장 먼저 접하게 되는 책이 Linux Device Drivers(https://lwn.net/Kernel/LDD3/)다.이 책에서는 디바이스 드라이버를 크게 char, block, network 세 가지로 분류한다. 이 분류는 지금도 유효한 개념이지만, 리눅스 BSP 개발을 처음 경험하면서 느낀 점은 이 세 가지 분류만으로는 현대 리눅스 드라이버의 구조를 설명하기 부족하다는 것이었다.특히 V4L2나 ALSA 같은 서브시스템 위에서 동작하는 복잡한 드라이버들을 보다 보면 “이 드라이버는 도대체 어디에 속하는거지?” 라는 질문을 하게 된다.이 글은 그런 고민에서 출발해, 리눅스에서 디바이스(하드웨어 장치)가 어떤 모델로 동작하고, 어떤 방식으로 드라이버랑.. 2026. 3. 8. 오실로스코프 AC / DC 커플링 모드 얼마 전 스코프로 신호를 측정하다가 파형이 이상하게 나와서 확인해보니 스코프가 AC 커플링 모드로 설정되어있던 일이 있었다. 생각난 김에 해당 설정에 대해 정리해보려고 한다. 오실로스코프의 입력 커플링 설정DC CouplingDC 커플링은 입력 신호를 그대로 측정하는 방식이다. 신호에 포함된 DC 성분과 AC 성분이 모두 화면에 표시된다.AC CouplingAC 커플링은 입력 신호에서 DC 성분을 제거하고 AC 성분만 통과시켜 보여주는 방식이다. 아래 그림은 스코프 입력단의 블록도다. AC 커플링 모드를 선택하면 입력 신호는 직렬로 배치된 커패시터를 통과하게 되는데, 이 커패시터가 스코프 내부의 입력 저항과 결합되서 고역통과 필터(HPF)처럼 동작한다. 이 때문에 DC 성분이 통과 못하는 것.. 2026. 3. 1. C++ ] lvalue와 rvalue 그리고 std::move() 1. lvalue와 rvaluelvalue : 메모리 주소를 가지고 있어 위치를 식별할 수 있는 객체로, 이름이 있고 계속 쓸 수 있는 값rvalue : 잠깐 쓰이고 사라지는 임시 값int a = 10; 위 코드에서 a는 lvalue이고, 10은 rvalue이다. 대입문의 왼쪽에 오면 lvalue, 오른쪽에 오면 rvalue라고 봐도 대부분의 경우 틀리진 않지만 더 정확히는 이름을 통해 메모리 주소를 참조할 수 있으면 lvalue, 표현식이 끝나면 사라지는 일시적인 값은 rvalue다. ✓ lvalue와 rvalue의 구분이 중요한 이유는?언제 복사가 발생하는지언제 이동이 발생하는지어떤 API 설계가 불필요한 복사를 줄이는지명확히 알 수 있기 때문이다. 2. lvalue와 rvalue의 r.. 2026. 2. 22. C++ ] Overlapped IO 모델의 시리얼 통신 클래스 이번에 Overlapped I/O 모델에 대해 정리도 할겸 C++ 시리얼 통신 클래스를 구현해 보았다. 지난 글에 올린 링버퍼 클래스를 활용한다. 먼저 Overlapped I/O 모델의 개념과 동작 방식, 그리고 왜 시리얼 통신에서 Overlapped I/O를 사용하는지 정리하고 시작하자. Overlapped I/OOverlapped I/O는 윈도우에서 제공하는 완전한 비동기(Asynchronous) I/O 모델이다. 고성능 네트워크 서버 구축에 사용되는 IOCP(I/O Completion Port) 역시 이 Overlapped I/O를 기반으로 동작한다. Overlapped I/O의 핵심은 I/O 요청을 커널에 맡긴 뒤 I/O 완료를 기다리지 않고 바로 반환된다는 점이다. 실제 I/O가 끝났을 때는.. 2026. 2. 15. 네트워크 I/O 모델 네트워크 I/O 모델 네트워크 시스템의 성능을 결정짓는 핵심 요소 중 하나가 I/O(Input/Output) 모델이다. 이번 글에서는 UNIX 시스템에서 전통적으로 나누는 5가지 I/O 모델에 대해 알아보고, 각 모델의 차이를 정리하고자 한다. 먼저 5가지 기본 I/O 모델은 다음과 같다. Blocking I/ONonblocking I/OI/O Multiplexing (select, poll)Signal Driven I/O (SIGIO)Asynchronous I/O (aio_) 보통 I/O 모델에 대해 논할 때는 출력보다는 입력 위주로 설명한다. 출력(Write)의 경우 커널의 송신 버퍼에 빈공간이 있으면 대부분 즉시 커널로 데이터를 복사하고 리턴되지만, 입력(Read)의 경우 데이터가 언제 도착할지는 .. 2026. 2. 10. C++ ] 템플릿을 활용한 thread-safe 링버퍼 클래스 C++ 템플릿을 활용해 여러 데이터 타입으로 재사용이 가능하고 멀티 스레드환경에서도 안전하게 사용할 수 있는 링버퍼 클래스를 작성해보았다. 내부적으로 고정 크기의 std::vector 버퍼를 사용하며, 일반적인 vector가 앞의 요소를 제거하면 메모리 이동 비용이 발생하는 것과 달리 head, tail 포인터 순환 구조를 통해 메모리를 효율적으로 사용할 수 있다. 이미 STL에 존재하는 컨테이너인 std::deque(Not thread-safe)와 std::mutex를 함께 쓰는 방법도 있긴 하지만, 직접 구현하는 링버퍼 클래스에는 다음과 같은 장점이 존재한다. 1. 고정 크기 버퍼를 사용하므로 예측이 가능std::deque의 경우 capacity를 초과할 때마다 메모리를 재할당하거나 재배치하는 과정.. 2026. 2. 5. Linux ] nc (netcat) 사용법 정리 nc (netcat)터미널의 입출력을 네트워크 소켓에 연결하여 명령줄에서 데이터를 송수신할 수 있도록 지원하는 네트워크 도구리눅스 환경에서 네트워크 애플리케이션을 개발할 때, 서버나 클라이언트 한 쪽이 없는 상태에서 해당 애플리케이션이 프로토콜에 따라 의도한대로 동작하는지 간단히 테스트하는 용도로 유용하게 쓸 수 있다. 이 외에도 Ncat, socat 등 유사한 도구들이 많은데, 전부 터미널 입출력을 기반으로 제어하는 특성상 텍스트 기반 프로토콜에 최적화되어 있고, 바이너리 프로토콜 검증용으로 쓰기엔 좀 까다롭다. 따라서 바이너리 프로토콜을 다루는 경우라면 아래 도구를 사용하는 걸 추천한다. 혹은 직접 프로그램을 짜는게 더 빠를 수도 있다. 송신용 : Packet Sender수신용 : Wireshark.. 2026. 1. 30. Linux의 부팅 과정 정리 이 글에서는 임베디드 리눅스가 아닌 일반적인 x86 PC 리눅스 배포판을 기준으로 부팅 과정을 정리해보았다. 1. BIOS / UEFI : 하드웨어 점검먼저 시스템 전원을 켜면 BIOS(레거시) 또는 UEFI가 POST(Power-On Self-Test)을 수행하여 CPU, 메모리, 그래픽 카드 등 주요 부품이 정상인지 확인하고 사용할 준비를 마친다. 2. BIOS / UEFI : 부팅 가능한 디스크 탐색BIOS / UEFI 설정에 저장된 부팅 우선순위(Boot Priority Order)에 따라 어떤 저장장치(HDD, SSD, USB 등)에서 부팅할 것인가가 정한다. 3. BIOS / UEFI : 부트로더 실행BIOS의 경우 : MBR(Master Boot Record.. 2026. 1. 25. Ubuntu ] 한글 2020 Beta 설치 방법 Ubuntu 22.04에서 정상동작 확인됨 다운로드curl -H "Host: cdn.hancom.com" -H "Referer: https://www.hancom.com/cs_center" -fLO https://cdn.hancom.com/pds/hnc/DOWN/gooroom/hoffice_hwp_2020_amd64.deb 설치sudo dpkg -i ./hoffice_hwp_2020_amd64.deb 설치 후 실행파일 위치 (참고)/opt/hnc/hoffice11/Bin/hwp 출처 : https://hamonikr.org/index.php?mid=Free_Board&m=0&page=1&document_srl=137118 2026. 1. 21. LDD ] 시간 지연 함수 사용 시 주의점 (sleep vs delay) 커널 공간(Kernel space) 시간 지연 함수리눅스 커널에서 사용 가능한 시간 지연 함수는 CPU 점유 여부에 따라 sleep 계열과 delay 계열로 나뉜다. 1. sleep 계열 함수sleep 계열 함수는 현재 실행 흐름을 중단하고 스케줄러에게 CPU 제어권을 반납하여 다른 태스크가 실행되도록 하는 방식이다. 지정한 지연 시간 이후에 스케줄링에 따라 다시 실행된다. #include msleep(unsigned int msecs)msleep_interruptible(unsigned int msecs) // 대기 중 SIGINT, SIGKILL 같은 시그널이 오면 즉시 깨어남usleep_range(unsigned long min, unsigned long max); sleep 계열 함수 사.. 2026. 1. 20. Linux Root Filesystem 구조 Linux BSP 개발자 입자에서 중요하다고 생가하는 Root Filesystem 구조에 대해 정리해보고자 한다. /bin -> /usr/bin/ : 필수 사용자 프로그램 (ls, sudo, sh, cp rm 등)boot : 부팅 프로세스에 필요한 파일vmlinuz, zImage, Image : 리눅스 커널 이미지dtb/, dtbo/ : 장치 정보를 담은 Device Tree Blobdev/ : 물리적 장치를 파일로 추상화한 디바이스 노드 파일null : 데이터 버림용 가상 장치zero : 데이터 생성용 가상 장치tty* : 시리얼 통신 장치mmcblk* : eMMC/SD 카드 블록 장치etc/ : 시스템 전반 설정 파일fstab : 파일 시스템 마운트 설정sysctl.conf : 커널 내부 파라미터를 .. 2026. 1. 15. Linux ] sysroot란? 임베디드 리눅스 개발을 하다보면 호스트 PC에서 타겟 보드용 애플리케이션을 개발해야할 경우가 많이 있다. 이 때 제대로 된 크로스컴파일 환경을 구성하려면, 크로스 컴파일러 말고도 꼭 있어야하는 것이 sysroot다. 이번 글에서는 sysroot의 개념과 gcc의 --sysroot 옵션 사용 방법에 대해 정리하고자 한다. gcc는 기본적으로 어떤 파일들을 어디에서 찾을까?네이티브 컴파일 환경에서 gcc는 다음을 암묵적으로 전제한다. 헤더 검색 위치/usr/include/usr/include/ 라이브러리 검색 위치/lib/usr/lib/lib//usr/lib/ 즉, gcc는 별도의 옵션이 지정되지 않은 경우, 이 코드는 지금 실행 중인 시스템에서 동작할 프로그램이라고 가정하고 현재 시스템의 루트(/) 아.. 2026. 1. 10. UEFI (Unified Extensible Firmware Interface) UEFI가 뭔지 이해하려면 먼저 BIOS를 알아야 한다. BIOS란?컴퓨터가 켜지면, 가장 먼저 실행되서 부팅 준비 작업을 하는 시스템 소프트웨어를 부트 펌웨어라고 한다. 전통적으로는 BIOS (Basic Input/Output System)가 이 역할을 담당했다. BIOS는 다음 과정을 통해 운영체제를 부팅한다. 하드웨어 초기화 (POST)전원이 켜지면 BIOS는 POST(Power-On Self-Test)를 수행하여 CPU, 메모리, 그래픽 카드 등 주요 부품이 정상인지 확인하고 사용할 준비를 마친다.부팅 디바이스 탐색 (Boot Priority)BIOS 설정에 저장된 부팅 우선순위(Boot Priority Order)에 따라 어떤 저장장치(HDD, SSD, USB 등)에서 부팅할 것인가가 정해지고.. 2026. 1. 5. C++ ] 함수 템플릿, 클래스 템플릿 템플릿C++에서 템플릿은 타입에 의존하지 않는 일반화된 코드 구조를 정의하는 문법이다. 템플릿을 사용하면 함수나 클래스를 작성할 때 특정 타입을 박아두지 않고, 나중에 어떤 타입으로도 재사용할 수 있어 코드 중복을 효과적으로 줄일 수 있다. 템플릿 선언 방식템플릿은 함수와 클래스 모두에 적용할 수 있다. 선언 방식은 동일하며, 함수와 클래스 위에 다음과 같이 선언한다. template 여기서 typename T는 템플릿 내부에서 실제 타입을 대신하는 형식 매개변수이다. 템플릿이 사용될 때 컴파일러가 이 T를 구체적인 타입(int, double, std::string 등)으로 치환한다. 템플릿의 구현 위치일반적인 C++ 코드가 선언은 .h 파일에 작성하고 정의는 .cpp 파일에 분리하여 작.. 2025. 12. 30. 선형 보간 (Linear Interpolation) 선형 보간 (Linear Interpolation)먼저 보간(interpolation)은 알려진 데이터 점들 사이의 값을 추정하는 수학적 기법을 말한다. 그 중에서도 선형 보간(Linear Interpolation)은 각 구간 내에서 출력이 입력에 대해 선형(직선) 관계를 따른다고 가정하는 가장 기본적인 보간 방법이다. 참고로 선형 보간은 차원에 따라 다음과 같이 구분될 수 있다. 다만 2차원, 3차원부터는 용어가 구체화되기 때문에 일반적으로 선형 보간이라고만 하면 1차원을 의미하는 경우가 많다.(1D) Linear Interpolation : 직선 상에서 두 개의 기준점을 이용해 값을 추정하는 방식, y = f(x)(2D) Bilinear Interpolation : 좌표 평면 상에서 네 개의 기준점을.. 2025. 12. 25. Ubuntu ] 우분투 듀얼 부팅 설치하기 1. Rufus 다운로드 https://rufus.ie/ko/ 2. Ubuntu 이미지 다운로드 Ubuntu 22.04 : https://releases.ubuntu.com/jammy/ 3. Rufus로 Ubuntu 부팅 USB 만들기 부팅이미지를 선택하고 USB 장치가 올바르게 선택됐는지 확인한 후 설정값을 아래와 같이 하고 시작을 누른다. 경고문구가 뜨면 디폴트값 또는 예를 선택해주면 된다. ✓ 파티션 구성 선택 기준 : MBR vs GPT MBR과 GPT는 디스크의 파티션 테이블 구조로, MBR은 Legacy BIOS 부팅에서 사용되는 오래된 방식, GPT는 UEFI 부팅 시 요구되는 최신방식이다. 최신 PC의 경우 대부분의 UEFI + GPT 조합이기 때문에 GPT를 선택하면 .. 2025. 12. 21. DIV_ROUND_UP, DIV_ROUND_CLOSEST 임베디드 환경에서는 가급적 부동소수점 연산을 피하고, 정수 연산을 선호하는 경우가 많다. 실제로 다루는 데이터가 정수 단위인 경우가 많기 때문이기도 하지만 성능 최적화를 위해 실수 연산을 직접 사용하기보다 값을 미리 scale up한 뒤 정수 연산으로 처리하고, 필요한 시점에만 의미 있는 단위로 해석하는 방식을 많이 사용한다. 이때 유용하게 사용할 수 있는 것이 바로 정수 나눗셈 기반의 올림과 반올림 매크로 함수이다. 다음 코드는 리눅스 커널에서도 사용될 만큼 유명하다. #define DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d))#define DIV_ROUND_CLOSEST(n, d) (((n) + ((d) / 2)) / (d)) DIV_ROUND_UP : .. 2025. 12. 20. C++ ] 싱글톤(Singleton) 클래스 싱글톤(Singleton) 패턴싱글톤(Singleton) 패턴은 "프로그램 전체에서 오직 하나의 인스턴스만 존재해야 하는 클래스"를 만들 때 사용하는 디자인 패턴이다. 주로 전역 상태를 관리하는 클래스나 설정 파일, 시스템 로그 등의 공용 리소스를 다루는 클래스에서 사용한다. 싱글톤(Singleton) 클래스 구현 방법 싱글톤 클래스를 구현할 때는 다음 요소를 갖춰서 구현해야 한다. 생성자 비공개 : 외부에서 new 연산자를 사용해서 인스턴스를 직접 생성하는 것을 막기 위해 생성자는 private 또는 protected로 선언해야 한다.복사 및 이동 방지 : 단일 인스턴스를 유지 하기 위해 복사 생성자, 복사 대입 연산자, 이동 생성자, 이동 대입 연산자를 명시적으로 삭제해야 한다.정적 인스턴스와 .. 2025. 12. 15. Windows ] diskpart 유용한 명령어 (+ clean vs clean all) DiskpartDiskpart는 Windows에서 디스크 초기화, 파티션 생성/삭제, 파티션에 드라이브 문자 할당/제거 등의 작업을 수행할 때 유용하게 사용할 수 있는 명령줄 도구이다. Diskpart 실행명령 프롬프트에서 diskpart 입력하여 실행diskpart 디스크 목록 확인PC에 연결된 SSD, HDD, USB, SD 카드 등 물리적 저장장치 목록을 보여준다.list disk 특정 디스크 선택은 list disk 결과에 표시된 디스크 번호sel disk 선택한 디스크 전체 초기화디스크 전체 구조를 삭제하고 완전히 빈 상태로 만든다.cleanclean all ✓ clean vs clean all 차이clean : MBR/GPT 파티션 정보만 삭제한다. 데이터는 실제로 남아 있으.. 2025. 12. 12. Windows ] MAC 주소 변경 방법 장치 관리자 > 네트워크 어댑터 > MAC 주소 변경할 네트워크 어댑터 선택 후 우클릭 속성 > 고급 > 네트워크 주소 > 값 체크 값에 예를 들어 123456ABCDEF라고 입력 후 확인을 누르면 MAC 주소를 12:34:56:AB:CD:EF로 바꿀 수 있다. 바꾼 MAC 주소는 명령 프롬프트 창에서 ipconfig /all 명령으로 확인 가능하다. 해당 방식은 윈도우 레지스트리의 장치 프로필에 MAC 정보를 저장하는 방식으로, USB 이더넷 어댑터를 뺐다 다시 꽂아도 이전에 설정된 값이 그대로 적용된다. 2025. 12. 9. Ubuntu ] 화면 누리끼리하게 보일 때 해결 방법 그래픽카드 드라이버를 재설치해도 효과가 없었는데 구글링을 통해 해결 방법을 찾았다. Settings > Color > 누리끼리하게 보이는 모니터 선택 후 Add profile 클릭 Colorspace: sRGB 선택 기존 profile은 삭제 하고 새 profile을 적용하니 화면이 밝게 보인다. 2025. 12. 6. 뮤텍스(Mutex)와 세마포어(Semaphore)의 차이 프로그래밍 관련 블로그를 보면 뮤텍스와 세마포어의 가장 큰 차이는 보호하려는 자원의 개수 차이이며, 화장실 칸 비유로 설명하는 글을 많이 볼 수 있다. 하지만 해당 설명만으로는 두 동기화 기법을 언제, 어떤 용도로 사용하는 지 목적을 이해하기 어렵다. 이번 글에서는 뮤텍스와 세마포어의 사용 용도 차이를 중심으로 두 동기화 기법의 차이를 정리해보려고 한다. Mutex와 Semaphore의 차이 뮤텍스 (Mutex)세마포어 (Semaphore)주 사용 용도공유 자원 보호생산자/소비자 간 동기화(이벤트 통지 or 자원 풀 관리)동기화의 목적자원 접근 순서 조정(상호 배제, Mutual Exclusion)Task 간 실행 순서 조정(Task Synchronization)자원 개수1개1~N개(1: 바.. 2025. 12. 3. C++ ] constexpr constexpr constexpr은 C++11에서 추가된 키워드로, 변수나 함수를 컴파일 타임에 값이 결정되는 상수로 만들도록 컴파일러에게 지시하는 역할을 한다. 이를 통해 컴파일러는 미리 값을 계산하여 최적화된 코드를 생성하고, 런타임 성능을 향상시킬 수 있다. constexpr를 변수에 사용하는 경우 constexpr을 변수 선언에 사용하면 그 변수는 컴파일 타임에 값이 결정되는 상수로 취급된다. 상수이기 때문에 배열 크기로도 사용이 가능하다. // 전역 기준constexpr int SIZE = 10;int arr[SIZE]; // C++에서 가능const int SIZE = 10;int arr[SIZE]; // C++에서 가능, C에서는 오류 const 키워드와 유사해 보일 수 있지만,.. 2025. 11. 30. C/C++ ] 리턴하지 않는 함수임을 명시하는 키워드 리턴하지 않는 함수의 의미리턴하지 않는 함수란 호출자에게 제어권을 반환하지 않는 함수임을 의미한다. 즉, return을 하지 않고 프로그램이 바로 종료되거나, 후속 코드가 실행되지 않고 예외로 튀거나, 무한 루프에 들어가는 함수라는 뜻이다. 컴파일러에 리턴하지 않는 함수임을 알려주는 이유컴파일러에게 아래에서 소개할 키워드 사용을 통해서 “이 함수는 절대 리턴하지 않는다”는 정보를 알려주면 다음과 같은 이점이 있다. “리턴값이 없습니다" 또는 "모든 제어 경로에서 값을 반환하지는 않습니다” 같은 불필요한 컴파일러 경고를 억제할 수 있다. 단, 경고 발생 유/무는 컴파일러마다 다를 수 있다.컴파일러가 호출 이후 코드를 제거하거나 unreachable 코드로 처리하여 최적화할 수 있다.코드 경로 분석 시.. 2025. 11. 27. Linux ] rename이 atomic한 이유 (리눅스 파일의 참조 구조) renamerename은 POSIX 표준의 파일 관련 시스템 콜 중 하나로 파일 이름(경로)를 변경할 때 사용한다. rename을 사용하면 기존 파일 oldpath를 새 경로 new path로 변경하고, 만약 newpath가 이미 존재하는 경우 atomically replaced 된다는 중요한 특징을 가지고 있다. #include int rename(const char *oldpath, const char *newpath);oldpath : 기존 경로newpath : 바꾸고자 하는 경로 rename이 atomic하다는 의미man 2 rename으로 rename 시스템 콜의 man page를 확인하면 이런 특징에 대한 설명이 나와있다. If newpath already exists, it will.. 2025. 11. 24. Linux ] journalctl 사용법 (systemd-journald) journalctljournalctl은 systemd-journald의 CLI 도구로, systemd 기반 init 시스템을 사용하는 리눅스에서 커널/서비스/사용자 프로세스의 로그를 한데 모아 조회할 수 있게 해주는 표준 툴이다. 저장 경로 journal 로그는 텍스트 파일이 아니라 바이너리 데이터로 저장되며, 저장 유형에 따라 하기 디렉토리 아래 디렉토리 내 .journal 파일로 저장된다. 비영속 (RAM(tmpfs) 저장) : /run/log/journal/영속 (디스크 저장) : /var/log/journal/ 한편, systemd-journal의 저장 방식/용량 정책 등을 설정하는 구성 파일은 /etc/systemd/journald.conf 경로에 존재한다. 기본 사용법# 전체 로.. 2025. 11. 21. Linux ] watch 명령어 사용법 watchwatch는 지정한 명령어를 일정 간격 반복 실행하면서 실행 결과를 터미널 화면 전체에 갱신하며 보여주는 도구이다.주로 명령의 출력이 어떻게 변화하는지 확인하고 싶을 때 사용한다.watch [옵션] 주요 옵션-n : 명령을 실행할 주기를 초 단위로 지정한다. 기본값은 2초이다.-d : 이전 출력과 달라진 부분을 하이라이트하여 표시한다.-t : 화면 상단의 제목(명령, 주기, 시간) 표시를 생략한다.-p : 명령 실행시간을 포함 보정하여 정밀한 주기로 실행한다.-g : 출력이 변경되면 즉시 종료한다.-c : ANSI 컬러를 유지하며 출력을 표시한다. 기본적으로 watch는 터미널 이스케이프 문자를 처리해 표시하지 않는다.-b : 출력이 변경될 때 비프음을 발생시킨다.-x : 명령을 쉘이 아.. 2025. 11. 18. Linux ] ln 명령어 사용법 lnln은 link를 생성하는 명령으로 리눅스에서 파일을 복사하지 않도 다른 경로에서 동일한 파일을 참조하고 싶을 때 사용할 수 있는 명령어다.ln [옵션] ✓ 하드 링크와 심볼릭 링크리눅스 파일 시스템에서는 두 가지 종류의 링크가 존재한다. 하드 링크 (Hard link)심볼릭 링크 (Symbolic link)링크 대상원본의 inode원본의 파일 경로제약동일 파티션 내에서만 가능다른 파티션도 가능원본 삭제 시링크 및 내용 유지링크 깨짐디렉토리 링크불가능가능확인 명령ls -lii 옵션을 사용하면 파일의 inode가 함께 출력된다. 두 파일의 inode 번호가 서로 같은 경우 하나는 하드 링크 파일임을 알 수 있다.ls -l파일 목록을 상세 출력하여 타입이 l로 시작하면 심볼릭 링크 파일이며, 링.. 2025. 11. 15. 이전 1 2 3 4 ··· 36 다음 반응형