05 — 시스템 구조와 Windows·Unix/Linux·모바일·클라우드 관리
A. OS·프로세스·메모리
단말은 사용자·센서·출력 기기와 업무 시스템이 만나는 끝점, 서버는 다른 구성요소에 기능을 제공하는 역할이다. 한 장비가 둘을 겸할 수 있다. DB는 저장·질의(C10), DNS는 이름 정보, 메일은 메시지 전달·사서함, WEB/WAS는 웹 요청·응용 실행(C08/C09), 파일서버는 공유(C), 클라우드는 서비스 계층(I), 보안제품은 관찰·탐지·집행(C11)을 중심으로 본다. 보안 상태는 데이터·노출 인터페이스·실행 권한·업데이트·물리 접근을 기준으로 확인한다.
OS는 실행과 자원·보호 경계를 관리하고 컴파일러는 언어를 번역한다. 프로세스는 실행 상태와 주소공간·자원을 가진 실행 단위, 스레드는 그 안의 실행 흐름이다. 스레드는 주소공간 등을 공유하지만 각자 실행 문맥과 스택을 가진다. pthreads 공유 메모리 IPC에는 동기화가 필요하며 다중처리의 성능·신뢰성은 자원 경쟁과 구성에 따라 평가한다. 사용자 모드는 제한된 권한에서 응용을 실행하고 커널 모드는 시스템 자원에 더 넓게 접근한다.
PID는 프로세스, PPID는 부모, PGID는 프로세스 그룹, SID는 세션을 식별한다. 그룹 리더의 PID는 PGID와 같고, 프로세스 그룹은 여러 프로세스를 묶어 다루는 단위다. fork는 자식 생성, exec 계열은 실행 이미지 교체, wait 계열은 자식 상태 회수라는 차이를 남긴다. 고아 프로세스는 Linux PID 네임스페이스와 subreaper 조건에 따라 재부모화된다. credentials, PID 네임스페이스
문맥 교환은 실행 문맥의 저장·복원이다. 사용자 전환은 실행 신원의 변경을 다룬다. FCFS는 도착 순서, SJF는 짧은 작업 우선, 선점형 STCF/SRTF는 짧은 잔여시간 우선, RR은 시간 할당량을 순환하는 기본 모형이다. 우선순위 스케줄링은 정책이 정한 우선순위에 따라 실행 대상을 선택한다. 평균 반환시간·응답시간의 유불리는 도착·실행시간 등 가정에 따라 달라진다. OSTEP 저자 공개 교재 7장, 기본 정의와 가정의 근거.
시스템콜과 쉘의 jobs/fg/bg 같은 작업 제어는 다른 층이다. FD는 프로세스의 열린 파일 기술자 표를 가리키는 0 이상 정수다. 0/1/2는 관례상 표준 입력/출력/오류이며 일반 파일뿐 아니라 소켓·파이프에도 기술자를 사용한다. SIGKILL·SIGSTOP은 잡기·차단·무시할 수 없다. open, signal
쉘 출력 리다이렉션에서 >는 통상 파일을 새로 만들거나 기존 내용을 잘라 쓰고 >>는 뒤에 추가한다. noclobber 등 조건이 있으므로 연산자·대상 FD·대상 경로를 함께 읽는다. GNU Bash 리다이렉션
코드·데이터·힙·스택은 주소공간의 기본 설명 모형이다. 배치 순서·상수 위치·성장 방향·인수 전달은 언어·ABI·OS에 따라 달라진다. 재귀에 의한 스택 고갈과 메모리 손상을 통한 코드 실행은 원인·결과를 나누어 이해한다(C06). write-through는 하위 저장소에도 쓰는 정책, write-back은 변경을 모았다가 반영하는 정책이다. 캐시와 하위 저장소의 반영 시점을 각 정책으로 이해한다. vmstat는 프로세스·메모리·페이징·블록 I/O·CPU 활동 등을 관찰한다. procps vmstat
B. 저장장치·파일시스템
파티션은 저장장치의 논리적 구획, 파일시스템은 파일과 메타데이터를 조직하는 방식이다. 1비트는 두 상태를 표현한다. 블록·클러스터는 데이터 배치 단위이며 크기와 최대 용량, OS 지원은 해당 파일시스템·판본의 조건으로 읽는다.
inode는 파일 메타데이터를 담으며 번호는 파일시스템 내부에서 식별한다. atime은 접근, mtime은 내용 수정, ctime은 상태 변경 시각이다. ctime은 권한·소유권 등 메타데이터 변경도 반영한다. atime 갱신에는 마운트 옵션 등 조건이 있다. NTFS MFT에는 파일별 항목이 있으며 데이터 내용도 항목 안이나 항목이 가리키는 외부 공간에 놓일 수 있다. MFT 항목은 파일 메타데이터와 데이터의 저장 위치·방식을 함께 표현한다. inode, Microsoft MFT
하드 링크는 같은 파일 객체를 가리키고 일반적으로 파일시스템 경계를 넘지 못한다. 심볼릭 링크는 경로를 저장해 경계를 넘을 수 있으며 대상이 없어도 존재한다. 심볼릭 링크를 삭제하면 해당 링크가 제거된다. 하드 링크는 디렉터리 항목을 제거하는 방식이며 파일의 남은 링크와 열린 참조를 함께 고려한다. /는 루트 디렉터리, /root는 관례적인 root 사용자의 홈 경로다. 장치 파일은 장치 접근 인터페이스이며 일반 데이터 파일과 구분한다. symlink
fsync 성공은 해당 파일 데이터와 메타데이터의 저장장치 반영을 요청하고 완료 보고를 받는 경계다. 부모 디렉터리의 항목까지 필요하면 그 디렉터리 동기화도 별도로 고려한다. 내구성은 저장 반영과 완료 조건으로 확인한다. 저널링은 일관성 복구를 지원하고, 별도 백업은 복원할 사본을 확보한다. fsync
RAID0은 스트라이핑이며 디스크 고장에 대한 중복성이 없다. 기본 2디스크 RAID1은 미러링, RAID5는 분산 단일 패리티로 1개, RAID6는 이중 패리티로 2개 디스크 고장을 견디는 모형이다. RAID10은 미러 쌍과 스트라이핑을 결합해 어느 디스크들이 고장 났는지가 중요하다. RAID의 장애 허용 수는 해당 디스크 고장 모형의 조건이다. 재구축 중 실패·데이터 손상을 함께 관리하고 복원을 위한 별도 백업도 확보한다. Dell RAID 설명, Linux md의 dirty/degraded 경계
C. Windows 신원·구성
LSA는 인증·보안 정책 기능의 중심, 인증 패키지는 인증 방식 구현, SAM은 로컬 계정·그룹 저장소로 구별한다. 도메인 계정은 AD와 연결하고, 로컬 계정은 SAM과 연결한다. SID는 보안 주체를 식별한다. 액세스 토큰의 SID·그룹·권한과 객체 보안 정보에 따라 접근을 검사한다. RID는 SID의 말미 상대 식별자이며 전체 SID의 문맥에서 읽는다. 액세스 토큰은 02장, SMB 공유·숨김 표시의 권한은 아래 설명과 연결한다. Microsoft 인증 구성요소
레지스트리의 논리적 키와 이를 뒷받침하는 하이브 파일은 구분한다. HKEY_USERS 아래 사용자 프로필 하이브가 있고 현재 사용자 뷰 HKEY_CURRENT_USER와 Ntuser.dat의 관계를 남긴다. HKU는 여러 사용자 프로필 하이브를 포함할 수 있다. 하이브 경로·정책 키·기본 그룹 권한·관리 공유의 자동 생성 조건은 Windows 판본에 따라 확인한다. UAC는 권한 상승 통제에, 공유 이름의 $는 숨김 표시에 사용한다. Microsoft Registry Hives
net user는 사용자 계정, net use는 네트워크 자원 연결을 다루는 명령 계열로만 구분한다. 라우팅·연결·공유 권한은 각 동작과 적용 설정으로 확인한다.
SMB는 파일·프린터 공유 프로토콜이다. 전통적 NetBIOS over TCP/IP는 이름137·데이터그램 UDP138·세션 TCP139를 사용하고 직접 호스팅 SMB는 TCP445를 사용한다. 직접 호스팅 SMB는 NetBIOS와 별도로 동작한다. NetBIOS 인터페이스와 NetBEUI/NBF 운반 방식을 구분한다. 원격 공유 파일 접근은 공유 권한과 NTFS 권한을 모두 만족해야 하며 로컬 접근은 공유 권한을 거치지 않는다. 이름 끝의 $는 숨김 표시이며 접근 보호에는 인증·권한·암호화를 적용한다.
D. Unix 계정·PAM
passwd 계정 항목의 이름·UID·주 GID·홈·로그인 쉘과 shadow의 비밀번호 검증값·만료 정보를 구분한다. 같은 UID를 사용하는 이름들은 UID 기반 권한을 공유할 수 있다. 일반 계정과 시스템 계정의 숫자 경계는 배포판 정책이다.
shadow의 !·* 등으로 비밀번호 인증이 불가능해도 다른 인증 경로가 남을 수 있다. 빈 비밀번호 필드 허용 여부도 응용/PAM 설정에 의존한다. 비밀번호 최대 사용 기간, 만료 후 비활성 기간, 계정 만료는 별도 필드다. 설정 기본값을 바꾸는 일과 이미 존재하는 계정 값을 바꾸는 일도 분리한다. shadow, usermod, Linux 계정 만료
PAM은 서비스를 인증 모듈과 연결한다. auth는 인증, account는 계정 사용 조건, password는 인증 토큰 변경, session은 세션 전후 처리라는 축이다. 단순 control 구문에서 required 실패는 기억하고 나머지 스택을 진행한 뒤 실패, requisite 실패는 즉시 해당 처리에서 반환, sufficient 성공은 앞선 required 실패가 없을 때 조기 성공이다. sufficient 실패 자체는 보통 실패 결론을 만들지 않는다. optional은 일반적으로 결과 결정력이 낮으며 그 서비스·유형의 유일한 모듈이면 중요하다. include/substack과 확장 control 문법은 해당 스택의 흐름에 맞춰 추가로 해석한다. Linux-PAM pam.conf
libpwquality의 difok는 이전 비밀번호와 달라야 하는 문자 수의 기준이다. minlen은 양수 credit 설정에 따라 실제 문자 길이와 다를 수 있고, 음수 credit는 해당 문자 종류의 최소 개수를 뜻한다. 정책값·기본 해시 알고리즘은 모듈과 판본에 따라 확인한다. su는 사용자 전환에 사용하는 명령이다. libpwquality 공식 문서
E. 파일·프로세스 권한
파일 r/w/x는 내용 읽기·쓰기·실행, 디렉터리 r/w/x는 이름 목록·항목 변경·경로 탐색이라는 기본 차이를 둔다. 파일 삭제는 부모 디렉터리 권한과 sticky·ACL 등 해당 접근 조건으로 결정한다. 실행 파일 SUID/SGID는 실행 시 유효 신원에 영향을 주고, 디렉터리 SGID는 새 항목의 그룹 상속을 다룬다. sticky 디렉터리의 삭제·이름 변경은 파일 소유자·디렉터리 소유자·특권 프로세스 등으로 제한된다. inode
umask는 새 파일·디렉터리 생성 시 요청 권한에서 가릴 비트를 정한다. 기본 ACL이 없는 일반 모형에서 새 권한은 요청 모드 AND NOT umask다. 비트별 마스킹으로 계산한다. 부모의 기본 ACL이 있으면 그 상속 규칙과 요청 모드가 관여한다. umask
usermod -G는 보조 그룹 목록을 설정하고 -aG는 기존 목록에 추가한다. chown은 소유권 변경이며 실행자의 권한 조건을 확인해야 한다. chattr의 immutable은 파일시스템 속성으로, 지원 여부를 확인해 rwx 권한과 함께 관리한다. SUID·world-writable·계정 파일 권한은 정상 기능에 필요한 범위를 확인한 뒤 최소권한에 맞춰 조정한다. usermod, chattr
F. 부팅·서비스·예약 실행
펌웨어→부트로더→커널→초기 사용자 공간의 역할 흐름만 공통 골격으로 두고 BIOS/UEFI, SysV init/systemd의 구현 차이는 유지한다. 정상 종료는 서비스 정리·저장 반영 등을 거쳐 전원을 끄는 절차다. systemd start/stop는 현재 실행을, enable/disable는 설치 설정에 따른 활성화 연결을 다룬다. mask는 활성화 경로를 차단하고 현재 실행의 종료는 stop으로 처리한다. —now를 함께 쓰면 시작·정지도 요청한다.
cron은 반복 시각 조건, at는 지정 시각의 일회 실행이라는 기본 차이다. Cronie의 일반 사용자 crontab은 시간 5필드 뒤 명령, /etc/crontab·/etc/cron.d는 사용자 필드가 추가된다. 요일 0/7은 일요일이다. crontab -r는 삭제 옵션이다. cron.allow가 있으면 허용 목록, 없고 cron.deny가 있으면 제외 목록, 둘 다 없으면 해당 Cronie 설명에서는 관리자만 crontab을 사용할 수 있다. cron.allow/deny는 crontab 사용 권한을 관리하며 기존 예약의 중단은 작업 자체를 변경해 처리한다. 파일 부재 정책은 cron 구현에 따른다. rc.local은 부팅 시 실행 문맥에서 사용한다. Cronie crontab(1), crontab(5)
standalone은 서비스가 자체 대기하고 superserver는 요청 수신과 서비스 실행을 중개한다. 성능은 요청 빈도와 프로세스 실행 비용 등 실제 조건으로 비교한다. xinetd wait=yes는 실행한 서버 종료까지 해당 서비스 요청 처리를 기다리는 방식이다. instances는 동시 서버 수, access_times는 서비스 허용 시간 구간이다. disable=no는 설정상 활성화를 허용한다는 뜻이며 실행 상태·도달성은 별도로 확인한다. libwrap 검사는 지원해 빌드·연동한 서비스에 적용되며 일반 패킷 방화벽과 다르다. hosts.equiv/.rhosts 기반 신뢰·구형 r계열은 역사적 원리로 읽고, 원격접속 보호는 SSH의 인증·암호화 흐름과 연결한다. xinetd 공식 매뉴얼
G. 안전한 구성·패치
최소 기능은 업무에 불필요한 서비스·포트·프로그램 노출을 줄이고, 최소권한은 사용자·프로세스의 허용 행위를 필요한 범위로 제한한다. 패치는 영향 시험→배포·설치→재시작 등 적용 조건 충족→보완 효과와 정상 업무 확인을 구분한다. 배포·설치 상태와 실행 중인 코드의 패치 반영 상태를 각각 확인한다. EFS는 사용자 기반 파일 수준, BitLocker는 볼륨 수준 암호화라는 차이를 둔다. 키·복구 수단도 각 보호 계층에 맞춰 관리해야 하며 EFS 파일은 해당 파일의 복호화 키 접근 조건도 충족해야 한다. Microsoft BitLocker FAQ의 EFS 비교
Bash TMOUT은 대화형 쉘의 프롬프트 입력 대기 등 Bash가 정한 동작에 적용된다. 다른 연결의 유휴 종료는 해당 서비스 정책으로 구성한다. PATH에서 현재 디렉터리를 뒤로 옮겨도 검색 대상에는 남는다. 현재 디렉터리 검색을 막으려면 해당 항목을 제거하며 빈 PATH 요소도 함께 확인한다. Bash 대화형 동작, PATH 정의
H·I. 모바일·IoT·클라우드
Android 앱은 기본적으로 앱별 UID·프로세스와 커널 접근통제로 격리된다. iOS도 앱 샌드박스와 허용된 접근 경로를 사용한다. 앱 권한은 허용 동작, 코드 서명은 코드와 서명 키의 관계, 검증 부팅은 다음 부팅 코드의 신뢰 확인이라는 다른 기능이다. 코드 서명·부팅 검증에 더해 런타임 권한·패치·행위도 관리한다.
MDM은 기기, MAM은 앱·조직 데이터 관리다. 지원 앱에서는 MDM 등록 없는 MAM도 가능하다. BYOD는 개인 기기의 업무 사용, COBO는 조직 소유·업무 전용 정책이다. 원격 관리 가능 여부는 지원 기능·구성·신원·통신 등 조건에 달려 있다.
IoT는 장치 식별·안전한 구성·데이터·인터페이스 접근·업데이트·상태 파악을 함께 본다. 저장장치 있는 복합기는 문서 잔존과 반납·폐기 처리가 중요하다. IIoT/OT의 차단·재부팅은 물리 공정의 안전·신뢰성과 운영 영향을 고려해 결정한다.
하이퍼바이저는 물리 자원을 VM에 배분한다. 기본 모형에서 Type1은 하드웨어 위, Type2는 호스트 OS 위에 놓이며 격리 수준은 하이퍼바이저·설정·취약점 등 실제 구현에 따라 확인한다. 클라우드의 다섯 특성은 주문형 셀프서비스·광범위한 네트워크 접근·자원 풀·신속한 탄력성·사용량 측정이다. IaaS/PaaS/SaaS는 제공 계층, public/private/community/hybrid는 배치 축이다. 가상화는 자원 추상화 기술이고 클라우드는 위 다섯 특성을 갖춘 서비스 제공 모형이다.
책임공유는 서비스·계약에 따라 사업자와 고객의 보호 범위가 나뉘는 구조다. IaaS 고객은 게스트 OS·응용·권한·설정 등을 관리하고, 추상화가 높은 서비스에서도 데이터와 접근 권한 등의 책임이 남는다. CYOD는 허용 목록에서 선택, COPE는 조직 소유 기기의 개인 사용 허용이라는 소유·사용 정책의 분류다. Samsung의 소유·사용 정책 비교 앱 배포 경로와 보안 조건은 OS·지역·버전에 따라 확인한다.
VDI는 데스크톱 실행 환경을 원격 제공하는 방식이다. 클립보드·드라이브 등의 리다이렉션 경로를 별도로 통제한다. 화면을 이용하는 사용자·단말과 리다이렉션 경로를 보호 범위에 포함한다. Microsoft AVD 리다이렉션
J. 하드웨어 신뢰·측면채널
TPM은 키 생성·보호·사용 제한과 플랫폼 측정값 보관에 이용한다. 측정 부팅은 시작 상태의 측정 기록, 검증 부팅은 신뢰 정책에 맞는 코드인지 확인해 다음 단계를 허용하는 기능으로 구별한다. 봉인은 정한 플랫폼 상태·정책 조건에 키/데이터 사용을 묶는 관점이며 OS 코드의 안전성은 별도의 패치·실행 보호와 함께 관리한다. Microsoft TPM, Android Verified Boot
Spectre 계열은 추측 실행과 미세구조 상태를 통한 정보 노출을 다룬다. Meltdown에 대한 PTI는 사용자/커널 페이지 테이블 분리로 완화하는 접근이다. 영향 CPU·변종별로 마이크로코드·커널·응용의 완화 적용 여부를 확인한다. Linux Spectre, Linux PTI
핵심 연결
- OS는 실행·자원을 관리하고 프로세스·스레드·권한 문맥으로 작업을 수행한다.
- 파일시스템은 데이터와 메타데이터를 조직하며 링크·권한·동기화 규칙을 적용한다.
- Windows는 SID·토큰·객체 보안 정보, Unix 계열은 UID/GID·권한·PAM으로 접근을 관리한다.
- 서비스의 현재 실행과 부팅 시 활성화 설정을 각각 관리한다.
- 패치는 배포·설치·실행 반영·업무 확인까지 이어서 검증한다.
- 모바일·클라우드는 서비스 계층과 소유·사용 정책에 맞춰 책임과 접근 경로를 정한다.
출처와 범위
2026-09-09까지 대조한 채택 핵심을 유지한다. 2026-09-10에는 출처 연결과 문서 구성을 정리했으며 기술·법령의 최신성 재검증은 수행하지 않았다. 제품·규격은 명시된 버전과 조건을 기준으로 읽는다.
추가 직접 출처(필요할 때 확인):