| Bottom | Home | Article | Bookshelf | Keyword | Author | Oxymoron |

 

Digital Bugs' Life

Ecology of computer bugs

Cat: ICT
Pub: 2000
#: 0002a

Kanzo Kobayashi


Title

Digital Bugs' Life

デジタル・バグズ・ライフ

Subtitle
Ecology of computer bugs システムに潜むさまざまなバグの生態
Author
Kanzo Kobayashi 小林寛三
Published

Feb. 2000

2000年2月
Index
Why?
  • I wrote this on Feb. 4, my wedding anniversary, appreciating so many years with me and with lots of bugs in everday life.
  • 2月4日は結婚記念日で、その日に本文を書いた。多くの年月を私と多くのバグに囲まれていることを感謝して....
Summary
要約
>Top

0. Prologue:

  • Bug:
    1. 1. A true bug.
    2. 2. An insect or similar organism, such as a centipede or an earwig.
    3. A disease-producing microorganism:*a flu bug.
    4. The illness or disease so produced:#intestinal flu
    5. A defect or difficulty, as in a system or design.
    6. (Computer Science) A defect in the code or routine of a program.
    7. An enthusiasm or obsession:*got bitten by the writing bug.
    8. An electronic listening device, such as a hidden microphone or wiretap, used in surveillance
    9. (Mafia) sigint, tip, dope, secret
    10. Asterisk (*)
    11. (Poker) joker as wild card
    12. cahill, plunker
    13. junk, five-an-ten, dime
    14. (Jail) crack, insanity, lunatic
    15. Big name, brass, VIP

0. プロローグ:

  1. バグ (bug):

    1. (小さな) 虫、昆虫.
    2. ムガデ、ヤスデ、ハサミムシ
    3. ウイルス*a flu bug(流感のウイルス).
    4. 微生物、菌#intestinal flu(腸菌)
    5. システム・設計の欠陥・故障
    6. (コンピュータ). プログラム・コードの欠陥
    7. 熱中・熱狂、*got the sports-car bug.(スポーツカーに夢中)
    8. 盗聴マイク・小型警報装置 *bug someone's phone (盗聴する)
    9. (マフィア) 秘密情報 *put a bug in a person's ear (耳打ちする)
    10. 星印(*)
    11. (ポーカー)ジョーカーのワイルドカード
    12. 擬餌針
    13. 安物、がらくた
    14. (刑務所) 精神異常*bug test (心理テスト)
    15. 偉い人・偉ぶる人*a big bug(お偉方
>Top

1. Y2K and Bugs:

  • The fatal day of Jan. 1, 2000 has come. The last year it reminded us a bitter experience caused by a specter of Y2K. At the start of new millennium, I would review the defects of computer program, or in more generally, 'bugs' lurking in computer systems.
  • To begin with, the term of 'bug' is ambiguous. 'Bug' has meanings of insect, any kind of worm, even includes bacteria and virus, now expressing various defects or faults of computer programs. Computer history tells us that a moth actually caught between computer circuit caused hung up of the computer. Thereafter 'bug' means defect of a computer program, and 'debugging' or 'bug fix' means amending of such defect.
  • Software developer calls bugs in a way of 'anomalies', 'unexpected result', 'wrongful terminations', 'undocumented features'. These expression implies that bugs are necessary and unavoidable process of improvement of the programs.
  • Y2K problem, in particular, is caused by two digit expression of years instead of four, and arrival of very special number of year 2000. This phenomenon should be called a kind of system fault in information society, which is similar to starvation or poor harvest in the agriculture society, or economic panic or depression in the industrial society. (as mentioned by Prof. S. Kumon of Glocom, 1999)
  • I would amplify that similar discontinuities at global level have occurred several times during long geological history, like tectonic movement, change of temperature or total environment, fall of meteorites, extinction and alternation of biosphere and so on.

1. Y2Kとバグ:

  • コンピュータ2000年問題 (Y2K) を契機として、昨年はシステムの本質について実に様々なことを苦い教訓を得ることができた。この問題を少し遠くから観察することで、この問題の中に潜むコンピュータプログラムの不備、いわゆるバグの本質再考してみたい。
  • まずバグとはあいまいな用語である。この定義の中にまずバグがあるのではないか。辞書によると、BUGとは、昆虫、虫一般から始まり、菌もウイルスも含まれる。転じて機械やプログラムの欠陥、故障、誤りの意となる。
  • 実際に、コンピュータがハングする原因に一匹の蛾がコンピュータ回路に挟まったいたことから、BUGという言葉が生まれ、それを直す処理をDEBUGGINGあるいはBUG FIXと言われるようになったとのこと。
  • BUGのことをソフト開発会社は別名、異常なもの(anomalies)、予期せぬ結果(unexpected result)、悪意の終了(wrongful terminations)、文書化されない特徴(undocumented features)などと表現しており、いかにバグが、プログラム開発において普遍的で、不可避で、かつ日常的な事象であることを示している。
  • 特にY2Kは、2000年という特殊な年号表記を迎えたことによる対応不備が原因で、必然的に起こった事象で、これは、農業社会の飢餓や凶作、産業社会の恐慌・不況にも似た情報社会のシステム故障というべきとの指摘がある。 (公文俊平Glocom所長, 1999)
  • いや敷衍すれば、遥かそれ以前の地球の歴史を通じて、不連続的な出来事、即ち、地殻変動、温度変化、氷河期、地球の極性反転、隕石落下、生物種の絶滅と交代の現象などがしばしば起こっているのだ。
>Top

2. Why bugs appear?:

  • According to the above viewpoint, I would trace the essence of bugs hidden in computer programs, and try to classify them from a viewpoint of an insect collector. Classification of bugs may help us to understand their behaviors, clearing our stance and measures to cope with.
  • As a vertical axis, whether the causes can be estimated, surveyed and analyzed, or cannot be analyzed, treated and remedied.
  • As a horizontal axis, whether the causes are certain to occur, or uncertain to appear.
  • There may be another axis whether it is easy or difficult to recover or remedy the phenomena, but this dimension is hidden in this chart.
  • All computer bugs are human made, but the world of bugs are mysteriously similar to the real insect world where our human knowledge could not reach yet.
  • Bug is a really smart expression. And it is also human activities that infect computers with virus out of malice as well as disinfect by vaccine software. Computer society never want to coexist such virus activities but cannot liquidate such malicious intention.

2. なぜバグは発生するか:

  • 我々は、もっとバグの本質を直視して、バグの英語の語義のように見えない小さなものように扱うのではなく、むしろ昆虫採集のような視点でその種別分類を試みることによって、バグ分析し、かつそれに立ち向かう我々のスタンスを明確にしようことを提案したい。
  • まず縦軸として、原因が想定・究明・分析できるか、治療法・対処法が確立しているか、あるいは原因不明で治療も対処の方法もなく、試行錯誤の状況かどうかの分類を取る。
  • 次に横軸としては、その事象がいつ発生するか、発生することが確定的かどうか、あるいは、発生するかしないかは不明で、その可能性がどの程度かも不確定かどうかの分類を取る。
  • 実は、別の次元からの分類も可能であって、治療・対処法が容易か、あるいは困難かによって分類することも可能であるが、ここではその次元が隠れている。
  • コンピュータのバグは人間が作り出したにもかかわらずこのバグの世界は、昆虫の世界と同様に、人間の知恵の及ばない所も多く、まさにバグとは言い得て妙である。
  • しかもそのバグを退治することも、あるいはウイルスのようにはびこらせることをビジネス?あるいは趣味?としているのも人間である。コンピュータ社会は、これらと共存する気はないが、やむなく共生しているのかも知れない。
>Top

3. Kinds of bugs:

  • It is useful to classify and analyze various computer bugs.
  • If we make a Computer Bug Museum, which may have some educational reasoning to show lessons and reflection of computer culture.
  • Most of bugs can be plotted on the above four axis, showing relative relationship among similar but different bugs.
  1. Spaghetti program:
    Spaghetti program is an expression of a very complicated program. Complexity itself may cause bugs, and are difficult to be debugged. Also time make harder in debugging them.
  2. Contradiction among programs:
    Contraction may be also occurs in spaghetti programs. If there are plural incommunicative technical superintendents, the system may be contradictory.
  3. Careless overlooking:
    We may overlook in debugging process, and even slight bugs may cause serious troubles. We should recognize that there are much more errors than correct answer.
  4. Mis-reporting or hushing up:
    Once completion of debugging is reported, it becomes more difficult to find the escaped bugs. If it reported from authorities, it becomes very hard to trace the hiding place.
  5. Out of the assumption:
    The old programmers could not assume their programs to be used over year 2000
  6. Restriction in use:
    Computer programs are usually made considering several conditions in use and possible human errors during operation, but still errors can occur surpassing programmers consideration.
    There are several reserved numbers having special meaning in programs; for example "9999" means "end of the program".
  7. Internal attack or suicide:
    Internal attack or suicidal explosion may cause irregular or emergent stop of the operation by fail-safe mechanism.
  8. Poor Design:
    Even carefully designed system may cause some troubles. Troubles are usually more imaginative than the original designing.
  9. Overlook:
    Overlook or careless blunder in human checking may always occur.
  10. Misーreport:
    There is difference how to behave in the case of making error. Some immediately admit the errors and try to take proper action, or heisted to admit them and try to restore them. These are closely related to ethical or virtuous problems.
  11. Errors in repairs:
    If the repair or debugging is insufficient, there remains still bugs and may cause another errors. Modern big science like airplane or nuclear plant may include such errors during repairs.
  12. Virus:
    Malicious computer virus becomes uncontrollable even by its producer. Network society must tackle with such virus attack to prevent its proliferation with the help of goodwill hackers.
  13. Hidden bugs:
    Programs bugs has similarly latent period. Hidden bugs are difficult to be detected. Y2K problem may occur beyond beginning of January 2000, which may appear later some time.

3. バグの種類:

  • ウイルスを含むコンピュータソフトウェアのバグを、分類することが重要である。コンピュータ・バグ博物館を作ったら、コンピュータ文化の良き反省と教訓と教育の場になるのではないか? 
  • 実際のバグは複雑で上記の4軸のすべてに該当するような気もするが、敢えてプロットすることで、さまざまなバグの相対的な位置関係が明らかになり、似て非なるバグが区別できる。
  1. スパゲッテ・プログラム:
    非常に複雑化したプログラムはスパゲッティプログラムと呼ばれ、その複雑さゆえにいろいろなバグを発生しやすく、かつ見つけにくい。時間が経つとほど見つけにくくなることも似ている。
  2. プログラム間の相互矛盾:
    これもスパゲッティプログラムの中によく発生する。システムにおいても、意志疎通のうまくいかないシステム管理者が複数いる場合、矛盾が生じる。
  3. 見落とし・うっかり:
    これは、人間の常で、些細なことであっても致命傷になる場合が多い。これもスパゲッティ化と関連ある。本来、誤謬の方が正解より圧倒的に数が多いことを認識する必要がある。
  4. 誤報告・もみ消し:
    これは、デバックの結果、問題なしとして報告するケース。一度OKを出したプログラムに逃げおおせたバグを再発見することは至難である。特に権威のある所 (神奈川県警など) からのこれらは非常に困る。
  5. 想定外の使用:
    Y2Kのように2000年を超えて使い続けるとはまさか想定していなかった。
  6. 使用上の制約条件:
    入力条件を予め制約を設けたり、人間が犯しやすい過入力や誤操作も考慮して作成するが、誤りを犯すことの創造力は、それの対応を考慮する創造力をしばしば凌駕する。
    9999など入力しないことなど勝手に条件づけられることもある。
  7. 内部からの攻撃・自殺:
    意図的に攻撃される場合や自爆・自殺など内部の自己否定によるシステムの崩壊など、フェイスセイフの仕組みで、システムダウンが発生する。
  8. 設計ミス:
    慎重にベストを尽くして作成された設計であっても、予想外のトラブルに見舞われる。通常はトラブルの方が、オリジナルの設計よりも想像力に富むと言える。
  9. 見落とし:
    これは見落とし・うっかりミスであって、人間は常に (個人差はあるものの) 必ずミスを犯す。
  10. 誤報告:
    上記のミス発見した場合の対応方法にも個人差がある。速やかにミスを認めて適切な処置を取ろうとするか、あるいはミスを認めようとせずになんとか回復しようとするかです。これらの対応仕方こそが、まさに倫理感が問われる問題でもある。
  11. 修理ミス:
    ミスが共有され、対処がなされたとしても、その修正が不十分な場合はミスが残り、新たなミスを生じさせることもあり得る。航空機事故や原発事故などの巨大科学の分野でも修理ミスは起こり得る現象である。
  12. ウイルス:
    脳もウイルスもコンピュータの擬人化表現だが、時にはウイルスの被害は、制作者すら制御不能な状態となることもある。ネットワーク社会にとってその予防には善意のハッカーの力を借りて対処するしかない。
  13. 潜伏中のバグ:
    プログラムバグにも潜伏期間がある。まだ顕在化していないバグの発見は難しい。Y2K問題が2000年の正月だけでなく、しばらく経ってから顕在化することもあり得る。
>Top

4. Bugs are inevitalbe:

  • Computer bugs are brought by;
    1. rapid growth and rapid change of developing environment of programs,
    2. participation of many programmers and change of generations,
    3. rapid change or discontinuous progress in development methodology and tools,
    4. indefinite role or status of programmers, and
    5. development of network which enables instant exchange of digital data.
  • Y2K problem may correspond to a global effect caused by falling of a meteorite on the earth which will segregate the systems eligible to survive in 21st century.

4. バグは不可避:

  • コンピュータバグが不可避となっている原因として、
    1. プログラム開発環境の急激な成長と変化、
    2. 特に複数のプログラマーの参画とその世代交代、
    3. 手法やツールの急激・不連続な進歩、
    4. SEという職務機能・役割の曖昧さ、
    5. デジタルデータの即時流通を可能にするグローバルなネットワークの発展
      等が考えられる。
  • Y2K問題は、隕石落下による世界的規模の影響に匹敵するとも考えられる。いわばシステムの新旧のスクリーニングがかけれ、21世紀に向けて生き延びるシステムが選別される。
>Top

5. DNA AND LIFE:

Life is maintained by reproduction of DNA (Deoxyribonucleic Acid) , which contains intelligent debugging mechanism during long history of life.

  1. DNA tries to make copy as correct as possible, and miscopied product mostly cannot be allowed to survive. Only exceptional miscopy may lead to 'evolution'.
  2. DNA tries to many trials of copying as long as the species continue. During such endless trials several version of the species best fit to the environment appears.
  3. Defects of DNA due to radiation or activated oxygen can be repaired to certain degree by repairing enzymes, but also DNA has an aging process such as a limit of reproduction (Telomere), or apoptosis (programed cell death) mechanism. An individual survives by death of cell, while a species survives by death of an individual.
  4. Only reproductive cells are released from aging process by special enzyme called 'Teromerase' which can reset the limit of reproduction. Very limited number of new born embryo can grow as a successor of the next generation.
  5. The environment on the earth is mostly stable with natural disaster rarely occurs. Human disaster (war or genocide) is not originally considered, and human developed brain may be unexpected threat to the earth environment.
  6. Numbers recognized by human being have several discontinuity or singularity. Year 2000 is one of the special number for human history, and more serious discontinuous like year 10,000 comes in future.
  7. Life is enforced to continue endless battle against various bugs. Both of life and bugs evolve, and neither side gains total victory against the other; it is a kind of coexistence. It is sensible that a terminology of 'bug' contains all kinds of invisibly small, innumerable, unpleasant and incommunicable creature.
  8. How human beings are looked from a standpoint of bugs? People are recognized as incredibly big creatures with complicated body and mind, who are very different in behavior among individuals. Most of people are enemies of bugs, but rare are friends of bugs who cultivate and distribute bugs. People prefer productivity but often behave destructively; sometimes act sel-tormenting, self-crashing, or even suicide themselves.

5. DNAと生命:

DNAの複製によって生命を維持する方法には、長い生命の歴史を通じたバグ対策ともいうべき知恵が含まれている。

  1. DNAは忠実にコピーするものの、コピーのバグのほとんどは生存が許されずに除去される。非常に例外的にコピーミスが「進化」につながることがある。
  2. DNAは、効率よく沢山の試行を、その種が続く限り繰り返す。その長期間の繰り返しの結果、環境に適応した種のVersion up が行われる。
  3. 放射線等によるDNAの傷はある程度までは修理酵素で修理されるが、それ以上は、DNA複製回数の制限 (テロメア) などアポトーシス (プログラム化された細胞死) によって対処される。いばは細胞死によって個体を活かし、さらに個体死によって種を活かすことになる。
  4. 生殖細胞は、酵素 (テロメラーゼ) によりこの制限がなくなるが、成長過程でのスクリーニングも多く、次の生殖まで継投する役目で少数選ばれたのが生殖細胞である。
  5. 地球環境は、概ね安定で、希に異常・天災が発生する。人災は考慮外だったので、地球と生命との共存関係に人間の存在自体 (特にその頭脳) が地球環境にとって予定外の驚異となっている。
  6. 人間の認識している数学にも多くの不連続・特異点が存在する。2000年はその内のごく初期的な特殊な数字に過ぎず、今後も引き続き発生する。 (西暦10000年など)
  7. 生命は、バグとの不断の闘いであり、生命もバグもそれぞれ進化しつつそれぞれが壊滅することもなく、どちらも永遠に勝利しないという意味ではバグとの共存でもある。
    その意味では、小さくて、見えにくく、気持ち悪く、何を考えているかわからないもの一般を「ムシ」といい、「バグ」と表現した先人の知恵には感服する。
  8. バグから人間を見たらどうなるか? 人間はとてつもなく大きくて、外見は見えやすいが心は見えにくく、美を追究しているようで不自然きわまりなく、個体差は非常に大きく、相互矛盾を抱えており、一斉にバグ退治をするかと思えば、他方ではバグを培養・頒布したりする。また人間は、生産的・秩序的を好む反面で破壊的・無秩序的あるいはさらに自爆的・自虐的・自殺的ですらあるという意味では、バグの敵か味方かわからない。
Comment
  • Human beings are symbiotic with bugs.
  • 人類はバグと共生している。

| Top | Home | Article | Bookshelf | Keyword | Author | Oxymoron |