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
45
ノリでもいけるシェル自作
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
470
Amazon Data Firehoseの入門から実戦まで
oshanqq
0
440
AWSを始めた頃に陥りがちなポイントをまとめてみた
oshanqq
1
4k
AWS版GitHub?Amazon CodeCatalystの全体像をまとめてみた
oshanqq
2
5.7k
Amazon CloudFront の機能、カテゴリ分けすると理解しやすい説
oshanqq
0
790
ジュニアレベルのAWS学習戦略
oshanqq
1
1.4k
出張! #DevelopersIO IT技術ブログの中の人が語る勉強会 「【速報】AWSの生成AIサービスであるAmazon Bedrock がリリースされたので朝イチで触ってみた」について語る
oshanqq
0
770
EC2 Instance Connectを図解してみた
oshanqq
1
1.8k
初海外・初ベガス・初re:Inventで新卒が感じたこと
oshanqq
1
820
Other Decks in Technology
See All in Technology
JAWS DAYS 2026 ExaWizards_20260307
exawizards
0
410
白金鉱業Meetup_Vol.22_Orbital Senseを支える衛星画像のマルチモーダルエンベディングと地理空間のあいまい検索技術
brainpadpr
2
290
JAWS DAYS 2026 楽しく学ぼう!ストレージ 入門
yoshiki0705
2
140
情シスのための生成AI実践ガイド2026 / Generative AI Practical Guide for Business Technology 2026
glidenote
0
190
Kubernetesにおける推論基盤
ry
1
300
開発組織の課題解決を加速するための権限委譲 -する側、される側としての向き合い方-
daitasu
5
580
Yahoo!ショッピングのレコメンデーション・システムにおけるML実践の一例
lycorptech_jp
PRO
1
190
(Test) ai-meetup slide creation
oikon48
1
210
新職業『オーケストレーター』誕生 — エージェント10体を同時に回すAgentOps
gunta
4
1.8k
楽しく学ぼう!ネットワーク入門
shotashiratori
3
2.7k
オレ達はAWS管理をやりたいんじゃない!開発の生産性を爆アゲしたいんだ!!
wkm2
4
490
最強のAIエージェントを諦めたら品質が上がった話 / how quality improved after giving up on the strongest AI agent
kt2mikan
0
150
Featured
See All Featured
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
1
150
Imperfection Machines: The Place of Print at Facebook
scottboms
269
14k
Color Theory Basics | Prateek | Gurzu
gurzu
0
240
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
110
Testing 201, or: Great Expectations
jmmastey
46
8.1k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
100
Claude Code のすすめ
schroneko
67
220k
Skip the Path - Find Your Career Trail
mkilby
1
75
The agentic SEO stack - context over prompts
schlessera
0
690
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.4k
A Tale of Four Properties
chriscoyier
163
24k
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の練習も兼ねる
質問どぞ