【222】楽しい時

今日はデバッグ手法を学んだ。

デバッグ(debug)とはコンピュータプログラムや電気機器中のバグ・欠陥を発見および修正し、動作を仕様通りのものとするための作業である。(wikipediaより)
「思考のOSのバグを潰す」などと言いながら自己投資を行ったりしつつ
仕事ではガチにデバッグ作業をしている。
ちなみに思考のOSのバグとは
 ・目の前の利益だけを重視する短期的思考
 ・形のある資産(お金、不動産など)を重視して
  形の無い資産(教養、経験、人との縁など)を軽視する思考
などを指しており、何か行動を起こす際の基盤となる指針である。
話をプログラムのデバッグ戻す。
今私が開発に携わっている分野は俗にいう組込み系の製品であり、
例えば下記のものが該当する。
 ・携帯電話
 ・高機能腕時計(スマートウォッチや、ランナーが使うものなど)
 ・洗濯機や電子レンジなどの家電
 ・テレビ
 ・カーナビ
これらの特徴は「小さなコンピュータがその内部に組み込まれており、ある特定の機能を実現するもの」ということができる(と思う)。
特定の機能とは、
・携帯電話なら通話とメール
・腕時計なら時刻表示やGPSによる距離の測定、
・テレビなら番組の視聴
・カーナビならナビや音楽再生
ということ。
これに対して、パソコンを例に挙あげると、汎用性が高く特定の用途が無い(表計算からお絵かきから、なんでもできる)ので組込み機器とは言わない。
何となく、組込み機器は
少ないリソース(体積的にも、コスト的にも、技術的にも)でいかに機能を実現するか
という職人的気質が問われる分野であると考えている。
ソフトウェアを組むにしても、ハードウェアの構造を熟知し、
その性能を活かすために最適化を行う場合もある。
冒頭で述べたデバッグの際も、
何か起こればアセンブラレベルで解析する。
コンピュータが実行するプログラムは、最終的には0と1の羅列で表すことになる。
コンピュータはディジタル値の0と1しか認識できないからだ。
ものすごく単純な例を挙げれば
”0110 1001”という羅列が、”足し算をしてください”という命令を意味したり、
”1100 1100″という羅列が、”値をコピーしてください”という命令を意味したりする。
アセンブラはこれらの命令(特定の意味を持つ数字の羅列)に、
人間が扱いやすいような名前を付けたものである。
“0110 1001″は足し算だから”ADD”という名前をつけたり
”1100 1100”はコピーだから”CPY”という名前をつけたり。
こういったちょっとマニアックなところをついていくのが楽しみだったりする。
つまり、オタクってことなのだ。
おやすみなさい。
=====
今日の学び
 ちょっとマニアックな技術者っぽいところに萌え萌えしてモチベーションを保つ
  • このエントリーをはてなブックマークに追加