Submit Search
Upload
サイボウズ・ラボへ転籍して1年を振り返る
•
Download as PPTX, PDF
•
0 likes
•
295 views
uchan_nos
Follow
uchanが2020年1月にサイボウズ・ラボ株式会社へ転籍したので、1年の振り返りをしました。
Read less
Read more
Software
Report
Share
Report
Share
1 of 15
Download now
Recommended
AndroidとSVG (ABC 2013 Spring LT)
AndroidとSVG (ABC 2013 Spring LT)
Satoshi Watanabe
R-3.0.0でGLM
R-3.0.0でGLM
Kazuya Wada
データサイエンティストカジュアルトーク by wdkz
データサイエンティストカジュアルトーク by wdkz
Kazuya Wada
Shiny-Serverあれこれ
Shiny-Serverあれこれ
Kazuya Wada
201200127 jp stripes_osaka_vol5
201200127 jp stripes_osaka_vol5
Hideki Ojima
20181215 jp stripes_okinawa_kickoff
20181215 jp stripes_okinawa_kickoff
Hideki Ojima
20181215 jp stripes_okayama_kickoff
20181215 jp stripes_okayama_kickoff
Hideki Ojima
itss_nagoya_chapter_2019_second_akai
itss_nagoya_chapter_2019_second_akai
Naoki Akai
Recommended
AndroidとSVG (ABC 2013 Spring LT)
AndroidとSVG (ABC 2013 Spring LT)
Satoshi Watanabe
R-3.0.0でGLM
R-3.0.0でGLM
Kazuya Wada
データサイエンティストカジュアルトーク by wdkz
データサイエンティストカジュアルトーク by wdkz
Kazuya Wada
Shiny-Serverあれこれ
Shiny-Serverあれこれ
Kazuya Wada
201200127 jp stripes_osaka_vol5
201200127 jp stripes_osaka_vol5
Hideki Ojima
20181215 jp stripes_okinawa_kickoff
20181215 jp stripes_okinawa_kickoff
Hideki Ojima
20181215 jp stripes_okayama_kickoff
20181215 jp stripes_okayama_kickoff
Hideki Ojima
itss_nagoya_chapter_2019_second_akai
itss_nagoya_chapter_2019_second_akai
Naoki Akai
つくばチャレンジ2020第1回LT大会 環境変化に頑健なLiDARベースの自己位置推定
つくばチャレンジ2020第1回LT大会 環境変化に頑健なLiDARベースの自己位置推定
Naoki Akai
非(エンジニア|プログラマ)でも知っておきたい正規表現【第5回 WordBench山口 セッション2】
非(エンジニア|プログラマ)でも知っておきたい正規表現【第5回 WordBench山口 セッション2】
Hiroyuki Ishikawa
セッション「それっぽい」ウェブサイトを作る
セッション「それっぽい」ウェブサイトを作る
Sora Arakawa
ARLT_24_vue.jsで作るwebアプリ
ARLT_24_vue.jsで作るwebアプリ
arcircle tmu
セッション「ミニプログラムで変わるスマホアプリ」
セッション「ミニプログラムで変わるスマホアプリ」
Sora Arakawa
高校の文化祭でデジタルサイネージを作ってみた
高校の文化祭でデジタルサイネージを作ってみた
Sora Arakawa
AizuVR LT
AizuVR LT
真範 秋山
Web × プログラミング ~JavaScript編~(2017/2/16)
Web × プログラミング ~JavaScript編~(2017/2/16)
Hiroyuki Ishikawa
アイマスハッカソン2018 in 京都 進行スライド
アイマスハッカソン2018 in 京都 進行スライド
crssnky
20180416 jp stripes_fukuoka_vol3_public
20180416 jp stripes_fukuoka_vol3_public
Hideki Ojima
20180706 jp stripes_okinawa_kickoff
20180706 jp stripes_okinawa_kickoff
Hideki Ojima
姫路IT系勉強会 Vol.12 2012年の姫路IT系勉強会を振り返る
姫路IT系勉強会 Vol.12 2012年の姫路IT系勉強会を振り返る
Jun Nogata
DiとDIコンテナについて
DiとDIコンテナについて
Akiko Sugawa
2015 7-4-innovation egg4th-lt-upload-version
2015 7-4-innovation egg4th-lt-upload-version
Masaya Hayashi
20180116 jp stripes_福岡_vol2
20180116 jp stripes_福岡_vol2
Hideki Ojima
サオリチラシ
サオリチラシ
shiarashiara
若者が勉強会に参加しない問題
若者が勉強会に参加しない問題
Makoto Henmi
会津Swift開発合宿振り返り
会津Swift開発合宿振り返り
Kenji Tanaka
MikanOSと自作CPUをUSBで接続する
MikanOSと自作CPUをUSBで接続する
uchan_nos
OSを手作りするという趣味と仕事
OSを手作りするという趣味と仕事
uchan_nos
小型安価なFPGAボードの紹介と任意波形発生器
小型安価なFPGAボードの紹介と任意波形発生器
uchan_nos
トランジスタ回路:エミッタ接地増幅回路
トランジスタ回路:エミッタ接地増幅回路
uchan_nos
More Related Content
What's hot
つくばチャレンジ2020第1回LT大会 環境変化に頑健なLiDARベースの自己位置推定
つくばチャレンジ2020第1回LT大会 環境変化に頑健なLiDARベースの自己位置推定
Naoki Akai
非(エンジニア|プログラマ)でも知っておきたい正規表現【第5回 WordBench山口 セッション2】
非(エンジニア|プログラマ)でも知っておきたい正規表現【第5回 WordBench山口 セッション2】
Hiroyuki Ishikawa
セッション「それっぽい」ウェブサイトを作る
セッション「それっぽい」ウェブサイトを作る
Sora Arakawa
ARLT_24_vue.jsで作るwebアプリ
ARLT_24_vue.jsで作るwebアプリ
arcircle tmu
セッション「ミニプログラムで変わるスマホアプリ」
セッション「ミニプログラムで変わるスマホアプリ」
Sora Arakawa
高校の文化祭でデジタルサイネージを作ってみた
高校の文化祭でデジタルサイネージを作ってみた
Sora Arakawa
AizuVR LT
AizuVR LT
真範 秋山
Web × プログラミング ~JavaScript編~(2017/2/16)
Web × プログラミング ~JavaScript編~(2017/2/16)
Hiroyuki Ishikawa
アイマスハッカソン2018 in 京都 進行スライド
アイマスハッカソン2018 in 京都 進行スライド
crssnky
20180416 jp stripes_fukuoka_vol3_public
20180416 jp stripes_fukuoka_vol3_public
Hideki Ojima
20180706 jp stripes_okinawa_kickoff
20180706 jp stripes_okinawa_kickoff
Hideki Ojima
姫路IT系勉強会 Vol.12 2012年の姫路IT系勉強会を振り返る
姫路IT系勉強会 Vol.12 2012年の姫路IT系勉強会を振り返る
Jun Nogata
DiとDIコンテナについて
DiとDIコンテナについて
Akiko Sugawa
2015 7-4-innovation egg4th-lt-upload-version
2015 7-4-innovation egg4th-lt-upload-version
Masaya Hayashi
20180116 jp stripes_福岡_vol2
20180116 jp stripes_福岡_vol2
Hideki Ojima
サオリチラシ
サオリチラシ
shiarashiara
若者が勉強会に参加しない問題
若者が勉強会に参加しない問題
Makoto Henmi
会津Swift開発合宿振り返り
会津Swift開発合宿振り返り
Kenji Tanaka
What's hot
(18)
つくばチャレンジ2020第1回LT大会 環境変化に頑健なLiDARベースの自己位置推定
つくばチャレンジ2020第1回LT大会 環境変化に頑健なLiDARベースの自己位置推定
非(エンジニア|プログラマ)でも知っておきたい正規表現【第5回 WordBench山口 セッション2】
非(エンジニア|プログラマ)でも知っておきたい正規表現【第5回 WordBench山口 セッション2】
セッション「それっぽい」ウェブサイトを作る
セッション「それっぽい」ウェブサイトを作る
ARLT_24_vue.jsで作るwebアプリ
ARLT_24_vue.jsで作るwebアプリ
セッション「ミニプログラムで変わるスマホアプリ」
セッション「ミニプログラムで変わるスマホアプリ」
高校の文化祭でデジタルサイネージを作ってみた
高校の文化祭でデジタルサイネージを作ってみた
AizuVR LT
AizuVR LT
Web × プログラミング ~JavaScript編~(2017/2/16)
Web × プログラミング ~JavaScript編~(2017/2/16)
アイマスハッカソン2018 in 京都 進行スライド
アイマスハッカソン2018 in 京都 進行スライド
20180416 jp stripes_fukuoka_vol3_public
20180416 jp stripes_fukuoka_vol3_public
20180706 jp stripes_okinawa_kickoff
20180706 jp stripes_okinawa_kickoff
姫路IT系勉強会 Vol.12 2012年の姫路IT系勉強会を振り返る
姫路IT系勉強会 Vol.12 2012年の姫路IT系勉強会を振り返る
DiとDIコンテナについて
DiとDIコンテナについて
2015 7-4-innovation egg4th-lt-upload-version
2015 7-4-innovation egg4th-lt-upload-version
20180116 jp stripes_福岡_vol2
20180116 jp stripes_福岡_vol2
サオリチラシ
サオリチラシ
若者が勉強会に参加しない問題
若者が勉強会に参加しない問題
会津Swift開発合宿振り返り
会津Swift開発合宿振り返り
More from uchan_nos
MikanOSと自作CPUをUSBで接続する
MikanOSと自作CPUをUSBで接続する
uchan_nos
OSを手作りするという趣味と仕事
OSを手作りするという趣味と仕事
uchan_nos
小型安価なFPGAボードの紹介と任意波形発生器
小型安価なFPGAボードの紹介と任意波形発生器
uchan_nos
トランジスタ回路:エミッタ接地増幅回路
トランジスタ回路:エミッタ接地増幅回路
uchan_nos
OpeLa: セルフホストなOSと言語処理系を作るプロジェクト
OpeLa: セルフホストなOSと言語処理系を作るプロジェクト
uchan_nos
自作言語でお絵描き
自作言語でお絵描き
uchan_nos
OpeLa 進捗報告 at 第23回自作OSもくもく会
OpeLa 進捗報告 at 第23回自作OSもくもく会
uchan_nos
USB3.0ドライバ開発の道
USB3.0ドライバ開発の道
uchan_nos
Security Nextcamp remote mob programming
Security Nextcamp remote mob programming
uchan_nos
Langsmith OpeLa handmade self-hosted OS and LPS
Langsmith OpeLa handmade self-hosted OS and LPS
uchan_nos
OpeLa セルフホストなOSと言語処理系の自作
OpeLa セルフホストなOSと言語処理系の自作
uchan_nos
自動でバグを見つける!プログラム解析と動的バイナリ計装
自動でバグを見つける!プログラム解析と動的バイナリ計装
uchan_nos
1を書いても0が読める!?隠れた重要命令INVLPG
1を書いても0が読める!?隠れた重要命令INVLPG
uchan_nos
レガシーフリーOSに必要な要素技術 legacy free os
レガシーフリーOSに必要な要素技術 legacy free os
uchan_nos
Building libc++ for toy OS
Building libc++ for toy OS
uchan_nos
プランクトンサミットの歴史2019
プランクトンサミットの歴史2019
uchan_nos
Introduction of security camp 2019
Introduction of security camp 2019
uchan_nos
30分で分かる!OSの作り方 ver.2
30分で分かる!OSの作り方 ver.2
uchan_nos
Timers
Timers
uchan_nos
USB3 host driver program structure
USB3 host driver program structure
uchan_nos
More from uchan_nos
(20)
MikanOSと自作CPUをUSBで接続する
MikanOSと自作CPUをUSBで接続する
OSを手作りするという趣味と仕事
OSを手作りするという趣味と仕事
小型安価なFPGAボードの紹介と任意波形発生器
小型安価なFPGAボードの紹介と任意波形発生器
トランジスタ回路:エミッタ接地増幅回路
トランジスタ回路:エミッタ接地増幅回路
OpeLa: セルフホストなOSと言語処理系を作るプロジェクト
OpeLa: セルフホストなOSと言語処理系を作るプロジェクト
自作言語でお絵描き
自作言語でお絵描き
OpeLa 進捗報告 at 第23回自作OSもくもく会
OpeLa 進捗報告 at 第23回自作OSもくもく会
USB3.0ドライバ開発の道
USB3.0ドライバ開発の道
Security Nextcamp remote mob programming
Security Nextcamp remote mob programming
Langsmith OpeLa handmade self-hosted OS and LPS
Langsmith OpeLa handmade self-hosted OS and LPS
OpeLa セルフホストなOSと言語処理系の自作
OpeLa セルフホストなOSと言語処理系の自作
自動でバグを見つける!プログラム解析と動的バイナリ計装
自動でバグを見つける!プログラム解析と動的バイナリ計装
1を書いても0が読める!?隠れた重要命令INVLPG
1を書いても0が読める!?隠れた重要命令INVLPG
レガシーフリーOSに必要な要素技術 legacy free os
レガシーフリーOSに必要な要素技術 legacy free os
Building libc++ for toy OS
Building libc++ for toy OS
プランクトンサミットの歴史2019
プランクトンサミットの歴史2019
Introduction of security camp 2019
Introduction of security camp 2019
30分で分かる!OSの作り方 ver.2
30分で分かる!OSの作り方 ver.2
Timers
Timers
USB3 host driver program structure
USB3 host driver program structure
サイボウズ・ラボへ転籍して1年を振り返る
1.
サイボウズ・ラボへ転籍 して1年を振り返る 2020年12月26日 忘れないゼミ@Discord サイボウズ・ラボ 内田公太
2.
自己紹介 名前:内田公太 Twitter:@uchan_nos 2018年~東京工業大学 情報工学系 特任助教(週2) 2020年~サイボウズ・ラボ株式会社(週3) 2008年にロ技研入部 2012年6月~2013年3月:サイボウズ・ラボユース第2期生 2014年4月~2020年1月:サイボウズ株式会社 2020年1月~現在:サイボウズ・ラボ株式会社
3.
みなさん、この本知ってますか? • 2006年に出版された • 30日かけてOSを手作りする •
内田はこの本でOSを学んだ • 中学2年頃に川合さんから原稿を 渡されて読んでた • 内田のバイブル的存在
4.
低レイヤ技術者育成 内田のラボでの活動テーマは「低レイヤ技術者育成」 2020年のラボカツ 現代のPCで動く教育用OSの開発 『30日でできる!OS自作入門』の「はりぼてOS」はもう起動しない セキュリティ・キャンプ全国大会 2020 オンライン 低レイヤ技術に明るい若者の発掘・育成をするよ OSと言語処理系を全部自作するOpeLaプロジェクト セルフホストなOS+言語処理系を自作するという夢を追い求めるよ
5.
ラボカツ1:教育用OSの開発 MikanOS 未完、蜜柑 https://github.com/uchan-nos/mikanos MikanOSの特徴 UEFIで起動 64ビットモードで動作 USBマウス・キーボードが使える ページングによるメモリ管理 MikanOSの見た目
6.
東工大での自作OSの授業 システム開発プロジェクト応用第二 シラバス http://www.ocw.titech.ac.jp/index.php?module=General&action=T0300&GakubuCD=4&GakkaCD=342323&KeiCD=23&course=23&KougiCD=202004868&Nendo=2020&vid=03 今年限りの講義 200分×7回で自作OSの全体像を舐めていく オペレーティングシステム / UEFIと64ビット環境 画面描画とフォント
/ PS/2とUSBマウス APICと割り込み / メモリ管理 タイマー / マルチタスク ファイルシステム / アプリケーション アドレス変換 / システムコール アプリによるファイル読み書き / アプリのメモリ管理
7.
ラボカツ2:セキュリティ・キャンプ 「システムソフトウェア自作トラック」のプロデュースを担当 今年も多数の低レイヤ人材を輩出! システムソフトウェア自作トラック: コンピュータシステムの基盤となるシステムソフトウェアを実際 に手を動かして作ることで理解を深める OS データベース Cコンパイラ
8.
ラボカツ3:OpeLaプロジェクト セルフホストなOSと言語処理系を自作 OpeLa OS OpeLa言語仕様とコンパイラ x86-64/AArch64アセンブラ リンカ、ライブラリ、ビルドツール OpeLaを道具として、低レイヤに興味 ある若い人を発掘・育成したい ドキュメント https://github.com/osdev-jp/osdev-jp.github.io/wiki/uchan-OpeLa 自作コンパイラ ソースコード 第1世代 自作コンパイラ 入力 第2世代 自作コンパイラ コンパイル セルフホスト: 自分自身をコンパイルすること
9.
自作言語をセルフホストする道のり 第1世代 自作コンパイラ opelac.cpp clang++ 入力 第1世代 自作コンパイラ コンパイル 第2世代 自作コンパイラ opelac.opl 書き直し コンパイル 入力 第2世代 自作コンパイラ コンパイル 第3世代 自作コンパイラ 入力 ここまでくれば ぐるぐる回せる (はず)
10.
OpeLaの進捗 OpeLaコンパイラに基礎的な文法を実装した 四則演算、大小比較 ローカル、グローバル変数 if、for 関数定義と呼び出し ポインタ、配列、文字列 x86-64とAArch64のアセンブラを出力するようにした x86-64のLinuxと、M1 Macで実験可能 lewing@isc.tamu.edu Larry
Ewing and The GIMP https://www.apple.com/jp/mac/m1/
11.
OpeLa言語によるRPN func main() { var
stk [128]int; stk_i := 0; var a int; var b int; var buf [128]char; bytes := read(0, &buf[0], 128); p := &buf[0]; for i := 0; i < bytes; i += 1 { if p[i] == ' ' || p[i] == 'n' { } else if p[i] == '+' { b = stk[stk_i]; a = stk[stk_i - 1]; stk[stk_i - 1] = a + b; stk_i -= 1; } else if p[i] == '-' { b = stk[stk_i]; a = stk[stk_i - 1]; stk[stk_i - 1] = a - b; stk_i -= 1; } else if p[i] == '*' { b = stk[stk_i]; a = stk[stk_i - 1]; stk[stk_i - 1] = a * b; stk_i -= 1; } else if p[i] == '/' { b = stk[stk_i]; a = stk[stk_i - 1]; stk[stk_i - 1] = a / b; stk_i -= 1; } else { // digit stk_i += 1; stk[stk_i] = p[i] - '0'; } } var s [2]char; s[0] = stk[stk_i] + '0'; s[1] = 'n'; write(1, &s[0], 2); } extern "C" read func(fd int, s *char, n int) int; extern "C" write func(fd int, s *char, n int) int;
12.
【完全版】自作セルフホストの道のり 第1世代 opelac.cpp clang++ 第1世代 opelac 第2世代 opelac.opl 第2世代 opelac 第3世代 opelac 自作OS用 opelac.opl 自作OS向 けに修正 自作OS用 opelacこれらはLinux用opelac
13.
自作OSのセルフホストを目指して 1. 自作OSをLinux用opelacでク ロスコンパイル 2. 自作OS向けに調整した自作 言語処理系をLinux用opelac でクロスコンパイル 3.
自作OSを自作OS用opelacで コンパイル 4. 自作OS向けに調整した自作 言語処理系を自作OS用 opelacでコンパイル 自作OS my_os.opl Linux用 opelac Linux 自作OS 自作OS用 opelac.opl 自作OS用 opelac 1 2 3 4
14.
まとめ 内田のラボでの活動テーマは「低レイヤ技術者育成」 MikanOSを作ったよ セキュリティ・キャンプのプロデューサをやったよ OpeLaコンパイラを実装してるよ
15.
【宣伝】サイボウズ・ラボユース 世界に通用する日本の若手エンジニアの発掘と育成が目的 学生の若手クリエイターに研究開発の機会を提供する場 https://labs.cybozu.co.jp/youth.html 「サイボウズ・ラボユース生」 アルバイト代が出る(上限:年間103万円) サイボウズ・ラボ社員からのアドバイスがある 成果物の権利はラボユース生に帰属 成果物を卒論や修論にしてもいいし、売ったりしてもいい 原則としてOSSにする、以外の制約がない
Download now