SlideShare una empresa de Scribd logo
1 de 11
Software Development with
  Editor, Kernel and VM
       Shuzo Kashihara
         @suma90h
        April 22, 2012
About
•   柏原 秀蔵 (23 years old)

•   @suma90h, id:obfuscation

•   https://github.com/suma

•   Engineer at Preferred Infrastructure

•   Interest

    •   Developing Hex Editor

    •   Software testing
Agenda
•   Development life-cycle with Text Editor....

    •   我々は毎日何を行っているのだろう?



•   目的(ゆるふわ)

    •   テキストエディタというインタフェースはこのままで
        良いのだろうか?(問い)

    •   未来のテキストエディタ、開発スタイルを考えよう
我々のPC生活


Vim     Emacs      Apps


      OS(kernel)


もしかして:Virtual Machine


       Hardware
KernelとVMの共通点

• ハードウェアの抽象化
• リソース管理
 • プロセス、メモリ、CPU
• APIの提供

• ところでVM? VMM? → 細かいことは..
エディタは?
•   言わずもがなアプリケーション(user mode)

    •   Vim, Emacs, Eclipse...



•   Kernel, VMと同じ視点から考える

    •   テキスト内部を気せず編集できる → 抽象化

    •   編集バッファ、Undoバッファ→リソース管理

    •   elispの実行環境(Emacs) → VM?
コンテキストスイッチを考える




• Kernel <-> アプリ
• VMM <-> Kernel → 今回は考えない
• エディタ <-> 人間
エディタと人間
•   ソフトウェア開発で人間は...

    •   考える、設計する、妄想する

    •   コーディングする with Editor(and Kernel)

    •   ビルド、実行、デバッグ... wtih App      エディタと他アプリの
        •   コードとにらめっこ              行き来で、人間のコンテキス
                                      トスイッチも発生!

•   エディタ(画面・操作)、他のアプリ、思考の行き来
バイナリエディタでは

•   人間は...

    •   16進数ダンプを見る、ASCIIなど読める部分を読む w Editor

    •   色で見る、耳で聞く? w Editor

    •   考える

    •   データを抜き出したり加工する w Editor
複数のことを同時に考えるのは無理ぽ


•   GB単位のバイナリデータを目grepとか無理

    •   バイナリエディタで支援 視覚化 etc



•   大規模ソフトウェア開発

    •   コード量が増えると一度に編集できない

    •   モジュール化、高レベルなプログラミング言語を利
        用して開発時に思考する量を減らす
未来のエディタに求めたいこと

•   バイナリエディタ

    •   求められる機能(Feature)はハッキリしている → ok




•   テキストエディタ・開発環境

    •   Terminalとエディタ、人間のコンテキストスイッチを減らしたい

    •   でもマルチタスクしたい

        •   リファレンス、ブラウザを見たい

        •   分散システムの結合テストとかもやる...

Más contenido relacionado

Más de Shuzo Kashihara

gRPCをちょこっと調べた話
gRPCをちょこっと調べた話gRPCをちょこっと調べた話
gRPCをちょこっと調べた話Shuzo Kashihara
 
論文輪読会のススメ
論文輪読会のススメ論文輪読会のススメ
論文輪読会のススメShuzo Kashihara
 
Reading “Unikernels: Rise of the Virtual Library Operating System”
Reading “Unikernels: Rise of the Virtual Library Operating System”Reading “Unikernels: Rise of the Virtual Library Operating System”
Reading “Unikernels: Rise of the Virtual Library Operating System”Shuzo Kashihara
 
Jubatus Casual Talks #2 Jubatus開発者入門
Jubatus Casual Talks #2 Jubatus開発者入門Jubatus Casual Talks #2 Jubatus開発者入門
Jubatus Casual Talks #2 Jubatus開発者入門Shuzo Kashihara
 
Jubatusでマルウェア分類
Jubatusでマルウェア分類Jubatusでマルウェア分類
Jubatusでマルウェア分類Shuzo Kashihara
 
PFIインターン最終発表
PFIインターン最終発表PFIインターン最終発表
PFIインターン最終発表Shuzo Kashihara
 
VC++プロジェクト向け難読化ツールの開発
VC++プロジェクト向け難読化ツールの開発VC++プロジェクト向け難読化ツールの開発
VC++プロジェクト向け難読化ツールの開発Shuzo Kashihara
 

Más de Shuzo Kashihara (9)

SensorBeeの紹介
SensorBeeの紹介SensorBeeの紹介
SensorBeeの紹介
 
gRPCをちょこっと調べた話
gRPCをちょこっと調べた話gRPCをちょこっと調べた話
gRPCをちょこっと調べた話
 
論文輪読会のススメ
論文輪読会のススメ論文輪読会のススメ
論文輪読会のススメ
 
Reading “Unikernels: Rise of the Virtual Library Operating System”
Reading “Unikernels: Rise of the Virtual Library Operating System”Reading “Unikernels: Rise of the Virtual Library Operating System”
Reading “Unikernels: Rise of the Virtual Library Operating System”
 
The Google File System
The Google File SystemThe Google File System
The Google File System
 
Jubatus Casual Talks #2 Jubatus開発者入門
Jubatus Casual Talks #2 Jubatus開発者入門Jubatus Casual Talks #2 Jubatus開発者入門
Jubatus Casual Talks #2 Jubatus開発者入門
 
Jubatusでマルウェア分類
Jubatusでマルウェア分類Jubatusでマルウェア分類
Jubatusでマルウェア分類
 
PFIインターン最終発表
PFIインターン最終発表PFIインターン最終発表
PFIインターン最終発表
 
VC++プロジェクト向け難読化ツールの開発
VC++プロジェクト向け難読化ツールの開発VC++プロジェクト向け難読化ツールの開発
VC++プロジェクト向け難読化ツールの開発
 

Software Development with Text Editor, OS Kernel and VM

  • 1. Software Development with Editor, Kernel and VM Shuzo Kashihara @suma90h April 22, 2012
  • 2. About • 柏原 秀蔵 (23 years old) • @suma90h, id:obfuscation • https://github.com/suma • Engineer at Preferred Infrastructure • Interest • Developing Hex Editor • Software testing
  • 3. Agenda • Development life-cycle with Text Editor.... • 我々は毎日何を行っているのだろう? • 目的(ゆるふわ) • テキストエディタというインタフェースはこのままで 良いのだろうか?(問い) • 未来のテキストエディタ、開発スタイルを考えよう
  • 4. 我々のPC生活 Vim Emacs Apps OS(kernel) もしかして:Virtual Machine Hardware
  • 5. KernelとVMの共通点 • ハードウェアの抽象化 • リソース管理 • プロセス、メモリ、CPU • APIの提供 • ところでVM? VMM? → 細かいことは..
  • 6. エディタは? • 言わずもがなアプリケーション(user mode) • Vim, Emacs, Eclipse... • Kernel, VMと同じ視点から考える • テキスト内部を気せず編集できる → 抽象化 • 編集バッファ、Undoバッファ→リソース管理 • elispの実行環境(Emacs) → VM?
  • 7. コンテキストスイッチを考える • Kernel <-> アプリ • VMM <-> Kernel → 今回は考えない • エディタ <-> 人間
  • 8. エディタと人間 • ソフトウェア開発で人間は... • 考える、設計する、妄想する • コーディングする with Editor(and Kernel) • ビルド、実行、デバッグ... wtih App エディタと他アプリの • コードとにらめっこ 行き来で、人間のコンテキス トスイッチも発生! • エディタ(画面・操作)、他のアプリ、思考の行き来
  • 9. バイナリエディタでは • 人間は... • 16進数ダンプを見る、ASCIIなど読める部分を読む w Editor • 色で見る、耳で聞く? w Editor • 考える • データを抜き出したり加工する w Editor
  • 10. 複数のことを同時に考えるのは無理ぽ • GB単位のバイナリデータを目grepとか無理 • バイナリエディタで支援 視覚化 etc • 大規模ソフトウェア開発 • コード量が増えると一度に編集できない • モジュール化、高レベルなプログラミング言語を利 用して開発時に思考する量を減らす
  • 11. 未来のエディタに求めたいこと • バイナリエディタ • 求められる機能(Feature)はハッキリしている → ok • テキストエディタ・開発環境 • Terminalとエディタ、人間のコンテキストスイッチを減らしたい • でもマルチタスクしたい • リファレンス、ブラウザを見たい • 分散システムの結合テストとかもやる...