Muzu se zeptat na nejakou citaci k prvni popisovane SW chybe u Marineru? Tahle historka se tradicne uvadi ne jako problem se zavorkou, ale jako spatne vyderovana (vytiskla) carka ve vyrazu pro cyklus ve starem Fortranu 66 (cyklus si vymyslim):
DO 10 I = 1,3
kdy se omylem vyderovala tecka a tedy se misto cyklu provedlo jen prirazeni hodnoty 1.3 do promene DO10I (tehdy se ve fortranu neresily mezery). Viz Programatorske poklesky, kniha od dvojice Hrebicek, Kucera. To je taky jeden z duvodu, proc ted cykly zapisujem jinak.
Ovsem podle toho co jen napsano na wiky (http://en.wikipedia.org/wiki/Mariner_1) je to jen urband legend. Podle wiky i clanku z devtopic slo o spatne prepsanou formulku ve ktere vypadl aritmericky prumer ...
Zapomnelo jse jeste na tuhle katastrofu ve Svycarskem kantonu Solothurn. Od roku 2001 presli jejich urady na Debian Linux a Open Office. Vysledkem bylo do roku 2010 celkem 623 infarktu, 65 maniodepresi a 7 pripadu naprosteho silenstvi zamestnancu statni spravy, kteri s timhle suntem museli pracovat. 19 postizenych skoncilo tragicky.
Asi tak. Nedávno jsem instaloval Windows XP Home. Ten křáp rozchodit na notebooku vyžadoval instalaci asi 30 exe souborů (které jsem musel stáhnout jinde) a ještě to nebylo zcela optimální. Linux mi na tom samém stroji chodil téměř hned (téměř jelikož jsem musel nastavit heslo do wifi :-D ). Je fakt, že někdy je to s Linuxem těžší, ale v drtivé většině na netu najdu informace, které mi pomohou. U Windows se už řešení hledá hůře. Když zabruslím do českých fór o Windows, informace jsou kusé a je vidět, že to píšou obyč. lamy, co si hrajou ně administrátory. Informace "Ty jsi ale lama, použij tento komerční soft" mě opravdu nezajímají. Já hledám řešení. Brr, Windows nemám rád, jsou nepohodlné.
Ano i ne, co je vlastně minix ? Minimal unix, tedy je to operační systém založený na unixu. Lunus ho ale chtěl přejmenovat na freax a jeho kamarád Ari ho přemluvil, aby ho dal na síť, aby umožnil lidem jeho snadné stažení a poté ho i přejmenoval na linux. Ale to je úplně mimo téma, ale když se vrátim k tomu původnímu názoru, že linux stvořil pánubůh, pak by se tak dal Linus nazvat, protože linux je skutečně od začátku dokonalý, bohužel je spíš pro pokročilejší uživatele, kteří rozumí programování a vůbec fungování počítače jako takového.
Můžete to použít úplně stejně jako když potřebujete update linuxu... Pokud to je způsobeno driverem tak na jiném PC stáhnout driver pro síťovku a zbytek udělat klasicky :) Pokud to je hardvarový problém síťovky tak buď si koupit externí nebo to hodit na reklamačku. Jinak windows update už taky vyhldává drivery takže to je jedna aplikace.
A můžu se zeptat jak nainstalovat linux vedle windows aniž by to po dvou hodinách přestalo fungovat? Byly v ntb win7 a doinstaloval se linux vše běželo jak má, vyplo se to a po dvou hodinách nic nenaběhlo a jedna partition úplně prázdná, druhý pokus dopadl podobně jenom se to vyzkoušelo několikrát restartovat zas po dvou hodinách nic...
ale WU neumí nainstalovat a aktualizovat software pro práci s počítačem (správce souborů, instantní kecálek, internetový prohlížeč, přehrávač hudby a videa) a pro stažení ovladačů je většinou potřeba více programů, protože ne vždy všechny periferie máte od jednoho výrobce, navíc nové ovladače ve formě exe souborů s oblibou "zasviní" systém desítkami zbytečných prográmků a utilitek, často u kancelářských scannerů, digitálních kompaktů, hudebních přehrávačů, atd... zlaté časy win9x kdy často stačilo nainstalovat jeden inf soubor a bylo hotovo, žádný super program (většinou s příšerným GUI) na posílání scanů e-mailem, extra program do traye, prohlížeč obrázků, atd...
To je velmi zajimava informace i kdyz se netyka chybneho kodu, ale to pominu. Mohl by jste uvest zdroj?
Predpokladam ze mate pristup k lekarskym statistikam svycarska.
Jinak se to jevi jako blabol.
http://www.linuxtoday.com/news_story.php3?ltsn=2010-09-23-007-35-NW-DP-0000
Podle tohoto zdroje byl cely problem zavinen ignornci, neschopnosti a diletantstvim tamnich IT "specialistu".
Nepoucitelnych z chyb...
Ono některým lidem stačí tu ikonku přesunout z levého dolního do pravého horního rohu a volají helpdesk, neschopni pracovat. Někteří cholerici si toho ani nevšimnou a vehementně místo spuštění ERP systému otevírají nějaký MS Excel dokument a pak naštvaně volají, že jim nefunguje ERP a místo toho se jim pořád otevírá nějaký spreadsheet a něco to píše (chybu, že stejný soubor není možno otevřít vícekrát). Nic nečtou a ani se nekoukají na ikonku. S těmi se pak o upgrade čehokoliv vyjednává velmi těžko :-)
DEVELOPER OF 'GOOD ENOUGH' SOFTWARE Microsoft has perhaps become entangled in BP's Gulf of Mexico oil catastrophe thanks to an oil rig worker's claim that a computer used to monitor Transocean's Deepwater Horizon drilling platform crashed with a blue screen of death (BSOD).
Michael Williams, the chief electronics technician on the Deepwater Horizon rig survived the explosion that killed 11 and dumped millions of gallons of oil into the Gulf of Mexico by jumping into the ocean. Williams testified that before the explosion he saw a computer that he claims was used for monitoring drilling operations frozen with a BSOD.
http://www.theinquirer.net/inquirer/news/1724792/microsoft-deep-water-oil-spill
http://www.computerworld.com/s/article/9179595/Tech_worker_testifies_of_blue_screen_of_death_on_oil_rig_s_computer
http://www.examiner.com/technology-in-national/did-bsods-on-the-deepwater-horizon-contribute-to-the-gulf-oil-disaster
Ci dokonca starsie veci so Stuxnetom
Removing SCADA worm could disrupt power plants
Siemens has made a program available for detecting and disinfecting malware attacking its software used to control power grids, gas refineries, and factories but warned customers who use it could disrupt sensitive plant operations.
The Munich-based engineering company on Thursday began distributing Sysclean, a malware scanner made by Trend Micro. It has been updated to remove Stuxnet, a worm that spreads by exploiting two separate vulnerabilities in Siemens's SCADA, or supervisory control and data acquisition, software and every supported version of Microsoft Windows.
http://www.theregister.co.uk/2010/07/22/siemens_scada_worm/
http://www.theregister.co.uk/2010/07/16/windows_shortcut_trojan/
ci minuloroxne pruseri
Areva Inc. - a Paris-based company that serves nuclear, wind, and fossil-fuel power companies - is warning customers to upgrade a key piece of energy management software following the discovery of security bugs that leaves it vulnerable to hijacking.
http://www.theregister.co.uk/2009/02/05/areva_scada_security_bugs/
Citect's move followed last week's release of proof-of-concept code that exploited a vulnerability in CitectSCADA, which is used to manage industrial control mechanisms known as SCADA (Supervisory Control And Data Acquisition) systems. The bug meant systems that relied on the software could potentially be exposed to tampering by disgruntled employees or terrorists
http://www.theregister.co.uk/2008/09/19/scada_advisory_pulled/
Gasoline refineries, manufacturing plants and other industrial facilities that rely on computerized control systems could be vulnerable to a security flaw in a popular piece of software that in some cases allows attackers to remotely take control of critical operations and equipment.
http://www.theregister.co.uk/2008/06/12/scada_vuln_discovered/
Po tomto vsak nie je logicke, ze studenti priemyselenej informtiky studuju radi PLC+SCADA a nestuduju radi riadenie pod Unixami
Pritom vyskum Reatlime Linuxov sa sice robi na malo miestach, ale je xtremne
intenzivny
https://www.osadl.org/Nairobi-2010.rtlws12-nairobi-2010.0.html
napr.
I found roughly 600 Linux-based realtime and scheduling papers which were written in the last 18 months
http://lwn.net/SubscriberLink/397422/2e893c08cbabf300/
Protože kdyby si ty joja přečetli eulu, tak by věděli, že jsou na toto Win nevhodné a pro tohle na ně není záruka. Tudíž by je tam normální člověk nepoužil. Něco podobnýho platí bohužel pro počítače. Průmysl je prolezlej těma nejlevnějšíma PC na kterejch obvykle jedou 98čky a nějakej pofiderní software a řídí to stroje, který jsou schopný udělat škody řádově v miliardách. Za to patří někoho zabít jenomže...ono se to snad dá stavět na něčem jiným? Nedá, protože nic jinýho není.
* CAD CATIA ... pri prepisu tohodle CAD/CAM systemu z unixu a fortranu do windows a C++ ... coz je double error ;-)) samozrejme spatne vypocty, spadlo letadlo, nastesti prototyp ... chyby dvojiho druhu:
1. pri samotnem prepisu, preci jen fortran prepisuje jen idiot (zde byl duvod chybejici spolehlive implemenatce f77 do windows) a samotneho microsoftiho c++ ktere taktez neumelo pocitat ... tak IBM udelala visualAGE c++ ... windows totiz neumi pocitat dodnes a na vypocty je terba tahat knihovny z unixu ... coz dela matehmatica, mapple etc.
* Chyba windows NT malem potopila lod, zde se jednalo o prostou BSOD a nutnost ji preisntalovat
* Chybne pocitani v metricke a palcove soustave zavina zniceni linuxoveho lunarniho vozitka poslaneho na mars ... pri pristavani se rozsekal a nebyl schopen se pohybovat
* Chyba ve win NT v3.x -4.sp* ... znicili pri instalaci OS/2 HPFS part, na ktere byl OS ... normlene tomu prekopala strukturu, tak, ze to neslo uz nicim obnovit ... a ja se divil, proc skoro 1 hod sroti disk a nic nedela, tuhle chybu povazuji za hackersky utok na moji osobu a od te doby je M$ muj osobni nepritel, nikdy jim tento utok neodpustim a jejich OS od te doby testuji jiz vyhradne ve virtualu a nikdy jej nenasadim na dulezite veci ... ani na moje domaci data.
* Chyba v exelu ... exel neumi scitat a to ani bezna cisla, kde je max. 1 desetinne cislo ... kdyz se dostanou do urcitych mezi, je treba zaokrouhlovat, nebot na nejakem 10. des. miste, i kdyz tam zadna takova cislice neni, vznikne chyba, clovek to pozna jen tak, ze da porovnavat stejna cisla ... chyba je zavisla na poctu scitanych cislech a na rozsahu, pritom rozsah je nekde v radu deseti tisicu ... tedy to nechapu ... dusledky:
spatne vypocty mnoha ekonomu, kteri misto profi nastroju pouzivaji exel, nebo statistiku ;-))
To je problem Excelu, protoze se v nem pouzivaji formaty podle IEEE 754, ktere vubec nejsou vhodne napriklad pro vypoctu s penezi atd. Mel by se pouzit fixed point popr. pro mnoho aplikaci by byly jeste vyhodnejsi zlomky, coz je sice trosku pomalejsi, ovsem mnoho problemu se tim odstrani (nebo jsou lepe predikovany).
Starsi Excely (nove neznam :-) mely napriklad problem s nasledujicim skriptem, schvalne si muzete zkusit tipnout, co vyjde, jestli skutecne jednicka:
Sub Main() MySum = 0 For I% = 1 To 10000 MySum = MySum + 0.0001 Next I% Debug.Print MySum End Sub
Na BASIC mi nešahej, není to zdaleka jen jeho problém. Právě jsem zkusil v C tohle:
int i; float n; for(i=0,n=0;i<10000;++i,n+=.0001); printf("%f\n",n);
a vyšlo mi 1.000054! Původní VisiCalc právě z tohohle důvodu počítal v BCD, takže chyba je rozhodně v Excelu, když počítá binárně ;-)
Ono to s těmi čísly nebude nikdy vyřešeno,protože počítače v podstatě
nepoužívají a neukládají čísla v desítkové soustavě.
Desetinné číslo které má určitý konečný počet míst se ve vnitřním formátu
čísel počítače vlastně ukládá v jiné číselné soustavě kde zákonitě pro některá desetinná čísla není počet míst konečný a ty nejnižší řády se prostě ztratí.
Takže některá desetinná čísla která ručně vložíte a následně přečtete nebudou stejná! Takže pokud blbě napíšete program který bude například desetiná čísla porovnávat a v závislosti na shodě či neshodě bude provádět různé věci tak se budete divit.
Řešení je triviální,stačí požít buď omezený počet míst za desetinnou čárkou nebo celočíselnou část.
Zaokrouhlení není dobrý nápad protože vnese další nepředvídatelnou změnu čísla. Např 0.5 versus 0.4, že?
Pro tento účel počítače a programovací jazyky disponují několika různými
formáty čísel např: celočíselná, reálná s celočíselnou a desetinou částí, jen desetinná, exponenciální a s čísly s různou pevně danou délkou.
Tyto čísla mají rozdílný vnitřní formát a lze je mezi sebou vzájemně převádět.
Ale pozor totéž číslo vložené do různého formátu čísla nedoporučuji porovnávat
na vzájemnou shodu,asi už víte proč.
Další lahůdka je přičítání příliš malých čísel k příliš velkým, možná že už chápete v čem je problém. Čísla mají omezený konečný počet číslic pro celočíselné i desetiné místa.
např. 1234567890.0123456789...... formát čísla s 20 platnými číslicemi
+ 123.4567890123456789 rovněž z 20 číslicemi
Je zřejmé že se čílice 456789 už nemají kam přičíst.
Takže pokud napíšete program který bude postupně sčítat obrovské množství
malých desetiných čísel nebude zpočátku chyba patrná ale jak se součet
bude zvětšovat bude chyba postupně narůstat až se nakonec nebude vůbec nic
přičítat. Například v bance by tohle udělalo docela chaos, že?
Řešení je triviální, je třeba dělat mezisoučet malých položek a ten občas
přičíst k celkovému součtu.
Doufám že sem neobtěžoval, děkuji za pozornost.
Pokud si pamatuji, tak nedávno došlo k podobné závadě na Wall Street. Tehdy se také index na mikrosekundu propadl o mnoho desítek procent a počítače, automaticky naprogramované na takovouto událost zahájily okamžitě masové výprodeje. Škody šly do miliard. Nevíte někdo, jak ta kauza dopadla?
údajně si někdo spletl při zadání obchodního pokynu miliony a miliardy a tak nastala řetězová reakce automatických obchodních systémů ale co to opravdu způsobilo se asi těžko někdy dozvíme. Dalo se na tom slušně vydělat, obchoduju intradeně na 5min grafu a pár $ mi to hodilo :-)
Další námět na pokračování článku dala nedávno CIA, když přiznala, že naváděcí systém pro bezpilotní letadla byl dodavatelem zkopírován od konkurence a nesprávně upraven, což vedlo k nepřesnostem až 13 metrů. (u zbraně, které jinak za normálních okolností zadáte adresu a ona se zeptá na poschodí...).
tez je treba vzpomenout na slavnou implementaci Windows 2003 na Londynske burze ;-))
Takovou reklamu to melo, jak M$ vytlacil UNIX, pak to tak 3x spadlo, v prubehu uptime se to neustale zpomalovalo ... az nekomu dosla trpelivost a tentokrate bez reklamnich banneru od M$ se to premigrovalo na Linux:
benefity:
* Stabilita
* Neni jiz potreba restartu, alespon ne tolikrat
* Kratsi latence odezvy a vice transakci/sec
* Staly vykon bez ohledu na uptime
* Mene lidi na udrzeni v chodu.
... kdyz u tohle prizna CIO verejne, tak to musel byt hodne nastavny na dodavatele ... ale je tusim proc to je, beztak rikal, ze jedine Unix/linux a nekdo mu tam nacpal M$, kdyz pak i vedeni doslo, ze to nefunguje, tak jak by melo, tak to CIO jeste rozmazl, aby uz nikoho nenapadlo to tam nacpat v budoucnu znova.
Z velkeho vitezstvi se stala prohra, na kterou by nekteri nejradeji zapomneli ;-))
U mého bývalého zaměstnavatele se podařilo firmě, která se starala o OS pokladen (běžely na Linuxu) odstřelit většinu poboček. Firma využívala 2 druhy pokladen. Asi 10 % poboček běželo na modernějším typu, zbytek na starším. Firma bohužel vyzkoušela update jen na modernějším typu a přes noc se nahrál update na všechny prodejny. Druhý den 90 % poboček neotevřelo (nějakých 200 prodejen). No, prča, dodavatele to stálo pár milionů :D
Ještě další vesmírná "chyba". Řídící systém 1.stupně rakety N-1 nikdy pořádně nefungoval a vlastně mohl za všechna její selhání, kterých bylo 100 %. Nevím jestli už nento systém byl "softwarový" nebo jen "zadrátovaný", ale vlastně zlikvidoval sovětský měsíční program. Možná to bylo dobře, protože celý zbytek letu byl totálně rizikový a asi to zachránilo nějakému kosmonautovi život.
mozna to tu uz nekdo psal (necetl jsem cele vlakno), ale jenda sonda to nasila pod plnym kotlem do Marsu, protoze si myslela, ze je jeste dost vysoko. No prislo se na to, ze jedna skupina programatoru pocitala v metrech a druha ve feetech (a pry obe skupiny byly pres chodbu :-)) )
Tá trojka je zaujímavá, skoro na film, a zo štvorky ma zamrazilo... uff.
Čoskoro ale nebudeme mať z čoho vyrábať elektroniku ani nič, takže všetko bude v poriadku. :-)
http://ekonomika.etrend.sk/svet/cina-drzi-svet-v-sachu-2.html
Ta chyba tehdy opravdu byla softwarova, konkretne to byla chyba mikrokodu Pentia.
Pentium (1) byl tusim posledni vyznamny x86 procesor pouzivajici na komplexni instrukce mikrokod (viz. procesory CISC).
Následující x86 procesory již měly instrukční sadu implementovánu bez využití mikrokodódu a přiblížily se tak procesorům RISC.
Ovšem musím připomenout, že budouci multijadrove GPU Larrabee, a dále 32jadrovy procesor Knights Ferry, pripadne jeho nasledovnik Knights Corner, pouziva jako sva x86 jadra vojaky odladene Pentium (1) s mikrokody.
nechapem preco by nieco take malo byt chybou CADu.. to ze niekto do programu zle zadal vstupne udaje (sposob, velkost a druh zatazenia) sa nemoze pripisovat programu. A vseobecne statici sa ani dnes nespoliehaju na programy na 100%.. vzdy statik posudi aj vlastnou hlavou alebo nejakym miniskratenim prepoctom vyslednu konstrukciu, tak toboz v 1978.
Taky jsem chtěl reagovat. Na přednáškách o ANSYSu nás vyučující dost důrazně varoval, že zabránit tomu, aby program počítal nesmysly může akorát člověk. Děsivé je, že takové programy často používají inženýři :-) (jistě znáte, jak fyzikové a matematikové nahlížejí na inženýry, a dále matematikové na fyziky).
3. Plynový ovladač (1982) - nie je chyba, ale zamerna sabotaz. A to je rozdiel. Mozno to bolo zo zaciatku vyhodnotene ako chyba programatora, lebo ze to spravila CIA sa asi nikto nemal nikdy dozvediet. Celkom by ma zaujimalo, co sa stalo s programatorom, na ktoreho najprv zvalili vinu.
Presne tak, (3) tam určite nepatrí, pretože to bola úmyselná a cielená sabotáž. Čiže bolo to úmyselné, a preto nie je možné považovať to za chybu!
Okrem toho, nepatrí tam zrejme ani (4), pretože to zrejme nebola softvérová chyba, softvér bol zrejme dobre naprogramovaný, aj keď možno vzhľadom na chybnú, nesprávnu špecifikáciu. Ale potom to takisto nie je možné považovať za softvérovú chybu.
Čo sa týka tej (6), tak to je tiež asi dosť pochybné. Neviem, ako sa ten systém zrútil, alebo či sa „len“ zahltil, ale tak zahltiť sa dá asi každý systém, takže isteže s tým mali počítať pri návrhu, prípadne časom v priebehu používania (to je jednoznačne chyba), ale nakoľko v tom bola aj softvérová chyba, je už veľmi, veľmi otázne.
Ďalej sa čudujem, že ako je možné, že tam nezahrnuli aj také veci ako napr. haváriu sondy Mars Climate Orbiter, ktorá havarovala v dôsledku používania imperiálnych jednotiek, namiesto metrických. A celá kopa ďalších a ďalších, myslím, že by sa ich našlo neúrekom!
Třeba takový RSX-11M sice běžel zrovna na PDP-11, ale za Unix bych ho teda nepovažoval :-P A co se Winblows dotýče, napadá mě nedávná zpráva z jedné myslím americké jaderné elektrárny, kde se widlousí síť na velíně zasekla tak důkladně, že na pár hodin dokonale znemožnila přístup k počítači ovládajícímu reaktor (ten naštěstí nejel na omalovánkách, ale na skutečném operačním systému). Naštěstí tam dělal nějaký "hacker" s linuxovým mobilem, ze kterého se k němu dokázal připojit přes textový terminál a ovládal ho po celou dobu než zase ten nejdokonalejší a nejstabilnější :-D systém dali dohromady.
Sorry ale v uvedeném případě není příliš zřejmé že by se jednalo o chybu programu. Spíš se domnívám že je to chyba konstruktéra který opomněl do CAD systému (resp. jeho výpočtového podsystému FEM) vložit podmínky pro působení z boku. Pro ty jenž nikdy nedělali ve FEM programu jen poznamenám že to není tak že vložíte model a pustíte simulaci. Veškeré okrajové podmínky je nutno zadat ručně ať je program inteligentní jak chce (v roce 1978 ani nemluvě).