FreeBSD Daily Topics

2014年5月7日/dev/full疑似デバイスファイル登場

src

/dev/full is always full

FreeBSD 11.0-CURRENTに疑似デバイスファイル/dev/fullが追加されましたリビジョン265132⁠。/dev/fullはディスク容量がフル状態を模擬的に作り出しているデバイスファイルで、ディスク容量がフル状態になっている場合のソフトウェアの動作をチェックするといった目的で使われます。

 新しく追加された/dev/full疑似デバイスファイル
$ ls -l /dev/full
crw-rw-rw-  1 root  wheel  0x9 May  3 14:39 /dev/full
$

/dev/fullからデータを読み込むとNUL文字データ(0x00)が取り出されます。この動きは/dev/zeroと同じです。

 読み込みに関しては/dev/fullは/dev/zeroと同じ
$ dd if=/dev/full bs=1 count=1 | hexdump
1+0 records in
1+0 records out
1 bytes transferred in 0.000026 secs (38480 bytes/sec)
0000000 0000
0000001
$

/dev/fullへデータを書き込もうとするとディスクに空きがないため書き込めないといったエラーメッセージが表示されます。

 /dev/fullへ書き込もうとするとディスク容量にあまりがないので書き込めないと言われる
$ dd if=/dev/zero of=/dev/full bs=1 count=1
dd: /dev/full: No space left on device
1+0 records in
0+0 records out
0 bytes transferred in 0.000214 secs (0 bytes/sec)
$

/dev/fullへ書き込みが実行されると、具体的には/usr/src/sys/dev/null/null.cの90行目近辺に記載されているfull_write関数が実行されます。この関数は次のようにENOSPCという値を返しているだけです。

リスト /dev/fullへの書き込みはENOSPCの値が返ってくるという処理だけ
86    /* ARGSUSED */
87    static int
88    full_write(struct cdev *dev __unused, struct uio *uio __unused, int flags __unused)
89    {
90 
91        return (ENOSPC);
92    }

ENOSPCは/usr/src/sys/sys/errno.hで次のように定義されているエラー番号で、コメントに説明があるように容量がフル状態でこれ以上書き込めないといったことを意味しています。

リスト ENOSPCはフル状態でこれ以上書き込めないことを示すエラー番号
#define    ENOSPC        28        /* No space left on device */

/dev/fullの実装は/usr/src/sys/dev/null/null.cに追加されました。/usr/src/sys/dev/null/null.cには/dev/null、/dev/zero、/dev/fullの3つの疑似デバイスファイルのコードが混ざっています。この3つの疑似デバイスファイルが共通の処理をするところが多いため個別に分けるよりもマージしておくことができます。

告知

技評×オングス FreeBSD 10新機能紹介と変更点説明

2014年5月22日に技術評論社本社ビル5F会議室において技評×オングス FreeBSD 10新機能紹介と変更点説明 ~新世代のFreeBSDについて知ろう~を開催します。参加申し込みはこちらからどうぞ。

先日、次世代メジャーアップグレードバージョン「FreeBSD 10.0-RELEASE」が登場しました。10.0-RELEASEではいくつ大きな変更があるほか、これまで望まれてきたさまざまな機能が追加されています。10で導入される新機能や大きな変更点などを取り上げ、新しい機能をどのように扱ったらよいのか、変更に関してどのように対処すればよいのかを詳しく解説します。Linuxを扱っている方にもぜひご参加いただきたい発表会です。

  • 次世代パッケージ管理システムpkg(8)
  • 次世代ハイパーバイザ/仮想環境基盤 BHyVe
  • BINDをベースシステムから廃止/UnboundとLDNSの導入と活用方法
  • GCCをベースシステムから廃止/LLVM Clangの導入
  • Amazon EC2デフォルト対応/Microsoft Hyper-Vデフォルト対応
  • ZFS機能強化(LZ4とその効果、L2ARC圧縮による性能向上、NOP Write最適化、SSD対応、今後の開発方針など)
  • オンラインでファイルシステムを拡張できるUFS growfs(8)
  • 新しいカーネルレベルiSCSIターゲット/イニシエータ
  • ファイアウォールpf(4)マルチコア対応
  • ファイアウォールipfw(8)機能強化マルチコア/メニーコアで性能向上 Unmapped VMIOバッファ
  • 高速ネットワーク通信機能NetMap
開催日時2014年5月22日(木)19:00~21:30(18:30開場)
場所技術評論社 本社5F会議室 ⁠東京都新宿区市谷左内町21-13)
参加申込http://atnd.org/events/49883
第29回 FreeBSD勉強会

2014年6月2日(月)に東京、KDDIウェブコミュニケーションズさまの会議室において第29回 FreeBSD勉強会 シェルとコマンド~実践的企業システム開発手法を開催します。参加申し込みはこちらからどうぞ。

近年、企業の基幹システム(売上管理システム、商品マスタ管理システム、販売管理システム、在庫管理システム、勘定系システム、MDシステム、勤怠管理システム、給与系システム、データ分析システム、ログ分析システムなど)の開発手法として超高速開発手法と呼ばれる開発手法が注目されつつあります。

現在の企業活動に求められるシステムの開発時間はますます短くなっており、従来のウォーターフォール型の開発では経営の要求に応えることが難しくなりつつあります。高性能なシステムを短期間に開発できる開発手法の需要が高まってます。

本勉強会ではFreeBSDを企業システムのベースに採用し、シェルとコマンドを組み合わせて企業システムを開発する手法を紹介します。この手法は企業システムの開発速度がきわめて高速で、開発される成果物も高性能という特徴があります。こうした開発手法の草分け的存在がユニバーサル

  • シェル
  • プログラミング研究所が開発しているユニケージ開発手法です。オングスではトリプル
  • ティー開発手法と呼ばれるシェルとコマンドをベースとした開発手法を活用して企業システムを開発しています。
  • 本勉強会ではこうした企業システム開発の実践経験などをベースに、どのような発想で企業システムを開発するのか、シェルとコマンドをベースとしたシステム開発とはいったいどのようなものなのか、コマンドとしてはどういったものが活用できるのか、などを紹介します。

    開催日時2014年6月2日(月)19:00~21:30(18:30開場)
    場所KDDIウェブコミュニケーションズ会議室 / 東京都千代田区麹町三丁目6番地 住友不動産麹町ビル3号館
    参加申込http://atnd.org/events/49885

    発表のあとはその場で簡単な懇親会を開きます。軽いつまみとアルコール類は用意しますが、お好きなお酒の持ち込みも大歓迎です。

    おすすめ記事

    記事・ニュース一覧