ftraceの使い方については、以下の記事でも紹介しましたが、 ftraceを試してみました - へにゃぺんて@日々勉強のまとめ 過去には紹介しなかった使い方も分かったので、あらためてまとめます。 過去に紹介したときは、 「関数単位でカーネルの実行状況のトレ…
printk()はデバッグ出力無効化の際には、コメントアウトするなりして再ビルドする必要があります。 何度もビルドを繰り返すのは面倒なので、デバッグ出力の有効/無効を実行時に動的に切り替えられるようにする機能が dyndbg(dynamic debug)です。
昨日(8/30)、Linuxカーネル4.2がリリースされましたので、 例によって、ビルド・インストールしてみました。 なお、やっと64ビットマシンを購入しましたので、 今回からは、X86_64でビルドします。
x86(32ビット)用OSを作っています - へにゃぺんて@日々勉強のまとめ こちらの記事から引き続き、OS作りを少しずつ進めていました。 一応、「タスク管理」と呼べるものが実装できたので、記事にしておきます。 ソースコード 前回の記事と同じくGitHub上で開…
Linuxカーネル4.1が公開されましたので、 さっそく、ビルド・インストールしてみました。 毎度のことなので、ビルドまでを行うシェルスクリプトを作ってみました https://github.com/cupnes/sandbox/blob/master/build_kernel.sh 「初期設定(ここから)」から…
今回は、Linuxのシグナルについて、自分なりにちゃんと調べてみましたので、 記事にまとめてみます。ほとんどUNIXシグナルと変わらない話だとは思いますが、ソースコードは Linuxのものを参照しているので、Linuxに限った話も混じっているかと思いま す。
今日(4/13)、Linux 4.0がリリースされました。 LKML: Linux 4.0 released https://lkml.org/lkml/2015/4/12/178 何度かこういうネタを記事にしていますが、 今回も、自分のマシンでビルドと起動を試してみました。 また、それだけだと記事としてあんまりなの…
少し前から、x86(32ビット)用OSを作っています。(64ビットじゃないのは、今だにx86マシンしか持っていないからです。。。) シェルみたいなものが動くところまで来たので、記念に記事にしてみます。 できることは、上のGIFアニメの通りで、echoコマンドしか無…
USB FDDは/dev/fd0ではなく、/dev/sdbのように認識されます。 なので、 $ sudo mount -t vfat /dev/sdb /mnt/storage などのようにマウントすることになるのですが、 "can't read superblock" とのメッセージが出てマウントできないことがあります。 そんな…
x86のOSを作る際には、プロテクトモードへの移行など、やらなければならないことがあります。 考え方にもよりますが、この部分は、ソースコードを理解した上で、既存のものを流用して済ましてしまいたい箇所です。 そこで、Linux-0.01-rmのソースコードを元…
EV3を買いました。 以下の記事の内容を試す際に注意したほうが良いと思った箇所と、 記事の内容を参考に作成したレコードプレイヤータイマーのプログラムを紹介します。 ネイティブLinuxプログラミング方法 (Ver0.3) | (株)アフレル|教育版レゴ マイン…
Linux-0.01を最近のLinux上でビルドできるようにする「Linux 0.01 remake(linux-0.01-rm)」というプロジェクトがあります。 Debian 7.7(wheezy)上で試してみました。 https://github.com/cupnes/linux-0.01-rm-3.5 結論としては、以下のエラーでブートは完了…
FAT形式のファイルシステムを作成する「mkdosfs」を使って、面白いことを見つけたので 記事にまとめます。 用意するもの mkdosfsコマンドが使えるLinux PC USBフラッシュメモリ/SDカードなど、フォーマットして構わないもの あるいは、QEMU(後述) ちょっとし…
package.elでelispをパッケージ管理できるのは便利だけど、 別のマシンと同期するには、同じパッケージをインストールする作業が発生し、面倒 という事に悩んでいました。 このような問題はCaskで解決できます。 「何のパッケージをインストールしたか」 を…
DebianではJesseからsystemdが決まっているなどで、 今さらではあるのだけど、Sysvinitで使用されているユーティリティの一つ 「startpar」の主に設定ファイルを調べて見ました。 startparとは ランレベルのスクリプトをパラレルに実行してくれる実行ファイ…
Debian 7.6(wheezy)でファミコン(NES)のプログラミング環境を構築したので、そのメモです。 といっても、環境構築からアセンブル、動作確認は以下の記事の受け売りです。 Ubuntu で ファミコン(NES)プログラム その1.1(リローデット) Ubuntu向けの記事です…
シェルスクリプトで簡単なCPUのシミュレーションと、 その上で動くスケジューラを作ってみました。 とりあえず、メモ書き程度に。 # あとで詳しく追記する・・はず ダウンロード https://github.com/cupnes/sh_sched 使い方 git cloneで持ってきたあと、 実…
CentOS(x86_64)の環境でもビルドを試したのでメモ。 作業環境 $ cat /etc/redhat-release CentOS release 6.5 (Final) 作業過程 必要なパッケージのインストール $ sudo yum groupinstall "Development tools" $ sudo yum install ncurses-devel ダウンロー…
Debian(i686)の環境でLinuxカーネル 3.16.1をビルドしました。 自分用にも、作業過程をメモ。 作業環境 $ cat /etc/debian_version 7.6 $ uname -a Linux dyna 3.2.0-4-686-pae #1 SMP Debian 3.2.60-1+deb7u3 i686 GNU/Linux 作業過程 ダウンロードから.con…
最近、straceコマンドを知ったので、簡単なプログラムで試してみます。 straceは、「あるプログラムが発行するシステムコールの内容を表示してくれるコマンド」です。 システムコールは正に、アプリケーションとOSのインタフェースなので、 これを一覧で見せ…
オプションなど変更すれば色々と装飾を変えられると思うけど、 とりあえず見つけたのをメモ。 banner インストール $ sudo apt-get install sysvbanner 実行例 $ banner hello # # ###### # # #### # # # # # # # ###### ##### # # # # # # # # # # # # # # …
calendarコマンドを使うと、記念日などを表示できます。 $ calendar 8月 05* Bank Holiday in Scotland and Northern Ireland 8月 05 Homeland thankfulness day in Croatia 8月 05 3rd Cross-Quarter Day 8月 05 European Monetary Agreement signed, 1955 …
ナンバープレートの4つの数字から四則演算で「10」を求める遊びをやったことがあると思います。 今回は、任意の個数の数字から、指定された値を四則演算で求める計算式を出してくれるシェルスクリプトを作成しました。 https://github.com/cupnes/sh/blob/ma…
あるディレクトリ以下の総ファイルサイズを取得する際に、 $ du -hs ディレクトリ のように、duコマンドを使った例を紹介されることが多いのですが、 duコマンドが返すのはブロックサイズであり、ファイルサイズではないため正確な数値は得られません。 (ち…
Me First and the Gimme Gimmesというバンドの 「Who Put The Bomp」という曲のアニメ付き映像です。 このバンドは90年代のバンドで、様々な曲のパンクアレンジをしていました。 Who Put The Bompもその一つで、元々この曲はBarry Mannによる1961年の曲でし…
別の場所にいろいろな記事のURLをまとめていたものを、 こちらへ再掲。 http://www.ac.auone-net.jp/~baba/jfbterm/ http://www.ac.auone-net.jp/~baba/w3m-img/ フレームバッファ動作 fbiでフレームバッファ上に画像を表示する: 日々のーと Linuxで使えるグ…
12ステップで作る組込みOS自作入門作者: 坂井弘亮出版社/メーカー: カットシステム発売日: 2010/05/01メディア: 単行本購入: 24人 クリック: 252回この商品を含むブログ (39件) を見る読みながら、少しずつ組込みOSを作っていました。 読破記念も兼ねて、自…
http://d.hatena.ne.jp/cupnes/20130320/1363782346 こちらの記事の続きです。 概要 「-c [色名]」で色を指定して画像検索を行えるようになりました。 gray trans red orange yellow green teal purple pink white gray black brown 以上の色が指定できます…
SH3のマイコンボード「T-SH7706LSR」のクロス開発環境を Debian上に作ろうと思い、GNU BinutilsとGCCの最新版をビルドしていました。 結果として、まだGCC-4.6.4のビルドに成功していないのですが、 いろいろとトラブルシューティングを行ったので、ここまで…
emacs上で動作する M-x tetrisや M-x pongなどのゲームは、「gamegrid.el」というゲーム用ライブラリで作られています。 今回は、この実験として、簡単な「迷路ゲーム」を作ってみました。 ソースコード ソースコードは、こちらからダウンロードしてください…