2009年10月16日金曜日

ネットワークシミュレータ

最近仕事でネットワーク設計と、それらの実装を行うことがあったので考えていたのですが、

仮想的なルータを使用したネットワークのシミュレータがほしいと思いました。
ソフトウェア内部で複数のルータを作成して、ケーブルでつないで、IP設定してPingでちゃんとルーティングできるか検証してそれらの設定を実機に反映させる。

もしこのブログを見ていらっしゃる方がいて、そのようなツールをご存知ならば是非教えてください。

いつになるかわかりませんが少しずつ自分で作ってみようかと考えています。
まずはルーティングのシミュレートができるだけのものを作るつもりです。

2009年10月5日月曜日

Linux(CentOS)でのIP設定

必要になって調べたのでメモとして残しておきます。

  • テストなどで一時的に変更する場合
    #ifconfig インターフェイス名 IPアドレス
    具体例: #ifconfig eth0 192.168.1.1
  • 永続的に変更する場合
    以下のファイルを編集して指定する
    eth0の場合 /etc/sysconfig/network-scripts/ifcfg-eth0
    その後、インターフェイスの再起動

2009年8月19日水曜日

Cの文法[01] 分岐・繰返し

Cの文法です。

C言語は関数が集まった構成になっている。
特殊な

  • 分岐
    • if構文
      else構文はなくてもOK
      if(condition){
      /*condition true */
      }
      else{
      /*condition false*/
      }
  • 繰り返し
    • for文

      for(初期化式; 条件式; 変更式){
      繰り返し処理
      }
    • while文
      conditionの変数が0以外の間繰り返します。
      開始時に0である場合は繰り返し処理は実行されません。

      while(条件式){
      繰り返し処理
      }
    • do/while文
      conditionの変数が0以外の間繰り返します。
      whileと異なり最低でも1回は繰り返し処理が実行されます。
      do{
      繰り返し処理
      }while(条件式)

2009年8月18日火曜日

C言語の概要

概要なのですが、はっきりいってしまうと
Wikipediaを見てもらえればそれでいいと思っています。

個人的に重点だと思ったところだけ以下に記載しておきます。
  • OS(UNIX)の移植用に開発されたため、OSカーネル向けの低レベルな記述ができる
  • 手続き型言語
  • コンパイラ言語
  • 自由度、実行速度、コンパイル速度を優先した結果、
    コンパイル後のコードの安全性が犠牲になっている
特徴
  • フリーフォーマット
  • 構造化をサポート
  • モジュール化がファイル単位で可能
  • プログラムを関数に分離できる
  • 高級言語でありながら低レベル処理が可能
  • 配列参照時の自動的な添字のチェックをしない
    → バッファオーバーフローの要因
  • 文字列を格納するための特別な型が存在しない
    → バッファオーバーランの要因
  • 自動変数の自動的な初期化をしない
    → 誤って不定の値の変数を読み出すバグを作り込みやすい
  • 入出力を含め、実行時の言語独自のランタイムシステムの存在をほとんど期待しない。
    → I/O関係は言語の外にあるため、機種依存性が低い
  • プログラムの実行に必要なハードウェア資源が他の高級言語より少なくてすむ
規格
  • K&R
    標準化されるまでのもの。いわゆるK&Rがリファレンスとして使用された。
  • C89
    ISOとANSIが共同でCの企画の標準化が行われた。
  • C95
    C89に国際化のためのワイド文字版ライブラリが追加された。
  • C99
    C++の機能をいくつか取リ入れた機能拡張がなされた。
  • MISRA-C
    車載用ソフトウェアを対象としたCによるコーディングガイドライン

C/C++の勉強範囲

以下の項目を勉強していきます。
  • C言語
    • 概要
    • 文法
    • プリプロセッサ
    • 標準ライブラリ
  • C++言語
    • 概要
    • 文法
    • プリプロセッサ
    • 標準ライブラリ
    • Boost

C/C++の勉強のためにすること

C/C++を勉強する予定です。
以下は、やることです。
  • C/C++について現状ので知っていることを確認する
  • C/C++についての勉強範囲を決める(そのための調査含む)
  • 対象範囲を勉強するのにかかる時間を見積もる
  • C/C++を勉強する目的を明示的に書き記す
以上をとりあえず実施して、その後に具体的に計画を立てていきます。

2009年8月17日月曜日

OSSオープン・ラボに利用申請してみた

最近OSS製品を使用してサーバ環境を構築したいと考えているのですが、
個人レベルでは、ハードウェアもないため、実験できません。
そこで、IPAが行っているOSSオープン・ラボ(https://www.openlab.ipa.go.jp/)が使用できないかと考えています。
とりあえず、利用規約に目を通した後にアカウント申請してみました。
完全な個人的な目的なので、組織名は個人と入力して登録してみました。

その後、送られてきたメールを確認すると、
Webでの登録後に、さらに、利用登録申請書に記載して
FAXまたは、郵送での申請が必要とのことだったので、
印刷して郵送してみました。
申請書にも利用目的などの項目があり、Webで入力したものを
確認しながら書いたのですが、面倒でした。
なぜWebで登録後にわざわざ郵送する必要があるのでしょうか。
紙媒体での管理が必要なら、メールの印刷などでも対応できるでしょうし・・・。
せめて、利用目的などの項目は、郵送のほうは外してほしかったです。

さて、個人の申請が通るのかわかりませんがレスポンスがあり次第また投稿してみます。

方針転換

あまり更新できていないので、原因を考えてみたのですが、
原因のひとつとして、LPICだけを勉強しているわけではないので、
投稿する内容がない場合が多いことが1つあります。
そのため、LPICに限らず、勉強したことについて、メモ代わりに、
ここで公開していこうかと思っています。

2009年7月26日日曜日

LPICレベル1の出題範囲

LPICレベル1は以下の2種類の試験に合格する必要があります。
LPICレベル1では、Linux の概念や基礎的な操作について出題されます。
  • 101試験
  • 102試験
以下がLPIが公開している101試験の出題範囲です。
  1. システムアーキテクチャ
    1. ハードウェア設定の決定と構成
    2. システムのブート
    3. ランレベルの変更とシステムのシャットダウンまたはリブート
  2. Linuxのインストールとパッケージ管理
    1. ハードディスクのレイアウト設計
    2. ブートマネージャのインストール
    3. 共有ライブラリを管理する
    4. Debianパッケージ管理を使用する
    5. RPMおよびYUMパッケージ管理を使用する
  3. GNUとUnuxのコマンド
    1. コマンド行で操作する
    2. フィルターを追加ってテキストストリームを処理する
    3. 基本的なファイル管理を行う
    4. ストリーム、パイプ、リダイレクトを使う
    5. プロセスを生成、監視、終了する
    6. プロセスの実行優先度を変更する
    7. 正規表現を使用してテキストファイルを検索する
    8. viを使って基本的なファイル編集を行う。
  4. デバイス、Linuxファイルシステム、ファイルシステム階層標準
    1. パーティションとファイルシステムの作成
    2. ファイルシステムの整合性を保持する
    3. ファイルシステムのマウントとアンマウントをコントロールする
    4. ディスククオータを管理する
    5. ファイルのパーミッションと所有者を管理する
    6. ハードリンクとシンボリックリンクを作成・変更する
    7. システムファイルを見つける、適切な位置にファイルを配置する
以下がLPIが公開している102試験の出題範囲です。
  1. シェル、スクリプト、およびデータ管理
    1. シェル環境のカスタマイズと使用
    2. 簡単なスクリプトをカスタマイズまたは作成する
    3. SQLデータ管理
  2. ユーザインターフェイスとデスクトップ
    1. X11のインストールと設定
    2. ディスプレイマネージャの設定
    3. アクセシビリティ
  3. 管理業務
    1. ユーザアカウント、グループアカウント、および関連するシステムファイルを管理する
    2. ジョブスケジューリングによるシステム管理業務の自動化
    3. ローカライゼーションと国際化
  4. 重要なシステムサービス
    1. システム時刻を維持する
    2. システムのログ
    3. メール転送エージェント(MTA)の基本
    4. プリンターと印刷を管理する
  5. ネットワークの基礎
    1. インターネットプロトコルの基礎
    2. 基本的なネットワーク構成
    3. 基本的なネットワークの問題解決
    4. クライアント側のDNS
  6. セキュリティ
    1. セキュリティ管理業務を実施する
    2. ホストのセキュリティ設定
    3. 暗号化によるデータの保護
以上が出題範囲です。
次回から、各項目について記載していきます。

LPICの概要

LPICはLinux Professional Institute Certificationの略称で、
特定非営利活動法人/Linux技術者認定機関のLPIが実施している、Linux技術者認定試験です。

LPICは、現在、以下のレベル1~3の3段階、5種類の試験があります。
上位レベルの試験を受験するには下位レベルの試験に合格する必要があります。
  • レベル1
  • レベル2
  • レベル3 301 Core
  • レベル3 302 Mixed Environment
  • レベル3 303 Security
次は、レベル1の出題範囲について書いていきます。

はじめました

はじめまして、勉強日記を始めてみました。

とりあえず、各資格の対策勉強の内容を投稿して行きます。
手始めにLPICレベル1から初めていきます。