Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ノリでもいけるシェル自作
Search
ONOYAMA Shodai
August 23, 2021
Technology
0
28
ノリでもいけるシェル自作
2021年度第4回LT会
ONOYAMA Shodai
August 23, 2021
Tweet
Share
More Decks by ONOYAMA Shodai
See All by ONOYAMA Shodai
AWSを始めた頃に陥りがちなポイントをまとめてみた
oshanqq
1
3.4k
AWS版GitHub?Amazon CodeCatalystの全体像をまとめてみた
oshanqq
1
3.2k
Amazon CloudFront の機能、カテゴリ分けすると理解しやすい説
oshanqq
0
480
ジュニアレベルのAWS学習戦略
oshanqq
1
1k
出張! #DevelopersIO IT技術ブログの中の人が語る勉強会 「【速報】AWSの生成AIサービスであるAmazon Bedrock がリリースされたので朝イチで触ってみた」について語る
oshanqq
0
520
EC2 Instance Connectを図解してみた
oshanqq
1
1k
初海外・初ベガス・初re:Inventで新卒が感じたこと
oshanqq
1
650
エンジニア志望学生が"ブログの会社"に入社してみて思ったこと〜新卒目線のブログ戦略〜
oshanqq
1
910
Amazon BedrockとAmazon Kendraで数時間でRAGシステムを組んでみた
oshanqq
0
2.2k
Other Decks in Technology
See All in Technology
四国クラウドお遍路 2024 in 高知 オープニング
yukataoka
0
180
自社開発した大規模言語モデルをどうプロダクションに乗せて運用していくか〜インフラ編〜
pfn
PRO
22
6.7k
Mocking in Rust Applications
taiki45
1
350
実践的なバグバウンティ入門
scgajge12
4
2.4k
RAGHack: Kickoff and RAG 101
pamelafox
0
290
20分で分かるIAM全機能 (拡大版) / 20240903-jawsug-yokohama-iam
opelab
3
140
ナレッジグラフとLLMの相互利用
koujikozaki
0
200
セキュリティ監視の内製化 効率とリスク
mixi_engineers
PRO
7
890
Privacy Sandbox on Android / DroidKaigi 2024
7pairs
1
160
エンジニア視点で見る、 組織で運用されるデザインシステムにするには
shunya078
1
290
Autonomous Database Cloud 技術詳細 / adb-s_technical_detail_jp
oracle4engineer
PRO
15
40k
AI でアップデートする既存テクノロジーと、クラウドエンジニアの生きる道
soracom
PRO
2
380
Featured
See All Featured
How to Ace a Technical Interview
jacobian
275
23k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
123
18k
Product Roadmaps are Hard
iamctodd
PRO
48
10k
Fireside Chat
paigeccino
31
2.9k
Infographics Made Easy
chrislema
239
18k
Large-scale JavaScript Application Architecture
addyosmani
508
110k
The Language of Interfaces
destraynor
153
23k
Code Review Best Practice
trishagee
62
16k
5 minutes of I Can Smell Your CMS
philhawksworth
201
19k
How to name files
jennybc
75
98k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
230
17k
It's Worth the Effort
3n
182
27k
Transcript
ノリでもいけるシェル自作 o-xian
名前 : o-xian 所属 : 九州工業大学 宇宙システム工学科3年生
・ あさって内視鏡こわい
本題
• シェル知ってる? • シェル使ってる?
シェルって何や ・ 人間の入力をOSに伝えるプログラム ・ 様々なコマンドを受け取る (ls, cd, pwd …) ・
bash, zshなど様々な種類がある
これを自作する
シェル自作に必要な知識 ・ プロセス ・ システムコール ・ カーネル
シェル自作に必要な知識 ・ プロセス ・ システムコール ・ カーネル
プロセス ・ お仕事中のプログラム cargo run -> プロセス プロセス プロセス
プロセス ・ プロセスは独立している プロセス プロセス
プロセス ・ どうやって外部にアクセスする? プロセス
シェル自作に必要な知識 ・ プロセス ・ システムコール ・ カーネル
カーネル ・ オペレーティングシステムの中核となる部分
システムコール ・ プロセスからカーネルへの「お願い」 お願い 実行 システムコール
システムコール ・ いろいろな種類がある。 create, execve, fork, stat… ・ 今回のLTで扱うシェル自作で使うのは fork,
execve
システムコール ・ fork() プロセスのコピーを作る ・ execve() プロセスを他のプロセスに変身させる
自作シェルの機能 ・ コマンドの実行 ※現状、過不足ない2単語のコマンドを受け付ける 例:cat Cargo.toml, ls –a …
コマンドの実行 ・ 親のプロセスが自身の複製(子プロセス)をつくる fork()
コマンドの実行 ・ 子プロセスが別のプログラムに変身する execve() 子プロセスが終了するまで待機
コマンドの実行 ・ プログラムが終了したら、親のプロセスが再開する 再開
今回のLTで扱うシェルの概要 ・ コマンドラインから入力を受け取る。 ・ 入力をパースする。 ・ プロセスをforkする。 ・ 親プロセスでは、子プロセスが終了するまで待機する。 ・
子プロセスではコマンドを実行する。 実行が完了したら子プロセスは終了する。 無限ループ
None
None
今後 ・ かろうじて「シェル」と言えなくもない状態 ー>機能拡張(組み込みコマンド、パイプetc…) ・ Rustの練習も兼ねる
質問どぞ