fedora 30からgrubの仕様が変わったのでφ(..)メモメモ
Fedora 30でChanges/BootLoaderSpecByDefaultというプロポーザルがあって、Fedora 30βでは実際にこの仕様になってます。カーネルを弄る人にはちょっと影響があるかなって感じです。仕様The Boot Loader...
View ArticleLinuxカーネル4.1のSLUBアローケータ(ドラフト)
はじめにスラブアローケータLinuxのスラブアローケータslabアローケータslobアローケータslubアローケータスラブオブジェクトの管理使用中リストスラブのマージ機能Chache...
View ArticleLinuxカーネル4.1のメモリレイアウト(ドラフト)
はじめにユーザプロセス空間とカーネル空間x86_64のメモリレイアウトダイレクトマップ(ストレートマップ)領域vmalloc/ioremap領域仮想メモリマップ%esp fixup stackカーネルテキスト領域モジュールマッピング領域vsyscall固定マップ領域はじめに前回のLinuxカーネル4.1のSLUBアローケータ(ドラフト) - φ(・・*)ゞ ウーン...
View ArticleLinuxカーネル4.1のvmalloc()(ドラフト)
はじめにスラブアロケータ以外の動的メモリ確保vmalloc関数vmalloc関数で使用するデータ構造vmallocの初期化vmallocでのメモリ確保vfree関数でのメモリ解放その他の非連続メモリ領域からメモリを確保する関数vmap関数ioremap関数/proc/vmallocinfoによるメモリ確保状況の確認はじめに前回のLinuxカーネル4.1のSLUBアローケータ(ドラフト) -...
View ArticleLinuxカーネル4.1の名前空間(ドラフト)
はじめに名前空間名前空間の利点名前空間の種類Mount名前空間IPC名前空間UTS名前空間Net名前空間PID名前空間User名前空間名前空間の管理プロセスと名前空間名前空間のエクスポートnsfs名前空間共通データNSProxy構造体NSProxyと名前空間参照カウンタNSProxyと名前空間の関連名前空間へのアクセスデフォルトの名前空間名前空間の共有・分離・移動名前空間の共有と複製fork(2)c...
View Articlemeta-fedoraなんてものを作り始めた(*ノω・*)テヘ
meta-fedoraはじめにもし、meta-fedoraと聞いてピンときた場合はその感は当たりですw主に組み込み向けのLinuxディストリビューションを作るためのものとしてyocto...
View Article自分用にLinuxカーネルのBuildbot + LAVAでCI環境を作るめも
ちょっとCI環境でも作るか〜ということで。CIだいたいこんな構成です。構成いまのところすべてローカル環境で閉じてます。うちはマンションタイプのBフレッツでそんなに速いわけでもないからローカルで閉じてるほうがテスト時間が短くて済むというとこです。AWSとかVPSを使っても良いんですけどね。とりあえず動くようにはなったので、ブラッシュアップするところはたくさんあります😨CIのシステムで使用するソフトウェ...
View ArticleUEFIのSecure boot + kdump・kexec
UEFIのSecure boot + kdump・kexecの動作確認uefiのSecure bootが有効な環境でkdump・kexecは動作するのか?ってところの確認です。Secure bootとは?というところはこちらのドキュメントを参照してください。 access.redhat.comテスト環境テスト環境にはlibvirtを使います。ホストはFedora 30...
View Article雑文:Linuxとか低レイヤが好きで趣味で色々やってたら趣味が仕事になったのと、知識が足りないとこを勉強しようと思って学生にもなった件
このブロクで使ってるカテゴリは↓のようになっていて、こいつLinuxとかカーネル好きだなって感じなんですが、前まではLinux自体は使うけどそれくらいでガッツリとLinuxに絡んだりとかはしてませんでした。前職はこんな感じのところでnodejsなんかのコード書いてわけですね。...
View ArticleFedora Kernel test week参加記録
FedoraではkernelのテストイベントとかGnome 3.34 Test Day、I18N Test Dayなどのテストイベントがちょくちょくあります。 今回はKernel 5.3 Test Weekの備忘録です。ちなみに、この手のイベントはfedora MAGAZINEで紹介されることがあります。今回の参加結果の最終成果はこちらです。github.com参加ε≡≡ヘ(...
View Articleunameコマンドから始めるデバッグ&カーネルハック入門
この記事はLinux Advent Calendar 2019の1日目の記事です。はじめに環境おことわりuname(1)uname(1)が出力する内容strace(1)gdb(1)bpftracesystemtapKernel HackLivepatchおまけRHEL 8.1CentOS...
View Articlekillコマンドのあれこれ
(´-`).。oO(killコマンドを提供するプロジェクト多いなってkillコマンドを提供するプロジェクトとりあえず気付いた範囲で4つ。util-linuxprocps-ngcoreutilsbusyboxl上のリストはmanページへのリンクになっているのでオプションの違いとかはそちらを参照してください。busyboxのkillは最小構成って感じなのでオプションは1つしかないですね。-sオプションは...
View Articlesecure bootが有効な環境で自前ビルドのカーネルに署名する方法(fedora向け)
fedoraなら多分一番手軽だと思う署名方法です。他のディストリビューションはわかりません😭テスト環境ディストリビューションは(もちろん)...
View ArticleLinux起動時のカーネルパニック(at ring_buffer_set_clock())修正めも
機種依存ですが、fedoraで5.4系のカーネルで起動時にカーネルパニックするようになり、自分もこのバグに当たったので修正してパッチをlkmlに投稿しました。...
View ArticleLinux Advent Calendar 2019で書いた「unameコマンドから始めるデバッグ&カーネルハック入門」を電子書籍化しました
Linux Advent Calendar 2019でunameコマンドから始めるデバッグ&カーネルハック入門という記事を書きました。kernhack.hatenablog.comこのときはFedora 31を実験環境として選んで書いたんですが、環境をCentOS...
View Articlekdump: fedora系カーネルとupstreamカーネルの微妙な差
kdumpで利用するcrashkernelパラメータに渡せる値はfedora系カーネルとupstreamカーネルの微妙な差があるので自分でビルドしたカーネルを使う場合は気をつけろという自分へのメモです。kdumpをfedora・rhelなどでdumpを利用する場合、crashkernelに渡す値にautoが利用できます。rhel8のドキュメント(How should the crashkernel...
View ArticleTiny Core LinuxでLinuxのinitプロセスが実行されるあたりを調べる
この記事はLinux Advent Calendar 2020 - Qiitaの1日目の記事です。Tiny Core Linux(以下tcl)を使ってLinuxのブートプロセスを見てましょう。Tiny Core Linuxは軽量ディストリビューションで最小のisoイメージだと11MBほどです😃...
View ArticleHiFive1 Rev Bを買ったのでRISC-V実機に入門する
この記事はRISC-V Advent Calendar 2020の1日目の記事です。RISC-Vの実機としてHiFive1 Rev Bを勢いで買いました😊 HiFive1 Rev B64bitのRISC-V64GCならLinuxも動くんですけど、HiFive UnleashedはディスコンだしHiFive Unmatchedはまだ出てないので手軽に遊べそうなHiFive1 Rev...
View Articlevgrep便利ですねという話
この記事はLinuxその2 Advent Calendar 2020の4日目の記事です。今回はtoolネタです。vgrepというgrep系のツールがあって結構便利です。これは今年のOpen Source Summit + Embedded Linux Conference North America 2020でのAsk the Expert SessionでGreg...
View Article1999年発行(日本語翻訳版)のLinuxカーネル解説本を見返してみる
この記事はLinux Advent Calendar 2020の24日目の記事です。自分がLinuxを使いだした頃、OSはどうやってブートしてんるんだろう🤔とか色々知りたくて買ったのが↓の本です。Linuxカーネルインターナル買った当時は知識がなくて読むのが大変だったけど今はそれなりに読めるようになり、さすがに成長したなとも思ってみたり😃...
View ArticleマイペースなOSSコントリビュート生活 fedora編
この記事はLinux Advent Calendar 2020の17日目の記事です。OSSのコントリビュート方法はpatchを書いたりドキュメントを翻訳したり、バグレポートしたりと色々な方法がありますね。fedoraでテストというとリリース前のベータ版のテスト、パッケージがアップデートされた際のテスト(QA:Updates Testing - Fedora Project...
View Articlefanotify(7)めも
fapolicydがどのようにアプリケーションの実行を禁止しているのだろうか?と思って調べためもです。fapolicydがアプリケーションの実行を禁止する仕組み仕組みとしてはfanotifyの仕組みを使ってファイルが実行のために開かれた場合に通知を受け取り、設定されたルールを調べて実行可能かどうかを返すということをしてます。fanotifyfanotifyの機能を使うには2つの関数があります。fan...
View ArticleRaspberry Piのdtoverlay・dtparam、dtbそしてブートプロセスのメモ
はじめにこの記事はRaspberry Pi 3B+の実際の挙動と公式のドキュメントから大体こんな感じだろうというところで書いてるので正確さは期待しないでください。下図のような構成でLinux kernel(Raspberry Pi向けのカーネルじゃなくて、mainlineとかstable...
View ArticleLinux 5.14.4のregressionがどんな感じだったのか調べる
Linux 5.14.4のリリースして同日にregressionが報告されて次の日には5.14.5がリリースされてたんですが、これがどんなバグだったのかなというのを調べたメモです。バグ報告の内容としては5.14.4でNextcloudっていうphpのwwebアプリケーションを実行するとハングアップするということでした。このときにbisectも行われていて、[PATCH 5.14 011/334]...
View Articlestable kernelにコントリビュートする
この記事はLinux Advent Calendar 2021の18日目の記事です。stable kernelへのコントリビュートコントリビュートの方法としては次のような方法があると思います。テストするpatchをレビューするpatchをバックポートするその他本記事ではpatchをバックポートする場合について書いてみたいと思います。基本的にはEverything you ever wanted to...
View Articlefedoraのsystem-upgradeが失敗して復旧させたメモ
この記事はLinuxのカレンダー | Advent Calendar 2022 - Qiitaの8日目の記事です。会社にあるfedora 36のPCをfedora 37にアップグレードしようと思ってリモートからdnf system-upgradeでアップグレードしかけといたら何かしらの原因でアップグレードに失敗してて、それを復旧させるのに時間くらいかかったので防備録的に🥲今回起きてた現象root...
View Article雑文:放送大学(情報コース)をなんとか4年で卒業確定できたという話
tl;tr2023/02/17に放送大学の2023年2学期の成績発表もされ、卒業要件の124単位も一通り取りきったのでなんとか4年で卒業できる感じになりました😊放送大学に入ったときのblogエントリはこちら。kernhack.hatenablog.com学位の情報も登録されているし、4年間の区切りがついたなあと🌝...
View ArticleTryHackMe: Race Conditions writeup
Race Conditionstryhackme.comWhat is the flag for the /home/walk/flag binary?At first, I read anti_flag_reader.c to find vulnerability.intmain(int argc, char **argv, char **envp) { int n; char...
View ArticleangrのBackward Slicingを使ってみる
angrのBackward Slicingを使ってみたので、わかったことをとりあえずメモしておきます。と言っても、Backward Slicingの実行方法自体はドキュメントに書いてあるので、知りたかったのはBackward Slicingしたあとにどのようにデータを見ればよいの?ってところですね。まずは単純なテストプログラムを作成。これに対してBackward...
View Article