並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 693件

新着順 人気順

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

  • GitHub - luainkernel/lunatik: Lunatik is a framework for scripting the Linux kernel with Lua.

    Lunatik is a framework for scripting the Linux kernel with Lua. It is composed by the Lua interpreter modified to run in the kernel; a device driver (written in Lua =)) and a command line tool to load and run scripts and manage runtime environments from the user space; a C API to load and run scripts and manage runtime environments from the kernel; and Lua APIs for binding kernel facilities to Lua

      GitHub - luainkernel/lunatik: Lunatik is a framework for scripting the Linux kernel with Lua.
    • Linuxの各種仮想ネットワークデバイスにおけるSegmentation Offloadの振る舞い

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

        Linuxの各種仮想ネットワークデバイスにおけるSegmentation Offloadの振る舞い
      • A memory model for Rust code in the kernel [LWN.net]

        LWN.net needs you!Without subscribers, LWN would simply not exist. Please consider signing up for a subscription and helping to keep LWN publishing The Rust programming language differs from C in many ways; those differences tend to be what users admire in the language. But those differences can also lead to an impedance mismatch when Rust code is integrated into a C-dominated system, and it can b

        • Flipping Pages: An analysis of a new Linux vulnerability in nf_tables and hardened exploitation techniques

          This blogpost is the next instalment of my series of hands-on no-boilerplate vulnerability research blogposts, intended for time-travellers in the future who want to do Linux kernel vulnerability research. Specifically, I hope beginners will learn from my VR workflow and the seasoned researchers will learn from my techniques. In this blogpost, I'm discussing a bug I found in nf_tables in the Linux

          • What's Inside a Linux Kernel Core Dump

            Linux kernel core dumps are often critical for diagnosing and fixing problems with the OS. We’ve published several blogs related to kernel core dumps, including how to generate them, how to estimate their size, how to analyze them with Drgn, and even how to manually extract stack function arguments from them. But have you ever wondered what’s really in a core dump? In this blog, we’ll answer that

              What's Inside a Linux Kernel Core Dump
            • raspberry piで学ぶ組込みLinuxデバイスドライバ開発

              はじめに 1/24~26の3日間 仕事をサボっ.... 調整をしてポリテクセンター関東で行われた組込みLinuxデバイスドライバ開発技術というセミナーを受講してきました。 カーネルのVersionが2.6、対象のマイコンボードがSH-4というとても古いものだったので今回はラズパイで復習しながら、セミナーの内容を共有したいと思います。 ↑がセミナーで使用したボードです。 LEDやタクトスイッチ、赤外線センサやモータがボートに付いているのでそれを制御するドライバを作成しました。 セミナーのテキストは2部構成で内容は以下の通りです。 第1部CPUボード編 1章 ターゲットボードの確認 2章 CPUボードの機能とデバイスドライバの確認 3章 デバイスドライバ概要 4章 モジュールの作成 5章 キャラクタデバイスの作成 6章 デバイスドライバの作成 第2部拡張IOボード編 7章 属性ファイルの利用

                raspberry piで学ぶ組込みLinuxデバイスドライバ開発
              • Rustで作るLinuxデバイスドライバ

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

                  Rustで作るLinuxデバイスドライバ
                • 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
                  • 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」が爆誕 | ソフトアンテナ
                    • GitHub - llenotre/maestro: Unix-like kernel written in Rust

                      You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                        GitHub - llenotre/maestro: Unix-like kernel written in Rust
                      • Maestro - Introduction

                        2024-01-02T15:00:00+00:00 Maestro is a Unix-like kernel and operating system written from scratch in Rust Thanks to the internet, I can learn how most things I am interested in work. However, something stayed a mystery to me for a long time: computers. Computers are amongst the most complex tools that humanity has ever built. They are a marvel of engineering that we take for granted because we use

                          Maestro - Introduction
                        • 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カーネルトレース入門
                          • 意外と知られていない、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
                            • 第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
                              • 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
                                • 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
                                  • オープン化で裾野広がるμT-Kernel 3.0、プログラミングコンテストを起爆剤に

                                    オープン化で裾野広がるμT-Kernel 3.0、プログラミングコンテストを起爆剤に:2023 TRON Symposium(1/2 ページ) 「2023 TRON Symposium」では、TRONプロジェクトのRTOS「μT-Kernel 3.0」をテーマに大手マイコンメーカー4社が協賛する「TRONプログラミングコンテスト」が発表された。本稿では、このμT-Kernel 3.0関連を中心に2023 TRON Symposiumの展示を紹介する。 1984年に誕生した「TRONプロジェクト」は、2024年に40周年の節目を迎える。10年前の2014年に30周年を迎えてからの10年間は、組み込み機器で広く利用されてきたμITRONの実績をベースにIoT(モノのインターネット)への取り組みを強化してきた10年間でもあった。TRONプロジェクト リーダーの坂村健氏も、2017年3月末に東京大

                                      オープン化で裾野広がるμT-Kernel 3.0、プログラミングコンテストを起爆剤に
                                    • カーネルことはじめ

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

                                        カーネルことはじめ
                                      • 第791回 自作のカーネルモジュールをDKMS対応にする | gihyo.jp

                                        長い人生において誰もが一度は遭遇するであろう経験のひとつが「カーネルモジュールのビルド」です。ちょっと盛りすぎではないかと思われるかもしれませんが、それでも本連載の読者層であれば、おそらく大半の人がなにがしかのカーネルモジュールをビルドしたことがあるのではないでしょうか。今回は自作を含むサードパーティのカーネルモジュールの管理が楽になる「DKMS(Dynamic Kernel Module Support)」の使い方と、セキュアブートへの対応方法を紹介します。 Ubuntuのカーネルについて Ubuntuのカーネルは、アップストリームであるLinuxカーネルの特定のバージョンに対して、Ubuntu独自のパッチを加えて構築されています。その仕組みにはUbuntu固有の手順も多く、本連載ではこれまでにもさまざまな方法でカーネルをビルド・インストールする手段を紹介してきました。代表的なものだけで

                                          第791回 自作のカーネルモジュールをDKMS対応にする | gihyo.jp
                                        • device mapperによるディスクI/O障害のエミュレーション

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

                                            device mapperによるディスクI/O障害のエミュレーション
                                          • Amazon Time Sync Serviceがマイクロ秒単位で時刻同期できるPTPをサポートしたのでEC2で試してみた | DevelopersIO

                                            Amazon Time Sync Serviceがマイクロ秒単位で時刻同期できるPTPをサポートしたのでEC2で試してみた こんにちは。CX事業本部のakkyです。 2週間ほど前となりますが、Amazon Time Sync ServiceがPTPをサポートしました。 この時には見落としてしまったのですが、今回のre:Inventで発表されたAurora Limitless Databaseでは、分散データベースを実現するために精密な時刻同期を必要としており、このために新しいAmazon Time Sync Serviceが使われているという発表がありました。 今回は、このPTP時刻同期をEC2インスタンスで試してみましたのでご紹介します。 Amazon Time Sync Serviceとは? 無料で使えるフルマネージドな時刻同期サービスで、いままではNTPのみがサポートされていました。

                                              Amazon Time Sync Serviceがマイクロ秒単位で時刻同期できるPTPをサポートしたのでEC2で試してみた | DevelopersIO
                                            • 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について - 私のひらめき日記
                                              • 入門 eBPF

                                                eBPFは、ネットワーク、セキュリティ、オブザーバビリティなど、さまざまなインフラ関連の分野のプラットフォームとして利用が広がりつつある、近年最も注目されている技術の1つです。本書ではカーネルの機能を拡張する方法として注目度の高いeBPFについて、どんな技術であるか、何ができるかを概観することができます。基本的なeBPFプログラムの書き方を紹介するとともに、仕組みも理解できるようになっています。 訳者まえがき まえがき 1章 eBPFとは何か? なぜ、重要なのか? 1.1 eBPFのルーツ:Berkeley Packet Filter 1.2 BPFからeBPFへ 1.3 本番環境に向けてのeBPFの進化 1.4 名前付けは難しい 1.5 Linuxカーネル 1.6 カーネルへの新機能の追加 1.7 カーネルモジュール 1.8 eBPFプログラムの動的ロード 1.9 高性能なeBPFプログ

                                                  入門 eBPF
                                                • 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をやる
                                                  • 第54回 Linuxカーネルのコンテナ機能 ―cgroup v2から使うCPUの帯域幅制限(2) | gihyo.jp

                                                    前回は、CPUコントローラでの帯域幅制限がどのように行われるのかについて簡単に説明しました。 前回の最後に、説明のために挙げた例がかなり理想的な状況であると書きました。今回は、帯域幅制限の機能を詳しく見ていくために、前回よりはもう少し複雑な状況について説明していきましょう。 未使用クォータの返却 前回説明で示した例では、CPUは割り当てられたスライスをすべて使いきっていました。しかし、複数のCPUがある環境で、タスクが終了したり、I/O待ちなどにより、クォータが割り当たったCPUで実行可能なタスクがなくなった場合はどうなるでしょう? 図1 割り当てられたスライスが使われない場合 図1のように、クォータプールに10msクォータが残っているとします。 ①でCPU1でCPUを使用するタスクから要求がありスライスが転送され、クォータの残りが5msとなりました ②で再度CPU1でCPUを使用するタス

                                                      第54回 Linuxカーネルのコンテナ機能 ―cgroup v2から使うCPUの帯域幅制限(2) | gihyo.jp
                                                    • 「Linux」メンテナーの燃え尽き症候群問題--業務内容の変化と支援の必要性

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

                                                        「Linux」メンテナーの燃え尽き症候群問題--業務内容の変化と支援の必要性
                                                      • ハードウェアのタイムスタンプを使用してネットワークの待ち時間を測定する方法 | IIJ Engineers Blog

                                                        I'm a researcher at IIJ Research Laboratory working on the performance, security and reliability of distributed systems. 今回は、IIJの技術研究所にインターンシップとしてドイツから来日していたフォーゲル アーネさんの研究を紹介します。彼は博士号候補者で一緒に働いていました。研究内容は、ネットワークカードのハードウェアタイムスタンプについてです。それではご覧ください。 (以下フォーゲルさんの記事) この投稿では、ハードウェアのタイムスタンプを使用して、単純なpingコマンドよりもきめ細かくネットワークの待ち時間を測定する方法を探ります。 動機 2つのノード間のネットワークレイテンシを調べたい場合どうすればよいでしょうか? シンプルな方法はpingを使うことでしょう: $

                                                          ハードウェアのタイムスタンプを使用してネットワークの待ち時間を測定する方法 | IIJ Engineers Blog
                                                        • 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にする
                                                          • Linux コンテナのリブートとセキュリティ / SosaiLT 38th

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

                                                              Linux コンテナのリブートとセキュリティ / SosaiLT 38th
                                                            • 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の卒業プロジェクトに
                                                              • 自動運転カメラの高負荷、その原因はLinuxカーネルのどこに?

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

                                                                  自動運転カメラの高負荷、その原因はLinuxカーネルのどこに?
                                                                • 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」カーネルのサポートが短縮へ--背景にメンテナーの苦悩
                                                                  • 1,000行で作るオペレーティングシステム

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

                                                                      1,000行で作るオペレーティングシステム
                                                                    • How does the Linux Kernel start a Process

                                                                      ...and how to ptrace the entry point and m3ss w1th da stack. In this article, you will learn what happens inside the Linux Kernel when a process calls execve(), how the Kernel prepares the stack and how control is then passed to the userland process for execution. I had to learn this for the development of Zapper - a Linux tool to delete all command line options from any process (without needing r

                                                                        How does the Linux Kernel start a Process
                                                                      • WebAssembly Night_Wasmを実行するunikernelとWasmコンパイラ

                                                                        Fashionably flexible responsive web design (full day workshop)

                                                                          WebAssembly Night_Wasmを実行するunikernelとWasmコンパイラ
                                                                        • Embedded Linux kernel解析ノウハウ Linux kernel traceの詳細

                                                                          • WASMバイナリを実行する自作OS, mavisの紹介

                                                                            mavisとは mavisは私がフルスクラッチで開発している自作OSです。 これをビルドしてmake runするとshellが立ち上がり、"hello"コマンドを実行すると"Hello World!"が表示されます。 現状できることはたったこれだけですが、面白いのはその仕組みです。実は上の画像のshellとhello worldプログラムはどちらも WASMバイナリ です。そしてkernelは低レベルなメモリ管理機能とタスク管理機能を除くと、「WASMバイナリをタスクとして実行する」以外の機能を持ちません。つまりkernelがWASM Runtimeであり、それによって"ユーザーランド"を実現しているということです。 このOSは「仮想メモリ」を持ちません。なぜならWASMバイナリは位置独立だからです。WASMはスタックマシンベースの命令セットなので、スタックさえ用意すればどこでも、何度でも

                                                                              WASMバイナリを実行する自作OS, mavisの紹介
                                                                            • Linuxを再起動することなくカーネルにパッチを当てる「ライブパッチ」の技術的な仕組みと、その種類とは[PR]

                                                                              Linuxを再起動することなくカーネルにパッチを当てる「ライブパッチ」の技術的な仕組みと、その種類とは[PR] Linuxのアップデートパッチは脆弱性の大小にかかわらず、ほぼ毎月のように登場しているのが現状です。 パッチの適用を放置することは脆弱性を放置することにつながるため、脆弱性対策のパッチが公開されたならば、迅速なパッチの適用が望まれます。特に最近ではセキュリティの脆弱性を突かれたことで深刻な被害を被る企業などの事例が社会的な注目を集めるようになっており、迅速なパッチ適用の重要性は高まってきています。 一方で、ビジネス上の要請としては計画停止であってもサーバの停止は最低限で済ませることが望ましいとされています。計画停止であっても、数分から長いときには数十分かかるLinuxサーバの再起動を伴うアップデート作業を可能な限り回避したいという要望は変わらないでしょう。 ITの現場はこの、セキ

                                                                                Linuxを再起動することなくカーネルにパッチを当てる「ライブパッチ」の技術的な仕組みと、その種類とは[PR]
                                                                              • 今「eBPFを使ったカーネルの拡張」が熱い! eBPFで“カーネルを拡張できるおもちゃ”を作ってみた話

                                                                                Kernel/VM探検隊は、カーネルやVM、およびその他なんでもIT技術の話題ジャンルについて誰でも何でも発表してワイワイ盛り上がろうという会です。西村啓佑氏は、eBPFを使ったカーネル拡張の開発について発表しました。 eBPFの概要 西村啓佑氏:あらためまして、mumumuです。「eBPFを使ったオレオレカーネル拡張入門」というタイトルで発表を始めます。今日の発表の目次は(スライドを示して)こんな感じです。 まず、eBPF(extended Berkeley Packet Filter)がけっこう背景になってくるのですが、概要としては、カーネルの中で動いているVM。Kernel/VMの両方を回収できるすごいやつなんですね。こいつは実行前にバイトコードを検証するので、安全に実行できるというのが売りです。基本的には、イベントトリガーで動作するプログラムになっていて、それぞれのイベントに対応す

                                                                                  今「eBPFを使ったカーネルの拡張」が熱い! eBPFで“カーネルを拡張できるおもちゃ”を作ってみた話
                                                                                • 仮想マシンのためのメモリ共有手法「ELISA」 メモリ分離を担保しつつ、低負荷で共有可能に

                                                                                  Kernel/VM探検隊は、カーネルやVM、およびその他なんでもIT技術の話題ジャンルについて誰でも何でも発表してワイワイ盛り上がろうという会です。yasukata氏は、仮想マシンのためのメモリ共有手法「ELISA」について発表しました。 仮想マシンで重要なメモリのアイソレーション yasukata氏(以下、yasukata):yasukataといいます。「仮想マシンのためのVMFUNC命令を使ったメモリ共有手法」についてお話しします。 (スライドを示して)こちらは、2023年3月に「ASPLOS」という学会で発表したものです。内容は、「Exit-Less, Isolated, and Shared Access」、ELISAという仮想マシンのためのメモリ共有手法についてです。こちらのリンクに、論文、スライド、ソースコード、解説などがあるので、よければご参照ください。 まず、仮想マシンにつ

                                                                                    仮想マシンのためのメモリ共有手法「ELISA」 メモリ分離を担保しつつ、低負荷で共有可能に