분류 전체보기 18

[Linux Signal] - 쉘, 프로세스 제어, 시그널 핸들링

리눅스 시그널 완전 정리 - 쉘과 프로세스 제어📖 목차시그널이란?쉘과 프로세스 관계Ctrl+C와 Ctrl+Z의 차이점운영체제 vs 개발자 역할시그널 처리 코드 분석시그널 전달 과정실제 동작 예시마무리1. 시그널이란?시그널은 프로세스 간 통신(IPC) 메커니즘 중 하나로 비동기적으로 프로세스에게 특정 이벤트를 알려주는 소프트웨어 인터럽트.쉽게 말하면 프로세스에게 "이런 일이 일어났으니 적절히 반응해!"라고 알려주는 메시지 시스템.2. 쉘과 프로세스 관계🔹 쉘 안의 프로세스들한 쉘에서 **앞에서 실행 중인 프로그램(포그라운드 프로세스)**는 보통 1개.예: ./a.out 실행하면 → 쉘이 자식 프로세스를 만들어서 그 프로그램 실행이때는 쉘이 잠시 대기 상태로 들어감 (포그라운드 프로세스가 끝날 때까지)하..

system 2025.09.14

[시스템 프로그래밍] myshell.c 코드 분석 - 2

https://github.com/sumin-world/suminworld-system-lab/tree/main/shell suminworld-system-lab/shell at main · sumin-world/suminworld-system-labSystem programming & networking lab (C, Linux, OSTEP practice) - sumin-world/suminworld-system-labgithub.com전체 코드는 위에서 확인 가능합니다!Foreground / Background 프로세스와 시그널 처리Foreground (전경)현재 사용자와 상호작용하고 있는 프로그램키보드 입력을 받는 프로그램터미널에서 "지금 실행 중"인 상태Background (배경)뒤에서 조용히 ..

system 2025.09.12

UTM에서 Ubuntu 디스크 확장 삽질기 - CTF 환경 구축 중 겪은 LVM 이슈 해결

🖥️ 사용 환경MacBook Air 13 (2025년형, Apple M4, RAM 24GB)macOS Sequoia 15.6.1UTM 가상화, Ubuntu 22.04 LTS (Server, LVM 설치)문제 상황🤔 CTF 문제 풀려다가 UTM VM 가상 디스크 용량 부족 에러가 떴다. 지난번에도 몇 번 뜨길래 pip 캐시 정리, apt 캐시 정리로 빠르게 해결하다가 이참에 UTM VM 디스크 크기를 늘려서 근본적으로 해결하고자 하였다. 그런데 사진에서 보다시피 VM을 완전히 종료한 상태인데도 계속 UTM에서 "크기 변경" 버튼이 계속 회색으로 비활성화되어 있었다! ㅠㅠ 참고로 pip / apt 캐시 정리 명령어는 아래와 같다.# pip 캐시 정리pip cache purgerm -rf ~/.cache..

issue 2025.09.12

[시스템 프로그래밍] myshell.c 코드 분석 - 1

suminworld-system-lab/shell at main · sumin-world/suminworld-system-labSystem programming & networking lab (C, Linux, OSTEP practice) - sumin-world/suminworld-system-labgithub.com전체 코드는 위의 링크 들어가시면 확인 가능합니다!1. 파일 디스크립터 (File Descriptor)개념파일을 가리키는 번호표기본 할당0번 (STDIN_FILENO): 표준 입력 (키보드)1번 (STDOUT_FILENO): 표준 출력 (화면)2번 (STDERR_FILENO): 표준 에러 (에러 메시지용 화면)3번, 4번, 5번...: 프로그램이 열어서 사용하는 파일들터미널 제어 함수#in..

system 2025.09.11

[네트워크] ALFA AWUS036ACM 모니터 모드 설정 (Wi-Fi 보안 실습 - 1)

ALFA AWUS036ACM USB 무선랜카드를 사용해서 Wi-Fi 패킷을 직접 캡처하고 분석해보는 실습을 진행하였습니다.GitHub 저장소: suminworld-system-lab/network/wifi사용 도구: tcpdump, tshark, ALFA AWUS036ACM suminworld-system-lab/network/wifi at main · sumin-world/suminworld-system-labSystem programming & networking lab (C, Linux, OSTEP practice) - sumin-world/suminworld-system-labgithub.com 🔧 실습 환경 세팅제 실습 환경은 아래와 같습니다.🖥️ Host: macOS + UTM 가상머신🐧..

network 2025.09.10

2026 대입 인문 논술에 대한 개인적인 견해 (중앙대/성균관대/연세대 최초합)

우선 저의 입시 결과는 아래와 같습니다 김포 일반고 졸업2020 중앙대학교 모의논술 전체 19등 / 과 1등2020 중앙대학교 프랑스어문학과 논술전형 최초합 숙명여자대학교 논술전형 예비 5번2021 성균관대학교 글로벌경제학과 논술전형 최초합2022 연세대학교 응용통계학과 논술전형 최초합(현재 재학중) 지난 주말 농구하다가 넘어져서 발목 인대 파열로 깁스를 하게 되어서 필라테스랑 새벽러닝도 못 뛰게 되어서 새벽 온라인 과외를 마치고 3년간의 수험생활과 대치동/목동 논술 학원 조교 경험담 및 개인 과외를 하면서 느낀 점을 끄적여봅니다. 어제 티스토리 계정을 막 만들어서 누가 볼지는 모르겠지만, 누군가에게는 도움이 되길 바라는 마음으로 적어봅니당제 개인적인 견해를 바탕으로 작성된 글이고, 제 ..

2025.09.10

[시스템 프로그래밍] Tiny Shell 프로젝트: 잡 컨트롤, 시그널, 레이스 컨디션 다루기

요약잡 컨트롤 안정화 + 백그라운드 완료 알림 + 인용/주석 토크나이저 개선 + 레이스/메모리 에러 내성프롬프트에 최근 종료 상태 표시, 변수 확장($VAR, $?), 파이프/리다이렉션 정상 동작 삽질기 요약해보았습니다(*´∀`) 전체 코드는 제 깃허브에 올려두었습니다! -> GitHub 레포지토리 suminworld-system-lab/shell at main · sumin-world/suminworld-system-labSystem programming & networking lab (C, Linux, OSTEP practice) - sumin-world/suminworld-system-labgithub.com 🛠️ 빌드 & 실행gcc -Wall -Wextra -O2 -o myshell myshel..

system 2025.09.09

[네트워크] ALFA AWUS036ACM USB 무선랜카드로 Wi-Fi 보안 학습 환경 구축하기

ALFA AWUS036ACM (MediaTek MT7612U 칩셋) USB 무선랜카드를 사용해서 Wi-Fi 보안 학습을 위한 환경을 구축하는 방법을 정리합니다. 참고로 저는 쿠팡에서 약 10만원에 구매했고, 배송완료까지 4일정도 걸렸습니다! 중요한 법적 고지사항 이 가이드는 교육 및 학습 목적으로만 사용해야 합니다. 본인이 소유하지 않은 네트워크에 대한 무단 접근이나 공격은 불법이며, 관련 법률을 준수해야 합니다. 1. 무선 도구 설치Ubuntu 서버에는 기본적으로 무선 관련 도구가 설치되어 있지 않습니다. 필요한 패키지들을 설치해보겠습니다.sudo apt updatesudo apt install wireless-tools aircrack-ng net-tools설치되는 도구들:wireless-tools..

network 2025.09.08

[네트워크] UTM VM에서 USB 무선랜카드 연결하는 법 (macOS)

M 시리즈 맥에서 UTM을 사용해 Ubuntu VM을 돌리면서 USB 무선랜카드를 연결하는 과정을 정리했습니다. ALFA AWUS036ACM 구입부터 배송, 연결 과정까지 우당탕탕 삽질 과정과 해결 방법을 포함해서 기록해둡니다. (2025.09.03.(수) 20:13 기준)1. 다운로드UTM 공식 GitHub → Release → UTM.dmg (macOS용).ipa, .deb 파일은 iOS/리눅스용이므로 다운로드하지 마세요반드시 .dmg 파일만 받아서 /Applications에 설치권장 버전: 4.7.x Beta/Pre-release 최신 (M4 맥 대응 + USB 패스스루 버그 수정됨)앱스토어 버전은 구버전이라 USB 패스스루가 제대로 작동하지 않을 수 있습니다.2. 설치 과정.dmg 파일을 열고 U..

network 2025.09.08

[네트워크] C 소켓 프로그래밍 Echo 서버 구현 - 기본부터 멀티클라이언트까지

소켓 프로그래밍을 배우면서 가장 기본이 되는 Echo 서버를 만들어보았습니다. 단순한 버전부터 시작해서 실전에서 쓸 수 있는 멀티클라이언트 서버까지 단계적으로 발전시켜보겠습니다.Echo 서버란?Echo 서버는 클라이언트가 보낸 메시지를 그대로 돌려보내는 서버입니다. 네트워킹의 "Hello World" 같은 존재로, TCP/IP 통신의 기본 원리를 이해하기 좋은 예제입니다.클라이언트: "안녕하세요"서버: "안녕하세요" (그대로 돌려보냄)1단계: 기본 Echo 서버첫 번째 버전은 한 번에 하나의 클라이언트만 처리할 수 있는 기본적인 서버입니다.핵심 개념들소켓 생성과 바인딩int server_fd = socket(AF_INET, SOCK_STREAM, 0); // TCP 소켓bind(server_fd, (s..

network 2025.09.08