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
47
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ノリでもいけるシェル自作
2021年度第4回LT会
ONOYAMA Shodai
August 23, 2021
More Decks by ONOYAMA Shodai
See All by ONOYAMA Shodai
Claude Codeウェビナー資料 - AWSの最新機能をClaude Codeで高速に検証する
oshanqq
0
1.2k
DevOps視点でAWS re:invent2024の新サービス・アプデを振り返ってみた
oshanqq
0
630
Amazon Data Firehoseの入門から実戦まで
oshanqq
0
570
AWSを始めた頃に陥りがちなポイントをまとめてみた
oshanqq
1
4.1k
AWS版GitHub?Amazon CodeCatalystの全体像をまとめてみた
oshanqq
2
5.9k
Amazon CloudFront の機能、カテゴリ分けすると理解しやすい説
oshanqq
0
900
ジュニアレベルのAWS学習戦略
oshanqq
1
1.5k
出張! #DevelopersIO IT技術ブログの中の人が語る勉強会 「【速報】AWSの生成AIサービスであるAmazon Bedrock がリリースされたので朝イチで触ってみた」について語る
oshanqq
0
920
EC2 Instance Connectを図解してみた
oshanqq
1
1.9k
Other Decks in Technology
See All in Technology
Retriever と Reranker、結局どうする?
kazuaki
2
670
もう一度考える SRE チームの作り方・育て方 / Rethinking SRE #1: Building and Growing SRE Teams
rrreeeyyy
5
990
個人OSSが、机の上から世界に広がるまでの話
shinyasaita
1
350
Digitization部 紹介資料
sansan33
PRO
2
7.7k
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
19k
ウォーターフォール開発案件のPMとしてAI活用を模索している話
hatahata021
3
320
Invisible to AI? Making TYPO3 Sites Quotable by AI Search Systems
wolfgangwagner
0
110
20260608_Codexの可能性_ノンプログラマー向け_大城追記
doradora09
PRO
0
760
ラジオの科学
frievea
0
220
新しい SLO が良い感じにハマっている話
z63d
4
2.1k
モダンフロントエンド 開発研修
recruitengineers
PRO
1
360
TypeScript入門 2026
recruitengineers
PRO
1
330
Featured
See All Featured
Prompt Engineering for Job Search
mfonobong
0
390
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
270
Color Theory Basics | Prateek | Gurzu
gurzu
0
410
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
460
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.7k
WCS-LA-2024
lcolladotor
0
790
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.8k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
680
What's in a price? How to price your products and services
michaelherold
247
13k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
260
How to Talk to Developers About Accessibility
jct
2
480
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の練習も兼ねる
質問どぞ