프로그램 파일과 데이터 / 문서 파일의 차이점은 무엇입니까?


대답 1:

처음에는 파일이 무엇입니까? 기본적으로 이것은 미리 정의 된 형식 또는 다른 형식으로 무언가를 나타내는 바이트 스트림입니다. 해당 형식이 무엇인지 알고 있으면 파일을 읽고 그에 따라 데이터를 처리 할 수 ​​있습니다.

파일이 무엇인지 알고 있으면 파일의 형식이 고유 할 수도 있습니다.

Turbo Dump 버전 5.0.16.12 저작권 (c) 1988, 2000 Inprise Corporation 파일 PRIMES.BIN 표시 000000 : 02 00 00 00 03 00 00 00 05 00 00 00 07 00 00 00 ........... ..... 000010 : 0B 00 00 00 0D 00 00 00 11 00 00 00 13 00 00 00 ................ 000020 : 17 00 00 00 1D 00 00 00 1F 00 00 00 25 00 00 00 ............ % ... 000030 : 29 00 00 00 2B 00 00 00 2F 00 00 00 35 00 00 00) ... + ... / ... 5 ... 000040 : 3B 00 00 00 3D 00 00 00 43 00 00 00 47 00 00 00; ... = ... C ... G ... 000050 : 49 00 00 4F 00 00 00 53 00 00 00 59 00 00 00 I ... O ... S ... Y ... 000060 : 61 00 00 00 65 00 00 00 67 00 00 00 6B 00 00 00 a.e .. .g ... k ...

이 경우 처음 28 개의 소수의 2 진 / 16 진 표현입니다. (참고 : 각 숫자는 Intel Little-Endian 형식의 4 바이트이며 정수 배열로 다시 읽고 필요한 경우 사용할 수 있습니다.

다른 파일에는 특정 식별자가 있습니다. 비트 맵 파일은 일반적으로 파일 크기 및 비트 맵 데이터가 시작되는 파일 오프셋을 정의하는 데 사용되는 BITMAPFILEHEADER 구조의 일부인 'BM'으로 시작합니다. 그 다음에는 폭과 높이 등을 정의하는 BITMAPINFOHEADER 구조가 뒤 따릅니다. 비트 맵 데이터 자체에 도달 할 때까지 데이터가 어떻게 배치되는지 알아야합니다.

동일한 종류의 구조가 이전 Microsoft Office Documents, Word Excel 등에 적용되지만 요즘에는 XML 문서 형식을 사용합니다.

프로그램 파일 자체는 파일 일뿐입니다. Windows.EXE 파일은 'MZ'로 시작하고 DOS 환경에서 실행되는 경우“이 프로그램은 반드시 WIN32 모드에서 실행되어야합니다”또는“이 프로그램은 DOS 모드에서 실행할 수 없습니다”와 같은 메시지를 인쇄하는 구조로 시작합니다. 또는 비슷한 것. DOS 모드에서 .EXE 파일은 로더에게 프로그램을로드하고 실행하는 방법을 알려주는 형식을 따릅니다.

Windows 로더는이 DOS 섹션을 무시하고 파일의 오프셋 0200H에서 시작하는 Portable Executable 헤더“PE”를 찾습니다. 이 헤더는 프로그램의 다른 부분이 파일에서 존재하는 위치를 정의합니다. 이들 중 일부는 프로그램을 .NET 실행 파일로 식별 할 수 있으며이 경우 .NET Framework에서 실행됩니다.

Linux 프로그램은 COFF와 유사한 형식입니다 (PE는 COFF의 확장입니다).

요약 파일은 단지 파일 일 뿐이며 파일 형식과 내부 구조이므로 예상 형식을 준수 할 수 있습니다.


대답 2:

프로그램 파일은 실행 가능한 코드로, 어떤 형태의 코드로 작성되어 컴퓨터에서 이해할 수 있도록 해석되거나 컴파일됩니다.

데이터 / 문서 파일은 거의 모든 다른 파일입니다. 프로그램 파일이 사용자의 의도와 문서 (예 : 웹 서버 프로그램의 웹 페이지 또는 사용자의 글이 포함 된 문서 파일)에 따라 올바르게 실행되도록 읽는 구성 파일과 같은 것들.

* 많은 프로그램 파일이 올바르게 실행하기 위해 라이브러리 파일에 의존하고 프로그램 파일과 같은 라이브러리 파일이 코드 형태로 작성되고 해석되거나 해석된다는 점에서 기술적으로 프로그램 파일의 구성 요소 인 라이브러리 파일이 있습니다. 컴퓨터가 기본적으로 이해할 수 있도록 컴파일되었습니다.