시스템 폴더

Microsoft WindowsmacOS와 같은 운영체제에서 기능 확장, 제어판, 폰트 등의 기본적 파일 및 하위 시스템 지원 파일 등을 포함하는 커널을 담고 있는 정말로 매우 중요한 폴더.
우리 몸의 빗대면 바로 우리의 육체. 그리고 그것을 움직이게 하는 의식도 같이 가지고 있는 폴더이다.

따라서 폴더 전체 혹은 폴더 일부를 임의로 손대면 컴퓨터 전체가 부팅이 안되거나 OS를 재설치를 해야할수 있다.

각 운영체제 및 그 운영체제가 몇 bit 환경 기반으로 동작하느냐에 따라 그 위치가 달라진다.
다음은 Windows 기준 시스템 폴더의 위치.

Windows 시스템 폴더
DOS 운영체제 기반\윈도우 설치 폴더
9x 커널(16bit, 32bit) 기반\윈도우 설치 폴더\system[1]
NT 커널(32bit) 기반\윈도우 설치 폴더\system32[2]
NT 커널(64bit), IA64 기반\윈도우 설치 폴더\system32, syswow64[3][4][5], system99

Windows NT 6.0 이후부터 윈도우 설치 폴더 아래에 WinSxS(Side-by-Side) 디렉터리가 존재한다. 윈도우 업데이트 등으로 대체된 구 버전 파일이 필요한 경우에 대비해서 쌓아두는 공간이다.

과거부터 지금까지 컴퓨터를 잘 모르는 수많은 사람들이 컴퓨터에 생긴 문제를 해결하기 위해 질문글을 올렸는데 장난기 많은 사람들천하의 개쌍놈들이 낚시를 하기 위해서 컴퓨터 에러 질문글에 "Windows 폴더 밑의 system32를 삭제해라."는 답변을 달아주고 있으며[6], 진짜로 지웠다가 망한 사람들은 인간에 대한 불신감을 뼈저리게 느끼게 된다. 특히 나이 어린 아이들이나 나이 많은 어른들이 곧잘 속아 넘어가서 아이들은 어른들을 쉽게 믿으면 안된다는 세상의 진실을 알게 되며 어르신들은 요즘 젊은이들을 불신하게 된다.

다시 한 번 말하지만, 이 폴더를 함부로 건드리거나 안의 파일들을 삭제할 경우 컴퓨터 작동에 중대한 이상을 초래할 수 있다. 최소 윈도우 손상, 대부분의 경우 부팅 불가. 매우 중요한 폴더인 만큼, Windows 7에서는 소유자가 무조건 TrustedInstaller로 설정되어 편집 자체를 막고있고,[7] Windows 8부터는 UAC를 끄더라도 이 폴더에 뭔 짓을 하려 한다면 UAC 창이 뜨는 아햏햏한 상황이 발생한다(...). 사실 윈도우 8부터는 UAC를 완전히 끌 수 없기는 하지만.

리눅스유닉스 계열에서는 /boot, /dev, /etc, /root, /usr(이건 사용자 폴더잖아!) 등이 전부 시스템 폴더이다. 다행히 이 폴더들은 시스템 특성상 루트 사용자(root)가 아니면 아예 수정 조차 못하게 막고 있다. macOS는 여기에 /Library, /System도 시스템 폴더로 잡혀서 계정 비밀번호를 요구한다. *NIX 시스템에서 권한에 관계 없이 마구 수정해도 되는 것은 시스템 또는 배포판에 따라 다르지만 /var, /tmp, 그리고 자신의 홈 디렉터리(~/.) 정도가 전부. 물론 sudo로 rm -rf /를 수행했다면 얄짤없다. 물론 rm -rf는 하도 사고가 많이 나서 이런저런 안전장치가 붙어있다. 덤으로 macOS 경우 10.11 오면서 루트리스란걸 들고 와서 멋대로 삭제도 안되게 바뀌었다.

사용자 관리 개념이 없는 DOS에서는 그런 거 없기 때문에 매우 위험, 아이러니하게도 이러한 점 때문에 커널을 무조건 뚫고 하드웨어에 접근해야 하는 유틸리티는 대부분 DOS 전용으로만 나오고 있다.[8] 이 경우말고 하드웨어에 접근할 수 있는 유일한 방법은 BIOS를 통하는 것 뿐.
  1. system32도 있지만 일부 드라이버 파일만 보관되며 기타 시스템 운영에 필요한 파일에는 거의 이용되지 않는다.
  2. system도 아직 남아 있어서 기존 16비트 프로그램의 호환에 필요한 시스템 파일 및 드라이버 파일이 들어 있다. 현재는 16비트 프로그램이 거의 멸종했기 때문에 비중이 공기에 가깝기는 하지만 어쨌든 꿋꿋이 자리를 지키고 있다.
  3. system32는 64비트용 시스템 파일 보관, syswow64는 에뮬레이트된 32비트용 시스템 파일을 보관한다. 뭔가 반대로 된 것 같은데 이유는 system32라는 폴더 이름이 너무 오랫동안 쓰여서 괜히 바꿨다가 호환성 문제가 생길 수 있기 때문에 그대로 쓰이는 것이다. 아예 프로그램 소스에 system32 폴더 이름을 박아놓은 경우가 꽤 많기 때문. 원칙은 시스템 폴더 경로를 가져오는 명령을 써서 가져오는 것이 맞고 그렇게 했다면 시스템 폴더 이름이 뭐든 경로가 어디에 있든 문제가 생기지 않지만 세상이 그렇게 잘 돌아가지는 않아서...
  4. syswow64는 Windows on Windows 64-Bit에서 나왔는데, '64비트 윈도우 위의 (32비트) 윈도우'를 의미한다(Windows 64-Bit를 먼저 묶어야 제대로 의미를 해석할 수 있다. Windows on Windows를 먼저 묶으면 절대 이해가 안 간다.) 참고로 64비트 윈도우에서는 32비트 프로그램이 바로 system32 경로의 파일에 직접 접근하려 하면 실제로는 syswow64에 있는 파일로 접근하게 되어 있다.
  5. system 폴더는 아직도 남아 있기는 하지만, 64비트 윈도우에서는 16비트 프로그램을 돌릴 수 없기 때문에(AMD x86-64 참고) 파일도 필요 없어서 비중이 공기를 넘어 진공에 가깝다.
  6. 언어 국적 불문하고 널리 퍼진 세계적인 낚시이다. 구글에 영어로 "system32"라고 검색하면 "Delete System32"라는 (...)이 가장 먼저 뜬다.
  7. 물론 takeown과 icacls 명령어를 이용하여 소유자와 권한을 가져오면 삭제는 된다만 등짝 스매싱 받기 싫다면 하지말자.
  8. 과거에는 Windows 9X 용도 있었으나 NT 계열로 넘어가면서 모두 막혔기 때문에 이제는 DOS에서만 된다고 보면 된다.