DOS

 



아래의 DOS 모두 '도스'로 읽는다.
1. 운영 체제
1.1. 도스의 종류
1.2. 명령어
1.3. 관련 문서
2. Denial of Service
2.1. 알려져있는 DoS의 종류
3. 스페인어 (Dos)
4. 넥슨의 모바일 게임 D.O.S


1. 운영 체제


'''D'''isk '''O'''perating '''S'''ystem. 디스크 운영 체제.
시대를 풍미한 운영 체제 중 하나로 UNIX와 더불어 텍스트 기반의 대표적인 운영 체제이다.
검은 화면 위의 프롬프트라고 불리는 곳에 키보드로 명령어를 입력하는 흔히 원시적인 형태의 문자 입력 인터페이스(CLI)의 셸을 가진 운영체제를 말한다. 예전에 만들어진 OS(운영체제)다 보니 윈도우즈와는 달리 파일 이름이 영문자 기준으로 최대 8자, 확장자는 3자까지만 입력할 수 있다. 일명 8.3 파일 체제. [1] 이런 탓에 Windows 95 이후의 긴 파일/폴더명은 DOS에서 (파일/폴더명의 첫 6자)~1.확장자 식으로 인식된다. (앞 6자가 동일한 경우 ~1, ~2, ~3 순으로 나온다) 현재의 윈도에서도 ~1 식으로 줄여 써도 인식이 된다. 도스와의 호환 때문에 만들어 놓은 게 현재까지 이어지고 있는 셈.

흔히 마이크로소프트사에서 개발한 MS-DOS를 많이 썼기 때문에 일반적으로 DOS라 하면 고유명사 비슷하게 되어 MS-DOS, 혹은 그와 호환성을 지닌 텍스트 기반의 운영체제(DR-DOS, Free DOS 등)를 가리키는 경우가 많으나 원래 DOS라는 단어는 일반 명사로 디스크 운영 체제를 가리키기 때문에 애플 II의 DOS 3.3이나 Pro DOS, MSX의 MSX-DOS처럼 MS-DOS랑 그다지 상관이 없는 별개의 운영체제인 경우도 있다. MSX-DOS의 경우에는 외형이나 명령어는 MS-DOS 1.0에 준하여 만들어지기는 했으나 MS-DOS와 호환성은 전혀 없고 엉뚱하게 CP/M과 호환성을 가지고 있었다. 이미 8비트 업계에 쫙 깔려있었던 CP/M 애플리케이션의 인프라를 이용하기 위한 방책이었다.
Microsoft Windows3.1까지는 MS-DOS 상에서 실행하는 일종의 응용 프로그램이었다. 하지만 Windows 3.1이 보급될 즈음이면 Windows가 사실상의 운영체제에 준하는 존재로 취급되기 시작했다. Windows 9x(95, 98, ME)의 경우 이들을 위해 개조된 MS-DOS 7.x~8.x[2] 위에 Windows가 구동되는 형태였지만, 이 시기 MS-DOS의 존재는 어디까지나 Windows의 하부 구조일 뿐 실질적으로 MS-DOS 상에서 무언가를 하는 경우는 점차 드물어졌다. 하지만 여전히 DOS 전용소프트웨어를 보유한 사람들이 많았기 때문에 Win95/98SE/ME까지도 종료메뉴에 DOS로 나가기가 있었으며 점차 명맥상 유지되다가 실질적으로는 Windows XP가 출시와 함께 사실상 사망하게 된다.
Windows NT 계열로 넘어온 현재 NT 커널은 DOS가 포함되지 않았기에 점점 영역이 축소되었고 2001년 윈도우 XP가 본격적으로 보급되면서 역사의 뒤안길로 사라졌다. 지금 윈도우에 남아 있는 명령 프롬프트[3](cmd.exe)는 CLI 인터페이스와 도스와 비슷한 명령 체계를 빼면 근본부터가 다른 물건이다. 여기에서 도스용 프로그램을 돌릴 때에는 NTVDM이라는 호환성 계층을 통해서 실행되며, 64비트 윈도우를 사용하고 있다면 NTVDM이 작동하지 않는다. 그리고 PowerShell이 야금야금 명령 프롬프트의 자리를 갉아먹고 있다.
현재도 DOS용 응용프로그램들이 만들어지고 있다. 주로 FreeDOS 상에서 사용할 것을 염두에 두고 제작되고 있다.

1.1. 도스의 종류


  • CP/M: 디지털 리서치에서 개발한 CLI 운영체제로 사실상 DOS의 조상이다.
  • QDOS: 아래 적힌 86-DOS의 원래 이름. 다만 이니셜 뜻이 다른 DOS와 달라서 Quick and Dirty Operating System, 즉 급조된 더러운 운영체제(...)라는 뜻이다.
  • 86-DOS: QDOS가 이름을 바꾼 것.
  • MS-DOS
  • DR-DOS
  • FreeDOS
  • K-DOS
  • PC-DOS
  • MSX-DOS
  • Atari DOS
  • 4DOS - 엄밀히 말하자면 OS가 아니다. MS DOS의 시스템 파일 3가지(IO.SYS, MSDOS.SYS, COMMAND.COM) 중 COMMAND.COM을 대체하는 프로그램이다. 오직 명령어 인터프리터 기능만 담당한다. 전용의 명령어도 있었으며, 그것을 이용한 배치파일의 처리 등을 통해 처리속도를 올릴 수도 있었다. 또 같은 명령어라도 기능이 다르다. 예를 들면 DIR 명령어를 치면 확장자별로 색이 달리 나오는 등의 차이점이 존재한다. INI 파일의 편집을 통해 설정을 편집하고 저장할 수 있었다. DOS가 현역 운영체제이던 시절 파워 유저들이 애용했다. 당연히 현재는 업데이트가 안 되고 있지만 최종 버전을 개발사인 JP Software의 홈페이지에서 무료로 다운로드 받을 수 있다. 현재 소스코드오픈 소스로 풀려서 변형된 MIT 라이선스가 적용된다.# 한편 JP Software는 4DOS의 후속작인 Take Command(구칭 4DOS for Windows NT, 줄여서 4NT)라는 상용 소프트웨어를 현재 판매 중인데 이것은 명령 프롬프트(cmd.exe)의 대체품이다.
  • 앨리스 DOS(ALICE-DOS) - 앨리스 소프트에서 개발한 변종 DOS. PC-9801 시리즈에 최적화되어 있다.
  • SPS MEG-DOS, Agumix's TDOS, Ikebe-kun's DOS, GR-DOS - PC98 시리즈 전용 변종 도스다.
  • Human68k - X68000 전용 도스다. 물론 실행방식 등 내부적 구조는 도스와는 다르다.

1.2. 명령어


DOS/명령어 문서로.

1.3. 관련 문서



2. Denial of Service


컴퓨터 관련 용어 중 하나. Denial of Service는 서비스 거부라는 의미로, 어떤 시스템의 자원을 고갈시키거나 지나치게 바쁘게 만들거나 해서 의도적으로 정상적인 서비스를 제공하지 못하게 하는 것이다. 어떤 방법이든, 얼마나 많은 시스템이 공격을 시도하든, 얼마나 많은 시스템이 공격을 받든간에 어쨌든 위의 내용이 만족되면 DoS 공격의 일종이다. 즉 사용자들이 흔히 보는 "오류 보고" 창이 떠서 프로그램이 종료되는 상황이 서비스에 발생해도 서비스 거부이다.(물론 공격이 되려면 이걸 원할 때 의도적으로 일으킬 수 있어야 한다.)
흔하게 사용되는 DoS 공격 기술로 Flood 공격이 대표적이다. 이를 응용한 DDoS도 유명하다.
DoS는 해킹의 일종이 아니다. 더 정확히 말하자면 단어의 의미 자체가 다르다. 해킹과 DoS는 목적 자체가 다를 수 밖에 없는게, 위에서 말했다시피 DoS는 어떤 방법으로든 대상을 서비스 거부 상태로 몰아넣을 수만 있으면 되기 때문이다. 예를들어 DDoS나 Flood 공격은 소프트웨어를 조작하거나 분석하는 행위가 아니므로 이는 해킹에 해당 된다고 보기 어렵다.[4] 그러나 Ping of Death와 같은 치명적인 오류로 인한 크래쉬, 버그, 응답 불가 상태를 유도하는 등의 DoS 공격은 이를 찾아내기 위해 대상 시스템의 정밀한 분석이 요구될 수 있으며 이런 경우는 취약점을 이용한 DoS 공격이다.
아래에는 알려져있는 DoS 의 종류가 적혀있는데 위의 정의대로 DoS 는 의도적인 공격에 의해 서비스가 정상적으로 동작하지 못하게 되는 모든 상황을 말하기 때문에, 가령 어떤 서비스 프로그램(apache 같은)의 취약점 중 하나가 권한 상승, 코드 실행 등은 불가능하지만 0 으로 나누게 하거나 0번 주소에 액세스가 되어(Null-pointer dereference) 종료하게 만들 수 있다면 해당 취약점을 DoS 취약점이라 하게 된다. 단지 네트워크 DoS 공격이 주로 대부분의 시스템을 대상으로 하는 대단히 범용적인 DoS 공격 방법이기에 이를 정리한 것일 뿐이다. 따라서 개별 서비스 단위의 DoS 공격법까지 포함하게 된다면 훨씬 더 많은 DoS 공격 방법이 있다.

2.1. 알려져있는 DoS의 종류


  • IP
    • IP Flood[A]
    • TearDrop[A]
    • DDoS[5]
    • DRDoS[6]
    • Land Attack[A]
    • ICMP
      • Ping of Death
      • ICMP Flood
        • Ping Flood
        • Smurf Attack[7]
    • UDP
      • UDP Flood
    • TCP
      • TCP Flood
        • SYN Flood
        • SSYN Flood[8]
        • OOB Flood
        • RST Flood
        • HTTP
          • HTTP Flood [9]
          • Cache Control Attack

3. 스페인어 (Dos)


에스파냐어로 2란 뜻. 캡콤의 프랜차이즈 시리즈인 몬스터 헌터 시리즈 에서는 무리지어 다니는 소형 몬스터들의 우두머리를 뜻하는 접두어로 사용하기도 하며[10] 시리즈 두 번째 작품인 몬스터 헌터 도스의 명칭으로 사용하기도 했다.

4. 넥슨의 모바일 게임 D.O.S


자세한 사항은 D.O.S 참고.
[1] 파일 이름 길이 제한은 당시 DOS가 사용했던 FAT 파일 시스템의 한계일 뿐 당시 하드웨어의 한계가 아니다. 단적인 예로 UNIX 운영체제는 DOS보다도 옛날에 만들어졌지만 이 운영체제는 파일 이름 길이 제한이 없거나 있더라도 상당히 긴 파일 이름을 허용했다.[2] 이 때문에 MS-DOS 6.x까지 구동되던 프로그램들이 MS-DOS 7.x~8.x에서 돌아가지 않는 일이 허다했다. 일부 소프트웨어는 MS-DOS 7.x~8.x의 설정과 Windows의 설정 삽질을 좀 하면 겨우 구동되는 경우도 있긴 했으나, MS-DOS 6.x가 아니면 죽어도 실행이 안 되는 경우가 많아서 과도기 사용자들의 불만이 하늘을 찔렀다. 다행히 Windows 9x의 경우 구 버전의 DOS로 멀티 부팅을 할 수 있는 기능을 제공했으나, 문제는 이 방식을 사용하려면 이용자들이 Windows 95 발매 이전에 구 버전의 DOS 설치 디스켓을 사서 보관하고 있었어야 했다. 어쨌든 Windows 95로 넘어가던 시기 컴퓨터 서적을 보면 구 DOS용 응용 프로그램(예를 들면 게임)과의 공존을 위한 온갖 삽질 테크닉(...)을 소개하는 경우가 많다.[3] 명령 프롬프트(Command Prompt)의 전신은 Windows 9x의 MS-DOS 프롬프트(MS-DOS Prompt)로, 당시엔 COMMAND.COM을 달리 부르던 이름이었다. 하지만 Windows NT 계열의 명령 프롬프트는 MS-DOS(COMMAND.COM)가 아니라 MS-DOS를 흉내낸 짝퉁이나 다름 없다.[4] 공격 기술만 따져봤을때 해킹으로 불릴 수 없다는 것이다. DDoS는 좀비PC를 만들기 위해 해킹이 선행되어야 한다.[A] A B C IP Header만 연관되고 나머지는 의미 없음[5] 흔히 보이는건 UDP 기반이지만 기술적으로는 거의 모든 계층의 프로토콜에서 구현이 가능[6] 기술적으로는 거의 모든 계층의 프로토콜에서 구현이 가능[7] 서비스 거부 상태를 유지하기 위해 Flood 공격의 형태가 되어야 함[8] Spoofed SYN[9] 웹브라우저를 이용한 F5키 연타는 여기에 속한다. 단지 전용 프로그램에 비해 어마어마하게 느릴 뿐...[10] 미국판에서는 '''그레이트'''로 번역했다.