怒田さん*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の方もよろしくお願いします!ただし、
...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
Linuxカーネル内にWebAssemblyランタイムを実装し、ネイティブバイナリよりも高速に実行可能にする「Kernel-WASM」登場 代表的なWebAssemblyランタイムの1つであるWasmerを開発しているWasmer社は、Linuxカーネル内にWebAssemblyランタイムを実装することで、安全かつ通常のLinuxバイナリよりも高速にWebAssemblyバイナリを実行可能にするオープンソースソフトウェア「Kernel-WASM」を公開しています。 (2023/2/13追記 このKernel-WASMの開発は2020年で止まっておりましたことを見落としていました。最近になって海外で話題になっており、新しい話題だと勘違いしたことが原因です。古い情報であることを基にした記事となっておりますことをお詫びいたします) Linuxカーネル内のWASMランタイムは第二のOS 同社はLi
TLDR; If your MacBook Pro runs hot or shows a high % CPU for the kernel task, try charging on the right and not on the left. High kernel_task CPU Usage is due to high chassis temperature caused by charging. In particular Left Thunderbolt port usage. Solutions include: Move charging from the left to the right side. If you have a second charger then plug it in on the right side. Avoid plugging every
Learn how to become a Linux kernel developer and contributor with this free training course. This course is intended for developers who need to know about the Linux kernel development process and the explicit and implicit “rules of the road”. Through this course you will learn how to select and configure your development system, about Linux Kernel repositories and releases, Git basics including ch
こんにちは。最近湿度が上がってきてつらい@Ssk1029Takashiです。 最近当社ではAzure OpenAI Serviceを活用した検索ソリューションに取り組んでおり、私も開発として携わっています。 www.acroquest.co.jp そんな中でもOpenAIのGPT周りのアップデートが激しく、GPT-4のリリースなどニュースに事欠きません。 特にChatGPT PluginsというChatGPTと外部のデータソースやツールなどを連携する枠組み発表され、よりChatGPTにできることが広がっています。 その中で先月MicrosoftがSemantic KernelというSDKを発表しました。 Semantic KernelとはGPT-3などの大規模言語モデルをアプリ開発に統合するC#で開発されたOSSのSDKです。 これを使うことで、ChatGPT PluginsのようにGPT
Maintainer lack of familiarity won't be an issue, chief insists, citing his own bafflement when faced with Perl At The Linux Foundation's Open Source Summit in Austin, Texas on Tuesday, Linus Torvalds said he expects support for Rust code in the Linux kernel to be merged soon, possibly with the next release, 5.20. At least since last December, when a patch added support for Rust as a second langua
Linux Kernel Teaching¶ This is a collection of lectures and labs Linux kernel topics. The lectures focus on theoretical and Linux kernel exploration. The labs focus on device drivers topics and they resemble "howto" style documentation. Each topic has two parts: a walk-through the topic which contains an overview, the main abstractions, simple examples and pointers to APIs a hands-on part which co
Steven J. Vaughan-Nichols (Special to ZDNET.com) 翻訳校正: 村上雅章 野崎裕子 2022-01-12 08:30 数十年にわたって修正が加えられ、乱雑さという垢が蓄積されたコードをきれいにするというのは気の弱い人がやる作業ではない。しかし、Linuxのカーネル開発における第一人者であるIngo Molnar氏は自らの持てる力を最大限に傾け、オープンソースのLinuxカーネルに秩序を取り戻そうとしている。 Linuxのソースコードは2020年に2780万行に達した。それ以降もその規模は増大する一方だ。Linuxは、30年が経過している他のソフトウェアプロジェクトと同様に、その長い歴史の中でソースコード中にかなりの量の垢をため込んでいる。Linuxカーネルの上級開発者であるMolnar氏はこの問題を根本的なレベルで解決するための初撃となる数カ月
Semantic Kernel (SK) は Microsoft が OSS として発表した、大規模言語モデル (LLM) をアプリにすばやく簡単に統合できる SDK です。SK は従来のプログラミング言語と最新のLLM AI "プロンプト" を簡単に組み合わせることができ、テンプレート化、チェーン化、埋め込みベースのメモリー、およびプランニング機能を備えています。 機能的には、LangChain や LlamaIndex に似たような機能を持っているライブラリです。現状は C# 向けにリリースされています。4/17 に Python 版 もリリースとなりました。ただし機能は部分的な実装である点にご注意ください。(FEATURE MATRIX) 6/23 Semantic Kernel が Copilot stack との連携を明確化しプラグインエコシステムと統合 Semantic Ker
Analytics cookies are off for visitors from the UK or EEA unless they click Accept or submit a form on nginx.com. They’re on by default for everybody else. Follow the instructions here to deactivate analytics cookies. This deactivation will work even if you later click Accept or submit a form. Check this box so we and our advertising and social media partners can use cookies on nginx.com to better
Kernel Queue: The Complete Guide On The Most Essential Technology For High-Performance I/O When talking about high-performance software we probably think of server software (such as nginx) which processes millions requests from thousands clients in parallel. Surely, what makes server software work so fast is high-end CPU running with huge amount of memory and a very fast network link. But even the
Peter Jay Salzman, Michael Burian, Ori Pomerantz, Bob Mottram, Jim Huang 1 Introduction 1.1 Authorship 1.2 Acknowledgements 1.3 What Is A Kernel Module? 1.4 Kernel module package 1.5 What Modules are in my Kernel? 1.6 Is there a need to download and compile the kernel? 1.7 Before We Begin 2 Headers 3 Examples 4 Hello World 4.1 The Simplest Module 4.2 Hello and Goodbye 4.3 The __init and __exit Mac
この問いかけにまじめに考えてみる。 ほぼ全てのソースコードってランタイムなりコンパイラとして何かしら別のものに依存しているはずだけど、最終的に行き着くだろうOSとかってそもそもGitHub上に存在するのかなhttps://t.co/KNME92Qcz8 — yuta (@yuta0381) July 18, 2020 TL;DR(要約) RISC-VだったらCPUから作れそう。エミュレータのコード見て自作もできそう。 RISC-Vだったら、多分linux動かすところまで行けるよ! x86とかだったら、動かそうとするけどライブラリ古くて苦しむよ! Linux Kernelだけ見ても、GitHub上にすべての依存する「最新の」コードは存在していない。若干古かったりするので、そこらへんは地球外生命体の人に頑張ってもらうしかない。 前提条件 西暦2500年、地球人類は滅亡した(唐突)。北極には、か
機械学習の幅広い分野への応用が進むにつれ,機械学習がその予測の根拠などを理解できない「ブラックボックス」となることが問題視されており,機械学習の解釈性や説明性が注目されています.今回のテーマであるSHAP(SHapley Additive exPlanations)は,機械学習モデルへの特定の入力に対する予測の根拠を提示する代表的な手法の一つです.SHAPには用途に応じていくつかのアルゴリズムがありますが,その中でも今回はあらゆる機械学習モデルに適用可能(Model-Agnostic)なKernel SHAPという手法についてまとめました. 構成としては,まずKernel SHAPとは何かについての概要を述べた後に, Kernel SHAPを理解する上で必要な要素である「シャープレイ値」と「SHAP」について説明します.さいごに,Kernel SHAPについて「理論」と「実装」に分けて書い
# OverviewIn this post I will use a simple HTTP benchmark to do a head-to-head performance comparison between the Linux kernel's network stack, and a kernel-bypass stack powered by DPDK. I will run my tests using Seastar, a C++ framework for building high-performance server applications. Seastar has support for building apps that use either the Linux kernel or DPDK for networking, so it is the per
linux-kernel.vger.kernel.org archive mirror help / color / mirror / Atom feed* Linux kernel in-tree Rust support @ 2020-07-09 18:41 Nick Desaulniers 2020-07-09 20:52 ` Miguel Ojeda ` (5 more replies) 0 siblings, 6 replies; 28+ messages in thread From: Nick Desaulniers @ 2020-07-09 18:41 UTC (permalink / raw) To: alex.gaynor, geofft, jbaublitz, Masahiro Yamada, Linus Torvalds, Greg KH, Miguel Ojeda
Tilck is an educational monolithic x86 kernel designed to be Linux-compatible at binary level. Project's small-scale and simple design makes it the perfect playground for playing in kernel mode while retaining the ability to compare how the very same usermode bits run on the Linux kernel as well. That's a rare feature in the realm of educational kernels. Because of that, building a program for Til
1893件以上のカーネルの不具合修正に貢献した再現用プログラムを自動生成するsyzkallerのテスト自動化技術 / syzkaller Kernel VM Kansai 10th syzkaller は、Google の Dmitry Vyukov さんが開発し OSS として公開したカーネルのファジングツールで、2 年で 1500 件以上の Linux カーネルの不具合修正に貢献した実績を持ちます。自らが生成した複数の仮想マシンに対して問題の起きそうな入力を送り続けることで未発見の不具合を発見します。最小限の入力で不具合を再現させるための再試行を繰り返し、最終的には不具合を再現するための C 言語のプログラム生成を試みます。本資料は 2020/2/8 の「カーネル/VM探検隊@関西 10回目」の発表資料です。
はじめに この記事は、Linux Advent Calendar 2019 - Qiitaの8日目です。 この記事では、今使っているLinux Kernelがどんなkernelなのか、どんな設定で動いているのかを確認する方法を紹介します。 Linux Kernelは様々な用途に使われています。 そのため、ひとくちにLinux Kernelと言っても、動作はシステムによって全然違います。 現状を把握する手段を知ることで、効率的にKernelのコードリーディングやより良い設定を探す一助になれば幸いです。 また、コメント大歓迎ですので、なんでもお気づきのことがありましたらぜひお気軽にお願いします。 この記事で書くこと Linux Kernelの素性を確認する方法 Linux Kernelの設定値を確認する方法 この記事で書かないこと 各プロセスや各ユーザなどに対する設定(ulimitやniceや
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)のレイヤでは、例外をあえて意
Learning operating system development using Linux kernel and Raspberry Pi Learning operating system development using Linux kernel and Raspberry Pi This repository contains a step-by-step guide that teaches how to create a simple operating system (OS) kernel from scratch. I call this OS Raspberry Pi OS or just RPi OS. The RPi OS source code is largely based on Linux kernel, but the OS has very lim
On Fri, May 29, 2020 at 6:08 AM David Laight <David.Laight@aculab.com> wrote: > > A wide monitor is for looking at lots of files. Not necessarily. Excessive line breaks are BAD. They cause real and every-day problems. They cause problems for things like "grep" both in the patterns and in the output, since grep (and a lot of other very basic unix utilities) is fundamentally line-based. So the fact
マイクロソフト製の最新Linuxディストリビューション「Azure Linux 3.0」正式リリース。Azureに最適化され、Kernel 6.6を採用 マイクロソフト製のLinuxディストリビューションである「Azure Linux」の最新版となる「Azure Linux 3.0」が正式リリースされました。 Azure Linuxはマイクロソフトが提供しているサービス、MinecraftやAzure Kubernetes Service(AKS)、Azure Operator Nexus、Xbox、HDInsight, Microsoft Threat Protectionなどの基盤OSとしてマイクロソフト社内で作られていた、セキュリティを重視しMicrosoft Azureに最適化された同社独自のLinuxディストリビューションです。 3月に公開されたブログ「What’s new in
This article brought to you by LWN subscribersSubscribers to LWN.net made this article — and everything that surrounds it — possible. If you appreciate our content, please buy a subscription and make the next set of articles possible. The Rust programming language has long aimed to be a suitable replacement for C in operating-system kernel development. As Rust has matured, many developers have exp
Linux Kernel で struct net_device や Routing Netlink の処理を排他制御する mutex である rtnl_mutex を任意の時間 ロックするカーネルモジュールを作成して、rtnl_mutex のロックがユーザランドのプロセスやカーネルスレッド等にどういった影響を及ぼすかを観察する ... というエントリです Linux カーネルの話や、strace, gdb, /proc/$pid/stack を使ったデバッグ方法に興味あるかた向けです 経緯 とあるサーバで動いてる大量のプロセスが rtnl_mutex をロックする箇所やそれに関連していそうな箇所で TASK_UNINTERRUPTIBLE でブロックしてしまい、障害を起こしているのに遭遇して原因を追いかけていたのでした 障害の再現が難しくて困っていたのだが、別のアプローチとして 「rtn
On Thu, Jun 10, 2021 at 11:08 AM Enrico Weigelt, metux IT consult <lkml@metux.net> wrote: > > And I know *a lot* of people who will never take part in this generic > human experiment that basically creates a new humanoid race (people > who generate and exhaust the toxic spike proteine, whose gene sequence > doesn't look quote natural). I'm one of them, as my whole family. Please keep your insane a
This is the story of the time I wrote some code, deployed it to production, and ended up bricking the server it was running on by frying the kernel. Beautiful rendition of me frying the kernel This post is about perils of concurrency and race conditions. My code was nearly correct, but ultimately, there were two major synchronization bugs that killed it. This is a really long post that gets into t
Linux Kernel 5.15リリース。LTS版、新しいNTFS対応ドライバ、インカーネルSMB 3サーバ、不揮発性メモリへのスワップアウトなど新機能 Linuxカーネルの最新版となるLinux Kernel 5.15が10月31日付けで正式にリリースされました。 Linuxカーネルは毎年「Longterm Maintenance Kernel」と呼ばれる長期リリース版(いわゆるLTS版)が登場します。2019年は11月に登場したバージョン5.4が、2020年は12月に登場したバージョン5.10がLongterm Maintenance Kernelに設定されました。 今年は今回のLinux 5.15がLongterm Maintenance Kernelとなり、少なくとも2023年10月までメンテナンスが行われることが表明されています。 Linux Kernel 5.15では新しいN
Kernel/VM探検隊はカーネルや仮想マシンなどを代表とした、低レイヤーな話題でワイワイ盛り上がるマニアックな勉強会です。齊加氏は、Linux KernelコードからCompaction機能の仕組みや工夫点を調査した結果について発表しました。 メモリの虫食い状態を緩和するデフラグメンテーション 齊加匠氏:「Deep Dive into the Linux Kernel メモリ管理におけるCompaction機能について」というタイトルで株式会社エヌ・ティ・ティ・データの齋加が発表します。 自己紹介です。所属は株式会社エヌ・ティ・ティ・データで、業務はアプリケーション開発です。OSは関係ないんですが、アプリケーション開発をしていて、主にSpringを使っています。好きなものはGolangやArch Linuxです。かねてよりメモリ管理に興味があって、Linux Kernelのメモリ管理につ
Analytics cookies are off for visitors from the UK or EEA unless they click Accept or submit a form on nginx.com. They’re on by default for everybody else. Follow the instructions here to deactivate analytics cookies. This deactivation will work even if you later click Accept or submit a form. Check this box so we and our advertising and social media partners can use cookies on nginx.com to better
Introduction Linux kernelの6.2からRustでカーネル開発をするための基本的なサポートが導入されましたが、 メジャーなディストリビューションは6.2をデフォルトで搭載していませんでした。 なのでRustカーネルを試そうとした場合、 カーネルのソース持ってきてカーネルビルド関連のソフトウェアやライブラリをインストールし、 Rust関連のオプションつけてビルドしなおして Rustで書いたカーネルモジュールをビルドして QEMUとかUTMとかでようやく動作確認ができます。 とりあえずHelloWorldするだけでも、かなり面倒です。 しかし先日、Ubuntu 23.04 Lunar Lobsterがリリースされました。 これは標準でLinux Kernel 6.2を搭載しているので、面倒な手順を踏まなくても Rust製のLinux kernelが動きます。 また、素晴
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く