コンピュータ関連のメモ

コンピュータ関連のメモ書いてます。内容の保障はいっさいありません。 酒の肴になるかどうかもわからんし、たぶんキャバクラでもやくにたたない(笑)。

12ステップで作る 組込みOS自作入門

12ステップで作る 組込みOS自作入門という本がある。 実におもしろい。H8マイコンを使うのだが、ハンダ付けはいっさい不要。 全てシリアル経由で操作、結果の表示をするので全盲向け。 UNIXの多少の知識と、C言語の入門レベルの知識でなんとか勉強できる。
作者のSITE

出版社のSITE

書き込んで、ブートローダから"hello world"が出たときはやはりうれしいものだ。 馬鹿みたいにボードのリセットスイッチを何回もおして、"hello world" "hello world" ...と繰り返して 遊んでしまった。 ふと思ったのだが、PICとかH8をほんのちょびっとだけいじっただけなのでなんとも言えないのだが、 あんがい組み込み分野は、「全盲向けのフィールド」なのかもしれないと思った。 GUI分野では実質手が出せる分野は乏しいし・・・。

まあそれはともかく、この本は本当になにもないところからやらなければならないので、Cのちょっとした知識だけでは話がおもしろくない。 Makefileの書き方が分からなかったので、以下のサイトガ結構参考になった。
ここのMakefileの記事は結構優しく解説されている。
C言語だが、すでに廃刊になっているけど、Cマガジンの1999/04の「C言語入門講座」に書かれていることを全て分かっていればかなりスムーズに読める本田と思う。 まあ、一般的なCの基礎の基礎が分かっていれば良いということ。ポインタ、構造体がなんとなくわかっていれば、調べつつ読み進んで行けるはず。

Cマガジンのバックナンバーは手に入りにくいのだが Programming Place Plus さんが C言語編 とか 目指せプログラマー! で 結構詳しい講座を書いて織られる。 ので十分にCについての礎は上のサイトで足りる。

Cの話が出たのでついでに、私はCをやり始めて最初に分からなかったことまたは漠然と分からなかったことは変数の型とか、ポインタということだった。 この原因は自分にはハードの知識がまったくないことだった。CPUのレジスタがどういう物なのか、2の補数というものを知らない、ビッグエンディアン・リトルエンディアンとは、浮動小数点のデータ表現を知らない等々上げればきりがない。 このようなことは、Cの入門書には書いてない。

だけどこれは入門レベルでも変数のキャストとか出てきたりしたときや、ポインタをちょっといじりはじめたときにでっくわす大きな問題になると思う。 上のことが少し分かっていればごくごく当たり前のことなのだが、このへんがわからないと「漠然とよくわからない」ということになると思う。 なので上に上げたことはむしろ入門書で書くべきことだと思う。 これが分かっていれば、ポインタも、変数の型も、キャストがなぜ必要なのかは疑問に思わない。むしろよく言われることだが、「コンピュータは器械なんだから何から何まで指示しなければわからないんだよ」ということがよく分かる。

ついでに、私が初めてやった言語がPERLということで、これは変数などの型はない。「PERLとインタプリタがよきにはからってくれる」というものだ。 確かに初心者向けなのかもしれないが、 ところが、このような状態でプログラムというものを始めると、ハードに関連した原因でのトラブルではもうお手上げなのだ。

ソフトはハードを動かすものなのだ。なのでいわゆるプログラマは、ハードの知識の方が、言語の知識よりはむしろ必要だと思う。これは組み込み系を初めて本当に実感したことだ。 「そりゃ組み込みではそうだろうけど・・・」と言われそうだが、いわゆるWindows上でプログラムを書くときでも状況は同じだ。PCというハードを動かすのだから。

組み込みエンジニア以外のプログラマに「ハンダヅケをしろ」とはいわないが、フリップフロップとか等の最低限の電気的な知識などはほしいところだ。

いろいろとノウガキを書いたが、以下に「私がCを始めたときに知っていれば非常に時間の短縮になったんだろうな」と思えるような質問と回答、および本をメモしておく。

ポインタ定義は必要なのですか?
ポインタ虎の巻
低水準上からプログラムを見る(整数処理編)
エンディアンネスの正しい理解
CODE コードから見たコンピュータのからくり
CPUの創りかた

システム管理者は読むべし

Linux等でネット管理や会社のサーバを管理する人は以下のサイトはなかなか良いはず。 linuxシステム奮闘記
ほぼテキストオンリーでの説明で非常に参考になる。 一言でいって、「ものすごい分量」だ。 なんとなくいろいろとよく漠然と疑問がある初心者管理者にとって、打ってつけのさいと。

トップページに戻る

バッファローのWLAE-AG300N

これを2台利用して無線ブリッジにしてあるのだが、AOSS接続でこれはなんの問題もなく繋がっている。 しかーし、EEEPCや、他のものがいっこうに繋がってくれない。 暗号かを無効にしたり、WEPにしたりとやったがどれをやってもだめだめ。 EEEPCはちゃんと近所と思われるSSIDは3件ぐらいひろってリストアップしてくれているのに、WLAE-AG300Nのものはまったく出てこない。 もうめんどうくさくなったので、知り合いから使ってない昔の無線ルーターを借りてきてやってみた。 あっさり繋がってひょうしぬけ。WLAE-AG300Nが不良品だと思っているのだがどうなんだろうか。 まあもう修理をするとか、サポートに聞くとかクソ面倒臭いので、この知り合いのルーターを譲って貰って、我が家ではWLAE-AG300Nの無線ブリッジと、この中古ルータで無線LANになっている。 もうこれでいいさ。いちるのもめんどうくさい。ばかばかしい。1週間も無線LANに振り回されて もうどうでもよくなった。

パソコンは使えればそれでよい

最近はWindowsというか、PC自体に興味がなくなった。とりあえず自分が使えればよい。人のPCのサポートなんかもうしたくないし、人のが動こうが壊れようがどうでもよいのだ。 とはいえ、自分でいざ使わなければならなくなってどうしたらよいかということが多くなった。 初心者の、初心者による、初心者のための音声パソコン小技集 ここは結構参考にさせて頂いている。 もう私にはPCのバージョンアップも、新しいM$のOSにも興味はまったくない。でもさ、どうしても使わなければならない場面が時々ある。 そのときに上のサイトは助かっている。これからもよろしくです。

トップページに戻る