#linux
노트 14개
Computer Science › C Programming
C 디버깅 도구C 프로그램의 버그를 잡는 도구를 쓰임새별로 정리한다. GDB·LLDB로 멈춰서 들여다보기, AddressSanitizer·UBSan으로 메모리 오류와 미정의 동작 잡기, leaks·Valgrind로 누수 찾기, strace로 시스템 콜 추적하기, 그리고 Segmentation fault와 Bus error의 차이.
Computer Science › C Programming
GCC 컴파일과 링크gcc/clang으로 단계별 결과물(.i .s .o)을 뽑는 옵션, 경고·디버깅·최적화 플래그, 정적 라이브러리(.a)와 공유 라이브러리(.so/.dylib)를 만들고 링크하는 법, 링크 순서와 런타임 라이브러리 탐색, 헤더 중복 포함 방지를 정리한다.
Computer Science › Network
리눅스 네트워크 네임스페이스와 ip 명령리눅스에서 네트워크 설정을 다루는 ip 명령의 구조와 출력 읽는 법(인터페이스 플래그·MTU·scope·라우팅 테이블), 한 호스트 안에 격리된 네트워크 공간을 만드는 네트워크 네임스페이스와 veth 쌍, 이것이 컨테이너 네트워크의 바탕이 되는 원리를 정리한다.
Computer Science › Network
SSH의 동작: 전송·인증·연결 계층SSH는 믿을 수 없는 네트워크 위에 암호화된 원격 접속 통로를 만든다. 전송 계층이 키 교환과 서버 호스트 키 확인으로 암호화 채널을 열고, 인증 계층이 공개키 등으로 사용자를 확인하며, 연결 계층이 그 하나의 통로를 셸·명령·포트 포워딩·파일 전송 채널로 나눠 쓴다.
Computer Science › Operating System
가상화와 하이퍼바이저하나의 물리 머신 위에 여러 운영체제를 돌리는 서버 가상화의 원리. 하이퍼바이저 Type 1·2 분류와 전가상화·반가상화·하드웨어 지원 가상화의 차이, 운영체제 수준 가상화(컨테이너), 샌드박스로서의 VM, 가상 네트워크 모드를 정리한다.
Computer Science › Operating System
데몬과 systemd터미널과 분리되어 백그라운드에서 도는 데몬의 개념, SysV 방식의 이중 fork 데몬화가 필요했던 이유, 그 일을 대신 해 주는 systemd의 유닛·서비스·타이머, cron을 대체하는 systemd 타이머와 journalctl 로그를 정리한다.
Computer Science › Operating System
리눅스 배포판과 패키지 관리리눅스 커널과 배포판의 관계, Debian·RHEL·Arch 계열의 차이와 패키지 관리자(apt·dnf·pacman), CentOS가 CentOS Stream으로 바뀐 과정과 Rocky Linux·AlmaLinux 같은 대안, 배포판·커널 버전 확인 방법을 정리한다.
Computer Science › Operating System
리눅스 서버 점검: 부하·메모리·자원 한도서버에 들어가면 보는 순서(부하 평균, 커널 로그, 디스크, TCP 상태, I/O), free의 available과 페이지 캐시·버퍼 캐시, 메모리가 바닥날 때 캐시 회수에서 OOM Killer까지 벌어지는 일, open files·max user processes 같은 ulimit 한도와 systemd 설정, 운영 보안 습관을 정리했다.
Computer Science › Operating System
리눅스 접근 제어: DAC, MAC, sudo리눅스가 누가 무엇을 할 수 있는지 정하는 방식. 소유자가 권한을 정하는 DAC(rwx·setuid), 커널 정책이 강제하는 MAC(AppArmor·SELinux), 관리자 권한을 빌려 쓰는 sudo와 sudoers 문법, 비밀번호 정책을 맡는 PAM을 정리한다.
Computer Science › Operating System
셸이 명령을 실행하는 방식셸이 한 줄의 명령을 토큰화·파싱·확장한 뒤 fork·exec·wait와 pipe·dup2로 실행하는 과정. 파이프라인이 동시에 실행되는 이유, 쓰지 않는 파이프 끝을 닫아야 하는 이유, heredoc·서브셸·종료 상태까지 정리한다.
Computer Science › Operating System
운영체제 개요운영체제가 무엇이고 왜 필요한지, 커널 영역과 이중 모드·시스템 호출, 단일형·마이크로·하이브리드 커널의 구조 차이, 어떤 기준으로 분류되는지 정리한 입문 노트.
Computer Science › Operating System
운영체제의 시간과 타이머운영체제가 다루는 세 가지 시간(벽시계·단조·프로세스 CPU 시간), 이를 재는 하드웨어(RTC·HPET·TSC), POSIX 시계 API, sleep 계열 함수, alarm과 인터벌 타이머를 정리한다. 경과 시간은 단조 시계로 재야 하는 이유가 핵심이다.
Computer Science › Operating System
자주 쓰는 리눅스 명령어 지도리눅스 명령어를 파일·보기·텍스트 처리·프로세스·시스템 정보·사용자·네트워크·패키지 범주로 묶은 지도. grep·cut·sed·awk·sort·uniq를 파이프로 이어 로그를 훑는 법과, CPU 사용률이 100%일 때 의심할 원인과 확인 순서를 함께 정리한다.
Computer Science › Operating System
Bash 스크립트 작성법Bash 스크립트를 쓸 때 필요한 문법을 한곳에 모았다. 변수와 매개변수 확장, 배열, [[ ]]·(( ))·case 조건문, 반복문, 함수와 $@, 종료 코드와 특수 변수, set -euo pipefail과 trap, 디버깅, 그리고 명령줄을 빠르게 쓰는 습관.