雑記」カテゴリーアーカイブ

オペレーティングシステムとは何か

オペレーティングシステム 設計と実装 第3版 1.1

カーネルモードとユーザモード

カーネルモード

CPUがアーキテクチャのすべてに対して命令を実行出来る状態。

すべてのメモリを始めとするハードウェア資源のすべてにアクセス可能な状態で、
主にOSのカーネルが動作する時に利用するモード。

別名として、マスターモード、スーパバイザモード、特権モード などと呼ばれる。

ユーザモード

コンピュータ資源へのアクセスが一部制限されている状態。

通常のアプリケーションプログラム、ソフトウェアが動作する際に利用するモード。


オペレーティングシステムの行う主な仕事

  • ハードウェアを抽象化し、共通化された機能を提供する。
  • アプリケーションに対してハードウェア資源を割り当てる。
  • CPU時間を均等に各プロセスに与えて実行させる。
    (スケジューラによっては均等に割り当てられない)
  • 共通したユーザインターフェイスの提供
    (ユーザが使いやすいインターフェイスの提供)
  • データの管理

要は主に、各リソースの資源管理および、ユーザインタフェースの共通化を行う。

コンピュータシステムの一般的な構造。

オペレーティングシステム 設計と実装 第3版 1.1

コンピュータシステムの構造

コンピュータシステムの構造は、大まかに書くと以下の様になる。

(最上位)アプリケーションプログラム
(中位)システムプログラム
(下位)ハードウェア

アプリケーションプログラム(応用ソフトウェア)

ユーザモードで実行される、利用者が普段使っているアプリケーションソフトウェアの部分。
つまり、一例を挙げると、

image Firefox image Skype

上記のように、ユーザ(利用者)がコンピュータに組み込んで利用するソフトウェアのこと。


システムプログラム(基本ソフトウェア)

オペレーティングシステムと、それに付加するプログラムがここに含まれる。

オペレーティングシステム

Windows だったり、Linux だったり Mac OS だったりという、
各コンピュータごとの差違を吸収し、抽象化してくれるソフトウェアのこと。

また同時に、共通の機能、画面、デザインなどの「共通したインタフェース」を提供することも担う。

オペレーティングシステムに付加するプログラム

動作の区分上は、上記に述べた「アプリケーションプログラム」と同じであるが、
OSのパッケージに含まれているソフトウェアを指す。

例を挙げると、

image電卓 image メモ帳

などがある。


ハードウェア

ここには「物理装置」「マイクロアーキテクチャ」「マシン語」が含まれる。

物理装置

集積回路や電源、その他のパーツで構成される。
ここの部分は電子工学が扱う範囲になる。

マイクロアーキテクチャ

コンピュータにおいての各命令の処理方法を定めた仕様のこと。
このレベルにある物として、CPU (Central Processing Unit) のレジスタや、
データバスなどがあげられる。これらの装置がどのように動作するか、処理するかを定めた物が、
「マイクロアーキテクチャ」である。

*マイクロプログラム(マイクロコード)
最近よく用いられているプロセッサである x86 プロセッサは、CISC 系のCPUに分類され、
これらのCPUでは、内部に非常に小さなプログラムを動作させ、複雑な命令を実装している。

なお、RISC 方式のプロセッサは、原則としてハードウェアの回路(ワイヤードロジック)のみで構成されるため、
このようなプログラムは原則利用されていない。

マシン語

アセンブラ言語のプログラマが良く利用している、コンピュータの制御を行う命令の集まりのことを、
命令セットアーキテクチャ(Instruction set Architecture, ISA) と呼ぶ。

また同時にこれについて、特に2進数のコード(オペコード)のセットとして扱う場合、機械語(マシン語)と呼ばれる。

これらの命令は50~300ぐらいの命令から成り立ち、多くは、マシン内のデータ移動、演算、比較などを行う。

僕がプログラミングをはじめたきっかけ

ブームの元: 僕がプログラミングをはじめたきっかけ – ごみ箱

Twitter : @Sn0wNight さんの呼びかけで、現在皆さんが相次いで書き込む テロ が行われているようです。
tw

というわけで、
テロに乗ってみる。 (あるかいーだ


その前に。

「アサーティブ」っていう言葉。この前 Facebook に、がりんちょと気になることをがりがり書いた時に、
マイクロソフトの伊藤さんに教えて頂きました。

アサーティブ:
自分も相手も大切にした、誠実で率直で対等なコミュニケーションの方法。

ってことなので、いや、私が見下されるのは覚悟の上ですが、
言語とかOSとか dis らないでください。クソがとか言わないで下さい。

だって、 作者さんにとっても申し訳ないじゃないですか!

うし。


使える言語。

HSP
2001 年あたりに触れて、今でなお使い続けてる言語。
私のプログラミング人生を開いてくれたすばらしい存在。
C++
高校2年生頃に、HSP の他にも触ってみたいってことで触れた言語。
何でもかんでもコードで書けちゃうぜいやっほう。っていう遅れた中二病人生をここで送りました。
C#
文部科学省主催の ICTスクールに参加したときに、1~2時間程度で強制的に学習させられた言語。
いまでは、ほとんどのプログラムをこれで書くほど大好きな存在。
Java
大学入ったら強制的にやり出した言語。
C# の感覚で読み書きして何度テストで失敗したことか
PHP
WordPress のここが気に入らない! ってことでいじり始めたら覚えてしまった言語。
サーバ上で超ひっそりと自作プログラム走らせる事がありますが、それの90% はPHP で書いてます。
XHTML / CSS
XHTML 大好きです。
あっ。 HTML 4.01 は書体指定と構造指定とめちゃくちゃごっちゃりしているので、使わない方がいいと思います。
CSS でがりがりやって書くのも、結構好きだったりします。
W3C のチェックには、なるべく通るようにしましょう。
Shell Script
これ・・言語なのかな。言語って事にしておく!
単調な処理をいっぱいやるのが本当に嫌になって、書き始めた言語。
バッチスクリプト
一時期これに、はまっていました。
CUI って楽しい! ってのを見せてくれました。

なぜプログラムを始めたの?

晋遊舎の Windows 100% という雑誌に HSP というプログラミング言語が収録されていて。
当時小学4年生のみむら少年は、コンピュータにインストールし、
適当にソースを書いて、「すげぇ!! ソフト作ってる!」と感動。

これ以降、プログラミングの魅力にはまり、最近はプログラミングに飲まれようとしている危険な存在。

最近は周りの皆さんの技術力に圧倒される日々。


歴史(長いよ!)

1992 年

生まれる。先天性の病気により、即時入院。その後 3歳まで病院。

2001 年あたり。

小学4年生。晋遊舎のWindows 100% という雑誌に付属していた HSP をインストールし、HSPにはまる。

当時は HSP は Version 2.4 で、今と比べると相当機能が無かったりします。
Win32API を直接叩くなんていう行為も出来なかったり。

ひとまず、メモ帳をまねしてソフトを作ってみるか。と、開発を始める。

「学ぶ」っていうのは元々「まねぶ」(=まねる)という言葉から来ているそうです。
今からプログラムを書いてみようとする方は、徹底的にまねるということをするのも、いいのかもしれません。

2003 年あたり。

これぐらいにウェブサイト立ち上げたはず。
当時は、
無料ホームページ 容量無制限【TOK2.com】
ってところでウェブサイト展示してました。

2004 年あたり。

ウェブページに凝りだして、ページの上下に自動的に挿入される(それもかなり大きい)広告に
嫌気がさして、Infoseek に移動。

2005 年あたり。

HSPでのプログラム開発もかなり楽しくなって、コンテストに出品。
HSPプログラムコンテスト2005 一般部門 応募作品(1)
これの 32番 33番 34番 あたりです。
HSPプログラムコンテスト2005 入賞作品一覧
「ウォリス賞」というのを受賞し、「私すげぇ!」ってなったことが記憶に残ってます。

そしてこの年、
HSP のきっかけになった Windows 100% に作ったソフトが掲載されました。
2005年創刊の Windows100% 9月号 および 10月号に掲載されました。

ちなみにこの年、現在 知らない人はいないレベルにスーパープログラマ化してしまった、
@rosylilly さんも出品しており、
当時は Yahoo Messenger で一緒にソフト開発をした記憶があります。
私が教えたり、@rosylilly さんから教えて貰ったり。 今では私が教えられることなんてあるのかしら。

そんなわけで、@rosylilly さんとはこの頃からのつきあい。

2006 年あたり。

2005年のHSP コンテスト参加時に、メモ帳の「メモリの食い方が異常!」と言われてしまったので、
ぐはぐはアップデートしてました。
(文字列記憶のためのメモリを、起動時に一括で取得するとかいう、今では考えられないようなことをやってました。)

更新結果はこんな感じ。

2005年出品時 (Version 7.32) 2006年出品時 (Version 7.51)
hspcontest32 hspcontest122

単なるテキスト処理だけじゃつまらなすぎるってことで、
気合いで構造体を読み書き(バイト操作命令とかでがりがり)して、 RichEdit コントロールを制御。

超グラフィカルなエディタに化ける。

ちなみに、このとき中学生最後の年。
くっそう。 「中学生プログラマとか叫びたかった!」

ちなみにこの作品、 「工学社 賞」を受賞しました。

この年。プログラミングが相当できる皆さんが集まって、集会みたいなことやってました。
今では皆さん社会に出てしまっていたりして、そんなこと難しいですが。

@rosylilly さんはもちろん、他に若き日の @tnzk さんとかもいました。
他にもたくさんプログラミングが出来る人がいたのですが、
今の Twitter のように気軽に連絡できる方法はなく、メールアドレスの取得もそんなに出来る物じゃなかったので、
連絡不可能な人がかなり多いです。皆さんどうしてるのかなぁ。

2007年あたり。

高校生。なっちゃった。
HSP は Ver 3.0 になり、
今まで関数の概念がない、こってこての BASIC だったのが、関数が扱えるように仕様変更されたり。

HSPプログラムコンテスト2007 応募作品
これの 405 番。「ソースコンバータ」
当時持っていた私の技術を全部詰め込んだ作品。

当時は HSP のソースコードは完全に Closed であったため、
それまでの感覚や、ブラックボックステストを何度も行った結果や、ヒアリングなどから、
HSP2 の言語仕様を推測し、それを元に構文解析して、HSP3 のコードに書き直すということを行っていました。

スクリプト言語っていう仕様と、当時のハードウェア環境などからかなり時間のかかる処理で、
テキストをテキストとして扱わず、バイト単位でソースコードを解析して、構文解析してました。

同時に、数式を判断して、適切に括弧をつけて、計算の優先度を修正したり、
いくつか無くなった命令に対して、うまーく書き直してほぼ似たような動作が行えるようにしたり。

ほかに WSH (Windows Scripting Host) を利用して、独自の変換処理を付け加えたりとか懲りすぎてました。

image
設定画面も項目をダブルクリックするとそこの部分が編集状態になるとか。(まさに 表計算ソフトみたいなそんな感じ。)

http://mimumimu.net/software/#SrcConv
ちなみに、ここから最新版がとって来れたりします。

2008年あたり。

HSP に マシン語コードを埋め込むようになり、
Cに恋をしはじめ、Cでなんでも書くようになってくる。

HSPで Win32 API のコール連発しまくってたので、
Cで Win32API 開発はそんなに苦にならず、むしろ「組みやすい!」とか当たり前なことをつぶやいていました。

そしてこの年、
文部科学省主催のICT スクール 2008に参加。
概要 : http://ictschool.nttls.co.jp/2008/outline_2008.html

国がバックということで、参加費はすべて向こうから出してもらえました。ありがたやー。
参加した皆さんのレベルが高すぎて、自分があまりにも低レベルってことに気づかされました。

千葉から大阪に到着し、ふらふらな中、2時間かけて C# と XNA の使い方をたたき込まれる。
当然その日は頭痛でぶっ倒れ、部屋で寝込むことに。
ただ、それぐらい頭を動かしたのは、とってもいい経験で、人間ってこれぐらいできるんだ。っていうことに気づかされました。

もちろん、次の日には C# と XNA が使えるように。

作ったのは、
夏:スカイランナー っていうレーシングゲーム。
産業フェア:Fairy っていう教育系ゲーム。
冬:my croom っていう環境汚染を訴えるアクションゲーム。

このスクールは、夏は夏休みに。冬は冬休みに。

産業フェアについて出てくれと言われたときは、
校長先生に許可を取り、「出張」ってことで行ってきました。
そのときに、マイクロソフトの伊藤さんに出会う。
最初は「熱心に聞く大人だなー」とか思ってたのですが、
バッグに「Microsoft」と書いてあって、超冷や汗が流れた記憶があります。

成果物は
http://octonion.jp/ICT2008/
ここで見られたりします。

そしてこの年、IPA主催の初級システムアドミニストレータ試験に合格しました。

2009年あたり。

C# でぱにっく。
高校でも、生徒会長やり始めて、プログラム組む暇がほとんど無くなる。

文部科学省主催のICTスクール2009に参加。
先生に、「さんかしろー、さんかしろー」と言われたので、参加。(おい

そのときに、 @japlj さんとか @CanI_61st さんとか @qnighy さんとか @yayugu さんとかが一緒で、
爆ぜたくなった。

その中でも特に、はやみんにかなりお世話になりました。どうもです。

作ったのは、GPGPU を使って 道頓堀に飛び込む阪神ファンをシミュレートしようという、
今までにない刷新的なシミュレータ TONBORI

とりあえず成果物は、
http://octonion.jp/ICT2009/
ここで見られたりします。

またこの年、
基本情報技術者試験に登場する「疑似言語」ってーのが、読みにくいよーってことで。
なんなら動かしてしまえ。ということで、「擬似言語シミュレータ SARA」を作成。

その年の「全国商業高等学校協会主催プログラミングコンテスト」で最優秀賞とりました。

同時にこの年、IPA主催の基本情報技術者試験および応用情報技術者試験に合格しました。

それと、今とっても満足してる大好きな、いまの大学にも合格しました。
教授陣がすごい人で、特に Twitter でたまにリプライ飛ばし合う教授は大好きな方です。

2010年あたり。

2009年に作った擬似言語シミュレータSARAから、バグ修正したり、機能追加したり、
ライセンス問題解決したりしたものを、高校の先生の助言により、U-20プログラミングコンテストに出品

結果は、経済産業大臣賞を受賞しました。

ということで、
第31回U-20プロコンで「GeoJapanesis」、「PiQ」、「SARA」の3作品に経済産業大臣賞 – ニュース:ITpro
とかのウェブサイトにのって、大学でも表彰して貰いました。ありがたやー!

大学は、高校が商業系だったこともあり、
一般知識が結構足りず、(数学 and 英語)くっそがむしゃらに勉強して、
個人的には ICTスクール 2010 やったそんな感じ。

勉強会に参加してみたり、勉強のためにどう?と教授に進められ、
国立情報学研究所-National Institute of Informatics
ここに、勉強のために行かせて貰ってます。

2011年あたり。

Windows Phone 7 やべぇ! ってなる日々。
ICTスクール 2008 の皆さんと同窓会やったり、楽しい日々を送ってます。

サークルで C# 布教しようと思ったけれど、拒絶されてます。うーん。

最近、周りがすごくて、私大丈夫かしら。と思う日々です。
そして、 @loutusu さんと案外気が合うところがあるんじゃないかな。と個人的には思ってたり。


はちゃめちゃに長くなりましたが、
こんな感じ。

とりあえず、がんばろうと思えば誰でも出来るから。 それだけ言って、記事の締めとします。

クルックー神社 作ってみた

どうも。つまらんブログです。

今回は @misodengaku さんと完全タイアップ
夢のコラボレーションです。

misodengaku さん。

歴とした「馬」なのでお間違えなく。
にしても、クルックーなんて鳴き声しそうでしょ。

また彼は、
スーパーカジキレーシング(SKR)HP

という、ウェブサイトも運営しています。

さて。このたび、私が「クルックー神社」なんて言ったもんですから、
気を利かせて作ってくれました。すばらしいお方ですね。(白目

とりあえず。

1.印刷

288641572

2.切り出し

288691743

3.組み立て

288787824

4.完成

288812731

288813390

ひっじょーにありがたい神社ですね!!

もう、みそでんがくさん大好きになるレベル!

・・・疲れました。制作時間6時間ほど。

・・課題やらなきゃ。

BCN AWARD 2011 行ってきた。

ども。みむらです。

BCNが行っている BCN AWARD の 2011 に参加してきました。

BCNアワードとは 実売データに基づいてNo1メーカーを讃える BCN AWARD
( http://bcnranking.jp/award/about/index.html )

BCN AWARD については上のサイトを見てもらうとして・・。

とりあえず、 U-20 プログラミングコンテストで前回賞を受賞した関連で、
行ってきたそんな感じです。

詳細はこの辺を・・。
BCN、「BCN AWARD 2011」表彰式、ミラーレス一眼など4部門を新設
( http://bcnranking.jp/news/tag/index.html?tg=391 )

それでもって、ここに笑顔のすばらしい(?) 私が映り込んでます。
ITジュニア育成交流協会、協賛企業やITジュニア賞OBがエール送る「BCN ITジュニア賞 2011」懇親会
( http://bcnranking.jp/news/1101/110114_19067.html )

まー。そんな感じで-。ではでは。