Yabu.log

ITなどの雑記

vagrantを導入

RubyのDSL(VagrantFile)でVirtualBox,VMWareなどをお手軽にいじれちゃうツール的な印象です。 仮想マシンの設定 仮想マシンの状態管理 接続 共有ファイル Provision(自動初期設定) 自分でboxを作る方法 pluginのインストール プラグインのsaharaについて 気…

C言語で美咲フォントを扱う2

次回はコンソールに美咲フォントを出力して見たい お約束の品です? 00111100 01000010 00000010 00001100 00010000 00000000 00010000 00000000 0を抜くとなんの文字かわかりやすいかもしれません 1111 1 1 1 11 1 1 前回記事のヘッダの解説が若干不足してい…

デスクトップ周りのケーブルは全て巻き取り式 or 短いものに買い替えた

絡まった配線を解く作業は時間の無駄だけでなく、精神を蝕むストレスの原因になっているとおもう。 そんな作業はもうやりたくないのでテーブルの上の配線類は全て短いケーブルか巻き取り式のものに変えた。 USB type-C これめちゃくちゃ便利です。Type-Cの端…

C言語ポインタ勉強会に参加

オンラインで開催。 atnd.org 少人数制で東工大の先生(uchan_nos)がポインタについてわかりやすく教えてくれるという贅沢な1.5Hでした typedefでやると関数ポインタがわかりやすくなる メモリレイアウト 質問:char配列とcharポインタを文字列リテラルで初期…

C言語で美咲フォントを扱う1

とりあえずfontx2ファイルを読み込んでヘッダだけ表示してみた。 https://github.com/yuyabu/MisakiFont-sandbox >./font hdader size is 22 filesignature is FONTX fontname is MISAKI width is 8 hight is 8 char code flg is 1 blocks is 5c start_code …

第13回osdev-jpもくもく会に参加してLTしました

非常に有意義な1日でした。 LT 解消された疑問 CRレジスタのPEフラグが立った状態でセグメントレジスタ(CS)が0を指している状態はどういう意味か? Haribote OSをCやnasmの情報付きでデバッグすることはできるか? もくもく会の感想 もくもく Web版のmipsお…

486のセグメントデスクリプタが直感的に読めないようになっているワケ

OS

486のセグメントデスクリプタは... 63 55 47 39 31 23 15 7 0 +--------+----+----+--------+--------+--------+--------+--------+--------+ |base_hi |ar |l_hi| ar |base_mid| base_low | limit_low | +--------+----+----+--------+--------+--------+--…

objdumpによる逆アセンブルとgdbの命令形式表示の比較

02_day/helloos5で比較しています。 このOS(というかプログラム)はブートセクタの中でhello worldを画面に出力するだけのものになります。 元のソース(アセンブリ) ; hello-os ; TAB=4 ORG 0x7c00 ; このプログラムがどこに読み込まれるのか ; 以下は標準…

「Linuxの仕組み」を読んだ

推測するな計測せよ!な一冊。 [試して理解]Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識作者: 武内覚出版社/メーカー: 技術評論社発売日: 2018/02/23メディア: 単行本(ソフトカバー)この商品を含むブログ (1件) を見る 技術評論社のepubを…

AS400やRPG言語等で利用されているEBCDICコード順ソートをJavaで実現する方法

某所でちょっと話題になったので、ASCIIのスーパーセットになっていない文字コードをソートする方法を紹介します ASCII - Wikipedia asciiでは文字は 数字->英語大文字、英語小文字 の順で並んでいますが、最近普通に使われている文字コードも大体はASCIIコ…

「はじめて学ぶCの仕組み2」を読んだ

大体1週間程度で読み終わりました。 プログラミング学習シリーズ C言語改訂版 2 はじめて学ぶCの仕組み作者: 倉薫出版社/メーカー: 翔泳社発売日: 2009/02/13メディア: 大型本購入: 2人 クリック: 6回この商品を含むブログ (3件) を見る この本を読み始めた…

GDBのコマンド出力をファイルに保存する方法

GDB

GDBで実行しているPGのファイルの出力は、リダイレクトなどを 使って簡単にファイルに保存することが可能です。 例えば"helloworld"をただ出力するだけのプログラム の出力結果,"helloworld"という文字列をファイルに保存するのは簡単です。 しかし、GDBのコ…

GDBのコマンド

GDBの動かし方について。 オンラインで試せるGDBがあったので遊び倒して見た。 GDB online Debugger | Compiler - Code, Compile, Run, Debug online C, C++ よく使う(使った)コマンドなどをまとめた。 シンボルファイル関連は後日やりたい。 コマンド 省略…

QEMUにGDBを繋げてhariboteOSをデバッグする方法

QEMUにGDBを繋げてhariboteOSを調査したいと思います。 とりあえず初期設定っぽいことはできました。 主に観測したい事 ブレイクポイントを適当に設定して以下のものを観測したい IPLの動作でフロッピーの内容がメモリにロードされる様子 リアルモード・プロ…

C言語復習ラスト。ライブラリについて

ライブラリは今までよく知らなかったので、復習ではない気がする。 ライブラリとは プリプロセッサ.c -> .c コンパイラ.c -> .o リンカ.o -> exe このプロセスの中の .oファイルをまとめてライブラリを作ることができる $ ar -r mylib.a a.o b.o ar: creatin…

C言語復習その6。プリプロセッサ、リンカについて

本書ラストのライブラリまで行けると思ったが、時間がなくなった。 もっと有意義に3連休を過ごせなかったのだろうか。(反省) プログラミング学習シリーズ C言語改訂版 2 はじめて学ぶCの仕組み作者: 倉薫出版社/メーカー: 翔泳社発売日: 2009/02/13メディア…

C言語の復習その6メモリについて

メモリ管理について学びました。malloc,free,reallocなど コンパイルするときに、知識不足によるコンパイルエラーがかなり減りました。*1 またコンパイルエラー時に、何が間違っているかすぐわかるようになり、なぜ動いているのか・動かないのかわからないと…

C言語の復習その5。関数ポインタについて

関数ポインタは「宣言方法」と「引数、返値があっていない適当に実装されたコードを読む」のがややこしいが、綺麗に書けばそこまで難解ではない。という認識です。 関数ポインタについて 引数や戻り値は暗黙の型変換が絡んで来るとややこしい 関数ポインタの…

C言語の復習その4。enum,3項演算子,goto,関数

関数ポインタをちょっと読み込んだくらい進みましたが、 関数ポインタは難しそうなので、それで一つ記事を書きます。 というわけでキリが良いので投稿♪ enum コメントの指摘 3項演算子 GOTO 関数 enum enumのメンバは本来値を持たない。(持つべきではない) …

プログラマのためのSQL 読書会(22)に参加

26.7から27.1.3まで読みました。 p478の複雑なクエリの解説 基底テーブル --▼P.476 CREATE TABLE AnnualSales1 (salesman CHAR(15) NOT NULL PRIMARY KEY, jan DECIMAL(5,2), feb DECIMAL(5,2), mar DECIMAL(5,2), apr DECIMAL(5,2), may DECIMAL(5,2), jun …

C言語復習その3構造体、共用体について

構造体と共用体について学びました。 構造体のサイズについて コンパイラが勝手にサイズを偶数長になるように変更する ワードアライメント 構造体の正確なサイズはわからない。 sizeof演算子で大きさを求めるべき。 実際の現場でもsizeof演算子で大きさを求…

C言語の復習その2ポインタ

各型に対するポインタ変数の型がある どのかたのポインタも同じサイズ(私の環境では8バイト) 構造体のポインタ型もある ポインタ変数型のポインタもある char c = 'c'; char* pc = &c; char **ppc = &pc; printf("-------------------\n"); printf("c value …

C言語の復習を始めました。

こんにちは。大学の1年目のC言語の授業で予約語と非予約語の違いが判らずに 1週間くらい変数には何でもwight,hightを付けていた不届きものです。 最近C言語を再勉強することにしました。 一応大学ではC言語を一番書いていましたが、 C言語そのものの知識と…

30日OS自作本を読み終えた

OS

まぁほとんど著者のコードをなぞっているだけで、 施した改造も少なく、「OSを自作した」なんて口が裂けても言えませんが、 シンプルなコードが動いていく動作を本書や類書の解説とともに追いかけることで 自身の技術力、知見がかなり高まったように思えます…

最近のKindleセールで買った3冊

コンピュータネットワーク第五版 1年くらい前からほしい物リストに入れていましたがなかなか半額になりませんでした 今回は半額で買えた8640 -> 4320円 コンピュータネットワーク 第5版作者: アンドリュー・S・タネンバウム,デイビッド・J・ウエザロール,水…

ファイルシステムについて

OS

Linuxの仕組みを読んでいますが、ファイルシステムについては初めて学ぶので、 精読してブログにまとめてみました。 [試して理解]Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識作者: 武内覚出版社/メーカー: 技術評論社発売日: 2018/02/23メデ…

「はじめて読む486」を読んだ

tcfmのruiさんが勧めているのを見て買いましたが、 #tcfm 7みたいにメモリとかカーネルモードとかよくわからないという人には「はじめて読む486」が結構おすすめかも。相当古い本だけどここらへんはほとんど変わっていないし、読みやすくて今でも入門にとて…

30日OS自作本29,30日目

OS

30日OS自作本29,30日目 この2章はOSの改造はバグ対応や一部のサイズ縮小のための些細な回収のみで 基本的に今まで作ってきたOS上にアプリケーションをつけて乗せようという章。 OSのコアな技術などは特に触れていないが、 28日目までのスクリーンショットは…

ページングについて

OS

ページングについて ページングとは ページングとは固定長にメモリを分割して管理する方法 以下をページと呼ばれる単位に対して行う メモリの割り当て アドレス変換 セグメントとの違い セグメントは可変長 ページングは固定長 アドレス参照方法 32bitのアド…

qemu monitorを使ってメモリ上にロードされている実行中のアプリケーションの機械語をダンプ

OS

qemu monitorを使う記事の続きです。 前回記事はこちらになります。 yuyubu.hatenablog.com 本記事ではwalkアプリケーションを起動した状態でqemu monitorを使ってメモリ上にマッピングされたwalkの実行ファイルを探し当てるところまでをやります。 コンソー…