SlideShare ist ein Scribd-Unternehmen logo
1 von 47
Downloaden Sie, um offline zu lesen
oraccha@Plan9




2010   2   10
•   Plan 9         OS

•
•   Plan 9



•            Plan 9 (@go_vm   )
Plan 9
UNIX
   OS

                         Phil Winterbottom




                         Dave Presotto
        Dennis Ritchie               Rob Pike




                                             1995
Plan 9
           UNIX
                     OS

                 Phil Winterbottom          Jim McKie




                 Dave Presotto
Dennis Ritchie               Rob Pike




                                     1995               2004
Plan 9                Google
• Rob Pike   Ken Thompson Russ Cox
               Google

                                                  Plan 10

                             Plan 9
                                                 Plan 11?
Google OS



             http://undergoogle.com/tools/GoogleMasterPlanEN.html
Gopher
Glen and Glenda




           Illustrated by Renée French
Plan 9

“Not only is UNIX dead,
it’s starting to smell really bad.”
              -- Rob Pike, 1991
UNIX                           Plan 9
“the most dangerous enemy of
a better solution is an existing
codebase that is just good
enough”
                       -- Eric Raymond,
         “The art of UNIX Programming”

                Linux        Plan 9 @IT (2009)
UNIX
•   proc

•
•
•   rfork clone

•
•
•   UTF-8
OS Plan 9                 !


=@ DAHAIE@AJ MHIJ=JEI H 2+I ?=A@ JAHE=I E 2= ' JAHECO .ECKHA
IDMIJDA=HH=CAAJ


                     6AH
                                                                                         1JAHAJ


             6AH    6AH     6AH
                                        WS or PC                             /=JAM=O



                                                               -JDAHAJ
                                                 WORM jukebox

      .EA                  +27       +27              .EA                      /=JAM=O



                                                .EAHAJMH

                 ,=J=EJ
                                     SMP


              6AH    6AH    6AH


                                                              Rob Pike, “Plan 9 from Bell Labs” (1995)
                                            +27 IAHLAHI =@ BEA IAHLAHI ID=HA B=IJ ?==HA=
Plan 9

  •
  • 9P
  •
•
•   open-read-write-close
...
                   UNIX
            UNIX

•   GUI
    •   X            MIT

•
    •       UCB
•   UNIX

    O /dev/tty, /proc
    X network interface, X window system
•   Plan 9

    O /dev/cons, /proc, network interface, rio
    window system, http, ftp, environment variable
    X
•           /dev/screen

•                   /dev/window
    /dev/wsys/*/window


•
rio
     •   /dev/^(cons mouse window)



                     app.
         app.
                                       rio
 read /dev/mouse app.
User                                 read /dev/mouse

Kernel          #s                     #m
/net
     •
                             net


     ether0        tcp       udp       cs   dns


         0     1         clone stats

ctl data err listen local remote status
/net/tcp
 •   /net/tcp/N

     •   ctl

     •   data

 •   /net/tcp/clone
% lc /net/tcp
0 1 10 ... clone stats

% lc /net/tcp/0
ctl	 	 data	 err	     	   listen	   local	remote	   status
echo
terminal 1:
% cat /net/tcp/clone        open(“/net/tcp/clone”)     open
5                              (“/net/tcp/*/ctl”)

% cat  /net/tcp/clone

connect 192.168.182.130!7
                                                    terminal 2:
                   % cat /net/tcp/5/data 

                   % echo hoge  /net/tcp/5/data

                   echo
echo
  •   listen      UNIX inetd

      •
          stdio
% aux/listen1 -t tcp!*!7 /bin/service/tcp7 

% cat /bin/service/tcp7

#!/bin/rc

/bin/cat
tcpdump
#!/bin/rc
clonefile=/net/ether0/clone
[4] $clonefile {
	 netdir=`{basename -d $clonefile} ^ /
^ `{cat /fd/4}
	 echo connect -1 $netdir/ctl || exit
'cannot connect'
	 cat $netdir/data | xd -u -x2
}
API
•
    open-read-write-close

    Plan 9   ioctl

•   BSD



•
echo
int fd, n;

char *name;

name = netmkaddr(“plan9.bell-labs.com”,
“tcp”, “echo”);   “204.178.31.2!echo
fd = dial(name, 0, 0, 0);

  :
n = write(fd, buf, sizeof(buf));

read(1, buf, n);
echo
int acfd, lcfd, dfd, n;
char adir[40], ldir[40]                    /net/tcp/5
acfd = announce(tcp!*!7, adir);
for (;;) {                            /net/tcp/6
    lcfd = listen(adir, ldir);
    switch (fork()) {                         UNIX
    case 0:
        dfd = accept(lcfd, ldir);
        while ((n = read(dfd, buf, sizeof(buf)))  0)
          write(dfd, buf, n);
        exits(0);
    }
}
BSD
    Plan 9      BSD socket
     dial                    active open fd
                  socket
  announce                   passive open fd
     dial        connect            active open
       -            bind
  announce         listen
listen/accept     accept
    reject         close
       -        shutdown
UNIX     I/O


Plan 9

 •
 •
Plan 9
•
    •              +fossil



•   Go Plan 9 wiki!
    http://plan9.bell-labs.com/wiki/plan9/
•   i386   AMD64 ARM PowerPC ...

•                         KVM QEMU
    Virtual Box   VMWare Xen   lguest

•
UNIX                     Plan 9
•   Plan9port
    •  Plan 9               UNIX

•   9vx
    •            a.out

    •   Plan 9

•   Glandix
    • Linux
drawterm

•   UNIX   Plan 9 CPU



•             /mnt/term
                mount
•   kencc: ANSI C

•   acme:



•   acid:

•   APE: POSIX
kencc:
                 compiler   assembler   loader
     SPARC         kc           ka        kl
   Power PC        qc           qa        ql
   MIPS (BE)       vc           va        vl
   MIPS (LE)       0c           0a        0l
 Motorola 68000    1c           1a        1l
 Motorola 68020    2c           2a        2l
   ARM (LE)        5c           5a        5l
 AMD64 Intel 960   6c           6a        6l
   DEC Alpha       7c           7a        7l
    Intel 386      8c           8a        8l
  AMD 29000        9c           9a        9l
acme:
man emacs(1)
EMACS(1)

 NAME
        emacs - editor macros

 SYNOPSIS
      emacs [ options ]

 DESCRIPTION
      This page intentionally left blank.

 SOURCE
      MIT

 SEE ALSO
      sam(1), vi(1)

 BUGS
        Yes.
Hello, World!
% cat hello.c
#include u.h
#include libc.h

void main()
{
    print(“Hello, World!n”);
    exits(nil);
}

% 8c hello.c
% 8l -o hello hello.8
% hello
% cat hello.c
#include u.h
#include libc.h

void main()
{
    print(“Hello, World!n”);
    exits(nil);
}

% 8c hello.c
% 8l -o hello hello.8
% hello
ANSI C/POSIX
% cat hello.c
#include u.h
#include libc.h

void main()
{
    print(“Hello, World!n”);
    exits(nil);
}

% 8c hello.c
% 8l -o hello hello.8
% hello
% cat hello.c
#include u.h
#include libc.h

void main()     include/libc.h:
{               1: #pragma lib    “libc.a”
    print(“Hello, World!n”);
                2: #pragma src    “/sys/src/libc”
    exits(nil);
}

% 8c hello.c
% 8l -o hello hello.8
% hello
./hello
% cat hello.c
#include u.h
#include libc.h

void main()
{
    print(“Hello, World!n”);
    exits(nil);
}

% 8c hello.c
% 8l -o hello hello.8
% hello
% ls /env
'*'	 	 boottime	 'fn#sigexit'	pid	 	 terminal
0	 	 cflag	 	 font		 prompt	 	 timezone
NPROC	 	 cputype	 fs	 rcname	 	 user
                 	    	
apid		 ether0	 	 home		 rootdir	 wctl
                                 	
auth		 facedom	 ifs	 	 service	 wsys
               	                 	
bootargs	 fileserver	 objtype	 status
                              	
bootfile	 'fn#cpu%'	path		 sysname


% cat /env/path
./bin
•
                                   /bin
       % ns   | grep /bin
       bind   /386/bin /bin
       bind   -a /rc/bin /bin
       bind   -a /usr/oraccha/bin/rc /bin
       bind   -a /usr/oraccha/bin/386 /bin

    ※Linux    aufs unionfs
•
    % foo
    foo 151: suicide: sys: trap: page fault pc=0x00001025
    % ps | grep foo
    glenda          151    0:00   0:00        8K Broken   foo



•    acid(1)
    % acid 151
    /proc/151/text: 386 plan 9 executable
       :
    acid: stk()



•                               /proc import
FAQ
•
•
•   Ctrl-C

•   UNIX

•            OS

•
•   create

•
•
Plan 9




   An army of Glendas take over IBM’s Blue Gene!!
•   2/23               VM   IIJ

    •         Plan 9

•   3      Plug 9      @


           Plan 9
Plan9       http://d.hatena.ne.jp/oraccha/
@glenda9p
Plan 9
“Narrowness of experience
leads to narrowness of
imagination..”
                             -- Rob Pike,
“Systems Software Research is Irrelevant”,
                                     2000

Weitere ähnliche Inhalte

Was ist angesagt?

#dnstudy 01 ドメイン名の歴史
#dnstudy 01 ドメイン名の歴史#dnstudy 01 ドメイン名の歴史
#dnstudy 01 ドメイン名の歴史
Takashi Takizawa
 
MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話
Yoshinori Matsunobu
 
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
Norishige Fukushima
 

Was ist angesagt? (20)

#dnstudy 01 ドメイン名の歴史
#dnstudy 01 ドメイン名の歴史#dnstudy 01 ドメイン名の歴史
#dnstudy 01 ドメイン名の歴史
 
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
 
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
 
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
 
MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説
 
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
 
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
 
Dockerイメージ管理の内部構造
Dockerイメージ管理の内部構造Dockerイメージ管理の内部構造
Dockerイメージ管理の内部構造
 
ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門
 
KubeEdgeを触ってみた
KubeEdgeを触ってみたKubeEdgeを触ってみた
KubeEdgeを触ってみた
 
AlmaLinux と Rocky Linux の誕生経緯&比較
AlmaLinux と Rocky Linux の誕生経緯&比較AlmaLinux と Rocky Linux の誕生経緯&比較
AlmaLinux と Rocky Linux の誕生経緯&比較
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
 
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
 
root権限無しでKubernetesを動かす
root権限無しでKubernetesを動かす root権限無しでKubernetesを動かす
root権限無しでKubernetesを動かす
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較
 
いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例
 
GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)
GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)
GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法について
 

Ähnlich wie Plan 9のお話

マッコスXで始めるPlan 9
マッコスXで始めるPlan 9マッコスXで始めるPlan 9
マッコスXで始めるPlan 9
Ryousei Takano
 
オペレーティングシステム 設計と実装 第3版(20101211)
オペレーティングシステム 設計と実装 第3版(20101211)オペレーティングシステム 設計と実装 第3版(20101211)
オペレーティングシステム 設計と実装 第3版(20101211)
Ryousei Takano
 

Ähnlich wie Plan 9のお話 (20)

今日から始めるPlan 9 from Bell Labs
今日から始めるPlan 9 from Bell Labs今日から始めるPlan 9 from Bell Labs
今日から始めるPlan 9 from Bell Labs
 
あなたの知らないネットワークプログラミングの世界
あなたの知らないネットワークプログラミングの世界あなたの知らないネットワークプログラミングの世界
あなたの知らないネットワークプログラミングの世界
 
マッコスXで始めるPlan 9
マッコスXで始めるPlan 9マッコスXで始めるPlan 9
マッコスXで始めるPlan 9
 
Plan 9でWebプログラミング
Plan 9でWebプログラミングPlan 9でWebプログラミング
Plan 9でWebプログラミング
 
Open shift
Open shiftOpen shift
Open shift
 
Docker
DockerDocker
Docker
 
Unix Ramblings
Unix RamblingsUnix Ramblings
Unix Ramblings
 
Library Operating System for Linux #netdev01
Library Operating System for Linux #netdev01Library Operating System for Linux #netdev01
Library Operating System for Linux #netdev01
 
Network Stack in Userspace (NUSE)
Network Stack in Userspace (NUSE)Network Stack in Userspace (NUSE)
Network Stack in Userspace (NUSE)
 
unix-rosetta
unix-rosettaunix-rosetta
unix-rosetta
 
stackconf 2022: Cluster Management: Heterogeneous, Lightweight, Safe. Pick Three
stackconf 2022: Cluster Management: Heterogeneous, Lightweight, Safe. Pick Threestackconf 2022: Cluster Management: Heterogeneous, Lightweight, Safe. Pick Three
stackconf 2022: Cluster Management: Heterogeneous, Lightweight, Safe. Pick Three
 
IL: 失われたプロトコル
IL: 失われたプロトコルIL: 失われたプロトコル
IL: 失われたプロトコル
 
myHadoop 0.30
myHadoop 0.30myHadoop 0.30
myHadoop 0.30
 
Touch your NetBSD
Touch your NetBSDTouch your NetBSD
Touch your NetBSD
 
Keynote 1 - Engineering Software Analytics Studies
Keynote 1 - Engineering Software Analytics StudiesKeynote 1 - Engineering Software Analytics Studies
Keynote 1 - Engineering Software Analytics Studies
 
Half-Century of Unix; History, Preservation, and Lessons Learned
Half-Century of Unix; History, Preservation, and Lessons Learned Half-Century of Unix; History, Preservation, and Lessons Learned
Half-Century of Unix; History, Preservation, and Lessons Learned
 
How to Use OpenMP on Native Activity
How to Use OpenMP on Native ActivityHow to Use OpenMP on Native Activity
How to Use OpenMP on Native Activity
 
オペレーティングシステム 設計と実装 第3版(20101211)
オペレーティングシステム 設計と実装 第3版(20101211)オペレーティングシステム 設計と実装 第3版(20101211)
オペレーティングシステム 設計と実装 第3版(20101211)
 
Fun with Ruby and Cocoa
Fun with Ruby and CocoaFun with Ruby and Cocoa
Fun with Ruby and Cocoa
 
Getting Started with Go
Getting Started with GoGetting Started with Go
Getting Started with Go
 

Mehr von Ryousei Takano

クラウド環境におけるキャッシュメモリQoS制御の評価
クラウド環境におけるキャッシュメモリQoS制御の評価クラウド環境におけるキャッシュメモリQoS制御の評価
クラウド環境におけるキャッシュメモリQoS制御の評価
Ryousei Takano
 
AIST Super Green Cloud: lessons learned from the operation and the performanc...
AIST Super Green Cloud: lessons learned from the operation and the performanc...AIST Super Green Cloud: lessons learned from the operation and the performanc...
AIST Super Green Cloud: lessons learned from the operation and the performanc...
Ryousei Takano
 
高性能かつスケールアウト可能なHPCクラウド AIST Super Green Cloud
高性能かつスケールアウト可能なHPCクラウド AIST Super Green Cloud高性能かつスケールアウト可能なHPCクラウド AIST Super Green Cloud
高性能かつスケールアウト可能なHPCクラウド AIST Super Green Cloud
Ryousei Takano
 
Iris: Inter-cloud Resource Integration System for Elastic Cloud Data Center
Iris: Inter-cloud Resource Integration System for Elastic Cloud Data CenterIris: Inter-cloud Resource Integration System for Elastic Cloud Data Center
Iris: Inter-cloud Resource Integration System for Elastic Cloud Data Center
Ryousei Takano
 

Mehr von Ryousei Takano (20)

Error Permissive Computing
Error Permissive ComputingError Permissive Computing
Error Permissive Computing
 
Opportunities of ML-based data analytics in ABCI
Opportunities of ML-based data analytics in ABCIOpportunities of ML-based data analytics in ABCI
Opportunities of ML-based data analytics in ABCI
 
ABCI: An Open Innovation Platform for Advancing AI Research and Deployment
ABCI: An Open Innovation Platform for Advancing AI Research and DeploymentABCI: An Open Innovation Platform for Advancing AI Research and Deployment
ABCI: An Open Innovation Platform for Advancing AI Research and Deployment
 
ABCI Data Center
ABCI Data CenterABCI Data Center
ABCI Data Center
 
クラウド環境におけるキャッシュメモリQoS制御の評価
クラウド環境におけるキャッシュメモリQoS制御の評価クラウド環境におけるキャッシュメモリQoS制御の評価
クラウド環境におけるキャッシュメモリQoS制御の評価
 
USENIX NSDI 2016 (Session: Resource Sharing)
USENIX NSDI 2016 (Session: Resource Sharing)USENIX NSDI 2016 (Session: Resource Sharing)
USENIX NSDI 2016 (Session: Resource Sharing)
 
User-space Network Processing
User-space Network ProcessingUser-space Network Processing
User-space Network Processing
 
Flow-centric Computing - A Datacenter Architecture in the Post Moore Era
Flow-centric Computing - A Datacenter Architecture in the Post Moore EraFlow-centric Computing - A Datacenter Architecture in the Post Moore Era
Flow-centric Computing - A Datacenter Architecture in the Post Moore Era
 
A Look Inside Google’s Data Center Networks
A Look Inside Google’s Data Center NetworksA Look Inside Google’s Data Center Networks
A Look Inside Google’s Data Center Networks
 
クラウド時代の半導体メモリー技術
クラウド時代の半導体メモリー技術クラウド時代の半導体メモリー技術
クラウド時代の半導体メモリー技術
 
AIST Super Green Cloud: lessons learned from the operation and the performanc...
AIST Super Green Cloud: lessons learned from the operation and the performanc...AIST Super Green Cloud: lessons learned from the operation and the performanc...
AIST Super Green Cloud: lessons learned from the operation and the performanc...
 
IEEE CloudCom 2014参加報告
IEEE CloudCom 2014参加報告IEEE CloudCom 2014参加報告
IEEE CloudCom 2014参加報告
 
Expectations for optical network from the viewpoint of system software research
Expectations for optical network from the viewpoint of system software researchExpectations for optical network from the viewpoint of system software research
Expectations for optical network from the viewpoint of system software research
 
Exploring the Performance Impact of Virtualization on an HPC Cloud
Exploring the Performance Impact of Virtualization on an HPC CloudExploring the Performance Impact of Virtualization on an HPC Cloud
Exploring the Performance Impact of Virtualization on an HPC Cloud
 
不揮発メモリとOS研究にまつわる何か
不揮発メモリとOS研究にまつわる何か不揮発メモリとOS研究にまつわる何か
不揮発メモリとOS研究にまつわる何か
 
High-resolution Timer-based Packet Pacing Mechanism on the Linux Operating Sy...
High-resolution Timer-based Packet Pacing Mechanism on the Linux Operating Sy...High-resolution Timer-based Packet Pacing Mechanism on the Linux Operating Sy...
High-resolution Timer-based Packet Pacing Mechanism on the Linux Operating Sy...
 
クラウドの垣根を超えた高性能計算に向けて~AIST Super Green Cloudでの試み~
クラウドの垣根を超えた高性能計算に向けて~AIST Super Green Cloudでの試み~クラウドの垣根を超えた高性能計算に向けて~AIST Super Green Cloudでの試み~
クラウドの垣根を超えた高性能計算に向けて~AIST Super Green Cloudでの試み~
 
From Rack scale computers to Warehouse scale computers
From Rack scale computers to Warehouse scale computersFrom Rack scale computers to Warehouse scale computers
From Rack scale computers to Warehouse scale computers
 
高性能かつスケールアウト可能なHPCクラウド AIST Super Green Cloud
高性能かつスケールアウト可能なHPCクラウド AIST Super Green Cloud高性能かつスケールアウト可能なHPCクラウド AIST Super Green Cloud
高性能かつスケールアウト可能なHPCクラウド AIST Super Green Cloud
 
Iris: Inter-cloud Resource Integration System for Elastic Cloud Data Center
Iris: Inter-cloud Resource Integration System for Elastic Cloud Data CenterIris: Inter-cloud Resource Integration System for Elastic Cloud Data Center
Iris: Inter-cloud Resource Integration System for Elastic Cloud Data Center
 

Kürzlich hochgeladen

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Kürzlich hochgeladen (20)

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 

Plan 9のお話

  • 2. Plan 9 OS • • Plan 9 • Plan 9 (@go_vm )
  • 3. Plan 9 UNIX OS Phil Winterbottom Dave Presotto Dennis Ritchie Rob Pike 1995
  • 4. Plan 9 UNIX OS Phil Winterbottom Jim McKie Dave Presotto Dennis Ritchie Rob Pike 1995 2004
  • 5. Plan 9 Google • Rob Pike Ken Thompson Russ Cox Google Plan 10 Plan 9 Plan 11? Google OS http://undergoogle.com/tools/GoogleMasterPlanEN.html
  • 6. Gopher Glen and Glenda Illustrated by Renée French
  • 7. Plan 9 “Not only is UNIX dead, it’s starting to smell really bad.” -- Rob Pike, 1991
  • 8. UNIX Plan 9 “the most dangerous enemy of a better solution is an existing codebase that is just good enough” -- Eric Raymond, “The art of UNIX Programming” Linux Plan 9 @IT (2009)
  • 9. UNIX • proc • • • rfork clone • • • UTF-8
  • 10. OS Plan 9 ! =@ DAHAIE@AJ MHIJ=JEI H 2+I ?=A@ JAHE=I E 2= ' JAHECO .ECKHA IDMIJDA=HH=CAAJ 6AH 1JAHAJ 6AH 6AH 6AH WS or PC /=JAM=O -JDAHAJ WORM jukebox .EA +27 +27 .EA /=JAM=O .EAHAJMH ,=J=EJ SMP 6AH 6AH 6AH Rob Pike, “Plan 9 from Bell Labs” (1995) +27 IAHLAHI =@ BEA IAHLAHI ID=HA B=IJ ?==HA=
  • 11. Plan 9 • • 9P •
  • 12. • • open-read-write-close
  • 13. ... UNIX UNIX • GUI • X MIT • • UCB
  • 14. UNIX O /dev/tty, /proc X network interface, X window system • Plan 9 O /dev/cons, /proc, network interface, rio window system, http, ftp, environment variable X
  • 15. /dev/screen • /dev/window /dev/wsys/*/window •
  • 16. rio • /dev/^(cons mouse window) app. app. rio read /dev/mouse app. User read /dev/mouse Kernel #s #m
  • 17. /net • net ether0 tcp udp cs dns 0 1 clone stats ctl data err listen local remote status
  • 18. /net/tcp • /net/tcp/N • ctl • data • /net/tcp/clone % lc /net/tcp 0 1 10 ... clone stats % lc /net/tcp/0 ctl data err listen local remote status
  • 19. echo terminal 1: % cat /net/tcp/clone open(“/net/tcp/clone”) open 5 (“/net/tcp/*/ctl”) % cat /net/tcp/clone connect 192.168.182.130!7 terminal 2: % cat /net/tcp/5/data % echo hoge /net/tcp/5/data echo
  • 20. echo • listen UNIX inetd • stdio % aux/listen1 -t tcp!*!7 /bin/service/tcp7 % cat /bin/service/tcp7 #!/bin/rc /bin/cat
  • 21. tcpdump #!/bin/rc clonefile=/net/ether0/clone [4] $clonefile { netdir=`{basename -d $clonefile} ^ / ^ `{cat /fd/4} echo connect -1 $netdir/ctl || exit 'cannot connect' cat $netdir/data | xd -u -x2 }
  • 22. API • open-read-write-close Plan 9 ioctl • BSD •
  • 23. echo int fd, n; char *name; name = netmkaddr(“plan9.bell-labs.com”, “tcp”, “echo”); “204.178.31.2!echo fd = dial(name, 0, 0, 0); : n = write(fd, buf, sizeof(buf)); read(1, buf, n);
  • 24. echo int acfd, lcfd, dfd, n; char adir[40], ldir[40] /net/tcp/5 acfd = announce(tcp!*!7, adir); for (;;) { /net/tcp/6 lcfd = listen(adir, ldir); switch (fork()) { UNIX case 0: dfd = accept(lcfd, ldir); while ((n = read(dfd, buf, sizeof(buf))) 0) write(dfd, buf, n); exits(0); } }
  • 25. BSD Plan 9 BSD socket dial active open fd socket announce passive open fd dial connect active open - bind announce listen listen/accept accept reject close - shutdown
  • 26. UNIX I/O Plan 9 • •
  • 27. Plan 9 • • +fossil • Go Plan 9 wiki! http://plan9.bell-labs.com/wiki/plan9/
  • 28. i386 AMD64 ARM PowerPC ... • KVM QEMU Virtual Box VMWare Xen lguest •
  • 29. UNIX Plan 9 • Plan9port • Plan 9 UNIX • 9vx • a.out • Plan 9 • Glandix • Linux
  • 30. drawterm • UNIX Plan 9 CPU • /mnt/term mount
  • 31. kencc: ANSI C • acme: • acid: • APE: POSIX
  • 32. kencc: compiler assembler loader SPARC kc ka kl Power PC qc qa ql MIPS (BE) vc va vl MIPS (LE) 0c 0a 0l Motorola 68000 1c 1a 1l Motorola 68020 2c 2a 2l ARM (LE) 5c 5a 5l AMD64 Intel 960 6c 6a 6l DEC Alpha 7c 7a 7l Intel 386 8c 8a 8l AMD 29000 9c 9a 9l
  • 33. acme:
  • 34. man emacs(1) EMACS(1) NAME emacs - editor macros SYNOPSIS emacs [ options ] DESCRIPTION This page intentionally left blank. SOURCE MIT SEE ALSO sam(1), vi(1) BUGS Yes.
  • 35. Hello, World! % cat hello.c #include u.h #include libc.h void main() { print(“Hello, World!n”); exits(nil); } % 8c hello.c % 8l -o hello hello.8 % hello
  • 36. % cat hello.c #include u.h #include libc.h void main() { print(“Hello, World!n”); exits(nil); } % 8c hello.c % 8l -o hello hello.8 % hello
  • 37. ANSI C/POSIX % cat hello.c #include u.h #include libc.h void main() { print(“Hello, World!n”); exits(nil); } % 8c hello.c % 8l -o hello hello.8 % hello
  • 38. % cat hello.c #include u.h #include libc.h void main() include/libc.h: { 1: #pragma lib “libc.a” print(“Hello, World!n”); 2: #pragma src “/sys/src/libc” exits(nil); } % 8c hello.c % 8l -o hello hello.8 % hello
  • 39. ./hello % cat hello.c #include u.h #include libc.h void main() { print(“Hello, World!n”); exits(nil); } % 8c hello.c % 8l -o hello hello.8 % hello
  • 40. % ls /env '*' boottime 'fn#sigexit' pid terminal 0 cflag font prompt timezone NPROC cputype fs rcname user apid ether0 home rootdir wctl auth facedom ifs service wsys bootargs fileserver objtype status bootfile 'fn#cpu%' path sysname % cat /env/path ./bin
  • 41. /bin % ns | grep /bin bind /386/bin /bin bind -a /rc/bin /bin bind -a /usr/oraccha/bin/rc /bin bind -a /usr/oraccha/bin/386 /bin ※Linux aufs unionfs
  • 42. % foo foo 151: suicide: sys: trap: page fault pc=0x00001025 % ps | grep foo glenda 151 0:00 0:00 8K Broken foo • acid(1) % acid 151 /proc/151/text: 386 plan 9 executable : acid: stk() • /proc import
  • 43. FAQ • • • Ctrl-C • UNIX • OS • • create • •
  • 44. Plan 9 An army of Glendas take over IBM’s Blue Gene!!
  • 45. 2/23 VM IIJ • Plan 9 • 3 Plug 9 @ Plan 9
  • 46. Plan9 http://d.hatena.ne.jp/oraccha/ @glenda9p
  • 47. Plan 9 “Narrowness of experience leads to narrowness of imagination..” -- Rob Pike, “Systems Software Research is Irrelevant”, 2000