I/O 하드웨어: I/O 하드웨어는 컴퓨터 시스템의 입력 및 출력 장치. 예로는 키보드, 마우스, 모니터, 프린터, 디스크 드라이브, 네트워크 어댑터 등이 있다. 각 장치는 고유의 특성과 인터페이스를 가지고 있으며, CPU와 메모리와 통신할 수 있도록 설계되어 있다.
I/O 소프트웨어: I/O 소프트웨어는 운영 체제가 하드웨어 장치와 상호작용하는 방식을 정의한다. I/O 소프트웨어의 주요 역할은 다음과 같다
I/O 인터페이스: I/O 인터페이스는 운영 체제와 하드웨어 장치 간의 통신 경로. 인터페이스는 표준화되어 있어 다양한 장치를 동일한 방식으로 제어할 수 있다. 일반적인 인터페이스로는 PCI, USB, SCSI 등이 있다.
장치 드라이버: 장치 드라이버는 특정 하드웨어 장치를 제어하는 소프트웨어 모듈. 운영 체제가 하드웨어 장치와 통신할 수 있도록 하며, 하드웨어의 구체적인 세부 사항을 추상화하여 응용 프로그램이 쉽게 사용할 수 있게 한다. 드라이버는 하드웨어와 직접 통신하며, 인터럽트 처리, 데이터 전송, 장치 초기화 등을 수행한다.
직접 메모리 접근 (DMA): DMA는 CPU의 개입 없이 메모리와 I/O 장치 간에 데이터를 직접 전송하는 기능. DMA 컨트롤러는 데이터 전송을 관리하며, 이를 통해 CPU가 데이터 전송 작업에서 해방되어 다른 작업을 수행할 수 있다. DMA의 장점은 데이터 전송 속도의 향상과 CPU 자원의 효율적 사용이다.
I/O 스케줄링: I/O 스케줄링은 여러 I/O 요청이 동시에 발생할 때, 요청을 처리할 순서를 결정하는 알고리즘. I/O 스케줄링의 주요 목표는 디스크 접근 시간을 최소화하고, 시스템의 응답성을 향상시키는 것이다. 대표적인 I/O 스케줄링 알고리즘은 다음과 같다
운영 체제의 보안 개념: 운영 체제 보안은 시스템의 무결성, 기밀성, 가용성을 보호하는 것을 목표. 운영 체제는 자원과 데이터를 보호하고, 불법적인 접근 및 악의적인 공격으로부터 시스템을 방어해야 한다.
사용자 인증: 사용자 인증은 시스템에 접근하려는 사용자의 신원을 확인하는 과정. 일반적인 인증 방법으로는 비밀번호, 생체 인식(지문, 얼굴 인식 등), 토큰 등이 있다.
권한 관리: 권한 관리는 인증된 사용자가 시스템 자원에 접근할 수 있는 권한을 제어하는 과정. 사용자와 그룹에게 특정 자원에 대한 접근 권한을 부여하거나 제한.
접근 제어 목록 (ACL, Access Control List): 각 자원에 대해 접근 권한을 갖는 사용자 목록을 정의. ACL은 자원 단위로 접근 권한을 관리하며, 자원에 대한 접근 요청 시 ACL을 참조하여 접근 허용 여부를 결정.
캡빌리티 (Capability): 자원에 대한 접근 권한을 사용자에게 부여하는 방식. 사용자는 자원에 대한 접근 권한을 나타내는 캡빌리티 토큰을 가지고 있으며, 자원 접근 시 이를 제시하여 접근을 허용받는다.
암호화: 암호화는 데이터를 인코딩하여 권한이 없는 사용자가 내용을 이해하지 못하도록 보호하는 기술. 대칭 키 암호화(예: AES)와 비대칭 키 암호화(예: RSA)가 있다.
대칭 키 암호화는 하나의 비밀 키를 사용하여 데이터를 암호화하고 복호화하는 방법. 암호화와 복호화에 동일한 키를 사용하므로, 이 키를 안전하게 공유하고 관리하는 것이 중요.
비대칭 키 암호화는 두 개의 키(공개 키와 개인 키)를 사용하여 데이터를 암호화하고 복호화하는 방법. 공개 키는 누구나 알 수 있지만, 개인 키는 비밀로 유지. 데이터를 암호화할 때는 수신자의 공개 키를 사용하고, 복호화할 때는 수신자의 개인 키를 사용.
네트워크 보안: 네트워크 보안은 네트워크를 통해 전송되는 데이터의 기밀성, 무결성, 가용성을 보호하는 것을 목표로 한다. 주요 기술로는 방화벽, 침입 탐지 시스템(IDS), 가상 사설망(VPN), 보안 소켓 계층(SSL/TLS) 등이 있다.
방화벽은 네트워크 보안 장치로, 허가된 트래픽은 통과시키고, 허가되지 않은 트래픽은 차단. 방화벽은 네트워크의 경계에서 트래픽을 필터링하여 외부의 공격으로부터 내부 네트워크를 보호.
침입 탐지 시스템 (IDS)는 네트워크나 시스템을 모니터링하여 비정상적인 활동이나 공격을 탐지하는 보안 시스템. IDS는 트래픽 패턴, 로그 파일 등을 분석하여 침입 시도를 감지하고, 관리자에게 경고를 보낸다.
가상 사설망 (VPN)은 공용 네트워크(인터넷)를 통해 사설 네트워크를 안전하게 연결하는 기술. VPN은 터널링, 암호화, 인증 등을 사용하여 데이터의 기밀성과 무결성을 보호.
보안 소켓 계층 (SSL, Secure Sockets Layer)과 전송 계층 보안 (TLS, Transport Layer Security)은 인터넷에서 데이터를 안전하게 전송하기 위한 암호화 프로토콜. TLS는 SSL의 후속 버전으로, 더 강화된 보안을 제공.
기능:
사용 사례:
보안 위협: 보안 위협은 시스템의 보안을 해칠 수 있는 다양한 요소. 대표적인 보안 위협에는 악성 코드, 바이러스, 트로이 목마, 웜, 스파이웨어, 랜섬웨어 등이 있다.
취약점: 취약점은 시스템의 보안상 허점이나 결함을 말한다. 이러한 취약점은 악의적인 공격자가 시스템을 침해하거나 데이터를 탈취할 수 있는 기회를 제공한다. 소프트웨어의 버그, 잘못된 설정, 약한 암호 등이 취약점에 해당한다.