- 97
- 353 894
satlinuxtube
Japan
เข้าร่วมเมื่อ 20 พ.ค. 2020
コンピュータシステム、とくにLinuxについての豆知識を紹介しています。
twitter hashtag: #satlinuxtube
動画内で使ったサンプルコード&実行ログ
github.com/satoru-takeuchi/youtube-sample
このチャンネルと近いことを扱っている本
amzn.to/3Dr6TUP
活動支援窓口(メンバーシップ)
www.youtube.com/@satlinuxtube5260/membership
活動支援窓口(github sponsors)
github.com/sponsors/satoru-takeuchi
高額支援者のかたのリスト
- Kensho Aoki: th-cam.com/channels/yZsqz_EUpyPDwCF8UbqvNQ.html
- TEMMIE(てみー): th-cam.com/channels/ECPSxUBhG4rYinc3DI_g9Q.html
twitter hashtag: #satlinuxtube
動画内で使ったサンプルコード&実行ログ
github.com/satoru-takeuchi/youtube-sample
このチャンネルと近いことを扱っている本
amzn.to/3Dr6TUP
活動支援窓口(メンバーシップ)
www.youtube.com/@satlinuxtube5260/membership
活動支援窓口(github sponsors)
github.com/sponsors/satoru-takeuchi
高額支援者のかたのリスト
- Kensho Aoki: th-cam.com/channels/yZsqz_EUpyPDwCF8UbqvNQ.html
- TEMMIE(てみー): th-cam.com/channels/ECPSxUBhG4rYinc3DI_g9Q.html
その87 プロセスの生成 コピーオンライトを使ったfork編
これまで数回動画で取り上げたfork関数の真の姿について説明しました。これまでの説明でのforkは親プロセスのメモリを子プロセスにフルコピーしていましたが、実際は仮想記憶を応用したコピーオンライトという技術で高速かつ省メモリになっていることを述べました。低レイヤ技術を学んでかなりアツいランキングに入る回です。
テキスト
speakerdeck.com/sat/purosesunosheng-cheng-kopionraitowoshi-tutaforkbian
---
本動画シリーズは以下の本をなぞるように進めていますが、しょっちゅう脱線します。よろしければお買い求めください。
amzn.to/3RVWdo3
メンバーになるにはこちらをクリックしてください。とくに特典はないですが、メンバー数が多くなるとうれしくなって動画をアップロードする頻度が高まるかもしれません。
th-cam.com/channels/grUyRFiHhV607Orhriau6w.htmljoin
テキスト
speakerdeck.com/sat/purosesunosheng-cheng-kopionraitowoshi-tutaforkbian
---
本動画シリーズは以下の本をなぞるように進めていますが、しょっちゅう脱線します。よろしければお買い求めください。
amzn.to/3RVWdo3
メンバーになるにはこちらをクリックしてください。とくに特典はないですが、メンバー数が多くなるとうれしくなって動画をアップロードする頻度が高まるかもしれません。
th-cam.com/channels/grUyRFiHhV607Orhriau6w.htmljoin
มุมมอง: 530
วีดีโอ
その86 プロセスの生成 fork&exec編
มุมมอง 26514 วันที่ผ่านมา
forkとexecを組み合わせて、Linuxで新しいプログラムを新しいプロセス上で実行させる方法について説明しました。 テキスト speakerdeck.com/sat/purosesunosheng-cheng-fork-and-execbian 本動画シリーズは以下の本をなぞるように進めていますが、しょっちゅう脱線します。よろしければお買い求めください。 amzn.to/3RVWdo3 メンバーになるにはこちらをクリックしてください。とくに特典はないですが、メンバー数が多くなるとうれしくなって動画をアップロードする頻度が高まるかもしれません。 th-cam.com/channels/grUyRFiHhV607Orhriau6w.htmljoin
その85 プロセスの生成 exec編
มุมมอง 27714 วันที่ผ่านมา
プロセスを生まれ変わらせて別のプログラムを実行するexec関数について説明しました。同じ文脈で語られるforkとの役割の違いについても説明しています。 テキスト speakerdeck.com/sat/purosesunosheng-cheng-execbian 本動画シリーズは以下の本をなぞるように進めていますが、しょっちゅう脱線します。よろしければお買い求めください。 amzn.to/3RVWdo3 メンバーになるにはこちらをクリックしてください。とくに特典はないですが、メンバー数が多くなるとうれしくなって動画をアップロードする頻度が高まるかもしれません。 th-cam.com/channels/grUyRFiHhV607Orhriau6w.htmljoin
その84 プロセスの生成 fork編
มุมมอง 69114 วันที่ผ่านมา
プロセスを生成、より正確にいうと複製するfork()関数についての動画です。直感的にわかりにくいfork()を「CPU上で動作する処理」「メモリの配置」という2つのアプローチで説明しています。ここで説明しているのは簡略版であり、CoWを使うLinuxの実際のforkの挙動は後日別動画で解説します。 テキスト speakerdeck.com/sat/purosesunosheng-cheng-forkbian 本動画シリーズは以下の本をなぞるように進めていますが、しょっちゅう脱線します。よろしければお買い求めください。 amzn.to/3RVWdo3 メンバーになるにはこちらをクリックしてください。とくに特典はないですが、メンバー数が多くなるとうれしくなって動画をアップロードする頻度が高まるかもしれません。 th-cam.com/channels/grUyRFiHhV607Orhria...
その83 静的ライブラリと共有ライブラリの違いを実験で確認
มุมมอง 46314 วันที่ผ่านมา
静的ライブラリと共有ライブラリのさまざまな違いを実験によって確認しました。違いはライブラリや実行ファイルのサイズ、ライブラリファイルを削除、再ビルドした場合のふるまいなど、さまざまです。 テキスト speakerdeck.com/sat/jing-de-raiburarito-gong-you-raiburarinowei-iwoshi-yan-deque-ren 本動画シリーズは以下の本をなぞるように進めていますが、しょっちゅう脱線します。よろしければお買い求めください。 amzn.to/3RVWdo3 メンバーになるにはこちらをクリックしてください。とくに特典はないですが、メンバー数が多くなるとうれしくなって動画をアップロードする頻度が高まるかもしれません。 th-cam.com/channels/grUyRFiHhV607Orhriau6w.htmljoin
利きプロセススケジューラ
มุมมอง 7992 หลายเดือนก่อน
Linux環境でカーネルバージョンを見ず、カーネルソースも見ずに、プロセス空間から観測できる挙動のみからプロセススケジューラのバージョンを特定する必殺技、「利きプロセススケジューラ」の解説をしました。 テキスト speakerdeck.com/sat/li-kipurosesusukeziyura この動画はkernel/vm探検隊北陸part7の再演です。 kernelvm.connpass.com/event/330079/ メンバーになるにはこちらをクリックしてください。とくに特典はないですが、メンバー数が多くなるとうれしくなって動画をアップロードする頻度が高まるかもしれません。 th-cam.com/channels/grUyRFiHhV607Orhriau6w.htmljoin
その82 コード再利用のしくみ ライブラリ
มุมมอง 1.5K3 หลายเดือนก่อน
プログラムのコード再利用のしくみ、ライブラリについて説明しました。静的ライブラリと共有ライブラリについて実行ファイルのサイズ、ライブラリを更新または削除したときの影響、ライセンスという観点で比較しました テキスト speakerdeck.com/sat/kodozai-li-yong-nosikumi-raiburari 本動画シリーズは以下の本をなぞるように進めていますが、しょっちゅう脱線します。よろしければお買い求めください。 amzn.to/3RVWdo3 メンバーになるにはこちらをクリックしてください。とくに特典はないですが、メンバー数が多くなるとうれしくなって動画をアップロードする頻度が高まるかもしれません。 th-cam.com/channels/grUyRFiHhV607Orhriau6w.htmljoin
その81 syncコマンドのデータ同期完了待ちやエラー検出
มุมมอง 4984 หลายเดือนก่อน
Linuxでcoreutils提供のsyncコマンドを実行した際にデータ同期が完了しているか、および、同期中にI/Oエラーが発生したことを検出できるのかという疑問に答える動画を撮りました。manには書いているのですが意外と知られていないので、この機会に知っておくとよいかもしれません。 テキスト speakerdeck.com/sat/synckomandonodetatong-qi-wan-liao-dai-tiyaerajian-chu 本動画シリーズは以下の本をなぞるように進めていますが、しょっちゅう脱線します。よろしければお買い求めください。 amzn.to/3RVWdo3 メンバーになるにはこちらをクリックしてください。とくに特典はないですが、メンバー数が多くなるとうれしくなって動画をアップロードする頻度が高まるかもしれません。 th-cam.com/channels/grU...
その80 動作中のLinux環境の全メモリを見る
มุมมอง 8204 หลายเดือนก่อน
プロセスをデバッガを介して実行して実行中のプロセのメモリを見たことがあかもしれません。本動画はそれに似た、Linux環境の動作中の全物理メモリを見るcrashコマンドの紹介をします。ご自身も使っ適当にコマンドを叩いてもらうと楽しいかと思います。 テキスト speakerdeck.com/sat/dong-zuo-zhong-nolinuxhuan-jing-noquan-memoriwojian-ru 本動画シリーズは以下の本をなぞるように進めていますが、しょっちゅう脱線します。よろしければお買い求めください。 amzn.to/3RVWdo3 メンバーになるにはこちらをクリックしてください。とくに特典はないですが、メンバー数が多くなるとうれしくなって動画をアップロードする頻度が高まるかもしれません。 th-cam.com/channels/grUyRFiHhV607Orhriau6w...
その79 Linuxの時間を10秒止める
มุมมอง 9245 หลายเดือนก่อน
カーネルモジュールを使ってLinuxの時間を10秒間止める実験をしました。何が起こるか確認すると面白いかと思います。ソースコードはGPLv2で公開しているので興味のあるかたはご自身の環境で動かしてみると面白いかもしれません。 テキスト speakerdeck.com/sat/linuxnoshi-jian-wo10miao-zhi-meru 本動画シリーズは以下の本をなぞるように進めていますが、しょっちゅう脱線します。よろしければお買い求めください。 amzn.to/3RVWdo3 メンバーになるにはこちらをクリックしてください。とくに特典はないですが、メンバー数が多くなるとうれしくなって動画をアップロードする頻度が高まるかもしれません。 th-cam.com/channels/grUyRFiHhV607Orhriau6w.htmljoin
その78 プロセスへのメモリ割り当て4 - 実際に使うときにメモリを獲得するデマンドページング(実践編)
มุมมอง 4435 หลายเดือนก่อน
Linuxでデマンドページング方式でメモリが割り当てられていく様子を、システムのメモリ関連統計情報を見ながら実験プログラムを動かすことによって確認しました。理屈は知っていたとしても目視確認すると、また新たな発見があるかもしれません。 テキスト speakerdeck.com/sat/purosesuhenomemorige-ridang-te4-shi-ji-nishi-utokinimemoriwohuo-de-surudemandopezingu-shi-jian-bian 本動画シリーズは以下の本をなぞるように進めていますが、しょっちゅう脱線します。よろしければお買い求めください。 amzn.to/3RVWdo3 メンバーになるにはこちらをクリックしてください。とくに特典はないですが、メンバー数が多くなるとうれしくなって動画をアップロードする頻度が高まるかもしれません。 th-...
その77 プロセスへのメモリ割り当て(3) 実際に使うときにメモリを獲得するデマンドページング
มุมมอง 6426 หลายเดือนก่อน
今回Linuxがプロセスのメモリ割り当てに使用しているデマンドページングという機能についてです。これによって物理メモリのプロセスへの割り当てはmmap時ではなく実際にプロセスがメモリを使うときまで遅延されられるのでシステムのメモリ使用量を節約できます テキスト speakerdeck.com/sat/purosesuhenomemorige-ridang-te-3-shi-ji-nishi-utokinimemoriwohuo-de-surudemandopezingu 本動画シリーズは以下の本をなぞるように進めていますが、しょっちゅう脱線します。よろしければお買い求めください。 amzn.to/3RVWdo3 メンバーになるにはこちらをクリックしてください。とくに特典はないですが、メンバー数が多くなるとうれしくなって動画をアップロードする頻度が高まるかもしれません。 th-cam....
その76 プロセスへのメモリ割り当て(2) Pythonのようなナウい言語ではどうやってメモリ獲得するのか
มุมมอง 5976 หลายเดือนก่อน
前回の動画でプロセスはmmapシステムコールを使ってメモリ獲得することを説明しました。しかしmmapはメモリやアドレスを生で扱うシステムコールであり、そのようなものを直接扱わないPythonなどではどうやってメモリ獲得しているのでしょうか。 テキスト speakerdeck.com/sat/purosesuhenomemorige-ridang-te2-pythonnoyounanauiyan-yu-dehadouyatutememorihuo-de-surunoka 本動画シリーズは以下の本をなぞるように進めていますが、しょっちゅう脱線します。よろしければお買い求めください。 amzn.to/3RVWdo3 メンバーになるにはこちらをクリックしてください。とくに特典はないですが、メンバー数が多くなるとうれしくなって動画をアップロードする頻度が高まるかもしれません。 th-cam.c...
その75 プロセスへのメモリ割り当て(1) mmap
มุมมอง 7446 หลายเดือนก่อน
プロセスに動的にメモリを割り当てる方法、mmapシステムコールについて紹介しました。CやC などのメモリを直接扱う言語を使っていないかたの中には知らない人が多いのではないでしょうか。 テキスト speakerdeck.com/sat/purosesuhenomemorige-ridang-te-1-mmap 本動画シリーズは以下の本をなぞるように進めていますが、しょっちゅう脱線します。よろしければお買い求めください。 amzn.to/3RVWdo3 メンバーになるにはこちらをクリックしてください。とくに特典はないですが、メンバー数が多くなるとうれしくなって動画をアップロードする頻度が高まるかもしれません。 th-cam.com/channels/grUyRFiHhV607Orhriau6w.htmljoin
その74 無いはずのパーティションがある Phantom Atari Partition
มุมมอง 3726 หลายเดือนก่อน
ディスク上に誰も作っていないはずのお化けのようなパーティションが存在するようになってしまうPhantom Atari Partitionという問題について紹介します。データ構造の定義があやふやだと困ることがあるというのを学ぶのにいい題材だと思います。 テキスト speakerdeck.com/sat/wu-ihazunopateisiyongaaru-phantom-atari-partition メンバーになるにはこちらをクリックしてください。とくに特典はないですが、メンバー数が多くなるとうれしくなって動画をアップロードする頻度が高まるかもしれません。 th-cam.com/channels/grUyRFiHhV607Orhriau6w.htmljoin
オープンソースへの貢献をはじめたきっかけ、貢献で得たもの、やりたい人へのアドバイス(改)
มุมมอง 1.2Kปีที่แล้ว
オープンソースへの貢献をはじめたきっかけ、貢献で得たもの、やりたい人へのアドバイス(改)
その65 device mapperによるディスクI/O障害のエミュレーション カーネルモジュール自作編
มุมมอง 582ปีที่แล้ว
その65 device mapperによるディスクI/O障害のエミュレーション カーネルモジュール自作編
その63 device mapperによるディスクI/O障害のエミュレーション 既存ターゲット編
มุมมอง 714ปีที่แล้ว
その63 device mapperによるディスクI/O障害のエミュレーション 既存ターゲット編
6:18 私はここを理解するのに結構時間がかりましたね…。ソースコードの処理追ってるだけだとナニコレ?ってなった。
Apacheのpreforkがこのタイプじゃないかな?
そうですね。事前にforkしてexecせずリクエスト処理用ワーカーとして使ってレイテンシを短く保つテクニックですね。
05:29 リターンコードは「子プロセス」のプロセスIDの間違いでしょうか。 混乱してしまいますね ちなみに 06:00 ごろのコードの解説ではリターンコードから子プロセスのPIDを得ると説明されてたのでこちらは問題ないと思います
そうです
ポインタで面白いと思ったのは、関数のポインタも作れるっていう点ですね。いわゆるコールバック関数を使えるし、関数の配列というのも作れる。
ついさっきLinuxのインストールに失敗してgrubになったので来ました! 勉強します!
へー、RADOSって必ずPrimaryから読んで、Primaryがエラーを起こしていると他ノードに存在してるデータをコピー(修復)してからPrimaryから読みだすんですね。
面白い! ありがとうございます!
すごく勉強になりました!ありがとうございます!
仕組みは知っていましたが実際に確認することでより具体的にイメージすることができました!今回もありがとうございます!
今回も面白かったです!ありがとうございます!
今回も面白かったです!ありがとうございます!
命令部だけで24ビットですか、、、そりゃ5000ページのマニュアルにもなりますわ😅 しかもこのマニュアルが精神安定剤になるという猛者もいるとかなんとか、、、笑 今回も面白かったです!ありがとうございます!
xxdコマンドとても面白いですね!実際その0、1がどのように論理回路に通っているのかにも興味が湧きました😆 今回も面白かったです!ありがとうございます!
やはりPythonのシステムコール履歴はCよりも断然多く複雑になってますね😭 今回も面白かったです!ありがとうございます!
とても面白かったです! ありがとうございます!
びっくりしたこと ・sprintf が文字列の変数代入に使われてること ・atoiが ASCII to Integer (文字列型から数値型への型変換)の略であること ・デバッグの時などのログ出力でも型を気にしなければいけないこと ・使われているメソッドの参照元を探すのが難しいこと(そもそもメソッドの中身を見に行かなければ分からない設計なのも悪いけど) ・try-catch機構が無いこと java,python,typescriptとか触った後にやると発狂しかける
Ubuntuでの構成図などがとても分かりやすかったです。 ありがとうございます。
学部でC言語をはじめに習って、その後の講義を大体C言語でこなしていたので、専門分野で他の言語を使うときにC言語ライクな書き方をしてしまうのは情報工学徒あるあるだろうか。
watch dog timerがカーネルの停止に気付いたりしないのですか?
watchdog timeoutにならないように動きます github.com/torvalds/linux/blob/master/kernel/stop_machine.c#L252
数値が大きい場合に命令に入り切らなかったらどうなるんだろう🤔 分割してるのかな
いい疑問ですね。分割します
疑問点を解消する気持ち共感できた気がします。時間を見つけて探すのは手間ですが、後々の業務効率化に繋がっているように感じます。
素晴らしい
昔「Linuxデバイスドライバ」読んだ事ありますが、今は動かないんですね
マルチバイト文字とかだと更に面倒ですね
仮想記憶懐かしい感じですね、今はほとんどページングでしょうけど他にも昔は何かありましたね。説明の仮想記憶というのは論理記憶の事ですね。
パソコンが8ビットだった頃から Cを使い出し80年代後半から C++ を使い、21世紀に入ってからは Python を主に使っています。C++ が C言語から kotlinとか最近の言語と同じ機能まで、ほとんどどのレベルでも書けて便利です。実際はコンパイルが面倒なので python で済めば python ですね
1960年生まれ?!
@@ace10220 1959年
7:42 スケジューリング・ポリシー
P.7の「p0のsyscall処理」と「I/O発行処理」の間にはキューがあるんですか?
はい、ブロック層にキューがあって、I/O最適化をします
大変勉強になりました。氷山の一角の一角でもちょびっとだけ分かった気になれました!
わかりやすく解説いただきありがとうございます! おかげさまで、ずっと知りたかったカーネル内の処理の流れがイメージできるようになりました!
いつもアップありがとうございます! 「その67」ですな!
ご指摘ありがとうございました、直しました。
これは知ってた
まあ、動画の中でも「アセンブリ言語」という単語が出てきましたが、この辺がわかってないとCはマトモに扱えないということでしょう。 アセンブリ言語となれば当然、CPUの仕組みに関わってくるわけですからねぇ。 レジスタ(アキュムレータ、インデックス、スタックポインタ、etc)だのフラグ(キャリーフラグ、ゼログラグ、etc)だのアドレス(0000H〜FFFFHとか)だの。
Audio isn't good.
I bought a microphone after recording this video. So the audio quality would be better in the new videos.
sarのiowaitが何を意味しているのか、どのサイトを読んでも理解できないor信用できなかったので、非常にありがたいです。これで堂々とsar流しとけおじさんになれます
面白いです。ありがとうございます。
この企画、競プロと相性良さそうですね
4ページ目で「LVの拡張、縮小後にファイルシステムも拡張、縮小する必要がある」とありますが、縮小の場合はファイルシステムを先に縮小しないとマズいですよね? (話の本筋には関係無いところですが...)
そのとおりですね。まちがえちゃいました
いちおう動画の説明欄で訂正しておきました。
スライド「Who am I?」にて、typo があるようです。 誤 複業 -> 正 副業 誤 定レイヤ技術 -> 正 低レイヤ技術
修正しました
上記のテキストのリンクをクリックすると、Deck Not Found と表示されます。
ご指摘ありがとうございました。誤って未公開にしていました。さきほど公開設定にしました。
大変わかりやすく、入門できました。 一点、質問です。 こちら右側画面で使っているソフトは何というものでしょうか。 また、こちらのソフトを使用するメリットを教えていただければ幸いです。
mobaxtermというターミナルソフトです。メリットはマルチタブで複数の端末を開けること、X serverになることなどがあります。一定の制約はあるものの無料で使えることもメリットです。他にも同じようなものもありますけど、細かいところの使い勝手がいいので使ってるといったところです
KiB(キビ)って何だろう、プログラマーでも聞き慣れない言葉ですね。 キロバイトのことだろうか?
いや、エンジニアなら普通に使いますよ。例えば1KBといっても1000byteなのか、1024byteなのかわからないですからね。意味を明確にしたいときにKiBとかを使うんですよ
コメント重複していたら申し訳ありません。linux-headersのパスはディストリビューションによって違うのですね。そして0061-linux-kernel-moduleのgithubですが、アクセスできませんでした。。
> そして0061-linux-kernel-moduleのgithubですが、アクセスできませんでした。。 push忘れてました。すいません。今はアクセスできるはずです
@@satlinuxtube5260ありがとうございます。Makefileのlinux-headersのパス修正するだけでarchlinuxでも動作確認できました。
少しでも変なコード書いちゃうとすぐkernel panicしちゃうので大変ですよね
カーネルプログラマーはprintkなんですね。別世界を見てるようですごく面白い内容でした。
Kernel writing excutation. POSIX Thanks Nippon kernel
GoってPascalっぽいですね。 Cは配列の範囲外にアクセス出来ることが判ってて、態と構造体変数の複数の配列変数の塊のStructure{a[1,2,3], b[4,5,6], c[7,8,9]}のbやcの領域までaでアクセスしちゃえってことも出来ますね。 可読性が悪くなるのでアルゴリズムの途中ではあまりやりませんけど。初期化の時だけとかね。aのforループ1個で全領域にHxFFを埋めるとか。