분류 전체보기(87)
-
운영체제 아주 쉬운 세가지 이야기 20주차(Authentication(인증) )
“인증(Authentication)”은 보안의 출발점입니다.OS든 백엔드 서버든, 결국 중요한 질문은 같습니다.“요청한 놈이 누구냐?”이걸 알아야 “해줘도 되는 요청인지(인가/권한)”를 결정할 수 있습니다.1) 인증이 왜 OS에서 핵심인가?운영체제(OS)는 파일 열기, 네트워크 쓰기, 프로세스 생성 같은 위험한 기능을 제공합니다.이걸 아무나 하게 두면 시스템이 바로 무너져요.그래서 OS는 “해줄까 말까” 판단해야 하는데, 그 판단에서 제일 중요한 힌트는 요청자의 정체입니다.관리자(root)가 요청한 것인지일반 사용자 계정이 요청한 것인지웹서버 같은 서비스 계정이 요청한 것인지정체불명의 프로그램이 요청한 것인지이 “정체 확인 과정”이 바로 Authentication입니다.2) 보안 모델에서 반드시 알아야 ..
2026.01.20 -
운영체제 아주 쉬운 세가지 이야기 20주차(운영체제 보안 intro)
안녕하세요. 오늘은 운영체제 보안의 “뼈대”를 잡아봅니다.이 글은 OS가 왜 보안의 최종 방어선인지, 그리고 우리가 시스템을 설계할 때 어떤 원칙으로 안전하게 만들 수 있는지 쉽게 풀어 설명합니다.0) OS 보안이 중요한 이유: “바닥이 뚫리면 위는 전부 무너진다”앱 보안은 열심히 했는데 운영체제가 뚫리면 어떻게 될까요?그 순간부터 공격자는 “앱 권한”이 아니라, OS가 가진 전체 권한(루트급)으로 움직이게 됩니다.파일을 다 읽고 지울 수 있고프로세스 메모리를 훔쳐볼 수도 있고네트워크를 조작하거나 도청할 수도 있고심지어 서비스를 강제로 죽이거나 굶길 수도 있습니다그래서 OS 보안은 “보안의 한 파트”가 아니라, 사실상 보안의 기반(Foundation)이에요.1) 보안 목표 3대장: CIA (진짜 기본)보..
2026.01.20 -
운영체제 아주 쉬운 세가지 이야기 18주차(Sun 사의 네트워크 파일 시스템(NFS)
Sun NFS(v2): “서버가 죽어도 다시 돌아오는” 분산 파일 시스템의 고전분산 파일 시스템은 “여러 클라이언트가 한(또는 몇) 대의 서버 디스크를 네트워크로 공유”하는 구조입니다. 로컬 디스크를 쓰면 되는데 왜 굳이 이렇게 하냐고요? 핵심은 공유와 중앙 관리입니다. 어느 PC에서 파일을 수정해도 다른 PC에서 같은 파일을 같은 모습으로 볼 수 있고, 백업/관리도 서버 쪽에서 집중적으로 하면 됩니다.1) 기본 구조: 클라이언트 파일시스템 + 파일 서버중요한 포인트는 “앱 입장에서는 로컬 파일 시스템이랑 똑같아 보이게” 만드는 겁니다. 즉, 앱은 평소처럼 open/read/write/close를 호출하는데, 클라이언트 측 파일 시스템이 뒤에서 네트워크 메시지로 바꿔 서버와 통신합니다.[App] | ..
2026.01.06 -
운영체제 아주 쉬운 세가지 이야기 18주차(분산 시스템)
분산시스템의 출발점은 간단합니다. 컴포넌트는 언제든 고장나고, 특히 “통신”은 근본적으로 신뢰할 수 없다는 전제에서 설계를 시작해야 합니다. 이 문서도 그 전제를 깔고, (1) 네트워크/메시지 전달의 불안정성, (2) 그 위에 신뢰성(reliability)을 올리는 방법, (3) RPC 같은 “프로그래밍 모델(추상화)”이 왜 필요한지를 설명합니다.1) 통신은 왜 “근본적으로” 신뢰할 수 없나?네트워크에서 패킷은 자주 유실(lost), 손상(corrupted), 혹은 목적지에 도달하지 못하는 일이 생깁니다. 이유는 단순한 비트 플립(전기적 문제)부터 케이블 단선 같은 하드웨어 고장까지 다양하지만, 더 “본질적인” 이유는 버퍼링 한계로 인한 드랍(drop)입니다. 라우터/스위치/호스트는 들어오는 패킷을 메모..
2026.01.06 -
운영체제 아주 쉬운 세가지 이야기 17주차(프레시 기반의 SSD)
Flash-based SSDs 한 방에 정리SSD는 “움직이는 부품이 없는” 영구 저장장치이고, 핵심 기술은 NAND Flash다. 단, DRAM처럼 마음대로 덮어쓰기(rewrite)가 되지 않아 내부가 훨씬 복잡해진다.1) 용어부터 정확히: Flash의 Block/Page는 디스크의 Block과 다르다Flash Block(=erase block): 보통 128KB~256KB 같은 큰 단위. Erase는 블록 단위.Flash Page: 보통 4KB 정도. Read/Program은 페이지 단위.현장에서 “블록”이란 단어가 레이어마다 의미가 달라 헷갈리기 쉽다. 디스크/RAID/파일시스템/플래시에서 블록이 다르니, 대화할 때 “erase block”, “flash page”처럼 명시해라.2) Flash의 3..
2025.12.29 -
운영체제 아주 쉬운 세가지 이야기 17주차(RAID)
RAID 정리RAID(Redundant Arrays of Inexpensive Disks)는 “여러 개의 디스크를 묶어서 하나의 큰 저장장치처럼” 보이게 만들면서, 성능(병렬 I/O)과 내구성(디스크 고장 대응)을 동시에 얻기 위한 설계입니다. 핵심은 OS/파일시스템 위에 RAID 레이어가 있고, 이 레이어가 논리 블록 주소(Logical Block Address)를 물리 디스크 + 물리 오프셋으로 매핑한다는 점입니다.1) RAID를 이해하는 3가지 질문Capacity(용량): N개의 디스크(각 B 용량)를 묶을 때 “실제로 쓸 수 있는” 용량은?Reliability(신뢰성): 디스크가 고장 났을 때 데이터를 복구할 수 있나? 몇 개까지 버티나?Performance(성능): 순차/랜덤 읽기/쓰기가 어떻게..
2025.12.29