Błąd sprzętowy

Błąd sprzętowy to wada w projekcie, produkcji lub działaniu sprzętu komputerowego , która powoduje nieprawidłowe działanie. Jest odpowiednikiem błędów oprogramowania , które odnoszą się do błędów w kodzie obsługującym komputery i jest oryginalnym kontekstem, w którym słowo „ błąd ” było używane w odniesieniu do takich błędów. Pośrednikiem między sprzętem a oprogramowaniem jest mikrokod i oprogramowanie układowe , które również mogą mieć takie wady. W powszechnym użyciu błąd różni się nieco od „ glitch ” co może być bardziej przejściowe niż podstawowe i nieco różnić się od „dziwactwa”, które można uznać za przydatne lub nieodłączne. Producent może opublikować erratę (poprawki w dokumentacji) w celu odzwierciedlenia takiego niezamierzonego działania, a „errata” jest czasami używane jako określenie samych wad.

Historia

Średnioangielskie słowo bugge jest podstawą terminów „ bugbear ” i „ bugaboo ” jako terminów używanych w odniesieniu do potwora.

Termin „błąd” opisujący defekty jest częścią żargonu inżynierskiego od lat siedemdziesiątych XIX wieku i poprzedza komputery elektroniczne i oprogramowanie komputerowe; mogło być pierwotnie używane w inżynierii sprzętu do opisywania usterek mechanicznych. Na przykład Thomas Edison napisał następujące słowa w liście do współpracownika w 1878 roku:

Tak było we wszystkich moich wynalazkach. Pierwszym krokiem jest intuicja, która przychodzi wraz z wybuchem, potem pojawiają się trudności - ta rzecz się poddaje i [to] wtedy „robale” - jak nazywa się takie małe błędy i trudności - pokazują się i miesiące intensywnego obserwowania, studiowania i praca są niezbędne, aby z pewnością osiągnąć komercyjny sukces lub porażkę.

Baffle Ball , pierwsza mechaniczna gra typu pinball , była reklamowana jako „wolna od błędów” w 1931 roku. Problemy ze sprzętem wojskowym podczas II wojny światowej nazywano błędami (lub usterkami ). W filmie Dowództwo lotu z 1940 roku defekt w urządzeniu do namierzania kierunku nazywa się „robakiem”. [ potrzebne źródło ] W książce opublikowanej w 1942 roku, Louise Dickinson Rich , mówiąc o zasilanym cięciu lodu maszynie, powiedział: „Piłowanie lodu zostało zawieszone do czasu, aż stwórca mógł zostać sprowadzony, aby wyjąć robaki z jego ukochanej”.

Isaac Asimov użył terminu „błąd” w odniesieniu do problemów z robotem w swoim opowiadaniu „ Złap tego królika ”, opublikowanym w 1944 roku.

Strona z dziennika komputera elektromechanicznego Harvard Mark II , przedstawiająca martwą ćmę, która została usunięta z urządzenia.

Termin „błąd” został użyty w relacji pionierki komputerowej Grace Hopper , która opublikowała przyczynę awarii we wczesnym komputerze elektromechanicznym. Typowa wersja tej historii to:

W 1946 roku, kiedy Hopper został zwolniony z czynnej służby, dołączyła do Wydziału Harvarda w Laboratorium Obliczeniowym, gdzie kontynuowała prace nad Mark II i Mark III . Operatorzy wyśledzili błąd w Mark II do ćmy uwięzionej w przekaźniku, ukuwając termin błąd . Ten błąd został starannie usunięty i przyklejony do dziennika pokładowego. Wywodząc się z pierwszego błędu, dziś nazywamy błędy lub usterki w programie błędem .

Hopper nie znalazła pluskwy, co chętnie przyznała. Data w dzienniku pokładowym to 9 września 1947. Operatorzy, którzy go znaleźli, w tym William „Bill” Burke, późniejszy z Laboratorium Broni Marynarki Wojennej w Dahlgren w Wirginii , znali termin techniczny i z rozbawieniem trzymali owada z zapisem „Pierwszy faktyczny przypadek wykrycia błędu”. Hopper uwielbiał opowiadać tę historię. Ten dziennik, wraz z dołączoną ćmą, jest częścią kolekcji Smithsonian National Museum of American History .

Niezamierzone działanie

Czasami użytkownicy wykorzystują niezamierzone lub nieudokumentowane działanie sprzętu w jakimś celu, w którym to przypadku wada może być uznana za funkcję. Daje to początek często ironicznemu akronimowi INABIAF „It's Not A Bug It's A Feature”. czasami wykorzystywane są nieudokumentowane instrukcje, znane jako nielegalne kody operacyjne, dotyczące technologii MOS 6510 komputera Commodore 64 i technologii MOS 6502 komputera Apple II . Podobnie programiści (zwłaszcza gry i demo ) na Commodore Amiga wykorzystała niezamierzone działanie swoich koprocesorów do stworzenia nowych efektów lub optymalizacji.

Luki w zabezpieczeniach

Niektóre wady sprzętu mogą prowadzić do luk w zabezpieczeniach, w których ochrona pamięci lub inne funkcje nie działają prawidłowo. Począwszy od 2017 r. w implementacjach wykonywania spekulatywnego na typowych architekturach procesorów wykryto szereg luk w zabezpieczeniach, które umożliwiły naruszenie poziomu uprawnień .

W 2019 roku badacze odkryli, że tryb debugowania producenta, znany jako VISA, miał nieudokumentowaną funkcję w koncentratorach Intel Platform Controller Hub, znanych jako chipsety, co umożliwiało dostęp do tego trybu z normalną płytą główną, co mogło prowadzić do luki w zabezpieczeniach.

Błędy Pentium

Intel Pentium miała dwa dobrze znane błędy wykryte po wprowadzeniu ich na rynek, błąd FDIV wpływający na dzielenie zmiennoprzecinkowe, który spowodował wycofanie z rynku w 1994 r., oraz błąd F00F wykryty w 1997 r., który powoduje, że procesor przestaje działać do zrestartowany.

Zobacz też