Posts Tagged ‘2年次’

(Quiz/2年次) プログラミング, OS: 配列の要素数外への不正なアクセス

火曜日, 6月 23rd, 2009
#include <stdio.h>

int main(int artc, char *argv[]){
  int array1[5];
  int scalar;

  scalar = 10;
  array[5] = 5; // 配列の要素を超えたアドレスへの不正アクセス                  
  printf("scalar=%d\n",scalar); // 結果は環境依存で異なる                       

  return 0;
}

上記ソース memory.c では次のような処理を行っている.

  1. int 型の配列 array を宣言.配列の要素数は5.
  2. int 型のスカラー変数 scalar を宣言.
  3. scalar に10を代入.
  4. array[5] に 5 を代入.
  5. printf で scalar の値を確認.

このとき,scalar の値は環境依存で結果が異なってしまう.
私が確認した限りでは以下の通りであった.

OS gccバージョン 出力結果
Mac OS X 10.5.7 gcc version 4.0.1 (Apple Inc. build 5490) scalar=5
CentOS release 4.3 (Final) gcc バージョン 3.4.5 20051201 (Red Hat 3.4.5-2) scalar=10

この結果を踏まえて,以下のクイズに答えよ.

  • なぜ結果が環境によって異なるのか?
  • それを解決するにはどうすれば良いか? 具体的にはソースをどのように書き直せば良いか?
  • このような問題が起きないようにするためのウマい方策は無いだろうか?

(FYI) Linuxサーバー構築標準教科書

月曜日, 6月 22nd, 2009

『Linuxサーバー構築標準教科書』開発プロジェクトにて,その教科書(PDF)が無料公開されています.

目次をピックアップすると以下のようになっています.

1 章 Linux のインストール準備と事前学習を行う。
2 章 Linux のインストールと設定を行う。
3 章ネットワークの設定と確認を行う。
4 章 DNS サーバーのインストールと設定を行う。
5 章 Web サーバーのインストールと設定を行う。
6 章メールサーバーのインストールと設定を行う。

2,3年生ならこの教科書を読んで,分からない所は先生/先輩/友人らと相談したり,グーグル先生にお伺いを立てたりして,上記の事が出来るようになって欲しいというレベルかな.
1,2章は分かりにくい部分が多いかもしれません.

webには様々な情報が豊富にありますので,興味を持った事は積極的に調べ,行動に移しましょう!

(Quiz/2年次) 情報ネットワーク: IPアドレスの枯渇

火曜日, 6月 16th, 2009

IPv4 や IPv6でググると,IPアドレスの枯渇に関する記事が大量に見つかる.

IPアドレスの枯渇とは以下のように認識されている問題の事である.

Wikipedia:IPアドレス枯渇問題より)
IPアドレス枯渇問題(アイピーアドレスこかつもんだい)とはインターネットの発展に伴い浮上してきた問題で、現在使用されているIPv4というプロトコルでは近い将来にIPアドレスが不足してしまうことが予想されている事態を指す。インターネット上のノードはIPアドレスによって一意に区別されるが、インターネットの急速な普及により1993年までにクラスBアドレス空間が枯渇してしまうと予測された問題である。

この枯渇が問題視される前は,一般家庭でもプロバイダ契約する事でグローバルIPアドレスが1つ以上割り振られていたこともあったが,最近は家庭で使用するルータ内で NAT (Network Address Ttranslation) や NAPT (Network Address Port Translation) によるネットワークアドレスの変換が行われている事が多い.

上記を踏まえて,以下のクイズに答えよ.

  • NAT や NAPT は万能か否か?そう考える理由は何故か?
  • 他に,IPv4アドレスの枯渇を解決する諸技術にはどのようなものがあるか?
  • IPv6に移行する事でこれまで(IPv4時代)と比べてどのような違いが生じるだろうか?