並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 59件

新着順 人気順

kernelの検索結果1 - 40 件 / 59件

  • 1,000行で作るオペレーティングシステム

    「Writing an OS in 1,000 Lines」 というオンラインブックを書きました。ゼロから1,000行でOSを作るという内容です。 『自作OSで学ぶマイクロカーネルの設計と実装』 とは違い、最初の一歩の部分を重点的に解説しています。シンプルなモノリシックカーネル設計で、実装の解説だけでなくカーネルプログラミング特有の難しい部分、特に「カーネルをどうデバッグすれば良いか」をおさえた、初学者向きの内容になっています。 3日ほどあれば済むボリュームです。夏休みの自由研究がてら、ぜひチャレンジしてみてください。

      1,000行で作るオペレーティングシステム
    • Goで解放したメモリが少しずつ戻ってくる現象 - knqyf263's blog

      情報を発信する人のところに情報が集まることを日々実感しているので、Linuxのメモリ管理に特に詳しいわけではないのですが最近遭遇した問題について自分の理解を書いておきます。ざっと調べても同じことを書いている人を見つけられなかったので、公開には意義があると考えています。識者の方がフィードバックをくださると嬉しいです。 ※ AIの出力をベースに書いているのでいつもと少し文体が違います。 背景 要約 調査 再現の難しさ Goアプリケーションの調査 pprofによる分析 GCログの調査 Linuxの調査 Goランタイムの調査 GoのGCとTHP khugepagedの問題 Goランタイムにおける回避策 回避策の削除 max_ptes_noneのデフォルト値について MADV_NOHUGEPAGEをやめた理由 調査内容まとめ 解決策 検証 C言語 Go言語 まとめ 背景 Go言語で書かれたOSSのア

        Goで解放したメモリが少しずつ戻ってくる現象 - knqyf263's blog
      • Linuxカーネル解読室 再び - VA Linux エンジニアブログ

        Linuxカーネルコード解析プロジェクト立ち上げ Linuxカーネル成長の歴史 カーネルの大きさ バージョン番号 SCM導入 カーネル機能の変遷 執筆者 : 高橋 浩和 ※ 「新Linuxカーネル解読室」連載記事一覧はこちら Linuxカーネルコード解析プロジェクト立ち上げ 弊社内にて若手技術者が中心となり、最新のLinuxカーネルコード全体を読み解くプロジェクトが進行中です。 解析したコードのうち興味を惹かれたもの、重要そうなものを中心にブログ記事にまとめていく予定です。 詳解LinuxカーネルやLinuxカーネル2.6解読室を執筆していたころよりLinuxカーネルは大きく膨れ上がっています。 どこまで辿り着けるかは分かりませんが、気長にお待ちください。 対象Linuxカーネルのバージョンは6.8 ブログ執筆中に興味深い機能が取り込まれたら、より新しいバージョンのカーネルについて解説する

          Linuxカーネル解読室 再び - VA Linux エンジニアブログ
        • Linux カーネルをバイパスして TCP 通信を 10 倍速くする | IIJ Engineers Blog

          【IIJ 2023 TECHアドベントカレンダー 12/16の記事です】 この記事について 背景:TCP はコンピュータネットワークの通信において広く利用されているプロトコル・標準化された通信規格です。コンピュータは TCP/IP スタックと呼ばれるようなソフトウェアを実行することで、定められた規格に則って通信を行います。汎用 OS 環境では、TCP/IP スタックは多くの場合、カーネル空間に OS 機能の一部として実装されています。 課題:通信に関するソフトウェアの研究コミュニティでは、そのようなカーネル空間に実装されている TCP/IP スタックは、近年の高速な NIC の性能を十分に引き出すことが難しいという課題が指摘されてきました。 テクニックの紹介:当記事では、近年の研究コミュニティにおいて比較的一般的な高速化テクニックとされている「カーネルをバイパス(迂回)して TCP 通信を

            Linux カーネルをバイパスして TCP 通信を 10 倍速くする | IIJ Engineers Blog
          • Microsoftが「CrowdStrikeの障害の原因は欧州委員会のクレーム」と当てこすり、なぜMacは無傷だったのかも浮き彫りに

            2024年7月19日に発生した世界的なIT障害であるクラウドストライク事件に関連し、Microsoftが「2009年に欧州委員会からの要求に応じたのが原因でCrowdStrikeのクラッシュがWindowsに波及するのを防げなかった」と示唆したことが報じられました。 Blue Screens Everywhere Are Latest Tech Woe for Microsoft - WSJ https://www.wsj.com/tech/cybersecurity/microsoft-tech-outage-role-crowdstrike-50917b90 Microsoft points finger at the EU for not being able to lock down Windows - Neowin https://www.neowin.net/news/micr

              Microsoftが「CrowdStrikeの障害の原因は欧州委員会のクレーム」と当てこすり、なぜMacは無傷だったのかも浮き彫りに
            • Linuxカーネルパラメータのチューニング&設計 - Qiita

              Linuxカーネルパラメータのチューニング&設計 0.目的 【カーネルパラメータのチューニング】を修得する目的は、サーバの特性を理解し、それぞれに合ったカーネルパラメータのチューニングすることでリソースの有効活用をできるようになることを目的とし、私個人の経験を元にした見解を以下の記事に掲載します。 1.最初に サーバには、それぞれ必要なリソース特性があり、それに合わせたカーネルパラメータのチューニングが必要となります。 世の中の流れはオンプレよりクラウドに移行してはいるので、カーネルパラメータのチューニングよりスケールアップなりスケールアウトするなりの対応をすべきなのでしょう。 ですが、カーネルパラメータのチューニングを知らないとどちらを選択すべきかも理解しずらいと思いますので軽率には出来きません。(待ち行列理論もしらないといけませんが) また、最近のLinuxはデフォルト値が大きくなって

                Linuxカーネルパラメータのチューニング&設計 - Qiita
              • 絵で見てわかるLinuxカーネルの仕組み | 翔泳社

                ハードとソフトの世界をつなぐ OSの根幹となる仕組みを理解しよう OSにおいて、カーネルとはその名のとおり「核となるコンポーネント」であり、記憶領域やファイルシステムの管理、プロセス制御、スケジューリング、ネットワーキングなど、ハードウェア制御に関わる幅広い機能を担っています。 Webやエンタープライズ、組み込みに至るまで、世界中のあらゆるところで、Linuxを基本OSとするシステムが稼働しています。Linuxはオープンソースソフトウェアであり、誰でも広くアクセスできることがその発展を支える特徴の1つといえるでしょう。しかし、その土台となるカーネルに限ってみても、ソースコードを読み込んで理解するにはあまりにも大規模かつ複雑な存在です。そのため、Linuxカーネルの役割や仕組みを理解している人が少ないのもまた事実なのです。 ソフトウェアの開発・利用において、カーネルのような根幹部分について理

                  絵で見てわかるLinuxカーネルの仕組み | 翔泳社
                • トーバルズ氏、「Linux」カーネル開発状況、「Rust」導入、AIを語る

                  Steven J. Vaughan-Nichols (Special to ZDNET.com) 翻訳校正: 川村インターナショナル 2024-08-30 07:30 香港発--Linus Torvalds氏と、その友人でVerizonのオープンソースプログラムオフィスの責任者を務めるDirk Hohndel氏が、The Linux Foundationのカンファレンス「KubeCon + CloudNativeCon + Open Source Summit China」で再び対談し、「Linux」開発とそれに関連する問題について語り合い、聴衆を沸かせた。 両氏はいつものように、Linuxカーネルの現状と今後について語った。具体的には、リリースプロセス、セキュリティ、「Rust」のLinux統合、ソフトウェア開発におけるAIの役割など、Linux開発のさまざまな側面に言及した。 Torv

                    トーバルズ氏、「Linux」カーネル開発状況、「Rust」導入、AIを語る
                  • 自動運転カメラの高負荷、その原因はLinuxカーネルのどこに?

                    はじめに Turing株式会社ソフトウェアエンジニアの堀ノ内です! 私が所属する自動運転チームでは2024 ~ 2025年に発売予定の自動車に搭載する自動運転システムの開発を行っています。Turingでは車両前方に取り付けられたカメラの画像を入力とし、機械学習モデルが進むべき経路を推論、その経路に沿って実際に車両を動かすための制御信号(ステアリング、アクセル、ブレーキ)をCANで車両に送信することで以下の画像のような自動運転を実現しています。 今回のブログでは以下について記載し、私達のチームの仕事内容について知って頂くきっかけになればと思います。 Turingの自動運転システムの紹介 GMSLカメラの評価と発生した問題 Linuxカーネル及びドライバのデバッグ Turingの自動運転システム Turingでは「カメラ画像入力 → 機械学習モデルで経路を推論 → 車両制御」の流れを実現するた

                      自動運転カメラの高負荷、その原因はLinuxカーネルのどこに?
                    • ブルスクを引き起こしたCrowdStrikeはなぜリスクが高い「カーネルモードドライバ」で動作していたのか

                        ブルスクを引き起こしたCrowdStrikeはなぜリスクが高い「カーネルモードドライバ」で動作していたのか
                      • eBPFのこれまでとこれから

                        情報科学若手の会2024

                          eBPFのこれまでとこれから
                        • 新Linuxカーネル解読室 - ソケットインターフェース(データ構造と概要編) - VA Linux エンジニアブログ

                          「Linuxカーネル2.6解読室」(以降、旧版)出版後、Linuxには多くの機能が追加され、エンタープライズ領域をはじめとする様々な場所で使われるようになりました。 それに伴いコードが肥大かつ複雑化し、多くのエンジニアにとって解読不能なブラックボックスとなっています。 世界中のトップエンジニア達の傑作であるLinuxカーネルにメスを入れ、ブラックボックスをこじ開けて、時に好奇心の赴くままにカーネルの世界を解読する「新Linuxカーネル解読室」プロジェクト。 本稿では、旧版第21章で解説されていたソケットインターフェースについて、カーネルv6.8のコードをベースに主にデータ構造を中心に解説します。 はじめに ソケットの実体と概要 ソケット操作関数の実装 ファイル操作関数によるソケット操作の実装 次回予告: ソケット生成編 執筆者 : 須田 哲志、稲葉 貴昭 ※ 「新Linuxカーネル解読室」

                            新Linuxカーネル解読室 - ソケットインターフェース(データ構造と概要編) - VA Linux エンジニアブログ
                          • kiennt26's home | Linux Network Performance Ultimate Guide

                            The following content is rendered from my #til github.Linux Network PerformanceSource: https://github.com/leandromoreira/linux-network-performance-parameters/https://access.redhat.com/sites/default/files/attachments/20150325_network_performance_tuning.pdfhttps://www.coverfire.com/articles/queueing-in-the-linux-network-stack/https://blog.cloudflare.com/how-to-achieve-low-latency/https://blog.cloudf

                            • Linux コンテナのリブートとセキュリティ / SosaiLT 38th

                              総関西サイバーセキュリティLT大会(第38回)の LT 資料です。 参考となる情報にはPDF中からリンクをしていますが、資料中のリンクは Speaker Deck 上ではクリックできないので PDF をダウンロードしてご覧ください。

                                Linux コンテナのリブートとセキュリティ / SosaiLT 38th
                              • Rustで作るLinuxデバイスドライバ

                                だれでもできるシリーズとして、Rustでカーネルモジュールを実装しながら学んできましたが(役に立たないキャラクタデバイスドライバなど)、そろそろ実際に使える機能を実装したいころですよね! 今回は、筆者が実装したネットワークPHYドライバが、Rustで実装された初めてのデバイスドライバとしてLinuxカーネルに採用された話を紹介します。 誤解:LinuxカーネルがRustをサポート「LinuxカーネルがRustをサポートした」というニュースを見て、Rustのコードがどんどん採用されていると誤解している方もいるようです。このニュースは、「LinuxカーネルをRustでも書けるようになりましたが、実際に何かを実装するかどうかは未定」という意味です。Linuxカーネルは、メモリマネージメント、ネットワーク、暗号など、数多くのサブシステムで構成されており、それぞれのメンテナが、コードの採否を判断しま

                                  Rustで作るLinuxデバイスドライバ
                                • ついに生産が終わったけどZ80でまだまだ遊びたい

                                  Kernel/VM探検隊@東京 No17 で発表した内容です。 スライド内で紹介した配信のアーカイブはこちら(2本に分かれています): 【前半戦】Z80をRustで動かすまで年が越せない配信【年末特番】 https://youtube.com/live/9eTlxU6kQxg 【後半戦】…

                                    ついに生産が終わったけどZ80でまだまだ遊びたい
                                  • Linus Torvaldsが語るカーネル開発とメンテナー、AIコーディング、そしてオープンであること ―Open Source Summit Japan 2023基調講演より | gihyo.jp

                                    Linus Torvaldsが語るカーネル開発とメンテナー⁠⁠、AIコーディング⁠⁠、そしてオープンであること ―Open Source Summit Japan 2023基調講演より 「ぼくはあんまりパブリックな場で喋るのは好きじゃない。でもDirkが用意した質問に、ぼくがこの場(Linux Foudation主催のサミット)で答えるスタイルなら、リラックスしながらいろいろなことを議論できるし、聞いている人たちにも楽しんでもらえると思っている。ちなみにDirkの質問内容は事前に聞かされていないよ」―12月5日、東京・有明で開催された「Open Source Summit Japan」(⁠主催: Linux Foundation、12/5~12/6)のキーノートセッションには、久しぶりに来日した“⁠Linux Creator⁠”ことLinus Torvalds氏が登壇するとあって、早朝にも

                                      Linus Torvaldsが語るカーネル開発とメンテナー、AIコーディング、そしてオープンであること ―Open Source Summit Japan 2023基調講演より | gihyo.jp
                                    • Linuxの各種仮想ネットワークデバイスにおけるSegmentation Offloadの振る舞い

                                      LinuxにおけるSegmentation OffloadとはTCPなどのトランスポートレイヤのプロトコルが送信するデータをMTUに収まるように分割する処理(Segmentation)をNICのレイヤにオフロードすることによってスループットを向上させる技術です. Segmentation Offloadを使った場合, トランスポートレイヤのプロトコルはIPレイヤで許容される最大のサイズ(64KB程度)までのデータを1つのIPパケットで送信することができます. 受信側は逆にネットワークから入ってきたSegmentation済みのパケットをNICのレイヤで1つの大きなIPパケットに集約した上でプロトコルスタックの処理にかけます. これによってプロトコルスタックで処理されるパケットの個数を減らすことができるため, スループットが上がるという仕組みです. Linuxには仮想ネットワークデバイスとい

                                        Linuxの各種仮想ネットワークデバイスにおけるSegmentation Offloadの振る舞い
                                      • カーネルことはじめ

                                        この記事は未踏ジュニアAdvent Calendar : 10日目です. カーネル, 書きたくないですか? こんにちは, horizon (@horizon2k38)です. 私は2023年の未踏ジュニアでA9Nというマイクロカーネルを作成していました. 人類なら誰しもがカーネルを書きたいと思ったことがあるはずです. そんな方のために, 未踏期間で得られた "0からカーネルを如何にして学び, 実装したか" という知見をより一般化して解説しようと思います. この記事の内容をすべて達成することで, あなたもきっとカーネルを書くことができるでしょう. やれば出来る きっと 絶対 私No.1 注: この記事はどちらかといえば初心者向けなので, 自信がある方は最下部の"参考文献"と, 私が書いた低レイヤー学習のロードマップのみ読むことをおすすめします. カーネル/OSとは そもそもカーネルとは, 所謂

                                          カーネルことはじめ
                                        • WasmLinux: LinuxカーネルをWebAssemblyにする

                                          LinuxカーネルがWebブラウザで動いたらどう考えても面白い んだけど、そこに至るまではなかなか難しい道のりになる。その第一歩として、Linuxカーネルのユーザーランド版であるLKL( https://github.com/lkl/linux )をWebAssemblyにコンパイルして、wasm2cでC言語に変換した上、Visual Studio 2022でコンパイルしてWindows上で実行してみた。 まだWebブラウザでは動いていないが、思ったよりは簡単にWasmに移植できた(個人の感想です) ウケが良ければMUSL libc移植編 → デバイスドライバ活用編 → Webブラウザ上動作編と続ける感じで。。 EDIT: Visual Studioのスクリーンショットを撮りなおし。 memory-control はanonymousなmapしか救えないので、ここ数年スパンではエミュレーシ

                                            WasmLinux: LinuxカーネルをWebAssemblyにする
                                          • LTS版「Linux」カーネルのサポートが短縮へ--背景にメンテナーの苦悩

                                            現地時間9月19日からスペインのビルバオで開催されていた「Open Source Summit Europe」で、Linuxカーネル開発者であり、LWN.netの編集責任者を務めているJonathan Corbet氏が、Linuxカーネル関連の新しい点や今後の動きについて発表した。 ここではその中から、今後の大きな変更点の1つを紹介したい。それは、Linuxカーネルの長期サポート(LTS)が6年から2年に短縮されるということだ。 LinuxカーネルのLTS版には現在のところ、6.1と5.15、5.10、5.4、4.19、4.14の6つがある。これまでであれば、4.14は2024年1月にサポートが終了し、別のカーネルが追加されていた。しかし今後は、4.14とその次の2つのバージョンのサポートが終了しても、別のカーネルがそれに取って代わることはない。 なぜだろうか。Corbet氏は単純なことだ

                                              LTS版「Linux」カーネルのサポートが短縮へ--背景にメンテナーの苦悩
                                            • ebpf-goによるLinuxカーネルトレース入門

                                              ebpf-goによるLinuxカーネルトレース入門 ebpf-goを使用したLinuxカーネルトレース(fentry)について紹介します。 ebpf-goは、eBPFのGo向けライブラリです。このライブラリは、libbpfに依存せず(cgoを使用せず)にeBPFプログラムとデータのやり取りが可能であるため、ポータビリティが高くGo言語に適したeBPFライブラリとなります。 fentryは、カーネル関数のエントリポイントにプログラムをアタッチするためのBPFプログラムタイプです。簡潔に言うと、カーネル関数にフック処理を行うことができます。 GitHub: ebpf-go(cilium/ebpf) 公式ドキュメント: The eBPF Library for Go 本記事ではebpf-goのexamples内のtcprttを基に、ebpf-goの開発方法についても説明します。 前提条件として、

                                                ebpf-goによるLinuxカーネルトレース入門
                                              • 第793回 自作のカーネルモジュールをRustで作る | gihyo.jp

                                                第791回では基本的なカーネルモジュールの作り方とそれをDKMSに対応させる方法を紹介しました。今回はカーネルの新しい機能のひとつである「Rustでカーネルモジュールを作る方法」を紹介しましょう。 UbuntuカーネルにおけるRustの対応 Linuxカーネルでは、Kernel 6.1からプログラミング言語である「Rust」の機能が取り込まれました。これは「Rust for Linux」の成果で、カーネルの機能をC言語やアセンブラだけでなく、Rustでも書けるようにするというものです。メモリー安全性や強い静的型付けなどの特徴を取り込むことで、カーネルのセキュリティ問題の原因の多くを占めるメモリー関連の不具合に対して、一種の対策になることが期待されます。 あらゆるケースにおいてRustに置き換えられるというわけではありませんが、今後カーネルのコードを読み書きする上でC言語やアセンブラだけでな

                                                  第793回 自作のカーネルモジュールをRustで作る | gihyo.jp
                                                • 知育おもちゃの遊び方 Lv. 999

                                                  Kernel/VM 探検隊@東京 No. 17

                                                    知育おもちゃの遊び方 Lv. 999
                                                  • 新Linuxカーネル解読室 カテゴリーの記事一覧 - VA Linux エンジニアブログ

                                                    本稿では、タスクの切り替えに伴うレジスタの切り替え処理の内、前編 (7月11日公開: https://valinux.hatenablog.com/entry/20240711) では解説しきれなかった部分について解説します。

                                                      新Linuxカーネル解読室 カテゴリーの記事一覧 - VA Linux エンジニアブログ
                                                    • Linux Pipes are Slow | Quentin Santos

                                                      vmsplice is too fast Some programs use a particular system call “vmsplice” to move data faster through a pipe. Francesco already did a deep dive on using vmsplice to make things fast. However, while experimenting with it, I noticed that, when not using vmsplice, Linux pipes are slower than what I would have expected. Since you cannot always use it, I wanted to understand exactly why that was, and

                                                      • ZigでWriting an OS in 1,000 Linesをやる

                                                        ZigでWriting an OS in 1,000 Linesをやる #2023-11-21 自作 OS で学ぶマイクロカーネルの設計と実装(通称エナガ本)の補足資料として公開されているWriting an OS in 1,000 Linesを、できるだけZigでやってみることにした。 目次成果物 #repositoryは以下。 さいしょに #エナガ本は一通り読んでいたのだが、機能に対していくつかのOSの実装を眺める。という構成になっており、個人的には「同じような難易度でRV32を対象に 0->1 でシンプルなOSを作る書籍があるといいなあ」と思いながら読んでいたのだが、まさに欲していたものが公開されたので大喜びで実装を開始した。 自分はそのまま写経してしまうと頭に入らないため、異なる言語で書いてみたり、何らかの制約を課して実施することが多い。今回はZigで書いてみることにした。 概ね問

                                                          ZigでWriting an OS in 1,000 Linesをやる
                                                        • Linuxカーネル解読室プロジェクト: 新Linuxカーネル解読室 - ソケットインターフェース(ソケット生成編) - VA Linux エンジニアブログ

                                                          「Linuxカーネル2.6解読室」(以降、旧版)出版後、Linuxには多くの機能が追加され、エンタープライズ領域をはじめとする様々な場所で使われるようになりました。 それに伴いコードが肥大かつ複雑化し、多くのエンジニアにとって解読不能なブラックボックスとなっています。 世界中のトップエンジニア達の傑作であるLinuxカーネルにメスを入れ、ブラックボックスをこじ開けて、時に好奇心の赴くままにカーネルの世界を解読する「新Linuxカーネル解読室」プロジェクト。 本稿では、旧版第21章で解説されていたソケットインターフェースについて、カーネルv6.8のコードをベースに主にデータ構造を中心に解説します。(前回の続きになります。) はじめに 1. socket構造体とsock構造体の生成 1.1. socket構造体の生成 1.2. プロトコル依存部の処理 1.2.1 プロトコル依存部分のデータ構築

                                                            Linuxカーネル解読室プロジェクト: 新Linuxカーネル解読室 - ソケットインターフェース(ソケット生成編) - VA Linux エンジニアブログ
                                                          • 第56回 Linuxカーネルのコンテナ機能 - cgroup v2から使うメモリコントローラ(1) | gihyo.jp

                                                            前回は、カーネルのお話から一度離れて、LinuxContainersプロジェクトから発表されたIncusというプロダクトを紹介しました。 少し間が空いてしまいましたが、今回からはまたLinuxカーネルの機能紹介に戻りましょう。第53回、第54回で紹介したCPUコントローラの話に続いて、メモリコントローラのお話をします。 メモリコントローラについては、以前、第5回で簡単に説明しています。このときの説明はcgroup v1のメモリコントローラを説明しました。今回は、cgroup v2のメモリコントローラを紹介します。 メモリ回収処理とメモリ負荷 コントローラを説明する前に、メモリコントローラを説明する前提となる、メモリの回収処理とメモリ負荷について簡単に紹介します。さらに詳しい情報については、Linuxカーネルの解説文書などをご参照ください[1]。 OS実行中には、色々とメモリを使う要素が存在

                                                              第56回 Linuxカーネルのコンテナ機能 - cgroup v2から使うメモリコントローラ(1) | gihyo.jp
                                                            • Linuxカーネル内部をフックするeBPFを用いてコンテナ間通信を実現する「Cilium」、十分成熟したソフトウェアに到達したとして、CNCFの卒業プロジェクトに

                                                              Linuxカーネル内部をフックするeBPFを用いてコンテナ間通信を実現する「Cilium」、十分成熟したソフトウェアに到達したとして、CNCFの卒業プロジェクトに Cloud Native Computing Foundation(CNCF)は、eBPFを用いたコンテナ間通信を実現する「Cilium」が十分成熟した段階に到達したとして、「卒業」(Graduation)プロジェクトになったことを発表しました。 [NEWS] Announcing the graduation of @ciliumproject - the #eBPF-powered #cloudnative #opensource for providing, securing, and observing network connectivity between workloads Read more: https://t

                                                                Linuxカーネル内部をフックするeBPFを用いてコンテナ間通信を実現する「Cilium」、十分成熟したソフトウェアに到達したとして、CNCFの卒業プロジェクトに
                                                              • いかにして命令の入れ替わりについて心配するのをやめ、メモリモデルを愛するようになったか

                                                                kernel/vm探検隊 17回 @nullpo_head

                                                                  いかにして命令の入れ替わりについて心配するのをやめ、メモリモデルを愛するようになったか
                                                                • 「Linux」メンテナーの燃え尽き症候群問題--業務内容の変化と支援の必要性

                                                                  「Linux」カーネル開発者であり、LWN.netの編集責任者を務めているJonathan Corbet氏は「Linux Foundation Member Summit」の場で、Linuxカーネルのメンテナーが抱えている問題と、そうした状況が手に余るようになってきている理由について説明した。 事実、Linuxコードのメンテナーの多くがバーンアウト(燃え尽き症候群)に陥っている。なぜだろうか。その理由は数多くある。しかしまず、Linuxカーネルのメンテナーが実際に行っている作業を理解する必要がある。 Linuxコードのメンテナーというのは、何千人もの開発者からのマージ依頼を受け取り、コード中にエラーがなく、リグレッション(退行)がないことを確認し、ワークツリーの上流や下流にある他のメンテナーによるパッチとの連携を調整し、最後にマージ対象パッチをメインラインに取り込むという作業を担う人々だ。

                                                                    「Linux」メンテナーの燃え尽き症候群問題--業務内容の変化と支援の必要性
                                                                  • linux kernelでのFPU, MMX, SSEについて - 私のひらめき日記

                                                                    linux kernelでのFPU, MMX, SSEについて 本記事では、linux kernel 2.6.11でのFPU(Float Point Unit)やMMX, SSEがどう設定、使用されているのかを確認する。FPU, MMX SSE命令を使用する際は、使用する際に意図的に#NM(Interrupt7: Device not available exception)を出し、各種フラグを切り替え(特にcr0.TS flagをOFFにして)、これらの命令を使えるようにしている。(後述の通り、Kernel Modeでは、kernel_fpu_begin, kernel_fpu_endにてフラグの切り替えをおこなっている1ため、この限りでない。) プログラミング言語の例外処理はパフォーマンスを落とすものとして一般に嫌われているが、ハードウェア(この場合x86)のレイヤでは、例外をあえて意

                                                                      linux kernelでのFPU, MMX, SSEについて - 私のひらめき日記
                                                                    • device mapperによるディスクI/O障害のエミュレーション

                                                                      Linuxカーネルのdevice mapper機能を使ってブロックデバイスレベルでディスクI/O障害をエミュレーションをする方法について紹介しました。kernel/vm 北陸 part6で発表しました。 https://kernelvm.connpass.com/event/297033/?utm_c…

                                                                        device mapperによるディスクI/O障害のエミュレーション
                                                                      • 新Linuxカーネル解読室 - ソフト割り込み処理 - VA Linux エンジニアブログ

                                                                        「Linuxカーネル2.6解読室」(以降、旧版)出版後、Linuxには多くの機能が追加され、エンタープライズ領域をはじめとする様々な場所で使われるようになりました。 それに伴いコードが肥大かつ複雑化し、多くのエンジニアにとって解読不能なブラックボックスとなっています。 世界中のトップエンジニア達の傑作であるLinuxカーネルにメスを入れ、ブラックボックスをこじ開けて、時に好奇心の赴くままにカーネルの世界を解読する「新Linuxカーネル解読室」プロジェクト。 本稿では、旧版第3章で解説されていたソフト割り込み処理について、カーネルv6.8/arm64のコードをベースに解説します。 はじめに 割り込み禁止区間と応答性について perfにおけるNMI割り込みから見る応答性 ソフト割り込み処理 ソフト割り込み処理の考え方 ソフト割り込み実行までの流れ ソフト割り込み要求(RCU_SOFTIRQの場

                                                                          新Linuxカーネル解読室 - ソフト割り込み処理 - VA Linux エンジニアブログ
                                                                        • 意外と知られていない、Linuxのメモリホットプラグのインタフェースについて - Qiita

                                                                          0.はじめに 0.1 今年を振り返って この記事はFujitsu Advent Calendar 2023 の24日目の記事です。 なお、本記事は個人の意見に基づくものであり、組織を代表するものではありません。 今年もAdvent Calendarの季節となりましたね。皆様お変わりないでしょうか? 私の方はというと、全体的に多忙ではありましたが、夏には国際学会IEEE NVMSAでの発表、秋から年末にかけて海外出張やOpen Source Summit Japanでの講演など、今年後半は怒涛のように仕事がくる状態になってました。おまけに 「Linus Torvaldsと会談せよ」 というミッションまで降ってきてしまい、正直どうなることかと思いました。人生、何が起こるかわからないものです。学生時代、英語は超苦手だったのに…。 0.2 今年の記事について さて、例年このAdvent Calen

                                                                            意外と知られていない、Linuxのメモリホットプラグのインタフェースについて - Qiita
                                                                          • Rustで書かれたLinux互換OS「Maestro」が爆誕 | ソフトアンテナ

                                                                            Rustで書かれLinux互換を目指して開発が進められているOS、「Maestro」が公開され注目を集めています。 Maestroは、フランス在住のソフトウェアエンジニアLuc Lenôtre氏によって開発が進められているOSで、2018年12月22日に学校のプロジェクトとして始められました。当初はC言語を使って実装されたそうですが、コードベースをきれいに保つのが難しくなり、1年半後にRust言語での実装に切り替えられます。 Rustへ切り替えた理由として以下のような項目リストアップされています。 以前の失敗から学んだ教訓を生かし、プロジェクトを最初からやり直すことができる。 C言語でLinuxライクなカーネルを書くよりも、もう少し革新的になる。 Rust言語の安全性をカーネル・プログラミングの難点に活用する。Rustの型付けシステムを使うことで、メモリ安全性に関する責任をプログラマからコ

                                                                              Rustで書かれたLinux互換OS「Maestro」が爆誕 | ソフトアンテナ
                                                                            • /dev/random は Linux kernel 5.6 以降ではエントロピーが枯渇しても読み出しがブロックされなくなった - bootjpのメモ帳

                                                                              lwn.net github.com

                                                                                /dev/random は Linux kernel 5.6 以降ではエントロピーが枯渇しても読み出しがブロックされなくなった - bootjpのメモ帳
                                                                              • 2024年最初のカーネル「Linux 6.7」がリリース、新ファイルシステムBcachefsをサポート | gihyo.jp

                                                                                Linux Daily Topics 2024年最初のカーネル「Linux 6.7」がリリース⁠⁠、新ファイルシステムBcachefsをサポート Linus Torvaldsは1月7日(米国時間⁠)⁠、事前の告知通りに「Linux 6.7」の正式リリースをアナウンスした。開発期間中に年末年始が含まれていたため、通常よりも1本多い8本のリリース候補版(RC)を経ての公開となる。サイズ的には過去のリリースの中でも最大の部類に入るものの、リリースに際しては大きなサイズのカーネルにありがちな大きな混乱や問題もなく、Linusが望んだように穏やかな年始めとなったようだ。 Linux 6.7 -Linus Torvalds Linux 6.7における最大のハイライトは、長年に渡って実装が期待されていたコピーオンライト(CoW)の新ファイルシステム「Bcachefs」のサポートで、現時点でも実験的な立ち

                                                                                  2024年最初のカーネル「Linux 6.7」がリリース、新ファイルシステムBcachefsをサポート | gihyo.jp
                                                                                • Linuxカーネルを学ぶ理由、システムを効率的に動かせるようになる

                                                                                  Linuxは現在、多くの分野で利用されている。その心臓部が「カーネル」だ。Linuxを使いこなすのに必要なカーネルの知識を解説する。 Linuxカーネルを学習する動機や意義は人によってさまざまでしょう。 しかし、自動車のエンジンやトランスミッションの仕組みを理解することで、より効率的な運転が可能になるように、OSの中核部品であるカーネルの動作を理解すれば、アプリケーションやシステム全体を効率的に稼働できるようになるといえます(図3上)。例えば、ある周辺機器を動かすのに必要なデバイスドライバにカーネル空間で動作するものとユーザー空間で動作するものの二つがあった場合、基本的には前者の方が処理は高速です。なぜ高速なのかという理屈を知っておけば、適切なデバイスドライバを選択できます。

                                                                                    Linuxカーネルを学ぶ理由、システムを効率的に動かせるようになる