SlideShare une entreprise Scribd logo
1  sur  49
Télécharger pour lire hors ligne
What is Metasepi?


 Kiwamu Okabe
プロローグ (cont.)
プロローグ
おしながき
☆ Metasepiとは何か
☆ なぜMetasepiを作るのか
☆ 開発の戦略 (POSIX互換、スナッチ開発)
☆ 実現方法 (NetBSDとjhcの採用)
☆ デモ
☆ Metasepiの今後
Metasepiって何?
☆ http://metasepi.masterq.net/
☆ UNIXモドキkernelを型によって設計する
☆ C言語での記述はできるかぎり小さく
☆ 設計言語はHaskellでもOCamlでも
☆ とにかく早くドッグフード可能にしよう!
名前の由来
☆ コウイカの一種 Metasepia pfefferi
☆ コウイカは大きな骨を持つ (型システム)
☆ 墨はセピア色の原料 (古いOS領域に光を)
☆ 威嚇のために体色を変える (最適な設計に)
☆ λカ娘がイカちゃんだから
http://www.paraiso-lang.org/ikmsm/
どうしてMetasepiを作るの?
☆ C言語より進化した言語を設計に使いたい
☆ 既存設計を安全に改造できるようにしたい
C言語より進化した機能って?
☆ パターンマッチ
☆ パッケージ
☆ 名前空間
☆ 型推論
☆ 対話環境
☆ 高階関数
☆ GC
そんな言語あるの?
以下の言語はコンパイラで型推論を持つ。
☆ Clean - http://clean.cs.ru.nl/
☆ Coq - http://coq.inria.fr/
☆ Haskell - http://www.haskell.org/
☆ OCaml - http://caml.inria.fr/
☆ SML/NJ - http://www.smlnj.org/
などなど
安全に改造?
OSSをほぼそのまま製品搭載できれば良いの
ですが、 機能を追加して製品設計するハメに
なることはありませんか?
☆ システムコール追加
☆ 起動時間改善
☆ 気色わるいメモリマップ
☆ ソフトリアルタイムスケジューラ
などなど
OSS改造あるある: fork
OSS改造あるある: merge
OSS改造あるある: 完全fork
なぜこんなことに?
でも改造するのは本家も同じ
既存コード改造工数を減らさねば
☆ マネージャにmergeタイミング説得できない
☆ 数々のforkが生まれるだけ?
☆ このままではOSS社会は崩壊しまう...
一方MSは着々と手を打っている #1
デバイスドライバに対する静的検証ツールを
WDKで配布。
http://msdn.microsoft.com/ja-jp/library/windows/hardware/
gg487498.aspx

"Static Driver Verifier (SDV) は、カーネル モード ドライバー用に設
計されている、コンパイル時用の徹底した静的な検証ツールで、 徹底した
テストでも発見されない可能性がある重大なエラーを検出します。 SDV
は、C および C++ で記述されている Windows ドライバーのソース コード
を体系的に分析します。 一連のインターフェイスの規則とオペレーティン
グ システムのモデルを使用して、ドライバーが Windows オペレーティン
グ システムと適切に動作しているかどうかを判断します。"
一方MSは着々と手を打っている #2
http://research.microsoft.com/en-us/projects/singularity/


"Singularity は マイクロソフトリサーチ が
2003年から実験的に開発しているオペレーテ
ィングシステム (OS)。高度なディペンダブル
OSとすることを目標とし、カーネルやデバイス
ドライバ、アプリケーションも全てマネージコード
で書かれている。"
"バージョン1.1は2007年3月、バージョン2.0
は2008年11月14日にリリースされ、開発は現
在も進行中である。"
改造工数を小さくする方法はある?
それが型システムです!
型システムのうまみ
☆ ランタイムエラーを少なくできる
☆ 参考:数理科学的バグ撲滅方法論のすすめ
http://itpro.nikkeibp.co.jp/article/COLUMN/20060915/248230/
Metasepiはどうやって設計するの?
☆ 既存のモノリシックkernelと同じ設計に
☆ 当然POSIX互換
☆ 既存kernelを少しずつ型で再設計
☆ 動作可能状態を保ちながら開発(スナッチ)
この設計をアラフラと呼ぶことにします。
http://metasepi.masterq.net/posts/2013-01-09-design_arafura.html
なぜPOSIX互換に?
早い段階でドッグフード可能にするため!
スナッチ開発
http://ja.wikipedia.org/wiki/スナッチャー
実現方法
☆ 開発言語: Haskell
http://www.haskell.org/


☆ コンパイラ: jhc
http://repetae.net/computer/jhc/


☆ 元にするkernel: NetBSD
http://netbsd.org/
プログラミング言語Haskell
☆ 純粋関数型プログラミング言語
☆ 型クラスによる柔軟な表現
☆ gcc比較で2.36のパフォーマンス
http://benchmarksgame.alioth.debian.org/u64/which-programs-are-
fastest.php


☆ 近年はOCamlよりもプログラマが多い?
jhcコンパイラ
http://repetae.net/computer/jhc/
jhcはポータブル
libc不要バイナリ吐ける
jhcのRTSは小さい
☆ RTS = ランタイム = VMみたいなもん
☆ C言語のみで記述されている
☆ コメント込み3000行
☆ これなら改造/自作できそう
☆ 実はプリミティブ型がC言語型
☆ C言語との相性が良い
NetBSD kernel
☆ 移植性高い = 高い抽象化
☆ POSIX互換モノリシックkernel
☆ ソースコード読みやすい
☆ kernel内部APIドキュメント豊富
http://netbsdman.masterq.net/
☆ @master_q が昔仕事でいじってた
技術背景: 過去プロジェクトの失敗
☆ 同様の試みは他にもある
* Funk (OCaml製)
  http://home.gna.org/funk/
* snowflake-os (OCaml製)
  http://code.google.com/p/snowflake-os/
* House (Haskell製)
  http://programatica.cs.pdx.edu/House/
* HaLVM (Haskell製)
  http://corp.galois.com/halvm/


☆ しかし実用化には至っていない
☆ スクラッチからkernelを書くのは無謀では?
作り方:NetBSD kernelを型で写経
☆ C言語で書かれた
☆ NetBSD kernelを
☆ Haskellで少しずつ再設計して (スナッチ)
☆ jhcでコンパイルする
具体例: bootloader 元
/* https://gitorious.org/metasepi/netbsd-arafura/blobs/arafura/sys/
arch/i386/stand/lib/menuutils.c */
const struct bootblk_command commands[] = {
        { "help",       command_help },
        { "boot",       command_boot },
        { NULL,         NULL },
};

void
bootmenu(void)
{
        char input[80];
        for (;;) {
                char *c = input;
                input[0] = '0';
                printf("> ");
                gets(input);
                while (*c == ' ')
                        c++;
                if (*c)
                        docommand(c);
        }
}
具体例: bootloader スナッチ
-- https://gitorious.org/metasepi/netbsd-arafura/blobs/arafura/
metasepi-arafura/sys/arch/i386/stand/boot/Boot2Ara.hs
foreign import ccall "glue_netbsdstand.h command_boot"
c_command_boot :: Ptr a -> IO ()

commands :: Map String (IO ())
commands = Map.fromList [("help", command_help),
                         ("?", command_help),
                         ("boot", c_command_boot nullPtr)]
main :: IO ()
main = do
  putStrLn "Haskell bootmenu"
  forever $ do
    putStr "> "
    s <- getLine
    fromMaybe (putStr s) $ Map.lookup s commands
具体例: kernel 元 #1
/* https://gitorious.org/metasepi/netbsd-arafura/blobs/arafura/sys/
sys/lwp.h */
struct lwp {
        /* --snip-- */
        int             l_flag;
        int             l_stat;
        /* --snip-- */
};
/* These flags are kept in l_flag. */
#define LW_IDLE         0x00000001
#define LW_LWPCTL       0x00000002
#define LW_SINTR        0x00000080
#define LW_SA_SWITCHING 0x00000100
#define LW_SYSTEM       0x00000200
#define LW_SA           0x00000400
#define LW_WSUSPEND     0x00020000
/* Status values. */
#define LSIDL           1
#define LSRUN           2
#define LSSLEEP         3
#define LSSTOP          4
#define LSZOMB          5
具体例: kernel 元 #2
/* https://gitorious.org/metasepi/netbsd-arafura/blobs/arafura/sys/
kern/kern_lwp.c */
        switch (t->l_stat) {
        case LSRUN:
        case LSONPROC:
                t->l_flag |= LW_WSUSPEND;
                lwp_need_userret(t);
                lwp_unlock(t);
                break;
        case LSSLEEP:
                t->l_flag |= LW_WSUSPEND;
                if ((t->l_flag & LW_SINTR) != 0)
                        setrunnable(t);
                else
                        lwp_unlock(t);
                break;
        case LSSUSPENDED:
                lwp_unlock(t);
                break;
        case LSSTOP:
                t->l_flag |= LW_WSUSPEND;
                setrunnable(t);
                break;
具体例: kernel スナッチ #1
data Lflag = Lflag { lwIdle        :: Bool
                  , lwLwpctl      :: Bool
                  , lwSintr       :: Bool
                  , lwSaSwitching :: Bool
                  , lwSystem      :: Bool
                  , lwSa          :: Bool
                  , lwWsuspend    :: Bool }
data Lstat = LsIdl | LsRun | LsSleep | LsStop | LsZomb | LsOnProc
          | LsSuspended

data Lwp = Lwp { lflag :: Lflag
              , lstat :: Lstat
                {-- ...... --} }
data ErrNo = Eperm | Enoent | Esrch | Eintr | Eio | Enxio | E2big
          | Enoexec | Ebadf | Echild | Edeadlk
具体例: kernel スナッチ #2
lwpSuspend :: Lwp -> Lwp -> IO (Either ErrNo ())
lwpSuspend curl t = go $ lstat t
  where go LsRun        = fRunOnproc
        go LsOnProc    = fRunOnproc
        go LsSleep     = do lwpSetFlag lwWsuspend
                            if lwSintr . lflag $ t
                              then setRunnable t
                              else lwpUnlock t
                            return $ Right ()
        go LsSuspended = do lwpUnlock t
                            return $ Right ()
        go LsStop      = do lwpSetFlag lwWsuspend
                            setRunnable t
                            return $ Right ()
        go LsIdl       = fIdlZomb
        go LsZomb      = fIdlZomb
        fRunOnproc     = do lwpSetFlag lwWsuspend
                            lwpNeedUserret t
                            lwpUnlock t
                            return $ Right ()
        fIdlZomb       = do lwpUnlock t
                            return $ Left Eintr
具体例: デバドラ 元 #1
/* https://gitorious.org/metasepi/netbsd-arafura/blobs/arafura/sys/
dev/usb/ehcireg.h */
#define EHCI_USBINTR            0x08    /* RW Interrupt register */
#define EHCI_USBSTS             0x04    /* RO, RW, RWC Status */
#define EHCI_STS_IAA            0x00000020 /* intr on async adv */
#define EHCI_STS_PCD            0x00000004 /* port change detect */
#define EHCI_STS_ERRINT         0x00000002 /* error interrupt */
#define EHCI_STS_INT            0x00000001 /* RWC interrupt */
#define EHCI_STS_INTRS(x)       ((x) & 0x3f)

/* https://gitorious.org/metasepi/netbsd-arafura/blobs/arafura/sys/
dev/usb/ehcivar.h */
#define EREAD4(sc, a) bus_space_read_4((sc)->iot, (sc)->ioh, (a))
#define EWRITE4(sc, a, x) bus_space_write_4((sc)->iot, (sc)->ioh,
(a), (x))
#define EOREAD4(sc, a) bus_space_read_4((sc)->iot, (sc)->ioh, (sc)-
>sc_offs+(a))
#define EOWRITE4(sc, a, x) bus_space_write_4((sc)->iot, (sc)->ioh,
(sc)->sc_offs+(a), (x))
具体例: デバドラ 元 #2
/* https://gitorious.org/metasepi/netbsd-arafura/blobs/arafura/sys/
dev/usb/ehci.c */
Static int ehci_intr1(ehci_softc_t *sc) {
        u_int32_t intrs, eintrs;
        intrs = EHCI_STS_INTRS(EOREAD4(sc, EHCI_USBSTS));
        eintrs = intrs & sc->sc_eintrs;
        EOWRITE4(sc, EHCI_USBSTS, intrs); /* Acknowledge */
        if (eintrs & EHCI_STS_IAA) {
                wakeup(&sc->sc_async_head);
                eintrs &= ~EHCI_STS_IAA;
        }
        if (eintrs & (EHCI_STS_INT | EHCI_STS_ERRINT)) {
                usb_schedsoftintr(&sc->sc_bus);
                eintrs &= ~(EHCI_STS_INT | EHCI_STS_ERRINT);
        }
        if (eintrs & EHCI_STS_PCD) {
                ehci_pcd(sc, sc->sc_intrxfer);
                eintrs &= ~EHCI_STS_PCD;
        }
        if (eintrs != 0) {
                sc->sc_eintrs &= ~eintrs;
                EOWRITE4(sc, EHCI_USBINTR, sc->sc_eintrs);
        }
具体例: このデバドラは何してる?
具体例: デバドラ スナッチ #1
data   UsbdBus = UsbdBus -- xxx
data   SoftContext = SC { scBus :: UsbdBus
                       , iot :: Int
                       , ioh :: Int
                       , scOffs :: Int
                       , scEintrs :: Int
                       , scAsyncHead :: Ptr Int
                       , scIntrXfer :: Ptr Int }

type   BusSpace m a = StateT SoftContext m a
type   Addr = Int

ehciUsbsts, ehciUsbIntr :: Addr
ehciUsbsts = 0x04
ehciUsbIntr = 0x08
ehciStsIaa, ehciStsPcd, ehciStsErrInt, ehciStsInt :: Int
ehciStsIaa    = 0x00000020
ehciStsPcd    = 0x00000004
ehciStsErrInt = 0x00000002
ehciStsInt    = 0x00000001
具体例: デバドラ スナッチ #2
evalTmpl
       :: Int -> (SoftContext -> IO a) -> Int -> BusSpace IO Int
evalTmpl
       flag io ei | ei .&. flag /= 0 = go
                  | otherwise = return ei
 where go = do sc <- get
              liftIO . io $ sc
              return $ ei .&. complement flag

evalWakeup, evalSoftIntr, evalPcd :: Int -> BusSpace IO Int
evalWakeup = evalTmpl ehciStsIaa $ wakeUp . scAsyncHead
evalSoftIntr = evalTmpl (ehciStsErrInt .|. ehciStsInt)
(usbSchedSoftIntr . scBus)
evalPcd = evalTmpl ehciStsPcd (sc -> ehciPcd sc . scIntrXfer $ sc)

evalWrite :: Int -> BusSpace IO ()
evalWrite ei = when (ei /= 0) go
  where go = do sc <- get
                let newEi = scEintrs sc .&. complement ei
                put $ sc {scEintrs = newEi}
                busSpaceOwrite4 ehciUsbIntr newEi
具体例: デバドラ スナッチ #3
evaluateIntr1 :: BusSpace IO ()
evaluateIntr1 =
  do intrs <- fmap ehciStsIntrs $ busSpaceOread4 ehciUsbsts
     sc <- get
     let eintrs = intrs .&. scEintrs sc
     busSpaceOwrite4 ehciUsbsts eintrs
     evalWrite =<< evalPcd =<< evalSoftIntr =<< evalWakeup eintrs
     return ()
       where ehciStsIntrs r = r .&. 0x3f

ehciIntr1   ::   SoftContext -> IO   (Either () SoftContext)
ehciIntr1   sc   = return . Right    =<< execStateT evaluateIntr1 sc

wakeUp              =   undefined
usbSchedSoftIntr    =   undefined
ehciPcd             =   undefined
busSpaceOread4      =   undefined
busSpaceOwrite4     =   undefined
この作り方のメリット/デメリット
メリット
☆ 動作可能な状態を保ったまま型づけ可能
☆ つまりドッグフードできる
☆ C言語コードと共存可能
デメリット
☆ 関数型言語を生かした設計にはならない
現状
jhcでbootloaderの一部をHaskellで書けた
デモ
☆ 動画
http://www.nicovideo.jp/watch/
sm19788831
☆ ソースコード
https://gitorious.org/metasepi/netbsd-
arafura
これからの調査/実装計画
☆ bootloaderを使った型づけトレーニング
☆ jhcのソースコード解析
☆ jhcのGCを組み込み向けに改造
☆ jhcが吐くコードの再入/並列実行
☆ kernelの型づけ手法の確立
Metasepiがもたらす副産物
☆ Haskellコンパイラ内部詳細理解
☆ NetBSD kernelの深い理解
☆ 組み込みHaskell分野開拓
その他Metasepiプロジェクト近傍

Contenu connexe

Tendances

GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法博文 斉藤
 
Continuation with Boost.Context
Continuation with Boost.ContextContinuation with Boost.Context
Continuation with Boost.ContextAkira Takahashi
 
そろそろRStudioの話
そろそろRStudioの話そろそろRStudioの話
そろそろRStudioの話Kazuya Wada
 
dofilewrite and vn_write
dofilewrite and vn_writedofilewrite and vn_write
dofilewrite and vn_writekusabanachi
 
PCさえあればいい。
PCさえあればいい。PCさえあればいい。
PCさえあればいい。bleis tift
 
20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチンyohhoy
 
php7's ast
php7's astphp7's ast
php7's astdo_aki
 
お前は PHP の歴史的な理由の数を覚えているのか
お前は PHP の歴史的な理由の数を覚えているのかお前は PHP の歴史的な理由の数を覚えているのか
お前は PHP の歴史的な理由の数を覚えているのかKousuke Ebihara
 
Python で munin plugin を書いてみる
Python で munin plugin を書いてみるPython で munin plugin を書いてみる
Python で munin plugin を書いてみるftnk
 
PHP AST 徹底解説
PHP AST 徹底解説PHP AST 徹底解説
PHP AST 徹底解説do_aki
 
しょしんしゃのためのhello world
しょしんしゃのためのhello worldしょしんしゃのためのhello world
しょしんしゃのためのhello worldwata2ki
 
Constexpr 中3女子テクニック
Constexpr 中3女子テクニックConstexpr 中3女子テクニック
Constexpr 中3女子テクニックGenya Murakami
 

Tendances (20)

GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法
 
Nginx lua
Nginx luaNginx lua
Nginx lua
 
Continuation with Boost.Context
Continuation with Boost.ContextContinuation with Boost.Context
Continuation with Boost.Context
 
そろそろRStudioの話
そろそろRStudioの話そろそろRStudioの話
そろそろRStudioの話
 
dofilewrite and vn_write
dofilewrite and vn_writedofilewrite and vn_write
dofilewrite and vn_write
 
PCさえあればいい。
PCさえあればいい。PCさえあればいい。
PCさえあればいい。
 
Testman
TestmanTestman
Testman
 
20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン
 
Subprocess no susume
Subprocess no susumeSubprocess no susume
Subprocess no susume
 
php7's ast
php7's astphp7's ast
php7's ast
 
zsh とわたし
zsh とわたし zsh とわたし
zsh とわたし
 
お前は PHP の歴史的な理由の数を覚えているのか
お前は PHP の歴史的な理由の数を覚えているのかお前は PHP の歴史的な理由の数を覚えているのか
お前は PHP の歴史的な理由の数を覚えているのか
 
オープンソースソフトウェア検索サーバ Solr入門
オープンソースソフトウェア検索サーバ Solr入門オープンソースソフトウェア検索サーバ Solr入門
オープンソースソフトウェア検索サーバ Solr入門
 
Python で munin plugin を書いてみる
Python で munin plugin を書いてみるPython で munin plugin を書いてみる
Python で munin plugin を書いてみる
 
SystemV IPC
SystemV IPCSystemV IPC
SystemV IPC
 
Slub data structure
Slub data structureSlub data structure
Slub data structure
 
PHP AST 徹底解説
PHP AST 徹底解説PHP AST 徹底解説
PHP AST 徹底解説
 
0x300
0x3000x300
0x300
 
しょしんしゃのためのhello world
しょしんしゃのためのhello worldしょしんしゃのためのhello world
しょしんしゃのためのhello world
 
Constexpr 中3女子テクニック
Constexpr 中3女子テクニックConstexpr 中3女子テクニック
Constexpr 中3女子テクニック
 

En vedette

Foundationsofahealthyrelationship1 110216093737-phpapp02
Foundationsofahealthyrelationship1 110216093737-phpapp02Foundationsofahealthyrelationship1 110216093737-phpapp02
Foundationsofahealthyrelationship1 110216093737-phpapp02kdcsdross
 
DMV.com Study: Distracted Driving Behaviours and Attitudes in U.S. Drivers
DMV.com Study: Distracted Driving Behaviours and Attitudes in U.S. DriversDMV.com Study: Distracted Driving Behaviours and Attitudes in U.S. Drivers
DMV.com Study: Distracted Driving Behaviours and Attitudes in U.S. Driversdmvcom
 
FGV / IBRE – Gestão de Pessoas e Complexidade Organizacional: O desafio nos H...
FGV / IBRE – Gestão de Pessoas e Complexidade Organizacional: O desafio nos H...FGV / IBRE – Gestão de Pessoas e Complexidade Organizacional: O desafio nos H...
FGV / IBRE – Gestão de Pessoas e Complexidade Organizacional: O desafio nos H...FGV | Fundação Getulio Vargas
 
Mind Mapping: Walking Notes, Urban Awareness Diary, Barcelona
Mind Mapping: Walking Notes, Urban Awareness Diary, BarcelonaMind Mapping: Walking Notes, Urban Awareness Diary, Barcelona
Mind Mapping: Walking Notes, Urban Awareness Diary, BarcelonaNicholas Socrates
 
Manual estimulacion-prenatal-1210563942438206-9
Manual estimulacion-prenatal-1210563942438206-9Manual estimulacion-prenatal-1210563942438206-9
Manual estimulacion-prenatal-1210563942438206-9Marta
 
2011.12 marketing principles
2011.12 marketing principles2011.12 marketing principles
2011.12 marketing principlesStephan Langdon
 
Maximizing the Use of Social Media and Technology at AIRI Institutes
Maximizing the Use of Social Media and Technology at AIRI InstitutesMaximizing the Use of Social Media and Technology at AIRI Institutes
Maximizing the Use of Social Media and Technology at AIRI InstitutesSanky Inc.
 
18 canh dep mua thu tren the gioi (25 nov 11)
18 canh dep mua thu tren the gioi (25 nov 11)18 canh dep mua thu tren the gioi (25 nov 11)
18 canh dep mua thu tren the gioi (25 nov 11)Minh Thich
 
Receiving Bills Electronically
Receiving Bills ElectronicallyReceiving Bills Electronically
Receiving Bills ElectronicallyEnergyCAP, Inc.
 
Reported speech
Reported speechReported speech
Reported speechgabyamaro
 
コマンドライン使いもLibreOffice
コマンドライン使いもLibreOfficeコマンドライン使いもLibreOffice
コマンドライン使いもLibreOfficeKiwamu Okabe
 
Eli leadership principles 7-10-13
Eli leadership principles 7-10-13Eli leadership principles 7-10-13
Eli leadership principles 7-10-13vitalchurches
 
About us story
About us storyAbout us story
About us storyagease
 

En vedette (20)

Foundationsofahealthyrelationship1 110216093737-phpapp02
Foundationsofahealthyrelationship1 110216093737-phpapp02Foundationsofahealthyrelationship1 110216093737-phpapp02
Foundationsofahealthyrelationship1 110216093737-phpapp02
 
CMS Forum
CMS ForumCMS Forum
CMS Forum
 
身の回りの圧縮
身の回りの圧縮身の回りの圧縮
身の回りの圧縮
 
DMV.com Study: Distracted Driving Behaviours and Attitudes in U.S. Drivers
DMV.com Study: Distracted Driving Behaviours and Attitudes in U.S. DriversDMV.com Study: Distracted Driving Behaviours and Attitudes in U.S. Drivers
DMV.com Study: Distracted Driving Behaviours and Attitudes in U.S. Drivers
 
FGV / IBRE – Gestão de Pessoas e Complexidade Organizacional: O desafio nos H...
FGV / IBRE – Gestão de Pessoas e Complexidade Organizacional: O desafio nos H...FGV / IBRE – Gestão de Pessoas e Complexidade Organizacional: O desafio nos H...
FGV / IBRE – Gestão de Pessoas e Complexidade Organizacional: O desafio nos H...
 
Mind Mapping: Walking Notes, Urban Awareness Diary, Barcelona
Mind Mapping: Walking Notes, Urban Awareness Diary, BarcelonaMind Mapping: Walking Notes, Urban Awareness Diary, Barcelona
Mind Mapping: Walking Notes, Urban Awareness Diary, Barcelona
 
Patient Centered
Patient CenteredPatient Centered
Patient Centered
 
Manual estimulacion-prenatal-1210563942438206-9
Manual estimulacion-prenatal-1210563942438206-9Manual estimulacion-prenatal-1210563942438206-9
Manual estimulacion-prenatal-1210563942438206-9
 
2011.12 marketing principles
2011.12 marketing principles2011.12 marketing principles
2011.12 marketing principles
 
Maximizing the Use of Social Media and Technology at AIRI Institutes
Maximizing the Use of Social Media and Technology at AIRI InstitutesMaximizing the Use of Social Media and Technology at AIRI Institutes
Maximizing the Use of Social Media and Technology at AIRI Institutes
 
18 canh dep mua thu tren the gioi (25 nov 11)
18 canh dep mua thu tren the gioi (25 nov 11)18 canh dep mua thu tren the gioi (25 nov 11)
18 canh dep mua thu tren the gioi (25 nov 11)
 
Wherearethey
WherearetheyWherearethey
Wherearethey
 
Receiving Bills Electronically
Receiving Bills ElectronicallyReceiving Bills Electronically
Receiving Bills Electronically
 
Reported speech
Reported speechReported speech
Reported speech
 
Mergers & Acquisitions Newsletter - November 2011
Mergers & Acquisitions Newsletter - November 2011 Mergers & Acquisitions Newsletter - November 2011
Mergers & Acquisitions Newsletter - November 2011
 
コマンドライン使いもLibreOffice
コマンドライン使いもLibreOfficeコマンドライン使いもLibreOffice
コマンドライン使いもLibreOffice
 
Eli leadership principles 7-10-13
Eli leadership principles 7-10-13Eli leadership principles 7-10-13
Eli leadership principles 7-10-13
 
Dzone
DzoneDzone
Dzone
 
About us story
About us storyAbout us story
About us story
 
Teens&Technology
Teens&TechnologyTeens&Technology
Teens&Technology
 

Similaire à What is Metasepi?

スタート低レイヤー #0
スタート低レイヤー #0スタート低レイヤー #0
スタート低レイヤー #0Kiwamu Okabe
 
ラズパイでデバイスドライバを作ってみた。
ラズパイでデバイスドライバを作ってみた。ラズパイでデバイスドライバを作ってみた。
ラズパイでデバイスドライバを作ってみた。Kazuki Onishi
 
x86とコンテキストスイッチ
x86とコンテキストスイッチx86とコンテキストスイッチ
x86とコンテキストスイッチMasami Ichikawa
 
Material
MaterialMaterial
Material_TUNE_
 
Intro to SVE 富岳のA64FXを触ってみた
Intro to SVE 富岳のA64FXを触ってみたIntro to SVE 富岳のA64FXを触ってみた
Intro to SVE 富岳のA64FXを触ってみたMITSUNARI Shigeo
 
Start printf 6_takarakasai
Start printf 6_takarakasaiStart printf 6_takarakasai
Start printf 6_takarakasaitakara kasai
 
Dive into RTS - another side
Dive into RTS - another sideDive into RTS - another side
Dive into RTS - another sideKiwamu Okabe
 
APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。
APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。
APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。Satoshi Mimura
 
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8y_taka_23
 
Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1Ransui Iso
 
Real World OCamlを読んでLispと協調してみた
Real World OCamlを読んでLispと協調してみたReal World OCamlを読んでLispと協調してみた
Real World OCamlを読んでLispと協調してみたblackenedgold
 
Write good parser in perl
Write good parser in perlWrite good parser in perl
Write good parser in perlJiro Nishiguchi
 
Lisp Tutorial for Pythonista : Day 3
Lisp Tutorial for Pythonista : Day 3Lisp Tutorial for Pythonista : Day 3
Lisp Tutorial for Pythonista : Day 3Ransui Iso
 
Common LispでGPGPU
Common LispでGPGPUCommon LispでGPGPU
Common LispでGPGPUgos-k
 
詳説ぺちぺち
詳説ぺちぺち詳説ぺちぺち
詳説ぺちぺちdo_aki
 
Scapy presentation Remake(訂正)
Scapy presentation Remake(訂正)Scapy presentation Remake(訂正)
Scapy presentation Remake(訂正)ashigirl ZareGoto
 
PBL1-v1-006j.pptx
PBL1-v1-006j.pptxPBL1-v1-006j.pptx
PBL1-v1-006j.pptxNAIST
 

Similaire à What is Metasepi? (20)

スタート低レイヤー #0
スタート低レイヤー #0スタート低レイヤー #0
スタート低レイヤー #0
 
ラズパイでデバイスドライバを作ってみた。
ラズパイでデバイスドライバを作ってみた。ラズパイでデバイスドライバを作ってみた。
ラズパイでデバイスドライバを作ってみた。
 
x86とコンテキストスイッチ
x86とコンテキストスイッチx86とコンテキストスイッチ
x86とコンテキストスイッチ
 
Material
MaterialMaterial
Material
 
Intro to SVE 富岳のA64FXを触ってみた
Intro to SVE 富岳のA64FXを触ってみたIntro to SVE 富岳のA64FXを触ってみた
Intro to SVE 富岳のA64FXを触ってみた
 
Start printf 6_takarakasai
Start printf 6_takarakasaiStart printf 6_takarakasai
Start printf 6_takarakasai
 
HPC Phys-20201203
HPC Phys-20201203HPC Phys-20201203
HPC Phys-20201203
 
Dive into RTS - another side
Dive into RTS - another sideDive into RTS - another side
Dive into RTS - another side
 
APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。
APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。
APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。
 
Scapy presentation
Scapy presentationScapy presentation
Scapy presentation
 
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
 
Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1
 
Real World OCamlを読んでLispと協調してみた
Real World OCamlを読んでLispと協調してみたReal World OCamlを読んでLispと協調してみた
Real World OCamlを読んでLispと協調してみた
 
Sml#探検隊
Sml#探検隊Sml#探検隊
Sml#探検隊
 
Write good parser in perl
Write good parser in perlWrite good parser in perl
Write good parser in perl
 
Lisp Tutorial for Pythonista : Day 3
Lisp Tutorial for Pythonista : Day 3Lisp Tutorial for Pythonista : Day 3
Lisp Tutorial for Pythonista : Day 3
 
Common LispでGPGPU
Common LispでGPGPUCommon LispでGPGPU
Common LispでGPGPU
 
詳説ぺちぺち
詳説ぺちぺち詳説ぺちぺち
詳説ぺちぺち
 
Scapy presentation Remake(訂正)
Scapy presentation Remake(訂正)Scapy presentation Remake(訂正)
Scapy presentation Remake(訂正)
 
PBL1-v1-006j.pptx
PBL1-v1-006j.pptxPBL1-v1-006j.pptx
PBL1-v1-006j.pptx
 

Dernier

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 

Dernier (7)

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 

What is Metasepi?