並び順

ブックマーク数

期間指定

  • から
  • まで

81 - 120 件 / 685件

新着順 人気順

kernelの検索結果81 - 120 件 / 685件

  • LinusがZFSにLKMLで言及した件 - kuenishi's blog

    先日Linusが盛大にZFSを非難したことがインターネット・カーネル界隈の噂を駆け巡った。これをタイトルだけみたり本文をちょっと読んだら「ああ、LinusはZFSが嫌いなんだ」とか「LinuxでZFSを使うべきではない」といった理解をする人が非常に多いだろうと思う。Linusは当然Linuxユーザーにとって大きな影響力を持つ人物であり、多くのLinuxユーザーがこの理解のままでいることになりかねない。公私ともにZFSに頼りっきりになっている私は特にそういう状況は非常に困るし、Canonicalは19.10からUbuntu LinuxでのZFS rootを標準にしようとしているくらいだからもっと困るだろう。複雑な状況になっていると思うので、このニュースの深層を探ってみよう。 まず元スレ 元になったLinusのレスによると、そもそも最近カーネルにドライバのインターフェース変更があってZFSがこ

      LinusがZFSにLKMLで言及した件 - kuenishi's blog
    • Linuxカーネルから見た「コマンド名」

      はじめに Linuxを使っているみなさんは普段からLinux上で様々なコマンドを実行していると思います。それらを識別するときに「コマンド名」という単語を使っていると思いますが、文脈によってこの単語が意味するものは異なります。本記事ではLinuxカーネルがいうところのコマンド名がどういうものかについて書きます。 一番最初に短い結論、その次に具体的な説明、そして最後にこれについて調べようとしたきっかけ、およびその後の調査プロセスについて書きます。 結論 Linuxカーネルから見たコマンド名は実行ファイル名のbasename(ファイル名からディレクトリ部分を除いたもの)の先頭15バイト カーネルのメモリ内のプロセス(正確にはカーネルレベルのスレッド)ごとに存在するtask_structという名前の構造体の中のcommという16バイトのフィールドにNULL終端文字列として格納されている カーネルの

        Linuxカーネルから見た「コマンド名」
      • 「ゼロからのOS自作入門」を Rust でやる (第1章~第4章) - gifnksmの雑多なメモ

        ゼロからのOS自作入門 を 一通り写経 したところ、 Rust に移植したくなったのでやっていきます。 次回: 「ゼロからのOS自作入門」を Rust でやる (第5章) - gifnksmの雑多なメモ 関連記事一覧: ゼロからのOS自作入門 カテゴリーの記事一覧 - gifnksmの雑多なメモ github.com Rust で OS なので名前は "錆OS" です。安直です。 "sabios" でざっとググったところ、スペイン語で "賢い" って意味があるようです。 良いですね。 クレバーな実装を目指したいところです。 方針 「ゼロからのOS自作入門」の章立てに沿って1章から順番に実装していきます。 C++ で一通り写経は完了しているので完成形の OS と関係ない節はスキップしていきます。 せっかく Rust で実装するので安全性や抽象化という点で MikanOS との差異を出せたら良

          「ゼロからのOS自作入門」を Rust でやる (第1章~第4章) - gifnksmの雑多なメモ
        • Linux:昨今のI/Oスケジューラ事情 2020

          まえがき HDDやSSDはシステムの中でもボトルネックとなる一番データの転送速度が遅い記憶媒体だ。 オペレーティング・システムには記憶媒体による遅延を減らすためキャッシュを利用するなど I/Oアクセスを最小限に留める工夫が施されている。そんな中でもI/OスケジューラはI/Oリクエストの処理順を入れ替えたりリクエストを一つにまとめたりすることにより応答速度やスループットを向上させる機能だ。ディスク・スケジューリングとも呼ばれることがある。 数年前まではLinuxカーネルは cfq noop deadline と言ったI/Oスケジューラを搭載していたが、昨今のスケジューラはだいぶ変わっているようだ。 Linuxカーネル ver 3.13 からCPUの多コア化、SSDやPCIeなどの高速な記憶媒体の普及に対応するために旧来の単一キュー処理からマルチキュー処理をする Blk-mq(Multi-Qu

            Linux:昨今のI/Oスケジューラ事情 2020
          • KFCのカーネルおじさんがストリートファイター6に参戦!カナダ限定でダウンロードできる : カラパイア

            KFC(ケンタッキー・フライド・チキン)の創業者であり、マスコットキャラクターとしても親しまれているカーネル・サンダースおじさんは、これまでも公式にインフルエンサーとして超イケメン化されたり、マダムたちの心を惹きつけるロマンス小説の主人公になったりと、世界各国で様々な活躍をしているが、今回はなんとゲームのキャラクターとなって登場だ。 2023年6月にリリースされた、対戦型格闘ゲーム「ストリートファイター6」に参戦することになったのだ。 このゲームはプレイヤーがキャラクターをカスタマイズできるのだが、カーネルおじさんの作成法(レシピ)が、ダウンロード可能となった。ただしカナダKFCのキャンペーンなのでカナダのみとなっている。

              KFCのカーネルおじさんがストリートファイター6に参戦!カナダ限定でダウンロードできる : カラパイア
            • Redisの25倍のスループットDragonflyを試してみる

              インメモリデータストアを現代風に再実装したら? 高速なデータアクセスのためのインメモリデータストアとしては、RedisやMemcachedが有名です。ただし、これらは10年以上前に設計されており、Memcachedに至っては、2003年と約20年前です。 長い年月を経て、機能追加や最適化が進む一方で、どうしても設計の古さも目立ってきます。 その課題を解決すべく開発されたのがDragonfly です。 全ての操作がアトミック 高スループットでもミリ秒未満のスループット を目指し、Redis/Memcached互換なAPIを提供します。 Redisの25倍のスループットを誇り、1インスタンスで百万オーダーのQPSをさばけます。 開発者が実施したAWS EC2上のベンチマークによると、Dragonflyは本家RedisやRedisのマルチスレッドforkであるKeyDBよりも圧倒的なスループット

                Redisの25倍のスループットDragonflyを試してみる
              • トーバルズ氏が考える、LinuxにおけるRustの居場所とは

                Steven J. Vaughan-Nichols (Special to ZDNET.com) 翻訳校正: 村上雅章 野崎裕子 2021-03-31 07:30 Linuxはプログラミング言語Cの申し子のような存在だ。しかし時は流れ、状況は変わった。RustをLinuxのシステム記述言語として採用しようという動きが少しずつ支持を集めてきている。例を挙げると、Linuxカーネル開発者のための年次カンファレンス「Linux Plumbers Conference(LPC)2020」において、開発者らはLinuxのインラインコード部分でのRustの採用を真剣に議論していた。その議論は現在どうなっているのだろうか?筆者はLinuxの父と目されるLinus Torvalds氏と、Linuxの安定版カーネルのメンテナーであるGreg Kroah-Hartman氏から考えを聞いた。 これはRustに魅

                  トーバルズ氏が考える、LinuxにおけるRustの居場所とは
                • RustでOSを書いた

                  はじめに RISC-V CPU を FPGA 上に実装して、マイクロカーネル OS を Rust で書いて動かしてみました。 CPU について RISC-VとChiselで学ぶ はじめてのCPU自作 に沿って RISC-V の CPU を作り、機能をエンハンスしました。 乗除算命令、RVC命令、ビット拡張命令の一部を追加 7段パイプライン化 DRAM コントローラ 4KB命令キャッシュ、8KBデータキャッシュ 2ビット分岐予測 周辺コントローラ実装(SDC、UART、タイマー、割込コントローラ) Arty A7-35T という FPGA ボード上で動作させています。 スーパーバイザーモードは実装していないので、仮想メモリは使えません。みんなで仲良くメモリを共有します。 CPU の実装はこちらに置いてあります。書籍のサポートリポジトリの fpga 実装版を fork して機能追加しています。

                    RustでOSを書いた
                  • 無限ストレージ

                    以下イベントの発表資料です https://kernelvm.connpass.com/event/209105/

                      無限ストレージ
                    • たのしく学ぶLinuxカーネル開発(第一回): `rm -rf /`実行時にカーネルパニックさせる - Qiita

                      はじめに Linuxカーネル開発を学ぶためにhello worldモジュールからはじめて少しづつ強化する記事を過去にいくつか書きました。これはちゃんとやれば身に付くことは身に付くのですが、非常に地味なので、よほどカーネルに興味を持っている人以外には退屈でしょう。そこで、目的をもって特定の機能をカーネルならではの方法で実現する記事を書けば面白いのでは…となったのでここに初回を書くことにしました。 対象読者はCライクなプログラミング言語での開発経験がある人です。Cのポインタがわかればなおよし。もしできればOSカーネルについての基本的な知識も欲しいです。 背景 UNIXが誕生してから現在に至るまでrm -rf /によって全ファイルをぶっ飛ばす事件が後をたちません。GNUのcoreutilsに入っているrmではルートディレクトリ("/")への操作を特別扱いして容易に悲劇を起こさなくするpreser

                        たのしく学ぶLinuxカーネル開発(第一回): `rm -rf /`実行時にカーネルパニックさせる - Qiita
                      • マイクロカーネルとL4について (Yabaitech.tokyo, Writing a (micro)kernel in Rust in 12 days より) - 豆腐の豆腐和え

                        怒田さん*1のこの記事、「CとRustで一から作るマイクロカーネルOS」のおかげで、マイクロカーネルとRustが今ホットです。そこで、技術書典6, 7に出展したYabaitech.tokyoにて連載している、"Writing a (micro)kernel in Rust in 12 days"から、マイクロカーネルとL4についての話を書いた"1日目"の記事の一部冒頭を、いい機会なので再編集してご紹介します。「マイクロカーネルってタネンバウム教授とリーナスの論争のあれだよね?」とか、「L4ってなに?」って方に読んでいただいて、L4ファミリーとマイクロカーネルについて簡単にご紹介できればなと思います。 ちなみに抜粋元の上述の記事は、僕が怒田さんと同じようにRustでマイクロカーネルを書いてみよう、という趣旨の企画です。なので、Yabaitech.tokyoの方もよろしくお願いします!ただし、

                          マイクロカーネルとL4について (Yabaitech.tokyo, Writing a (micro)kernel in Rust in 12 days より) - 豆腐の豆腐和え
                        • Prometheusで本番環境の監視をして3か月経ちました - WILLGATE TECH BLOG

                          本番環境の監視をZABBIXからPrometheusに切り替えてから3か月程度経過しました。 今回は Prometheus 導入に関してハマったところ 現在のPrometheus活用状況 といった所を紹介したいと思います。 「Prometheusって何?」という方はこちらをご覧ください。 tech.willgate.co.jp Prometheus導入でハマったところ メール送信設定 Rプロキシ経由にする 現在のPrometheus活用状況 現在の構成 ECインスタンスの監視 設定のバージョン管理 種類豊富なexporter 柔軟なPromQL Grafanaとの組み合わせ まとめ その後の取り組み(2019/11/12 追記) Prometheus導入でハマったところ 紹介するところ以外でも色んなところでハマったのですが、代表的なところを紹介します。 メール送信設定 Alertmanag

                            Prometheusで本番環境の監視をして3か月経ちました - WILLGATE TECH BLOG
                          • デバッガと和解せよ

                            2022/08/28 Kernel/VM探検隊online part5 (https://kernelvm.connpass.com/event/256248/) の @nullpo_head (https://twitter.com/nullpo_head) の発表資料です。 ptraceを使って対象コマンドの全子プロセスにattachしてDwarfを見つつデバッグしたいプロセスを探し、最終的には他のデバッガに処理を流すような不思議なデバッガ(?)を作ることで、zero configurationでvscodeでブレークポイントを打ったプロセスのデバッグを始めてくれる dbgee (https://github.com/nullpo-head/dbgee) という便利ツールを作ったときの話をしました。

                              デバッガと和解せよ
                            • RustでLinuxカーネルの機能を拡張しよう!

                              Linuxカーネルの機能を安全に拡張できるeBPFのコードはC言語で実装する必要があると知り、がっかりしているクラウドネイティブ 世代の皆様に朗報です。実は、Rustで、eBPFのコードを実装することができます。今更、C言語(クラウドネイティブ ではない感じ)を学ぶ必要はありません! eBPFとプログラミング言語eBPFを活用するソフトウェアは、カーネルスペースで動作するeBPFバイトコードと、eBPFバイトコードを制御するユーザスペースのアプリケーションから構成されます。後者は、Go、Python、Rustなど様々なプログラミング言語で実装することができますが、前者は、制限のあるC言語で実装する必要があります。 eBPFの構成Rust用eBPFライブラリRustでeBPFを扱う一般的な方法は、libbpf-rsライブラリです。これは、C言語でユーザスペースのアプリケーションを実装するため

                                RustでLinuxカーネルの機能を拡張しよう!
                              • 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
                                • Linuxの新しいsandbox機構「Landlock」 - Qiita

                                  はじめに この記事ではLinuxの新しいsandbox機構であるLandlockのサンプルの使い方を概説します。 詳細で正確な情報は公式のページ https://landlock.io/ やLinux kernelのソースコード中にありますので、必要な場合はそちらを参照してください。 サンドボックスが欲しいわけ 一般的なLinuxディストリビューションとスマートフォンOSの両方を使い、それぞれで様々なアプリを使っている方は大きな違いに気付くと思いますが、前者はユーザーのデータはホームディレクトリと呼ばれる共通のディレクトリに格納され、他のアプリのためのデータを自由に参照できます。それに対し、スマートフォンの場合は各アプリが独自のデータ領域を持ち、他のアプリのデータを参照するには手間のかかるプログラミングとユーザーの同意が必要になります(バイパスできてしまう場合は脆弱性とみなされます)。 L

                                    Linuxの新しいsandbox機構「Landlock」 - Qiita
                                  • 自動運転カメラの高負荷、その原因はLinuxカーネルのどこに?

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

                                      自動運転カメラの高負荷、その原因はLinuxカーネルのどこに?
                                    • Linux でのハングタスクについて - 赤帽エンジニアブログ

                                      Red Hat でコンサルタントをしている菅原と申します。 この記事では、意外とあまり説明されていないような気がする Linux システムで発生するハングタスクについて少し説明したいと思います。現場のシステムでもハングタスク検知の設定がされていることが多いと思いますが、ハングタスクとは何なのかを正しくご理解いただくことで、ハングタスク検知を行う目的が明確になること、また、実際の障害事例もご紹介することで、通常あまりハングタスクと関連づけて考えないような設定でもハングタスク発生につながる場合があることを知っていただき、少しでもシステム管理や障害の理解、障害対応などのお役に立てれば幸いです。 なお、この記事では RHEL のみを対象に書いていますが、他の Linux ディストリビューションにも適用される内容と思います。 ハングタスク (hung tasks) とは ハングタスクとは読んで字のご

                                        Linux でのハングタスクについて - 赤帽エンジニアブログ
                                      • Linux生みの親リーナス・トーバルズの当時のメールで振り返る「Linux」誕生の瞬間

                                        by Eduardo Quagliato オープンソースコミュニティで最も成功したプロジェクトのひとつである「Linux」は、1991年にヘルシンキ大学の学生であったリーナス・トーバルズ氏によって開発されたOSであり、ウェブサーバーやスマートフォン、IoTデバイスをも支える、現代においてなくてはならない存在です。そんなトーバルズ氏が「Linuxの始まり」を当時のメールをもとに振り返る記述が、カーネギーメロン大学で教授を務めるAlan W Black氏によって公開されています。 LINUX's History by Linus Torvalds https://www.cs.cmu.edu/~awb/linux.history.html 1991年の7月3日、トーバルズ氏はUSENETのMINIXネームスペースに姿を現し、新しいOSの開発を公言するとともに、プログラムのデバッグをMINIXユ

                                          Linux生みの親リーナス・トーバルズの当時のメールで振り返る「Linux」誕生の瞬間
                                        • 文章のなかの地理空間 - 地理空間情報科学(GIS)と自然言語処理(NLP)の融合へ向けて -

                                          MIERUNE Meetup mini #4( https://mierune.connpass.com/event/257222/ )で使用した発表スライド(一部修正版)

                                            文章のなかの地理空間 - 地理空間情報科学(GIS)と自然言語処理(NLP)の融合へ向けて -
                                          • WindowsがまたLinuxを取り込む。マイクロソフト、Linuxカーネルが備える拡張機能「eBPF」互換機能をWindowsにもオープンソースで実装へ

                                            マイクロソフトは、Linuxカーネルが備えている拡張機能である「eBPF」の互換機能を、Windows 10とWindows Server 2016以降で実現するオープンソース「eBPF for Windows」を発表しました。 カーネルのコードを書き換えずに機能を拡張できるeBPF eBPFとは、Linuxカーネルを変更することなく、カーネルの持つさまざまな機能をフックすることにより、カーネルに対してある種の機能拡張を実現するものです。下記は、eBPFのWebサイトにある説明を引用したもの。 eBPF is a revolutionary technology that can run sandboxed programs in the Linux kernel without changing kernel source code or loading kernel modules.

                                              WindowsがまたLinuxを取り込む。マイクロソフト、Linuxカーネルが備える拡張機能「eBPF」互換機能をWindowsにもオープンソースで実装へ
                                            • NetBSDを手探りで移植したときの話 - Qiita

                                              この記事は自作OS Advent Calendar 2020 7日目の記事となります。 はじめに 現在のオープンソースOSは、たとえばLinux開発ボードであればボードベンダーから移植済みのLinux環境が提供されたり、たとえばNetBSDであればクロスコンパイル環境が整備済みでドキュメントも用意されていて、最低限の移植作業で移植が完了したりします。 ぼくがNetBSDを移植した当時(1993年)はそうではありませんでした。ドキュメントもなくいろいろ手探りで、それも一人でやらざるを得ませんでした。苦労話のことは置いておいて、技術的にどういう物が用意され何を調べてどういう手順で移植していったかを記録に残せればと思います。(って前置きした割に苦労話が多いような気がします、すみません) かなり昔の話なので、けっこう忘れてることも多く、微妙に記憶が間違っていたりすることも、順番が前後していることも

                                                NetBSDを手探りで移植したときの話 - Qiita
                                              • Linuxカーネル内にWebAssemblyランタイムを実装し、ネイティブバイナリよりも高速に実行可能にする「Kernel-WASM」登場

                                                Linuxカーネル内にWebAssemblyランタイムを実装し、ネイティブバイナリよりも高速に実行可能にする「Kernel-WASM」登場 代表的なWebAssemblyランタイムの1つであるWasmerを開発しているWasmer社は、Linuxカーネル内にWebAssemblyランタイムを実装することで、安全かつ通常のLinuxバイナリよりも高速にWebAssemblyバイナリを実行可能にするオープンソースソフトウェア「Kernel-WASM」を公開しています。 (2023/2/13追記 このKernel-WASMの開発は2020年で止まっておりましたことを見落としていました。最近になって海外で話題になっており、新しい話題だと勘違いしたことが原因です。古い情報であることを基にした記事となっておりますことをお詫びいたします) Linuxカーネル内のWASMランタイムは第二のOS 同社はLi

                                                  Linuxカーネル内にWebAssemblyランタイムを実装し、ネイティブバイナリよりも高速に実行可能にする「Kernel-WASM」登場
                                                • Asahi Linux開発者のVTuberが「AppleのM1 GPUをLinuxで動作させるためのドライバー開発」について語る

                                                  Apple独自開発のSoCであるM1チップを搭載したMacでの動作を目指すLinuxディストリビューション・Asahi Linuxの開発に携わる開発者兼VTuberの朝日リナ氏が、M1 GPUのドライバー開発についてAsahi Linux公式ブログで解説しています。 Tales of the M1 GPU - Asahi Linux https://asahilinux.org/2022/11/tales-of-the-m1-gpu/ リナ氏によれば、近年のGPUはほぼすべて、以下のようなメインコンポーネントで構成されているとのこと。 ・ユーザー定義のプログラムを実行して三角形(頂点データ)とピクセル(フラグメントデータ)を処理する「シェーダーコア」 ・三角形を画面上のピクセルに変換する「ラスタライズユニット」「テクスチャサンプラー」「レンダー出力ユニット」、およびシェーダーと一緒に動作す

                                                    Asahi Linux開発者のVTuberが「AppleのM1 GPUをLinuxで動作させるためのドライバー開発」について語る
                                                  • LinuxのGUIアプリケーションに対応するWSL2 (1/2)

                                                    開発者向けの主要プラットフォームであり続けるために LinuxのGUIアプリへの対応が必要? Microsoftは、WSL2(Windows Subsystem for Linux 2)でLinux GUIアプリケーションに対応することを計画している。以下の動画は昨年9月に開催されたXDC 2020のセッションのものだ。 上のWSLGのデモビデオより。GIMPや裏のウィンドウのタイトルバーはLinux GUIアプリケーションのもので、Windows 10とは明らかに違う。ただ、GIMPなどのアイコンがタスクバーに表示されていることから、Windowsのデスクトップのウィンドウになっていることがわかる この改良はかなり大きなものと言える。以前紹介したWSL2のGPUコンピューティングへの対応も(「Windows 10のWSL2からGPUが使えるようになった」)、WSL2内でGPUによる描画(

                                                      LinuxのGUIアプリケーションに対応するWSL2 (1/2)
                                                    • トーバルズ氏、Rust導入やM2搭載「MacBook Air」について語る

                                                      筆者はLinus Torvalds氏を数十年前から知っているが、コロナ禍が始まってからは、対面でインタビューを行う機会が無かった。しかし、世界のLinuxのトップ開発者が集まる年次会合である2022年のLinux Plumbers Conferenceで、とうとう再び対面で話を聞く機会を作ることができた。 Torvalds氏はカンファレンスが始まる直前、オランダ領西インド諸島のボネール島で6日間をスキューバダイビングをして過ごしていたという。もし選べるのであれば、「カンファレンスに出るよりもダイビングをしていたい」と同氏は語った。誰だってそうだろう。 またTorvalds氏は、自分はLinuxカーネルの仕事をたくさんしているが、ワーカホリックではないとも述べた。 これだけの年月が経っても、いまだにこの仕事をしていられる理由は、仕事を離れる時間を取れるからだ。しかしすぐに飽きてしまうので、長

                                                        トーバルズ氏、Rust導入やM2搭載「MacBook Air」について語る
                                                      • Linuxカーネル内部をフックするeBPFを用いてセキュリティの可観測性を実現する「Tetragon」がオープンソースで公開

                                                        Linuxカーネル内部をフックするeBPFを用いてセキュリティの可観測性を実現する「Tetragon」がオープンソースで公開 Linuxカーネルを書き換えることなくその内部の機能をフックし、フック先でサンドボックス化されたプログラムを実行することにより、カーネルをプログラマブルに機能拡張できる「eBPF」(Extended Berkeley Packet Filter)は、クラウドネイティブ関連で最も注目されている技術の1つです。 eBPFを用いたソフトウェアとしては、CNI(Container Networking Interface)を用いてコンテナ間のセキュアな接続やロードバランシングなどさまざまな機能拡張を実現する「Cilium」がCloud Native Computing Foundationのプロジェクトとしてよく知られています。 今回、そのCiliumを開発するIsoval

                                                          Linuxカーネル内部をフックするeBPFを用いてセキュリティの可観測性を実現する「Tetragon」がオープンソースで公開
                                                        • https://tech.pepabo.com/2020/06/26/kernel-dive-tcp_mem/

                                                            https://tech.pepabo.com/2020/06/26/kernel-dive-tcp_mem/
                                                          • 2021年4月15日 パニックお断り―Linus、"Rust for Linux"の盛り上がりに釘を刺す | gihyo.jp

                                                            Linux Daily Topics 2021年4月15日パニックお断り―Linus、"Rust for Linux"の盛り上がりに釘を刺す 開発者の間で人気上昇中のRustだが、Linuxカーネル開発においても1年ほど前からメインラインでのRustサポート―新たにデバイスドライバを記述する言語としてRustを認めるよう求める声が強くなりつつある。3月にはカーネル開発者のMiguel Ojedaが最初の"Rust for Linux"となるパッチをlinux-next(次期カーネルへのマージを希望するパッチが集められたGitリポジトリ)にポストし、Stephen Rothwellによってマージされた。 kernel/git/next/linux-next.git - The linux-next integration testing tree Ojedaはさらに一歩踏み込んだステップとし

                                                              2021年4月15日 パニックお断り―Linus、"Rust for Linux"の盛り上がりに釘を刺す | gihyo.jp
                                                            • 「経験の浅いソフトウェア開発者が気になっていること」という募集への反応のまとめ - 覚書

                                                              数日前にブログや記事、書籍執筆ネタ集めのためにこういうtweetをしました。 [ゆるぽ] 経験の浅いソフトウェア開発者が気になっていること、とくにすでにそれなりのキャリアを積んだ人に聞きたいこと もっというと別に(ソフトウェア技術者としての)私個人について聞きたいことでもいいです— sat🧊 (@satoru_takeuchi) 2020年2月28日 その結果、返信および引用RTで数十個のネタが寄せられたので、まとめてみました。その場で回答したものについては回答一緒に書いています。それに加えて、私がわからないと言ったことについて別のかたから回答をしていただいたものについても書きました。さらに、既に経験豊富なかたがたから「経験の浅いソフトウェア開発者が気になっていそうなこと」や「知っておいてほしいこと」のようなネタもいただいたので、こちらもまとめました。 文面は基本的には改変せずにそのまま

                                                                「経験の浅いソフトウェア開発者が気になっていること」という募集への反応のまとめ - 覚書
                                                              • Linuxで動くNICドライバの開発をしている - BYB

                                                                概要 おことわり 流れ [前半]:NICドライバ実装に必要な作業 insmod/rmmod 時のエントリポイントとなる関数を用意 pci_diriver構造体を定義して、ドライバを登録 net_deviceとして登録 net_deviceハンドラ関数を用意してハンドラテーブルに登録 割り込みの定義(未動作確認) MMIOレジスタを適切に初期化して、実際にパケットを処理する部分を書いていく(未実装) ハンドラとスケジューリング [後半]:Linuxカーネル関連で詰まったところ insmod時のカーネルクラッシュ インターフェースのstateがUPにならない問題 ソースコード さいごに 概要 Linuxで動くe1000eドライバを開発しようとしており、ドライバと紐付けたNICのstateがupになるところまで進めました。 個人的に忙しくなった都合で一旦ここでプロジェクトを止めるため、備忘録とし

                                                                • Linuxのローダを自作する

                                                                  概要 Linuxのスタンダードなローダ、ld-linux-x86-64.so.2 の挙動を理解するために、ld-linux-x86-64.so.2を置き換え可能な https://github.com/akawashiro/sloader を2年ほど前から開発しており、ある程度動くようになってきました。 目次 ローダとは何か ld-linux-x86-64.so.2 の問題点 sloader sloader の現状 sloaderの実装 libc.so内のシンボルの解決 ロードされたプログラムのためのTLS領域の確保 sloaderの課題 お願い ローダとは何か Linuxで実行可能なバイナリファイルをexecve(2)を使って実行するとき、その実行パスは大きく2つに分類されます。 Linux カーネルが直接、バイナリファイルをメモリ空間にロードする。 バイナリが指定したローダ[1]がバイ

                                                                    Linuxのローダを自作する
                                                                  • Linuxカーネル、その29年の歴史レポート - Qiita

                                                                    Linuxカーネル開発の初期の議論は複数のMLでなされていたので、1997年以前の議論については断片的にしか存在していない。 集められた一部についてはhttp://lkml.iu.edu/hypermail/linux/で公開されているが、これにも抜けがあるので、当時のログを持っている人がいたら提供してほしい。 翻って5.8のMAINTAINERSは19033行もあり、そして1501人のメンテナがリストされている。 THE REST M: Linus Torvalds <torvalds@linux-foundation.org> L: linux-kernel@vger.kernel.org S: Buried alive in reporters Q: http://patchwork.kernel.org/project/LKML/list/ T: git git://git.ker

                                                                      Linuxカーネル、その29年の歴史レポート - Qiita
                                                                    • Linux 6.1の注目機能「MGLRU」―メモリ管理に取り入れられたエイジングシステム | gihyo.jp

                                                                      Linus Torvaldsは12月11日(米国時間⁠)⁠、前週の告知どおりに「Linux 6.1」の正式リリースをアナウンスした。 Linux 6.1 -Linus Torvalds Linux 6.1はメインライン開発ではじめてRustを採用したことが大きな話題となったが、そのほかにもユーザ空間におけるメモリサニタイザーツールに似た動的エラー検出の「KMSAN」やB-treeベースのデータ構造「Maple Tree⁠」⁠、AMDの新しいPMFドライバのサポートなど多くのアップデートが行われている。Googleの開発者がメインラインへのマージを提案してきた「MGLRU(Multi-generational LRU⁠)⁠」もそのひとつで、古参のカーネル開発者であるAndrew MortonもMGLRUのメインライン化をバックアップしてきた。 Linuxカーネルではメモリ管理に「LRU(Le

                                                                        Linux 6.1の注目機能「MGLRU」―メモリ管理に取り入れられたエイジングシステム | gihyo.jp
                                                                      • Go言語低レイヤー入門 Hello world が 画面に表示されるまで (GoConforenceTokyo2021)

                                                                        Go言語低レイヤー入門 Hello world が 画面に表示されるまで @DQNEO (ドキュネオ) Go Conference Tokyo 2021 2021-04-24

                                                                          Go言語低レイヤー入門 Hello world が 画面に表示されるまで (GoConforenceTokyo2021)
                                                                        • Linuxカーネルが難しい?Rustで実装できそう!

                                                                          「ついに、RustでLinuxカーネルを実装できる!」 待ち望んだ感を出してみましたが、2年前に記事を書いてから、すっかり忘れていました。LinuxカーネルのRustサポートについての意見を求められたら、「技術的には面白いけど、実用レベルではないね。」と、上から目線の回答でエンジニアレベルの高さをアピールするつもりでしたが、2年間の間、誰にも聞かれませんでした。 近々、LinuxカーネルにRustサポートが取り込まれそう、ということで、デバイスドライバを実装してみました。 Rust対応カーネルのコンパイルまずは、Rust対応を有効にしたLinuxカーネルをコンパイルする必要があります。「カーネルってコンパイルするものなの?」という読者は、ネットの長老たちに叡智を求めましょう。「インストール直後に、メモリ削減のために不要な機能を無効にして、カーネルコンパイルしたんじゃ。」というような、太古の

                                                                            Linuxカーネルが難しい?Rustで実装できそう!
                                                                          • プログラムのファイル読み書きで「mmap」を使うと速度が向上する理由とは?

                                                                            ソフトウェア開発において「ファイルの読み書き」は使用頻度の高い操作であり、速度の向上はソフトウェア全体のパフォーマンスに大きく影響します。そんなファイルの読み書き操作を行う際に「mmapを使った方が通常のシステムコールよりも高速にファイルを操作できる理由」について、ブリティッシュコロンビア大学の准教授であるAlexandra Fedorova氏が説明しています。 Why mmap is faster than system calls | by Alexandra (Sasha) Fedorova | Medium https://sasha-f.medium.com/why-mmap-is-faster-than-system-calls-24718e75ab37 OS上でユーザーがプログラムを実行する際、プログラムは「ユーザー空間」と「カーネル空間」と呼ばれる2種類の領域を利用します。

                                                                              プログラムのファイル読み書きで「mmap」を使うと速度が向上する理由とは?
                                                                            • DNS パケット欠落のケース: Google Cloud サポート ストーリー

                                                                              ※この投稿は米国時間 2020 年 5 月 12 日に、Google Cloud blog に投稿されたものの抄訳です。 編集者注: Google Cloud テクニカル ソリューション エンジニア(TSE)がサポートケースにどのように取り組んでいるか気になったことはありますか?TSE はお客様から報告された問題の技術的な根本原因のトラブルシューティングと特定を担当するサポート エンジニアです。かなりシンプルな問題もありますが、数名の専任エンジニアによるトラブルシューティングを必要とするサポート チケットがたまに送信されることがあります。このブログ投稿では、Google Cloud テクニカル ソリューション エンジニアから聞いた、最近解決した特に厄介なサポートケース(DNS パケットが欠落する問題)についてご紹介します。トラブルシューティングの過程で収集した情報と、どのように方法を推論し

                                                                                DNS パケット欠落のケース: Google Cloud サポート ストーリー
                                                                              • Linuxカーネルに特権昇格可能な重大な脆弱性が発見される、Android端末にも影響あり

                                                                                Android端末にも搭載されているLinuxのカーネルに任意のファイルを上書きできる脆弱(ぜいじゃく)性が発見されました。ルート権限が必要なファイルについても上書き可能で特権昇格を行うことができるため、非常に影響の大きいものとなっています。 The Dirty Pipe Vulnerability — The Dirty Pipe Vulnerability documentation https://dirtypipe.cm4all.com/ この脆弱性は「Dirty Pipe(CVE-2022-0847)」と名付けられている通りLinuxで複数のプログラムの通信を担うパイプに起因するものとのこと。Linuxには一度読み込んだファイルをメモリ上にキャッシュとして置いておくことで再度アクセスする際の読み込み速度を高速化する「ページキャッシュ」という仕組みが存在していますが、Dirty P

                                                                                  Linuxカーネルに特権昇格可能な重大な脆弱性が発見される、Android端末にも影響あり
                                                                                • 歴史から紐解くLinuxカーネルのコンテナ機能 / CNDT2019

                                                                                  CloudNative Days Tokyo 2019 の講演資料です。 参考となる情報にはPDF中からリンクをしていますが、資料中のリンクは Speaker Deck 上ではクリックできないので PDF をダウンロードしてご覧ください。

                                                                                    歴史から紐解くLinuxカーネルのコンテナ機能 / CNDT2019