kernel/vm探検隊part7の発表スライドです。 https://kernelvm.connpass.com/event/330079/ 以下再演動画のテキストでもあります。 https://youtu.be/kJzG-o0_m24

Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Linuxカーネルパラメータのチューニング&設計 0.目的 【カーネルパラメータのチューニング】を修得する目的は、サーバの特性を理解し、それぞれに合ったカーネルパラメータのチューニングすることでリソースの有効活用をできるようになることを目的とし、私個人の経験を元にした見解を以下の記事に掲載します。 1.最初に サーバには、それぞれ必要なリソース特性があり、それに合わせたカーネルパラメータのチューニングが必要となります。 世の中の流れはオンプレよりクラウドに移行してはいるので、カーネルパラメータのチューニングよりスケールアップなりスケール
ハードとソフトの世界をつなぐ OSの根幹となる仕組みを理解しよう OSにおいて、カーネルとはその名のとおり「核」となるコンポーネントであり、記憶領域やファイルシステムの管理、プロセス制御、スケジューリング、ネットワーキングなど、ハードウェア制御に関わる幅広い機能を担っています。 Webやエンタープライズ、組み込みに至るまで、世界中のあらゆるところで、Linuxを基本OSとするシステムが稼働しています。Linuxはオープンソースソフトウェアであり、誰でも広くアクセスできることがその発展を支える特徴の1つといえるでしょう。しかし、その土台となるカーネルに限ってみても、ソースコードを読み込んで理解するにはあまりにも大規模かつ複雑な存在です。そのため、Linuxカーネルの役割や仕組みを理解している人が少ないのもまた事実なのです。 ソフトウェアの開発・利用において、カーネルのような根幹部分について理
linux でプログラムをdisassembleする方法のメモです。 逆アセンブルする方法(その1) 定番のdisassembler、objdump コマンドを使います。 $ objdump -d バイナリファイル > dump.txt objdump コマンドは、大抵 binutils パッケージに入ってます。 通常のプログラムはもちろん、共有ライブラリ *.so とか $ objdump -d /lib/libc.so.6 カーネルモジュール *.ko も逆アセンブルできます。 $ objdump -d /lib/modules/2.6.33-orig/kernel/arch/x86/oprofile/oprofile.ko 逆アセンブルする方法(その2) dissy という objdump のGUIがあります。それなりに使えます。 http://code.google.com/p
FUSE Passthrough Support May Land For Linux 6.9 To Help Boost I/O Performance Written by Michael Larabel in Linux Storage on 28 February 2024 at 09:36 AM EST. 23 Comments Being worked on and off for several years has been FUSE read/write passthrough support for improving the performance of File-Systems in User-Space by avoiding the daemon overhead on a per-file basis where read/write operations ar
Recent posts: 29 Oct 2024 » AI Flame Graphs 22 Jul 2024 » No More Blue Fridays 24 Mar 2024 » Linux Crisis Tools 17 Mar 2024 » The Return of the Frame Pointers 10 Mar 2024 » eBPF Documentary 28 Apr 2023 » eBPF Observability Tools Are Not Security Tools 01 Mar 2023 » USENIX SREcon APAC 2022: Computing Performance: What's on the Horizon 17 Feb 2023 » USENIX SREcon APAC 2023: CFP 02 May 2022 » Brendan
【IIJ 2023 TECHアドベントカレンダー 12/16の記事です】 この記事について 背景:TCP はコンピュータネットワークの通信において広く利用されているプロトコル・標準化された通信規格です。コンピュータは TCP/IP スタックと呼ばれるようなソフトウェアを実行することで、定められた規格に則って通信を行います。汎用 OS 環境では、TCP/IP スタックは多くの場合、カーネル空間に OS 機能の一部として実装されています。 課題:通信に関するソフトウェアの研究コミュニティでは、そのようなカーネル空間に実装されている TCP/IP スタックは、近年の高速な NIC の性能を十分に引き出すことが難しいという課題が指摘されてきました。 テクニックの紹介:当記事では、近年の研究コミュニティにおいて比較的一般的な高速化テクニックとされている「カーネルをバイパス(迂回)して TCP 通信を
2023年12月21日紙版発売 2023年12月21日電子版発売 森若和雄 著 B5変形判/216ページ 定価3,080円(本体2,800円+税10%) ISBN 978-4-297-13893-6 Gihyo Direct Amazon 楽天ブックス 丸善ジュンク堂書店 ヨドバシ.com 電子版 Gihyo Digital Publishing Amazon Kindle ブックライブ 楽天kobo honto この本の概要 systemd(システムディー)はLinuxの基本的な構成要素を提供するソフトウェア群です。システムやサービスの管理機能を中心として,ハードウェアの管理,ログの管理などを行う多数の独立したソフトウェアからなっています。 Linuxでシステム管理を行うときにはsystemdの知識が必要になります。systemdに関するオンラインマニュアルなどは充実しているものの,sy
Linuxスキルをレベルアップする実用的な実践書。本書では、コマンドを組み合わせて複雑なコマンドを作成することで、手動で行われているタスクを自動化するための方法を学びます。具体的には、パスワードの管理、大量のテストファイルの生成、テキストファイルを変換してデータベースのように扱う方法など、現実的なビジネスの問題を解決する方法を明らかにします。単なるテクニックではなく、背後で何が行われているかについても学べるので、Linuxのシェルに対する理解が深まります。それと同時に、Linuxコマンドに関するさらに上級レベルの知識とテクニックが身につきます。 賞賛の声 監訳者まえがき まえがき 第I部 主要な概念 1章 コマンドの組み合わせ 1.1 入力、出力、パイプ 1.2 コマンドラインに取り掛かるための6個のコマンド 1.2.1 コマンド① wc 1.2.2 コマンド② head 1.2.3 コマ
Backlog課の@vvatanabeです。我々Gitチームの毎朝のルーティンの一つに、 「前日の各種アプリケーション・AWSリソースのアラートやメトリクスを把握する」 と言うものがあります。 これは、SREの@maaaato氏がGitチームにエンベッドされてから毎朝欠かさずやっている習慣です。 先日開催された #NuCon2022 の彼のセッション「チームでサービスの運用をうまく支えていくための取り組み ~SREと共に~」でも、継続している取り組みの一つとして紹介しています。 この取り組みのおかげで、実際に問題を検知して改善に繋げたケースも多々あります。今回はその中から一つ、大容量のストレージを持つサーバーの奇妙なメモリ使用量の増加原因を究明して改善に繋げた話をご紹介します。 TL;DR Amazon Linux 2のようなRHEL/CentOS系のディストリビューションに大量のファイル
The Linux Storage Stack Diagram shows the layout of the the Linux storage stack. Downloads Diagram for Linux Kernel 6.11 Currently in development, here is the list of upcoming changes: null_blk: remove the bio based I/O path (Kernel 6.9) Diagram for Linux Kernel 6.9 Linux Storage Stack Diagram v6.9): Linux I/O Stack Diagram v6.2 (20230309): ZIP (includes .drawio and .svg) PDF PNG Changelog: dm-vdo
こんにちは、ティアフォーでパートタイムエンジニアをしている石川です。 本記事では、楽に「動的ライブラリ(及び実行バイナリ)の特定の関数をフックして何かしらの処理をする」手法について紹介していきます。 この記事は、同じくパートタイムエンジニアの西村さんによる作業の成果を元にして、石川が執筆したものです。ソースコードや図のいくつかも西村さんによる貢献です。 また、ティアフォーでは「自動運転の民主化」をともに実現していく、学生パートタイムエンジニアを常時募集しています。自動運転を実現するためには、Softwareに関してはOSからMiddlewareそしてApplicationに至るまで、Hardwareに関してはSensorからECUそして車両に至るまで異なるスキルを持つ様々な人々が不可欠です。もしご興味があれば以下のページからコンタクトいただければと思います。 https://tier4.j
概要 おことわり 流れ [前半]:NICドライバ実装に必要な作業 insmod/rmmod 時のエントリポイントとなる関数を用意 pci_diriver構造体を定義して、ドライバを登録 net_deviceとして登録 net_deviceハンドラ関数を用意してハンドラテーブルに登録 割り込みの定義(未動作確認) MMIOレジスタを適切に初期化して、実際にパケットを処理する部分を書いていく(未実装) ハンドラとスケジューリング [後半]:Linuxカーネル関連で詰まったところ insmod時のカーネルクラッシュ インターフェースのstateがUPにならない問題 ソースコード さいごに 概要 Linuxで動くe1000eドライバを開発しようとしており、ドライバと紐付けたNICのstateがupになるところまで進めました。 個人的に忙しくなった都合で一旦ここでプロジェクトを止めるため、備忘録とし
すべてがファイルというモデルの Linux (Unix) において、ファイル I/O (以降単に I/O と書く) を知っておいて損はない。 この記事では、基本的なファイルと関連する I/O について、対応する Linux システムコールも併せて説明する。 次回はこれらを実際に Linux 上で確認する予定。 ファイル Unix におけるファイルとは、普通「通常ファイル」のことを指し、バイトがリニアに並んだデータ (byte stream) のことである。 ファイル内のバイトは読み書きが可能で、指定されたバイトから開始する。この開始バイトはファイル内の「位置」と考えることができ、ファイルポジションまたはファイルオフセットという。 通常ファイルとは別に、スペシャルファイルというファイルとして表現されたカーネルオブジェクトがある。Linux では、スペシャルファイルとしてデバイスノード・名前付
はじめに つい先日、GitHubのRSA SSHホスト鍵が突如差し替えられるという一件がありました。 We updated our RSA SSH host key 詳細に関しては識者による解説に委ねますが、ちょうどタイムリーな話題だったので、SSHをより安全に利用するという観点でおすすめ設定についていくつか紹介します。 なお、クリアコードではSSH以外にもおすすめzsh設定やおすすめEmacs設定という記事も公開しているので参考にしてみてください。 2023年5月11日更新:StrictHostKeyCheckingをyesにする場合の安全なknown_hostsの更新方法について追記しました。 おすすめ設定について クリアコードでは、.ssh/configのおすすめ設定を https://gitlab.com/clear-code/ssh.d にて公開しています。 これは、社内で.ss
2023-03-26 uRamdiskの作成方法について追記 最近、低レイヤー開発のため、Linuxをいろいろな方法でQEMU上で動かす必要があり、苦戦することも多かったのでメモ代わりにまとめます。 自分はArmv8-A環境で動かすことが多いので、そちらを前提とした方法を中心に書いていきますが、他のアーキテクチャでも使える部分は多いかと思います。 とりあえず、動くことは確認していますが、最適な方法であるかは自信がない部分も多いので、もし改善の指摘とかあればコメントしていただけると幸いです。 細かいツールの使い方は書いていくときりがないので省略します。 Linuxをビルドする 自前のLinuxをQEMU用にビルドするにはLinuxのソースにすでに用意されているconfigを使ってしまうのが楽です。 arch/arm64/configsの中にすでに用意されたconfigが存在している場合、ma
Red Hat でコンサルタントをしている菅原と申します。 この記事では、意外とあまり説明されていないような気がする Linux システムで発生するハングタスクについて少し説明したいと思います。現場のシステムでもハングタスク検知の設定がされていることが多いと思いますが、ハングタスクとは何なのかを正しくご理解いただくことで、ハングタスク検知を行う目的が明確になること、また、実際の障害事例もご紹介することで、通常あまりハングタスクと関連づけて考えないような設定でもハングタスク発生につながる場合があることを知っていただき、少しでもシステム管理や障害の理解、障害対応などのお役に立てれば幸いです。 なお、この記事では RHEL のみを対象に書いていますが、他の Linux ディストリビューションにも適用される内容と思います。 ハングタスク (hung tasks) とは ハングタスクとは読んで字のご
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く