버그 호환성
Bug compatibility컴퓨터 하드웨어 또는 소프트웨어는 이전 버전의 바람직하지[1] 않은 기능까지 정확하게 복제하면 버그 호환성이 있다고 합니다.이 문구는 전문용어 [2]파일에 있습니다.
오래된 시스템과의 하위 호환성을 유지하는 측면은 이러한 시스템의 클라이언트 프로그램이 지정된 인터페이스뿐만 아니라 버그나 의도하지 않은 동작에 의존하는 경우가 많다는 것입니다.그것은 또한 새로운 대체품에 의해 보존되어야 한다.코드 또는 인터페이스의 자연스러운 진화 중에 유지해야 하는 매우 높은 복잡성 외에도 때로는 성능 또는 보안 문제가 발생할 수 있으며, 인터페이스의 동작 불일치로 인해 소프트웨어를 사용하는 소프트웨어의 새로운 버그가 발생하여 다방향 크로스 d를 해결하기 어려울 수 있습니다.다양한 [3]코드 조각 사이의 부가성.
예
DOS
MS-DOS/PC DOS 값에서 예를 찾을 수 있습니다.MS-DOS/PC DOS 3.1 이후 (Windows 9x 포함)및 OS/2가 특정 FAT OEM 라벨을 검출했을 경우, 일부 BIOS 파라미터 블록(BPB)을 신뢰하지 않고, 여러 에러로 인해 발생한 다른 디스크 지오메트리로부터 그것들을 재계산합니다.이 시스템의 [4][5][6][7]초기호에서 제품.이러한 문서화되지 않은 동작을 통해 이러한 잘못된 형식의 볼륨을 구체적으로 처리할 수 있지만, 일반적으로 작업할 수 있는 디스크 형상의 유연성이 제한되고 Microsoft 및 [6][7]IBM에서 사용하는 기본값에서 벗어날 경우 타사에서 생성한 유효한 형식의 볼륨을 폐기할 수 있습니다.MS-DOS/PC DOS 5.0 이후가 286 이상의 프로세서에서 실행되고 있는 경우 상주 실행 가능 로더에는 로드된 프로그램에 의해 특정 광범위한 응용 프로그램 및 스터브 로더(예: Microsoft의 EXEPACK 또는 Rational Systems의 386 DOS 익스텐더와 연결된 프로그램)를 검출하고 수정하도록 특별히 설계된 코드가 포함되어 있습니다.실행 [8]전 e.특정 상황에서는 기본 DOS가 Windows(WINA20.386)[9]에도 패치를 적용합니다.
개발 과정에서 DR-DOS는 MS-DOS 및 PC DOS의 많은 문서화되지 않은 특성 및 바람직하지 않은 속성을 에뮬레이트하기 위해 수정해야 했습니다(예를 들어 IBMB와 같은 잘못된 파일 이름을 사용해야 함).IO.COM, IBMDOSCOM 또는 국가시스템은 DOS,[10][11][12][nb 1]에서 그들은 시험의 대상이 주문하기에 정확한 다른 드라이버나 응용 프로그램 DR-DOS에 있고, 실행 파일 또는 디렉터리 경로length-limited 현재 디렉터리 구조(시네마 디지털 사운드)internally[9][13][14])을 소개하기 위해, 커널과 여러 운전자들에 실제 벌레의 명세를 따르지 않는 파일을.MS-D의 특정 버전에서 사용.OS만.[9][6][8][15][16][17]
창문들
오래된 시스템 버그를 에뮬레이트하여 오래된 저레벨 프로그램을 실행할 수 있도록 해 온 Windows도 그 예입니다.그 때문에, 다른 플랫폼에서도 많은 Windows 애플리케이션을 실행할 수 있도록 하는 Wine도 [18]Windows와의 버그 호환성을 유지할 필요가 있습니다.
마이크로소프트가 운영 체제의 64비트 버전에 NTVDM을 더 이상 포함하지 않음으로써 Windows에서 16비트 코드에 대한 지원을 단계적으로 중단했을 때, 실행 가능한 로더는 일부 특정 16비트 스타브 런처와 설치 프로그램을 인식하여 64비트 [19][20]프로세서에서 실행되는 동등한 코드 스텁으로 즉시 대체하도록 수정되었습니다.
다른.
IBM PC 호환성을 개발하는 동안 Compaq 엔지니어들은 서브로직의 Bruce Artwick이 "Intel의 칩 중 하나의 버그"라고 표현한 것 때문에 Microsoft Flight Simulator가 실행되지 않을 것이라는 것을 알게 되었고, 이로 인해 컴퓨터가 IBM [21]PC와 호환되도록 해야 했습니다.또 다른 하드웨어 예는 IBM Personal Computer/AT A20 주소 라인의 설계에서 발견되어 이전 [8][15]프로세서의 동작을 에뮬레이트할 수 있습니다.
Microsoft Excel에서는 Lotus 1-2-3과의 [22]하위 호환성을 확보하기 위해 1900년 2월 29일을 실제 날짜로 잘못 취급하는 의도적인 윤년 버그가 항상 발생하고 있습니다.
Near의 슈퍼 닌텐도 엔터테인먼트 시스템용 하이건과 같은 에뮬레이터는 플랫폼 사용자 Speedy Gonzales: Los Gatos Bandidos와 같은 특정 게임에 존재하는 버그도 실제 하드웨어와 정확히 같은 방식으로 다루어 게임을 [23]올바르게 플레이할 수 있도록 하는 것을 염두에 두고 만들어졌다.
구글의 엔지니어인 Hyrum Wright는 C++ 핵심 라이브러리에서 일하면서 직접 관찰한 이 문제에 대해 이야기한다.구글의 엔지니어이기도 한 타이터스 윈터스는 이 개념을 "하이럼의 법칙"[24]으로 더 큰 규모로 대중화했다.
「 」를 참조해 주세요.
메모들
- ^ IBMBIO.COM 및 IBMDOS.COM 파일은 실행 가능한 코드가 포함된 특수 이진 이미지입니다.실수로 일반적인 COM 스타일의 프로그램인 것처럼 프롬프트에서 실행하려고 하면 시스템이 크래시됩니다.이러한 파일에는 MS-DOS/PC DOS 아래에 숨겨진 속성이 설정되어 있습니다.DRBIOS 등의 다른 파일 확장자를 선택함으로써 이 문제를 피할 수 있었습니다.SYS 및 DRBDOS.SYS)는 이러한 특정 파일명을 필요로 하는 다양한 도구와의 호환성을 유지하기 위해 나중에 수행할 수 없습니다.크래시의 리스크를 없애기 위해서, 이러한 파일은 DR-DOS 7.02 이상의 팻 바이너리로 변경되어 부적절한 [a][b]기동시에 정상적으로 종료할 수 있는 작은 스탭이 포함되어 있습니다.
레퍼런스
- ^ "bug-for-bug compatible". catb.org.
Same as bug-compatible, with the additional implication that much tedious effort went into ensuring that each (known) bug was replicated.
- ^ "Bug-compatible - www.jargon.net". Retrieved 2010-02-03.
- ^ Pontin, Jason (1994-12-26). "Windows 95's third delay; needs polish". InfoWorld. InfoWorld Media Group, Inc. 16 (52): 18.
- ^ Williams, Dave (1992-01-12). Programmer's Technical Reference for MSDOS and the IBM PC. ISBN 1-878830-02-3. DOSREF. Retrieved 2012-01-08. (NB. 저자는 DOS 4.0이 OEM 라벨을 검사한다고 언급하지만 DOS 3.2도 OEM 라벨을 검사하는 것을 거부합니다(단, OEM 라벨도 검사합니다).
- ^ Bass, Wally (1994-02-14). "Cluster Size". Newsgroup: comp.os.msdos.programmer. Archived from the original on 2017-09-09. Retrieved 2006-10-14.
- ^ a b c Paul, Matthias R. (2002-02-20). "Need DOS 6.22 (Not OEM)". alt.msdos.programmer. Archived from the original on 2017-09-09. Retrieved 2006-10-14.
- ^ a b Paul, Matthias R. (2004-08-25). "NOVOLTRK.REG". www.drdos.org. Archived from the original on 2016-03-04. Retrieved 2011-12-17. [1]
- ^ a b c Paul, Matthias R. (2002-10-07). "Re: masm .com (PSP) related trouble". alt.lang.asm. Archived from the original on 2017-09-03. Retrieved 2017-09-03.
- ^ a b c 슐먼 앤드류, 브라운, 랄프 D.;Maxey, 데이비드. 미헬스, 레이먼드 J., 카일, 짐(1994년)[1993년 11월].Undocumented 도스:예약된 MS-DOS를 사용하는 기능과 데이터 구조-MS-DOS6, 노벨 도스와 Windows3.1(2판)을 포함하도록 확장에 대한 프로그래머의 가이드입니다.메사추세츠는 책 읽기:애디슨 웨슬리.아이 에스비엔 0-201-63287-X.(xviii+856+vi 페이지,3.5"-floppy)Errata:[2][3].
- ^ Paul, Matthias R. (1997-10-02). "Caldera OpenDOS 7.01/7.02 Update Alpha 3 IBMBIO.COM README.TXT". Archived from the original on 2003-10-04. Retrieved 2009-03-29. [4]
- ^ DR-DOS 7.03 WHATSNEW.TXT - Changes from DR-DOS 7.02 to DR-DOS 7.03. Caldera, Inc. 1998-12-24. Archived from the original on 2019-04-08. Retrieved 2019-04-08.
- ^ Paul, Matthias R. (2001-06-10) [1995]. "DOS COUNTRY.SYS file format" (COUNTRY.LST file) (1.44 ed.). Archived from the original on 2016-04-20. Retrieved 2016-08-20.
- ^ Paul, Matthias R. (1997-06-07) [April 1994]. "Chapter 1.3.xi: Überlange Pfade". NWDOS7UN.TXT — Zusammenfassung der dokumentierten und undokumentierten Fähigkeiten von Novell DOS 7. MPDOSTIP. Release 85 (in German). Archived from the original on 2016-11-07. Retrieved 2016-11-07.
- ^ Paul, Matthias R. (1997-07-30) [1994-05-01]. NWDOS-TIPs — Tips & Tricks rund um Novell DOS 7, mit Blick auf undokumentierte Details, Bugs und Workarounds. MPDOSTIP. Release 157 (in German) (3 ed.). Archived from the original on 2017-09-10. Retrieved 2014-08-06. (NB. NWDOSTIP).TXT는 Novell DOS 7 및 OpenDOS 7.01에 관한 포괄적인 작업이며, 문서화되어 있지 않은 많은 기능 및 내부 기능에 대한 설명을 포함합니다.그것은 저자의 한층 더 큰 작품의 일부이다.
MPDOSTIP.ZIP
컬렉션은 2001년까지 유지되어 당시 많은 사이트에 배포되었습니다.제공된 링크는 HTML 변환된 이전 버전의NWDOSTIP.TXT
파일). [5] - ^ a b 폴, 마티아스 R.(2002-02-02)."Treiber dynamischnachladen(Intra-Segment-Offset-Relokation 예 라덴 폰 TSRs 다이 해병 공격 헬기 대대에서)"[Loading 운전자 동적으로(Intra-segment은 해병 공격 헬기 대대에 로드하 TSRs으로 재배치함를 상쇄함)]. de.comp.os.msdos(독일어로).그 2017-09-09에 원래에서 Archived..(NB. 해병 공격 헬기 대대의 역사와"자연"에 대한 포괄적인 개요와 명백하지 않은 설계 제약 조건들은 해병 공격 헬기 대대로 로드될 것 시스템 확장 개발하고 관찰되기에를 제공한다.)2017-07-02 Retrieved.
- ^ Paul, Matthias R. (2002-04-01). "Fix for CauseWay DOS extender under DR-DOS 7.0x EMM386.EXE". Newsgroup: comp.os.msdos.programmer. Archived from the original on 2018-09-19. Retrieved 2018-09-19.
- ^ Paul, Matthias R. (2001-08-18). "Re: [fd-dev] On GRAFTABL and DISPLAY.SYS (Was: Changing codepages in FreeDOS)". freedos-dev. Archived from the original on 2017-09-04. Retrieved 2017-09-04.
- ^ "WineFeatures - The Official Wine Wiki". Retrieved 2010-02-03.
- ^ "Application Installation on 64-bit Systems". Microsoft. 2018-05-31. Archived from the original on 2021-07-22. Retrieved 2016-05-26.
- ^ "64-bit versions of Windows do not support 16-bit components, 16-bit processes, or 16-bit applications". 2.0. Microsoft. 2020-09-08 [2011-09-11]. KB896458. Archived from the original on 2021-09-12. Retrieved 2016-05-26.
- ^ Yakal, Kathy (January 1985). "Bruce Artwick / The Designer Behind Flight Simulator II". Compute!'s Gazette. p. 32. Retrieved 2014-07-06.
- ^ Excel은 1900년을 윤년으로 잘못 가정하고 있습니다.2019-05-01 취득.
- ^ "The State of Emulation, pt. III". helmet.kafuka.org. Retrieved 2021-08-19.
- ^ "Software Engineering at Google [Book]". www.oreilly.com. Retrieved 2022-05-31.