2020-03-01から1ヶ月間の記事一覧

カーネルモジュール作成によるlinuxカーネル開発入門 - 第三回 デバッグ用インターフェース

はじめに 本記事は第二回の続きです。前回までの記事を既に見ていることが前提です。 今回は、今後凝ったカーネルモジュールを作るにあたって必要になってくる、デバッグに有用なdebugfsというファイルシステムについて学びます。debugfsはカーネルとユーザ…

bashの組込みコマンド自作によるスクリプトの高速化

はじめに bashには次の2つの理由によって、組み込みコマンド(builtin command)というものが存在します。 スクリプトの高速化のため。組み込みコマンドであれば通常のコマンドを実行する場合に比べてプロセスの生成コスト(fork()/exec())が削減できる bash自…

他人の書いたソフトウェアのバグへの対処例

はじめに 本記事は、他人の書いたソフトウェアのバグに遭遇したときにどうするかという流れを、実例を基にして、ストーリー仕立てでなるべく具体的に書きました。このようなときの対処に不慣れな人に、実際のデバッグ、バグレポート、および修正案の提出まで…

カーネルモジュール作成によるlinuxカーネル開発入門 - 第二回 一定時間後に処理をする(タイマー)

はじめに 本記事は第一回の続きです。前回までの記事を既に見た上で開発環境ができていることを前提としています。 前回書いたコードはモジュールをロードした時とアンロードしたときだけ動いていました。今回は、ある時点から一定時間後に所定の処理をする…

カーネルモジュール作成によるlinuxカーネル開発入門 - 第一回 hello world

はじめに 本記事の内容はUbuntu16.04でのみ確認しています。同名の電子書籍においてはUbuntu 18.04に対応しています。 本記事の目的は、linuxのカーネルモジュール(以下カーネルモジュール)というものの作成を通じてlinuxカーネル(以下カーネル)の開発に最低…

お手軽Linuxカーネル開発/自動テスト

はじめに これはLinux Advent Calendar 2016 14日目の記事です。 本記事では、ワンコマンドでお手軽にlinuxカーネル開発/自動テスト環境を構築する方法を紹介します。その後開発、自動テストの流れについてもチュートリアル形式で紹介します。本記事ではelkd…

スクリーンキャストを採取する簡単なbashスクリプト

はじめに 既存の単純なコマンドを組み合わせてスクリーンキャストを採取する方法を紹介します。 git repoはここです。本体は高々20行のbash scriptであるsimple-screencast1つだけです。 実行環境と必要なパッケージ 2016/12/04時点での最新のdebian testing…

GNU linker scriptでhello world

はじめに みなさんはGNU linker(以下ld)やlinker scriptという言葉をご存知でしょうか。組み込み系のかたやOS屋さん以外のかたにとっては、直接使うものではないので、馴染みのないものだと思います。ldの役割は、皆さんが書いたソースファイルからコンパイ…

LinuxにおけるOOM発生時の挙動

はじめに これはLinux Advent Calendar 2015 3日目の記事を2016/2/2に編集したものです。 Linuxにおいてシステムの物理メモリが枯渇したOut-Of-Memory(OOM)という状態になった際の挙動について説明しています。OOMに関連が深いsysctlパラメタを紹介するとと…

linux kernelのmakeターゲットについてのあれこれ

はじめに 本記事は、Linux Advent Calendar 2014 7日目の記事を2016/2/2に編集したものです。linux kernelをビルドする際に使用するmakeのターゲット(以下"makeターゲット"と記載)について、よく使われる便利なもの、面白いもの、小咄などの紹介を目的としま…

linuxのstable kernel reviewに参加してみませんか

はじめに この文書は2013 Kernel/VM Advent Calendarの2日目のために書いたものを2016/2/2に編集したものです。 Linux の stable kernel というカーネルのリリース作業、およびそれに関わると、何がいいかということを説明します。自分がかつて2年ほどこの作…

プログラマが入門書の次に読めばよさげな書籍

はじめに 本記事は2010年10月に某所で書いた記事を2016/2/2に編集したものです。 プログラムの入門書を読んだ上でプログラムを書いた経験があるけれども、そこからステップアップするために何をしていいのかわからないという人向けの本をいくつか紹介したい…

オープンソースソフトウェア開発ことはじめ

はじめに v1: 2016/2/1: この記事は カーネル/VMアドベントカレンダー2011 のために書いたものを2016/2/1に編集したものです。 v2: 2019/8/31: プロジェクトからフェードアウトした現状を追記しました。それにあわせて内容を一部修正しました 本記事の目的は…

タスクスケジューラ用のsysctlパラメタ

はじめに 本記事はLinux Advent Calendar 2015 19日目用に書きました。タスクスケジューラに関するsysctlパラメタについての解説をしています。取り扱ったのは全パラメタではなく、使用頻度が比較的高そうなものだけです。調査に使用したカーネルのバージョ…

私のコード履歴書

プログラムをはじめてから今まで、いったいどんなものを書いてきたのかを列挙すると面白いとおもったのでやってみます。どういう意図で何を作って、その結果どう思ったとかも覚えていれば書いてみます。なるべく時系列順にしていますけど、記憶があいまいな…

凄いこと書いてる記事の裏取りをした話

twitter見ていたら新型コロナウィルス(COVID-19)についての刺激的な記事が飛んできたので裏取してみたら書いてあることの印象と事実はずいぶん違うぞ、という結論に落ち着いた話です。 www.businessinsider.jp この記事の中でわたしがびっくりした驚いた箇所…

「株式投資」 != 「画面何枚も並べて難しそうな情報を見る」

はじめに 世間での株式投資のイメージって、表題のように机一杯に画面が並んで、それぞれの画面に線とか棒とかがいっぱい並んでて、机の前のトレーダーがパソコンカタカタやってる、っていうステレオタイプなやつではないでしょうか。映画とか漫画ではそんな…

株価が大暴落しても株式取引してる人が全員人生終わるわけじゃないよ

世界中で株が暴落してますね。大変ですね。というご時世、twitterなどを見ていると人生終わった人がいっぱいいるので、それに引きずられて「株式取引怖すぎ」、「株買ってる人はみんな人生終わったんでは」、という人がいっぱいいるようです。でも本当はそう…

twitterでのふるまいで気を付けていること

twitterは有益なことが多々あるんですが、ちょっとしたことでストレスを溜めたり、他の人に害を及ぼしたり、身を滅ぼしたする可能性があります。それを避けるためにわたしが気を付けていることを書き連ねてみました。別に「みんなもこれやろうぜ!」とか「こ…

日本のでかいIT企業のLinuxカーネルパッチ数の推移

日本のでかいIT企業がupstreamのLinuxカーネルにどれだけパッチを取り込んできたかを、ふと気になったので調べました。調査期間はv2.6.13から本記事執筆時点の最新バージョンであるv5.5までです。対象とした企業は、筆者がLinuxカーネルを主な仕事をしていた…

性能と性能測定の基礎

はじめに コンピュータの世界では「性能」および「性能測定」という言葉があります。これらの言葉にはたくさんの意味があるのですが、業務システムの構築、運用にかかわったような人でなければ、「PCの新しいパーツに対して様々なベンチマークソフトウェアを…

「経験の浅いソフトウェア開発者が気になっていること」という募集への反応のまとめ

数日前にブログや記事、書籍執筆ネタ集めのためにこういうtweetをしました。 [ゆるぽ] 経験の浅いソフトウェア開発者が気になっていること、とくにすでにそれなりのキャリアを積んだ人に聞きたいこともっというと別に(ソフトウェア技術者としての)私個人につ…

「仮説の誤り」 != 「無駄」

難しいことをしていた人が、それがうまくいかなかったときに「自分の立てた仮説は間違っていた、丸一日無駄にした」などといって落ち込んでしまうことがあります。しかし、それは違うよという話をします。別に物珍しい話ではないのですが、知らない人がかな…