Recently in Unix かんけい Category

mmap() HOWTO

| No Comments | No TrackBacks

デバイスドライバ書いてると、mmap() が使えるようにしたいなー、とか思うわけで。

みたいな記事を読んで、理解できた気がするね。「Linux デバイスドライバ」という本がすごいわけですが、あれだけだとちょっと不十分な感じだったのだ。

そういえば普通にファイルを mmap() して読み書き、というのもやったことないや、と思ったので、ちょっと書いてみた。

#include <stdio.h>
#include <sys/mman.h>
#include <fcntl.h>
#include <unistd.h>

int main(){
  int fd;
  char* p;
  int i;

  fd = open("textfile", O_RDWR);
  if(fd<0) printf("can't open!\n");
  printf("fd=%d\n", fd);
  p= (char*)mmap(NULL, 100, PROT_READ|PROT_WRITE, MAP_FILE|MAP_SHARED, fd, 0);
  printf("p=%lx\n", (long unsigned int)p);
  if(p==MAP_FAILED) printf("can't mmap!\n");

  for(i=0; i<100; i++)
    putchar(p[i]);

  for(i=0; i<10; i++)
    p[i]=0x30+i;

  close(fd);
  return 0;
}

これで、配列の値を変更した通りにちゃんとファイルが書き換わる。Unix はかっこいい仕掛けがいっぱいあるなー。

sync; sync; sync

| No Comments | No TrackBacks

Hi, everyone.

Are you typing "sync; sync; sync" as everyday, or every moment?
Yes, it is important to save you from unexpected system crash...


Aaaaaaaaaaaaaaaaaaaaaaaah!!!!!!!!!!!!

... And now, I've recovered the data manually :)

FreeBSD Device Driver HOWTO

| No Comments | No TrackBacks

My Linux driver is working happily, so I'd like to port it to FreeBSD.
These documents may be important and useful:
- FreeBSD Architecture Handbook
- PCI Resources
- Parallel port interrupt driver skelton.

SIGIO Howto

| No Comments | No TrackBacks

User code to enable async notification by SIGIO:

signal(SIGIO, &handler); // instead, do sigaction() in real code!
fcntl(fd, F_SETOWN, getpid());
int oflags = fcntl(fd, F_GETFL);
fcntl(fd, F_SETFL, oflags|FASYNC);

Driver method:
filp->fasync(): called when FASYNC flag has modified.

Kernel functions:
fasync_helper(): Register listener process.
kill_fasync(): Transmit signals to listener processes.

GhostBSD 1.0 beta mirror.

| No Comments | No TrackBacks

Now I have a copy of GhostBSD 1.0 beta CD image here.. The server is located at Tokyo Japan, and maybe faster than the official sites for most Japanese users.

Visit website of GhostBSD project for detail.

Today's syscall

| No Comments | No TrackBacks

isatty(3) determines whether your file descriptor is a tty or not.
Great.

FreeBSD + ZFS + QEMU + Windows

| No Comments | No TrackBacks

研究室では学生が Windows を使うので (こまったものだ)、大学がライセンス導入している Symantec Antivirus の Corporate Edition みたいなやつを使っている。これは、普通に僕らが電器屋さんで買ってくる奴と違って、サーバで集中管理できるようになっており、定義ファイルをサーバから更新したり、サーバから各クライアントをスキャンしたりすることができて、大変便利。

しかし、このサーバは Windows でしか動かなくて、研究室のサーバ部屋を兼ねている僕の部屋には、Windows の動くマシンというのは、ノートパソコンしかないわけです。じゃあ、Antivirus サーバのために一台計算機増やすか、といわれると、それは夏がつらくなるわけで、絶対無理。

幸いにして Antivirus サーバはそれほど重くないので、研究室の samba サーバになっているマシンに QEMU を入れて、WindowsXP を動かしていた。必要なときに vncviewer や rdesktop で画面を覗けばいいし、けっこう便利だったのだ。kqemu (QEMU accelerator) も動くから、けっこう速い。

ところが、最近 QEMU + kqemu をアップデートしたのがきっかけなのか、Antivirus の動作が変わったのか、Liveupdate をしたら急に重たくなり、ディスクのアクセスランプが付きっぱなしでほとんど動かなくなってしまった。FreeBSD 本体は元気に動いているのだが、rdesktop や vncviewer の反応は全然ダメで、qemu の process status をみると、ずっと ZFS への io が続いており、CPU 使用率は 0.5% とか、それくらい。

つまり、ディスクアクセスがボトルネックなのだ。それに加えて、ZFS な領域にディスクイメージを置いていたので、ZFS が足を引っ張っている状態。この ZFS な領域は、頻繁に更新されるものは置いてなかったので、UFS にすることを決意して、34GB のデータを他のマシンのディスクに rsync して、zpool を破棄して newfs した。

そしたら、一番しんどいときでも CPU 使用率が 5% くらい出るようになり、時間はかかるものの、ちゃんと Liveupdate も完了するようになった。

I/O がボトルネックになるのは、こういう virtual machine の常ではあるけれど、最近 FreeBSD に port された、VirtualBox とかはどうなのかしら。まだ安定してなさそうなので、手を出さずにいるのだけれど...

しかし、喫緊の課題は、ZFS やめてディスクがミラーじゃなくなっちゃったので、これを gmirror か何かでミラーすることである。これは、一度止めないとだめだな...

ゆびきたすEmacs

| No Comments | No TrackBacks

研究室の wiki を使うのに、Pukiwiki-mode + SSL patch を使っていたわけですが、最近自分用の wiki ページを動かしていて、これ使って書いています。

何がいいかというと、テキストベースのメモが一やるのが一ヶ所に集中できて、ネットワークさえあればどのコンピュータからでも使えるわけです。

最近 web ベースのいろんなサービスがあるけど、結局文章を書いたりする作業は Emacs でやるのが一番はかどる気がしていて、これでまたハッピーになれそう。

Wanderlust + multiple accounts

| No Comments | No TrackBacks

Wanderlust の、From: のアドレスで、SMTP サーバを使い分ける という記事をみつけた。

iPhone 用の、Softbank のアカウントを Mail.app だけじゃなくて Wanderlust でも使いたいよなー、と思っていたので、これは便利かも!!!

とりあえず、~/.folders に
%INBOX:osana/clear@imap.softbank.jp:143 "iPhone"
と書いて、受信できるようにしてみた。べんり。

Aspire One その後

| No Comments | No TrackBacks

Suspend/resume は解決までに時間がかかりそうだ。まあ、のんびりやろうと思う。
キーボードは意外と打ちやすいし、画面の広さもそこそこ。ちょっとメールを読み書きするくらいなら、本当にこれで充分。

論文を読んだりするには、ちょっと狭い感じだけど、気が散らなくてちょうどいいかも。
読みたい PDF のファイルを入れてカフェに出かけて、Emacs でメモをとりながら読み、電池が切れたら帰る、みたいな、そんな使い方がいいのかもしれない。

けっこう自転車生活向きかもね。

OpenID accepted here Learn more about OpenID
Powered by Movable Type 5.01

March 2010

Sun Mon Tue Wed Thu Fri Sat
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

About this Archive

This page is an archive of recent entries in the Unix かんけい category.

Mac is the previous category.

写真 is the next category.

Find recent content on the main index or look in the archives to find all content.