728x90
반응형
SMALL

파일 제거하기 (이전 로그에서 이어서 파일 시스템)

  • 파일의 블록이 미사용 목록으로 돌아가고 파일의 폴더 엔트리는 삭제돼서 파일이 사라진 것 같지만 실제는 꽤 다름
  • 파일이 제거되기로 하면 ‘휴지통’으로 복사되고 기존 엔트리는 지워지는데, ‘휴지통’ 또한 또 다른 폴더
  • 파일의 블록과 그 내용은 전혀 바뀌지 않는 것
  • ‘휴지통 비우기’가 원래 의도한 제거 작업에 더 가깝다.
  • 실제로 휴지통을 비우면 폴더 엔트리는 삭제되고 해당 블록이 미사용 목록에 들어가지만, 블록에 새로운 파일이 할당되기 전까지는 모든 바이트들이 그대로 존재함

파일 복구가 이러한 방식으로 복구를 수행하는 것

보안에 민감한 정보라면 더 꼼꼼하게 처리해야 한다는 것

군 조직에서는 블록을 무작위 패턴으로 된 0과 1 값을 여러 번 덮어 씌움으로써 파일을 제거

더 좋은 방법은 하드 디스크를 강한 자석 근처에 놓아 자성을 없애 버리는 것

최선의 방법은 물리적으로 파괴하는 것🔨

블록 뿐만 아니라 폴더 엔트리에도 비슷하게 적용

파일 시스템이 폴더에 ‘더 이상 사용하지 않는 엔트리’라고 특정한 비트를 설정하면 엔트리 자체가 재사용되기 전까지 재할당되지 않은 모든 블록의 내용을 포함해 원래 정보를 복원하는 것이 가능


다른 파일 시스템

  • CD-ROM, DVD, USB 드라이브, SD 카드도 마찬가지
  • 같은 네트워크 상의 다른 컴퓨터도
  • 소프트웨어가 차이점은 숨기고 균일한 인터페이스를 제공함으로써 파일 구조로 볼 수 있게 함

네트워크 파일 시스템은 백업 용도로도 자주 쓰임

파일의 이전 버전 여러 개를 서로 다른 위치에 보관용 저장 매체로 복사해 둠 ⇒ 랜섬웨어 공격이나 화재 같은 재난에서 데이터를 지킬 수 있음

어떤 디스크 시스템은 RAID 기법을 활용하는데 디스크 중 하나가 고장 나더라도 정보를 복원할 수 있게 하는 오류 수정 알고리즘을 이용하여 여러 개의 디스크에 데이터를 기록

이러한 시스템은 정보의 모든 흔적을 확실히 지우기 어렵게 만드는 요인이 되기도 함

728x90
반응형
LIST
728x90
반응형
SMALL

파일 시스템

  • 다양한 종류의 장치에 정보를 조직화하고 저장하지만, 온영체제들은 모두 동일한 인터페이스를 통해 파일들을 보여준다.
    • 디렉토리 방식 또는 폴더 방식
  • 논리적 구성과 물리적 구현 간의 분리를 보여주는 훌륭한 사례
  • 사용자가 접근하는 파일들뿐만이 아니라, 다양한 어플리케이션들이 보이지 않게 접근하는 파일들이 수만 개에 이른다.
  • 애플리케이션이나 운영체제가 정보를 읽고 쓸 수 있도록 가능하게 해줌
  • 파일에 대한 접근이 효율적이며 간섭되지 않도록 조정하고, 데이터의 물리적인 위치를 파악해줌

보조 기억 장치 파일 시스템

  • 블록 단위로 파일들을 저장한다.
    • 블록의 단위가 500바이트 이고 1200바이트를 저장한다면 3 블록이 필요하며 300바이트가 낭비 된다.
    • 이런 단점을 저렴한 가격이 커버해준다.
  • 폴더 엔트리에는 파일이름, 크기, 생성 및 수정 시간 외 다양한 정보를 담고 있다.
    • 드라이브의 어디에 저장되어있는지, 어떤 블록이 해당 파일의 정보를 담고 있는지도 알려준다.
    • 폴더 엔트리가 블록 번호 목록을 담고 있거나, 블록 번호의 목록을 담고 있는 블록을 참고하거나, 블록들이 다음 블록의 번호를 담고 있어 연쇄적으로 구할 수 도 있다.
  • SSD는 하드디스크와 달리 정보의 위치가 어디 있는지 기억하기 위한 정교한 코드를 사용한다.
  • 폴더 : 파일을 저장하는 공간이며 블록이자 또 다른 파일이라고 할 수 있다.
  • 경로(디렉토리) 방식 : 경로를 따라서 폴더를 찾아 들어갈 때 마다 검색 범위가 좁아지기 때문에 매우 효율적인 방식이다.
  • 빠른 작업속도를 위해 자주 사용되는 폴더를 캐싱하기도 함
728x90
반응형
LIST
728x90
반응형
SMALL

부팅(booting)

컴퓨터가 작동을 시작하는 과정

  • 메모리와 다른 구성 요소를 점검해서 올바르게 작동하는지 확인
  • 컴퓨터에 어떤 외부 장치가 연결되어 있는지 알아냄
  • 연결된 장치를 운영체제가 사용할 수 있도록 관련된 소프트웨어 구성 요소(드라이버) 로드

시스템 콜(syscall)

애플리케이션이 운영체제 특정 부분에 통제권을 넘겨주는 명령어를 실행하여 서비스를 요청하는 것.

고급 언어로 작성된 프로그램들은 직접 시스템 호출을 사용할 수 없기 때문에 고급 API를 통해 시스템 호출에 접근하게 하는 방법.

시스템 호출의 유형

  1. 프로세스 제어(process control)
  2. 파일 조작(file manipulation)
  3. 장치 관리(device management)
  4. 정보 유지(information maintenance)
  5. 통신(communication)

디바이스 드라이버

운영체제와 프린터 등과 같은 하드웨어 장치 간에 가교 역할을 하는 코드

특정 장치가 어떤 일을 하도록 하는지 알고 있다.

 

예시) 프린터

운영체제는 일반적인 요청을 하고 싶어한다.

예를 들어, 어떤 텍스트를 어떤 위치에 출력하고 이런 것.

하지만 프린터마다 지원하는 기능에 차이가 있다.

컬러, 흑백, 양면, 단면, 종이 크기, 정보를 종이에 옮기는 매커니즘 등.

드라이버는 운영체제의 일반적인 요청을 해당 프린터에 적합한 형태로 변환한다.

 

→ 범용 운영체제에는 많은 디바이스 드라이버가 있다.

부팅 시 현재 필요한 드라이버를 불러오는 작업도 이루어 진다.

디바이스 드라이버, 운영체제, 시스템 콜 인터페이스

 

그림에서 시스템 호출을 *커널을 모두 커버하고 있는데, 시스템 호출을 거치지 않고서는 커널에 접근이 불가능하다는 것을 뜻한다.

드라이버의 경우 커널에서 제공하는 드라이버도 있고 하드웨어에서 제공하는 드라이버도 있어 필수 요소가 아니다.

*커널 - 프로세스 관리, 메모리 관리, 저장장치 관리와 같은 운영체제의 핵심적인 기능을 모아 놓은 것.


다양한 디지털 장치와 운영체제

기술의 발달로 많은 장치의 처리 성능과 메모리 용량이 높아졌다.

디지털 카메라, 휴대폰 등의 기기들을 컴퓨터라고 불러도 이상하지 않다.

 

이러한 기술 발달 덕분에 장치들을 범용 컴퓨터와 비슷한 모습을 띠고 있다.

프로세서 + 메모리 + 주변 장치 등으로 되어 있고,

사용자 인터페이스와 네트워크 연결도 제공한다.

 

이런 추세는 범용 운영체제 사용을 가속화 시킨다.

전용 운영체제 개발보다는 리눅스에서 필요한 부분만 뽑아 쓰는 것이 더 쉽고 저렴하다.

728x90
반응형
LIST

+ Recent posts