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
32
ノリでもいけるシェル自作
2021年度第4回LT会
ONOYAMA Shodai
August 23, 2021
Tweet
Share
More Decks by ONOYAMA Shodai
See All by ONOYAMA Shodai
DevOps視点でAWS re:invent2024の新サービス・アプデを振り返ってみた
oshanqq
0
330
Amazon Data Firehoseの入門から実戦まで
oshanqq
0
320
AWSを始めた頃に陥りがちなポイントをまとめてみた
oshanqq
1
3.8k
AWS版GitHub?Amazon CodeCatalystの全体像をまとめてみた
oshanqq
2
4.6k
Amazon CloudFront の機能、カテゴリ分けすると理解しやすい説
oshanqq
0
650
ジュニアレベルのAWS学習戦略
oshanqq
1
1.2k
出張! #DevelopersIO IT技術ブログの中の人が語る勉強会 「【速報】AWSの生成AIサービスであるAmazon Bedrock がリリースされたので朝イチで触ってみた」について語る
oshanqq
0
670
EC2 Instance Connectを図解してみた
oshanqq
1
1.4k
初海外・初ベガス・初re:Inventで新卒が感じたこと
oshanqq
1
760
Other Decks in Technology
See All in Technology
AWSを利用する上で知っておきたい名前解決の話
nagisa53
6
830
LLM アプリケーションのためのクラウドセキュリティ - CSPM の実装ポイント-
osakatechlab
0
440
自動化の第一歩 -インフラ環境構築の自動化について-
smt7174
1
130
Cursorをチョッパヤインタビューライターにチューニングする方法 / how to tuning cursor for interview write
shuzon
2
250
SRE本出版からまもなく10年!〜これまでに何が起こり、これから何が起こるのか〜
katsuhisa91
PRO
0
350
Google Cloud Next 2025 Recap マーケティング施策の運用及び開発を支援するAIの活用 / Use of AI to support operation and development of marketing campaign
atsushiyoshikawa
0
270
dbtとリバースETLでデータ連携の複雑さに立ち向かう
morookacube
0
920
AIによるコードレビューで開発体験を向上させよう!
moongift
PRO
0
450
20250514 1Passwordを使い倒す道場 vol.1
east_takumi
0
130
経済メディア編集部の実務に小さく刺さるAI / small-ai-with-editorial
nkzn
2
430
時間がないなら、つくればいい 〜数十人規模のチームが自律性を発揮するために試しているいくつかのこと〜
kakehashi
PRO
24
5.7k
MagicPodが描くAIエージェント戦略とソフトウェアテストの未来
magicpod
0
250
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
Faster Mobile Websites
deanohume
307
31k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.7k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
120
52k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
52
2.5k
Code Review Best Practice
trishagee
68
18k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
227
22k
Code Reviewing Like a Champion
maltzj
523
40k
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の練習も兼ねる
質問どぞ