cygwin 1.7 の紹介

31
Cygwin 1.7 の紹介 id:fd0 天下イヒ仮想化技術大会#1 @IT Frontier 2009-09-29

Upload: fd0-fujimura

Post on 22-Jun-2015

4.834 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: Cygwin 1.7 の紹介

Cygwin 1.7 の紹介

id:fd0天下イヒ仮想化技術大会#1

@IT Frontier2009-09-29

Page 2: Cygwin 1.7 の紹介

2009-09-29 Cygwin 1.7 について 2

Are you using Cygwin?

別に coLinux とかVMware を使えば事足りるだろ JK

Page 3: Cygwin 1.7 の紹介

2009-09-29 Cygwin 1.7 について 3

What's Cygwin?

● http://www.cygwin.com/● Windows のための Linux ライクな環境

– Linux (&POSIX) API emulation DLL– Linux look&feel tools (cyg*.exe)

● 現在は 1.7 へ向けてβテストナウ– 1.5 は既にメンテナンスリリースのみ

Page 4: Cygwin 1.7 の紹介

2009-09-29 Cygwin 1.7 について 4

Notice!

● 本資料は公式ページから自分で理解できる範囲の情報を抽出したものです。

– What's new and what changed in Cygwin 1.7

● そのため誤解している箇所があるかもしれません。m(_ _)m

● あくまで私的和訳のみであるため、実機での確認は一部しかできておりません。

– 誰も知らなかった Cygwin 1.7 - BOOLEANLABEL

Page 5: Cygwin 1.7 の紹介

2009-09-29 Cygwin 1.7 について 5

Cygwin 1.7 features & changes

● OS● File Access● Network● Device● POSIX● Security● Misc

Page 6: Cygwin 1.7 の紹介

2009-09-29 Cygwin 1.7 について 6

Cygwin 1.7 features & changes

● OS● File Access● Network● Device● POSIX● Security● Misc

Page 7: Cygwin 1.7 の紹介

2009-09-29 Cygwin 1.7 について 7

OS

● Windows 95, 98, Me はサポートしない

Page 8: Cygwin 1.7 の紹介

2009-09-29 Cygwin 1.7 について 8

OS

● Windows 95, 98, Me はサポートしない

Page 9: Cygwin 1.7 の紹介

2009-09-29 Cygwin 1.7 について 9

OS

● Windows 95, 98, Me はサポートしない

Page 10: Cygwin 1.7 の紹介

2009-09-29 Cygwin 1.7 について 10

OS

● Windows 95, 98, Me はサポートしない

UNSUPPORTED

Page 11: Cygwin 1.7 の紹介

2009-09-29 Cygwin 1.7 について 11

Cygwin 1.7 features & changes

● OS● File Access● Network● Device● POSIX● Security● Misc

Page 12: Cygwin 1.7 の紹介

2009-09-29 Cygwin 1.7 について 12

File Access (1)

● マウントにレジストリを使用しない– /etc/fstab, /etc/fstab.d/{$USER}– /, /usr/bin, /use/lib は自動

● ファイル名に UTF-8 が使用可能– 大文字小文字も区別できる

● ファイル名に以下のものが使用可能– DOS 特殊文字, デバイスファイル

● PATH_MAX = 4096

Page 13: Cygwin 1.7 の紹介

2009-09-29 Cygwin 1.7 について 13

File Access (2)

● 構造体 dirent にメンバ d_type 追加● 環境変数 CYGWIN

– ntsec → acl/noacl (mount option)– ntea → removed– check_case → removed

● unlink(2), rmdir(2) の改善● 構造体 stat にメンバ st_birthtim 追加● アトミックな O_APPEND モード

Page 14: Cygwin 1.7 の紹介

2009-09-29 Cygwin 1.7 について 14

File Access (3)

● ファイルロックは互いに独立– lockf(2) (POSIX)– flock(2) (BSD)

● シンボリックリンクは UTF-16 – 古い形式を認識できるが互換性なし

● NFS 共有の認識で正しく動作– stat(2), open(2), mkdir(2), chmod(2)

Page 15: Cygwin 1.7 の紹介

2009-09-29 Cygwin 1.7 について 15

File Access (4)

● API 追加– Linux 拡張属性 ([fl]{getxattr, ...)– Win32 ↔ POSIX パス変換

(cygwin_conv_path, ...)– openat 関連 (openat, faccessat, ...)– その他 (posix_fadvise,

posix_fallocate, funopen, ...)

Page 16: Cygwin 1.7 の紹介

2009-09-29 Cygwin 1.7 について 16

Cygwin 1.7 features & changes

● OS● File Access● Network● Device● POSIX● Security● Misc

Page 17: Cygwin 1.7 の紹介

2009-09-29 Cygwin 1.7 について 17

Network (1)

● スレッド/プロセス間でソケット共有可能● IPv6 をサポート

– IPv4 のための代替関数もある– WinSock を使用

● マルチキャスト– netinet/in.h に構造体を定義

● デバイスへの低レベルアクセス–物理 I/F のフラグもサポート

Page 18: Cygwin 1.7 の紹介

2009-09-29 Cygwin 1.7 について 18

Network (2)

● API 追加– ソケット (binresvport, etc...)– インタフェース (if_nameindex, etc...)

● /proc/net/if_inet6 追加

Page 19: Cygwin 1.7 の紹介

2009-09-29 Cygwin 1.7 について 19

Cygwin 1.7 features & changes

● OS● File Access● Network● Device● POSIX● Security● Misc

Page 20: Cygwin 1.7 の紹介

2009-09-29 Cygwin 1.7 について 20

Device (1)

● パイプ再実装– Windows native 名前付きパイプを利用

● 環境変数 CYGWIN– binmode → removed

● コンソール– UTF-8 が使用可能– Linux コンソールおよび xterm 互換

Page 21: Cygwin 1.7 の紹介

2009-09-29 Cygwin 1.7 について 21

Device (2)

● /dev 追加– シリアルインタフェース (/dev/ttyS*)– raw ディスク (/dev/sda, etc...)

● API 追加

Page 22: Cygwin 1.7 の紹介

2009-09-29 Cygwin 1.7 について 22

Cygwin 1.7 features & changes

● OS● File Access● Network● Device● POSIX● Security● Misc

Page 23: Cygwin 1.7 の紹介

2009-09-29 Cygwin 1.7 について 23

POSIX (1)

● setlocale() での文字集合対応– 環境変数 LANG にあらかじめ設定で OK–今は「文字コード」だけが有効–「言語/領土」は POSIX 互換のため

● スレッド毎の並行読み出しロック● pthread_kill(thread, 0) をサポート

–エラーチェックはするがシグナル未送信

Page 24: Cygwin 1.7 の紹介

2009-09-29 Cygwin 1.7 について 24

POSIX (2)

● strings.h から string.h を分離● API 追加

– 名前付きセマフォ (sem_*)– メッセージキュー (mq_*)– 共有メモリ (shm_*)– その他 (_Exit, etc...)

Page 25: Cygwin 1.7 の紹介

2009-09-29 Cygwin 1.7 について 25

Cygwin 1.7 features & changes

● OS● File Access● Network● Device● POSIX● Security● Misc

Page 26: Cygwin 1.7 の紹介

2009-09-29 Cygwin 1.7 について 26

Security (1)

● LSA 認証パッケージ● レジストリ隠し領域にパスワード格納● mkpasswd, mkgroup 仕様変更

–操作の一貫性を維持しやすく

Page 27: Cygwin 1.7 の紹介

2009-09-29 Cygwin 1.7 について 27

Cygwin 1.7 features & changes

● OS● File Access● Network● Device● POSIX● Security● Misc

Page 28: Cygwin 1.7 の紹介

2009-09-29 Cygwin 1.7 について 28

Misc (1)

● ldd 追加● lib{dl,resolv,rt}.a 追加● 長いパス名の切り捨て● DOS パス初回使用時に警告

– CYGWIN=nodosfilewarning● 環境変数領域サイズ制限撤廃● 環境変数を強制的に大文字に変更しない

– CYGWIN=upcaseenv

Page 29: Cygwin 1.7 の紹介

2009-09-29 Cygwin 1.7 について 29

Misc (2)

● プロセス起動時の DLL チェック● /proc/registry{32,64}● /proc/cpuinfo を Linux 互換● /proc/${PID}/mounts 追加

– /proc/mounts → /proc/self/mounts● strstr, memmem 最適化● 古いシグナルマスクの下位互換性排除

Page 30: Cygwin 1.7 の紹介

2009-09-29 Cygwin 1.7 について 30

個人的にうれしいところ

● API 大幅追加で移植の幅が広がりんぐ– dirent.d_type, getaddrinfo(3) は待望

Page 31: Cygwin 1.7 の紹介

2009-09-29 Cygwin 1.7 について 31

ご清聴ありがとうございました