所得税の還付申告

会社勤め、従業員のための豆知識

給料が支払われることはありがたいことですが、給与天引きでいろいろ持っていかれています。
日本国には還付申請というものがあり、払いすぎている場合には還付してもらえます。

しかしながら、これらは申告制となっており、黙っていても返ってきません。
  • 医療費控除
  • 寄付金控除
  • 給与所得者の特定支出控除
  • 住宅ローン減税

医療費控除

年間10万を超える医療関係の費用のうち、10万を引いた額を所得控除として計上できます。
給与支払者であれば、+

寄付金控除

いわゆるふるさと納税 による還付の一部です。所得税に対して控除という形で計上します。
残りの額は翌年の市民税から控除されます(詳しくは専用サイト等で...)。

給与所得者の特定支出控除

仕事に必要な経費を控除対象とするものです。
一般的に雇用主が必要経費をすべて支払っているはずなので、認められにくいでしょう。
(個人事業主の場合は必要経費として税務署を納得させられればよい類いのものという理解)

サラリーマンとしては、勤め先(給与支払者)が必要経費であると証明してもらえないと
認められないので、基礎控除だけと思った方がよいでしょう(会社によるので御相談?)

住宅ローン減税

主として自身が住宅として使用する場合において、年末のローン残高に対する割合に応じて還付されます。
初年度のみ確定申告が必要で、二年目以降は一年目に受領した証明書を給与支払者へ提出することで
年末調整を行ってもらえます。

参考資料

国税庁の"サラリーマンと還付申告"

生活の知恵

書いておこうと思いつつどこにも記録されずに忘れていく事項をメモしておこうと思います。
さていつまで続くのか...

(一般的な?情報になるので、詳しいところは情報ソースを当たったり最新の情報を探すようにしましょう。)

組み込みLinux導入編

冒頭から逃げを書いておきますが・・・
手探り状態、読者対象が具体的に見えない状況下で記載を始めます。
昨今、マトモな出版物も増えてきているので、需要がないかもしれませんが、少しでも道標になれば幸いです。

しかしこれ、Linux関係にまとめていくほうが良さそうですね。
とりあえずの導入として、これだけトップ側に記しておきます。

Linux OSを用いた開発

以前までは、組み込みといえばuITRON系のRTOSが幅をきかせていましたが、
プロセッサ能力向上・メモリ単価の減少、要求要件の拡大などの要因により、
見直されてきているように思います。
最も影響があるのはNetwork Protocol Stackや、複数プラットフォームで共通的に使えるソフトでしょう。

もちろん、ITRON系のリソースも現役です。少ないROM/RAM、軽量なマイコンでも動くので、住み分けができるでしょう。
より低機能であればOSレスもありますし、畑は広大です。

さておき、ひとことでLinux OS開発といっても、OSはもよとり、コンパイラ・アセンブラ・リンカその他ツール類すべてがOpen Source Softwareを使用します。自らソースコードを元に開発環境や実行環境を用意することができます。MicrosoftのVisual Cのように、コンパイラに対価を支払うのとは対照的ですが、何か問題が起きたとき、起きそうなとき、それを知るための方法を、どのように確保するのか、が課題となります。これを商売にしている会社もありますね。

構成

以下に、クロス開発環境を前提としたソフトの構成例を記します。
開発ツールを買えば、裏ではこれらのソフトを準備してくれたりします。
MSDOSやWindows、商用UNIXでやってきた方には、高い金でコンパイラや統合開発環境を買った記憶があることでしょう。

Linux_SW_001.png


黄色い部分が、ターゲットに載せるべきものです。
右下にある、libraryを除く開発ツールは、必須ではありません。必要に応じてセルフ開発環境やデバッグツールを取り込むのがよいでしょう。

ubuntoやdebianの各arch向けディストリを使う場合は、セルフ環境も必要になりそうな気はします。いや、基本はバイナリインストールになっているしょうか。

ベンダ提供

あえてドライバ・アプリのところへ、ベンダ提供~を記載しました。
実務で使っていると、必ずしもすべてをopenにしているのでは無いですから、ね。各社の製造ソフトに関しても、GPL伝播していないものは公開義務を負いませんから公開されることは無いです。GPLv2までの場合は、その再配布責任を追うことから、なんらかの手段で製品で使用したtarballなどの提供を受けることができます。
液晶テレビ・レコーダ・STB・そのほかそれっぽい家電の説明書を眺めてみれば、Open Source使用の旨と、その製品で使用したものの入手方法が記載されているでしょう。
尤も、オンラインでさくっと手に入るところもあれば、電話問い合わせ・郵送による配送もあります。
エンドユーザから公開の依頼が頻繁にはないのでしょう、かねぇ?

ライセンスの話が出てきましたが、これだけで深いネタになります。
僕も把握しきれておらず、法的な問題になる場合は判例を調べた上で判断したほうが良いでしょう。
個人で楽しむ分にも、価値が認められ、公開義務を追うような作りをした場合は、開示を迫る人がでてくるかもしれません。

toolchain

いわゆるコンパイル環境、です。ソースコードをターゲットで動くバイナリに変換します。
最近は LLVMというのが注目を集めているようです?

汎用性を考慮されたソフトの配布では、Makefileを利用していることでしょう。
また、autoconfや独自のconfigrationツールを用意して、buildするホスト環境差分を自動的に検出・適切に変更するような手段を提供しています。

しばらくしてわかったこと

何事も過去の経緯を知ることが理解への早道に繋がることがあります。同じようなものがなぜ複数存在するのか、ディストリビューションのそれぞれの目的、本当に全てが無料なのか。製品に搭載するために必要なことは?などなど。いまだにわからない事だらけですが、所詮個人がわかる範囲なんてのはしれてるわけで。

必要なとき、必要なところで、短時間でほしい情報に辿りつけるハナ・直感力を持てるようにしておくのが、対策となろうかと思います。もしくは大まかに畑を分割して、担当範囲を分けておくか、です。ですよね・・・?
後半は妄想でしかないので...

ABIってなに?

2012/03/04開発環境import

ABIとは

Application Binary Interfaceの略称です。
何のことかと云われると、高級言語(組み込みだと主にCになるでしょう)向けの、
データ配置ルールや関数引数と返値のレジスタ渡しルールを定めたモノです。
これが異なると、オブジェクトリンク時に適切に処理ができません。

object file提供のソフトを結合するケースや、ABIに併せてバイナリデータを
流し込んでくるようなインタフェースを設計した場合に、アタリが出ます。
全てのソースファイルを自分(自社)でbuildするソフト屋ならば、アタリは少ないでしょうが、
基本的に複数名での開発や、LinuxなどのOSを使う場合に動的リンクするライブラリのABIも
揃っていないと、実行時にシヌこととなるでしょう。

このあたり、エミュレータ作ってたり、開発環境の準備をするヒトなんかは
しっかりと把握しておかないとダメですね。昨今はCPUも種類が増えていますし、
バイナリレベルで下位互換を保ってはいても、拡張機能を使うライブラリと
リンクするときなども注意が必要です。

・・・恥ずかしながら、某Java Engineの結合の話が来るまで自分も知らなかったです。
昔は情報源が乏しかったのと、コンパイラなんて使うモノの挙動を見ればいいやと思っていたのですね。
しっかりと仕様書があるので、これを神様として、コンパイラの妥当性すらも
検証していくべきであると考えるようになりましたとさ。。。

ARM

ARM社のオンライン情報サイトが有用です。
コンパイラの参照資料として、以下があげられていました。後半にABIの付いたモノが、
今回ご紹介するものだと思います(未確認)
  • BSABI
  • BPABI
  • EHABI
  • CLIBABI
  • AADWARF
  • CPPABI
  • AAPCS
  • RTABI
  • AAELF
  • ABI Addenda


PowerPC

IBMやfreescale社が ABI仕様書を出しています。
ARMとは異なり、Instruction Setがアーキテクチャにより増減している模様。
今まさにはまっているところなので、後日まとめたいと思います。