並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 68件

新着順 人気順

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

  • はじめに - Writing an OS in 1,000 Lines

    本書では、小さなOSをゼロから少しずつ作っていきます。 OSと聞くと腰が引けるかもしれませんが、OS (特にカーネル) の基本機能は案外単純です。巨大なオープンソースソフトウェアとしてよく挙げられるLinuxでさえ、バージョン0.01はたった8413行でした。様々な要求に応えるために次第に肥大化していっただけで、当初は大変素朴な実装になっていました。 本書では素朴なコンテキストスイッチ、ページング、ユーザーモード、コマンドラインシェル、ディスクデバイスドライバ、ファイルの読み書きをC言語で実装します。これだけ様々な機能が詰め込まれているのに、コードは合計でたった1000行未満です。 「1000行なら1日でできそう」と思うかもしれませんが、初学者には少なくとも3日はかかるでしょう。OS自作のハマりポイントは「デバッグ」です。アプリケーション開発とは違うデバッグ手法・能力を習得する必要がありま

      はじめに - Writing an OS in 1,000 Lines
    • 1,000行で作るオペレーティングシステム

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

        1,000行で作るオペレーティングシステム
      • 低レイヤ技術を間接的に仕事で生かしてきた経験の共有。元Linuxカーネル開発技術者の場合 - 覚書

        はじめに ITの世界で「低レイヤ技術」と呼ばれるものがあります。明確に定義されているわけではありませんが、アプリケーションのような直接エンドユーザに触れる部分ではなく、しかもなるべく生のコンピュータに近い部分、たとえばOSカーネルやコンパイラ、CPUを開発する技術などがあります。これらの技術に明るい人はそうそういないのですが、「やってみたい」という根強い人気があります。 学生のかたでもセキュリティキャンプなどで実際にある程度身につけてしまうような人もいます。そしてますますこの手の技術に趣味としてのめり込んでいって楽しくなる…というところまではいいのですが、「ではこの技術を会得した先に何があるのか」と不安になる人も多いようです。とくに学生さんの場合は「低レイヤ技術を使って今後なんらかの仕事をして生きていけるのか?」といったことが気になるようです。今日もそのような話を少し耳にしたので、自分の経

          低レイヤ技術を間接的に仕事で生かしてきた経験の共有。元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
          • KFCのカーネルおじさんがストリートファイター6に参戦!カナダ限定でダウンロードできる : カラパイア

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

              KFCのカーネルおじさんがストリートファイター6に参戦!カナダ限定でダウンロードできる : カラパイア
            • 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カーネルのどこに?

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

                  自動運転カメラの高負荷、その原因はLinuxカーネルのどこに?
                • BPFを利用し、Linuxカーネルのパラメータを継続的に自動チューニングする「bpftune」。オラクルがオープンソースで公開

                  オラクルはLinuxカーネルのパラメータを、ワークロードに合わせて継続的に自動チューニングするツール「bpftune」をオープンソースで公開しました(GitHubのページ)。 bpftuneは「BPF」(Berkeley Packet Filter)と呼ばれる、Linuxカーネル内のさまざまな機能をフックして機能拡張が可能な仕組みを利用し、継続的にLinuxカーネルのきめこまなかレベルで監視を行い自動チューニングを実現しています。 オラクルはbpftuneを開発した背景として、クラウドに代表される大規模なサーバ展開が可能なインフラにおいて、以前よりも個々のサーバのチューニングについて注意が払われることがほとんどなくなったこと、チューニングされるとしても静的に適切な設定があると考えられることが一般的であることを挙げています。 bpftuneによる自動チューニング対象の項目 bpftuneは現

                    BPFを利用し、Linuxカーネルのパラメータを継続的に自動チューニングする「bpftune」。オラクルがオープンソースで公開
                  • カーネルコードの歩き方

                    以下イベントのセッションスライドです。 https://techfeed.io/events/techfeed-experts-night-19

                      カーネルコードの歩き方
                    • Linuxカーネルに重大な脆弱性「StackRot」、ただちに確認を

                      The Hacker Newsは7月6日(現地時間)、「Researchers Uncover New Linux Kernel 'StackRot' Privilege Escalation Vulnerability」において、Linuxカーネルに深刻な脆弱性が発見されたと伝えた。新たに見つかった脆弱性は「StackRot」と名付けられており、現時点ではこの欠陥が悪用された形跡はないと報告している。 StackRotは「 CVE-2023-3269」として追跡されているLinuxカーネルの脆弱性。Linuxのバージョン6.1から6.4に影響を与える可能性があり、Red Hat Customer Portalによる共通脆弱性評価システム(CVSS: Common Vulnerability Scoring System)v3のスコア値では7.8と分類され、深刻度は重要(High)と評価さ

                        Linuxカーネルに重大な脆弱性「StackRot」、ただちに確認を
                      • Ubuntuのモジュールに深刻な脆弱性、40%のUbuntuユーザーに影響か

                        Wizは7月26日(米国時間)、「GameOverlay Vulnerability Impacts 40% of Ubuntu Workloads|Wiz Blog」において、UbuntuのOverlayFSモジュールに複数の深刻な脆弱性があるとして、注意を呼び掛けた。この問題の影響を受けるUbuntuのバージョンがクラウドで広く普及しているため、Ubuntuユーザーの約40%がこれらの欠陥に対して脆弱であると警告している。 GameOverlay Vulnerability Impacts 40% of Ubuntu Workloads|Wiz Blog OverlayFSは、Linuxで広く利用されているファイルシステム。コンテナの普及により事前に構築されたイメージに基づく動的なファイルシステムのデプロイが可能となり、人気を集めるようになった。ただし、このファイルシステムには多くの論

                          Ubuntuのモジュールに深刻な脆弱性、40%のUbuntuユーザーに影響か
                        • 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デバイスドライバ
                            • トラブルシューティングから Linux カーネルに潜り込む

                              ハイパフォーマンスな組織をつくるための開発生産性の考え方 / developer-productivity-high-performer-link-and-motivation

                                トラブルシューティングから Linux カーネルに潜り込む
                              • Linuxを再起動することなくカーネルにパッチを当てる「ライブパッチ」の技術的な仕組みと、その種類とは[PR]

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

                                  Linuxを再起動することなくカーネルにパッチを当てる「ライブパッチ」の技術的な仕組みと、その種類とは[PR]
                                • シェルってなにしてるの

                                  はじめに 先日シェルについてのオンライン勉強会に参加しました。 スライドも非常にわかりやすく、動画もアップされているので、ぜひ見てみて下さい。 何度勉強してもついつい忘れてしますシェルについて、忘れないうちにアウトプットしておきたいと思います。 私の解釈が混ざっているので、詳しく知りたい方は上のURLへどうぞ 前提 記事内で実行しているコマンドは全てawsのEC2(Amazon Linux2023)のbashで実行したものです。 シェルってなあに みなさん「シェル」使ってますか? 使ってますよね? sh, bash, zsh, csh,etc... いろんなシェルがありますね。 この「シェル」ってなんでしょうか? シェルはユーザーが命令したことをカーネルに伝えてくれるやつ。です。 でも面倒じゃないですか? なぜユーザーの命令がそのままカーネルではなく、わざわざシェルを通す必要があるのでしょ

                                    シェルってなにしてるの
                                  • 17歳の学生が独学で「どのようにCPUがプログラムを動かすのか」を調査し詳細に解説するページを作成

                                    コンピューターの頭脳ともいえるCPUが、どのようにプログラムを実行するのかについて、17歳のエンジニアであるレクシー・マティック氏が、独学で調べた知識を解説したウェブページを公開しています。 Putting the "You" in CPU https://cpu.land/ 「プログラムを実行するとどうなるか」について疑問を抱いていたマティック氏は、独学での学習を始めたものの、OSやCPUがどのように機能するかについて詳細かつ適切に解説するサイトは見つからなかったそうです。そこでマティック氏は、「自分自身で本当に良い学習リソースを作るべきだ」と考え、解説ページの作成に取り掛かりました。 PCでプログラムを実行する際、CPUは命令を順番に実行していく必要があります。しかし、CPUプロセッサは、一度に複数のプログラムを実行することができません。そこで、OSの中核を担うカーネルが、タイマーを使

                                      17歳の学生が独学で「どのようにCPUがプログラムを動かすのか」を調査し詳細に解説するページを作成
                                    • Linuxの起動を29万2612回も繰り返して1000回に1回発生するバグを見つけることに成功

                                      Red Hat Linuxの開発者であるリチャード・M・W・ジョーンズ氏が、Linux v6.4の起動時にハングアップするバグがあることに気づき、Linuxを29万2612回も再起動するテストを行ったそうです。 I booted Linux 292,612 times | Richard WM Jones https://rwmj.wordpress.com/2023/06/14/i-booted-linux-292612-times/ Dev Boots Linux 292,612 Times to Find Intel, AMD Kernel Bug | Tom's Hardware https://www.tomshardware.com/news/dev-boots-linux-292612-times-for-1-in-1000-kernel-bug ジョーンズ氏が起動時のハング

                                        Linuxの起動を29万2612回も繰り返して1000回に1回発生するバグを見つけることに成功
                                      • 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カーネルのコードのうち、どんなときにどこのコードを読めばいいか、そのときに何を手がかりにすればいいか、などについてお話します。 本記事は、TechFeed Experts Night#19 〜 達人に聞く、Linuxカーネルコードの歩き方のセッション書き起こし記事になります。 イベントページのタイムテーブルから、その他のセッションに関する記事もお読み頂けますので、一度アクセスしてみてください。 本セッションの登壇者 セッション動画 「カーネルコードの歩き方」というタイトルでお話しする武内覚と申します。ふだんはsatと呼ばれています。社会人1年目から15年ぐらいカーネルの開発とサポートをずっとやってきました。今も必要に応じてカーネルソースを見ています。 本LTで学べるのは「Linuxのカーネルソースの読み方についての勘所」です。直接読んでいくというより、もう少しメタな

                                            カーネルコードの歩き方 ‐ ソースコードを読むための勘所を知る
                                          • Linuxの各種仮想ネットワークデバイスにおけるSegmentation Offloadの振る舞い

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

                                              Linuxの各種仮想ネットワークデバイスにおけるSegmentation Offloadの振る舞い
                                            • 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」カーネルのサポートが短縮へ--背景にメンテナーの苦悩
                                              • 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にする
                                                • 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カーネルトレース入門
                                                  • カーネルことはじめ

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

                                                      カーネルことはじめ
                                                    • 第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カーネルに潜り込む ‐ 実際のサービス運用で深めたカーネルへの理解

                                                        本記事は、TechFeed Experts Night#19 〜 達人に聞く、Linuxカーネルコードの歩き方のセッション書き起こし記事になります。 イベントページのタイムテーブルから、その他のセッションに関する記事もお読み頂けますので、一度アクセスしてみてください。 本セッションの登壇者 セッション動画 GMOペパボの伊藤洋也です。2007年からGMOペパボにて勤務しており、ホスティングサービスや技術基盤チームを経て現在はセキュリティ対策室に所属しております。オンラインではTwitterおよびGithubのアカウントとブログで活動しています。今回は実際のサービス環境でのLinuxカーネルのトラブルシューティング事例とともに、カーネルの詳細調査やコードリーディングの方法をご紹介します。 私はLinuxカーネルのコミッターをしているわけではなく、またLinuxカーネルの開発業務もさほど行って

                                                          トラブルシューティングからLinuxカーネルに潜り込む ‐ 実際のサービス運用で深めたカーネルへの理解
                                                        • RustでRISC-Vエミュレータを書いてNOMMU Linuxをブラウザで動かした | MaybeUnInit

                                                          RustでRISC-Vエミュレータを書いてNOMMU Linuxをブラウザで動かした #2023-05-23 以前からRISC-Vエミュレータを書いてみようと思っていたのだが、書いては飽きてを繰り返して全然進められずにいた。そんな中、以下のRepositoryで、rv32ima,Zifencei,Zicsr、あとはCLINTを実装すればLinuxが動くと知り、飽きずに進められそうな気がしてきたので今度こそ、と実装してみることにした。 https://github.com/cnlohr/mini-rv32ima目次成果物 #Repositoryは以下。本記事では実装の概要の記載もあるが、簡略化していたり抜粋だったりするので適宜参照いただきたい。基本的にはcoreというcrateが実装の中枢となっている。appはcoreにcliの皮を被せただけだ。 また以下にPlaygroundも用意した。

                                                          • NVLink BridgeでGPUを繋いでも1GPUにはなりません | HPCシステムズ Tech Blog

                                                            『NVLink Bridgeで複数GPUを繋いだら、それらが1GPUとして扱えるようになるんでしょ?』という誤解をされているお客様をしばしばお見受けいたします。こちらの記事では、それが誤解であること、また、SLIやUnified Memoryといった関連する情報についても整理して解説いたします。間違った期待を抱いて失敗しないように、正しい理解を深めていきましょう。 GPUのメモリ空間は他デバイスから隔絶されています GPU上には演算するためのプロセッサと、データを一時的に置いておくためのメモリ(VRAM)が搭載されています。GPUのメモリを、CUDAで書かれたプログラムから利用するには、cudaMallocでメモリ領域を確保し、cudaMemcpyを使ってホスト(CPU側)のメモリとデータの送受信を行い、GPU上で演算kernelとする関数(以下、GPU-Kernel)を呼び出し、最後にc

                                                              NVLink BridgeでGPUを繋いでも1GPUにはなりません | HPCシステムズ Tech Blog
                                                            • 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をやる
                                                              • TetragonでeBPFとセキュリティオブサーバビリティ入門 | フューチャー技術ブログ

                                                                CNCF連載 の4本目です。 はじめに数年前にクラウドネイティブ注目技術として挙げられたeBPFにかねてよりキャッチアップしたいなと思っていたので、この連載のタイミングでeBPFとその関連プロダクトに入門してみることにしました。 CNCFプロジェクト傘下のeBPFを活用したプロダクトとしてはCilium, Falcoなどが挙げられます。CiliumはKubernetesなどのクラウドネイティブな環境でネットワーク、オブサーバビリティの機能を提供するOSSなのですが、今回はそのいわばサブプロジェクト的な位置づけのセキュリティツールである、Tetragonに触ってみます。 Cilium, Tetragonの開発をメイン行っているIsovalent社は、書籍やハンズオンラボなどで自社の製品・eBPFについての学習リソースを多く提供しています。 https://isovalent.com/reso

                                                                  TetragonでeBPFとセキュリティオブサーバビリティ入門 | フューチャー技術ブログ
                                                                • 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」メンテナーの燃え尽き症候群問題--業務内容の変化と支援の必要性

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

                                                                      「Linux」メンテナーの燃え尽き症候群問題--業務内容の変化と支援の必要性
                                                                    • 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障害のエミュレーション
                                                                      • 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について - 私のひらめき日記
                                                                        • BPFの歩き方 ‐ バイナリの"カッコよさ"に触れてみる

                                                                          本記事は、TechFeed Experts Night#19 〜 達人に聞く、Linuxカーネルコードの歩き方のセッション書き起こし記事になります。 イベントページのタイムテーブルから、その他のセッションに関する記事もお読み頂けますので、一度アクセスしてみてください。 本セッションの登壇者 セッション動画 では「BPFの歩き方」と題して発表させていただきます。 株式会社ミラティブでインフラエンジニアをしている近藤といいます。仕事では日々Goを書きながらミドルウェアのログやiostatと向き合っている感じです。今日、ほかの皆さんは本当にちゃんとカーネルソースコードの読み方を解説されていましたが、私はほぼカーネルのコードを読まないというか、基本的には最後の手段にしているので、今日はソースコードの読み方ではなく、別のものの読み方の話をします。

                                                                            BPFの歩き方 ‐ バイナリの"カッコよさ"に触れてみる
                                                                          • 意外と知られていない、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
                                                                            • WebAssembly Night_Wasmを実行するunikernelとWasmコンパイラ

                                                                              Fashionably flexible responsive web design (full day workshop)

                                                                                WebAssembly Night_Wasmを実行するunikernelとWasmコンパイラ
                                                                              • 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」が爆誕 | ソフトアンテナ
                                                                                • 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