mcommit's message

ソフトウェア開発の仕事をしているsimotinといいます。記事の内容でご質問やご意見がありましたらお気軽にコメントしてください\^o^/

POSIX メッセージキューについて調べてみた

Unix系OSでのIPCの手段として提供されている機能の中にメッセージキューという機能があります。 この機能はプロセス間のデータの受け渡しに便利ですが、そもそもプロセス間通信とかたまにしか使わないので備忘のためまとめておきたいと思います。 目次 目次 …

RV32C ~圧縮命令ってなんだ?~

モナリザ本の第7章を読んでみました。RISC-V原典 オープンアーキテクチャのススメ作者: デイビッド・パターソン,アンドリュー・ウォーターマン,成田光彰出版社/メーカー: 日経BP社発売日: 2018/10/18メディア: 単行本この商品を含むブログを見る前回の記事で…

RISC-Vのアセンブラについて調べてみた

昨日はFreedom Studioでデバッグする方法について書きましたが今日はRICV-Vに慣れるためにレジスタやアセンブラについて少し調べてみました。 mcommit.hatenadiary.com 概要 HiFive1 Rev.Bで使用されているCPUはFE310-G002。命令セットはRV32IMACというISAら…

HiFive1 RevB を買った

SiFive社から販売されているHiFive1 RevBのボードを買いました。Hifive1 Rev.B 目次 目次 注文してから届くまで 郵送について 開発の始め方 ドキュメント類の入手 開発環境 ツールチェイン一式 USBのデバイスドライバについて 出荷時のプログラム Hello Worl…

MySQLサーバに外部から接続できないとき

自分用メモ。MySQLサーバにホスト外から接続できず調べるのに時間がかかりましたのでメモを残しておきます。 ただし、これは開発環境として利用する場合の設定ですので、本番の環境としてはこのような設定はしないでください。 ユーザー権限の設定 例えばroo…

pcduinoでOSを自作する ~第1回 環境構築~

最近OSの仕組みを勉強しているのですが、教科書的な勉強だけだとなんだか退屈してしまうのでARMの基板でOS自作してみることにしました。 この手の趣味プロジェクトはなかなか長続きしないことが多いのですが、モチベーション維持のためにも活動記録をあげて…

Web+DB vol.109 を読んだ

Ruby2.6の記事が気になって買ってみたのですが、面白い記事があったのでとりあえず自分のためにメモを残しておきたいと思います。 最近は雑誌を買っても一度も開かずに積本になることもあるのでとりあえずこういったメモをアウトプットするだけでも、後々振…

KLEE を試してみた。

シンボリック実行のツールとして公開されているKLEEを試してみました。 目次 目次 dockerのインストール dockerイメージの実行 チュートリアル 感想 dockerのインストール KLEEの環境を構築するのはdockerのイメージを使うのが一番手軽に試せるようです。 do…

xrdpをインストールしてLinuxマシンにリモートデスクトップで接続する。

xrdpをインストールしたときのメモ。OSはLinux Mint を使っていますがUbuntu系であれば恐らく同じだと思います。 $ sudo apt install xrdp vnc4server$ sudo vi /etc/xrdp/xrdp.ini # crypt_levelを crypt_level=high に設定# サービスを再起動 sudo service…

C言語の関数の戻り値を実行時に変更する

「試験をしているんだけど、実行中に関数の戻り値を変える方法はないかな?」 と相談を受けました。C言語で単体テストをする場合、システムコールやライブラリ関数はダミーの関数を用意しておいて自作部分の実装をテストすることはよくありますが、実行中に…

社長失格を読んだ

最近社長失格という本を読みました。だいぶ前にも読んだことがある本だったのですが、久しぶりに読んだら面白かったので読書録を書いておきたいと思います。 読みたくなった理由 実は私が、この本を読むのは2回目になります。最初にこの本を読んだのは2013年…

Ethernet2(DIX)のフレームについて

来年から仕事でお世話になるであろう方からネットワーク力についていろいろ質問されたけどネットワーク良く分かっていないので、勉強がてらCCNAの資格でも取ろうと思って真面目にネットワークについて勉強を始めることにしました。ネットワーク強い人に「ネ…

Cコンパイラ作成入門をarmで試してみる

久しぶりに記事を書きます。このところ数学とか電気回路の勉強ばかりで、仕事以外でコードを書いていないので気分転換にコードを書きたい欲が強くなっていたのですが、@rui314さんがCコンパイラ作成入門という面白そうな本を書かれているそうなので自分もC言…

Concolic Testってなんだ?

自分が常日頃考えている課題として「組込ソフトウェアのユニットテストを自動化できないか」という課題があるのですが、ここ数日テストの自動化に関する論文やオープンソースの情報を漁ったりして少しですがインプットがたまったので整理の為にアウトプット…

低レイヤプログラミングのためのRubyの拡張モジュール開発入門

この記事は、低レイヤのコードをRubyで書きたいという人のための拡張モジュール作成入門記事です。Rubyが好きでC言語がある程度分かる方には読んで頂けると参考になるかと思います。※ただし、私が真面目に拡張モジュールを書いていたのはもう5年以上前なので…

C言語でEthernetFrameをpcap形式でダンプしてみる。

ネットワークの勉強のためだいぶ前に買っていた「ルーター自作でわかるパケットの流れ」を読んでいます。ルーター自作でわかるパケットの流れ作者: 小俣 光之出版社/メーカー: 技術評論社発売日: 2011/07/09メディア: 単行本(ソフトカバー)購入: 4人 クリ…

マグネットペイントを使って木製ボードでタスク管理ができるようにしてみた

メモの付箋を貼ったりして使おうとだいぶ前に壁掛けの木製のボードを買っていたのですが、付箋紙が直ぐにはがれてしまい全然活用できていませんでした。最近嫁さんと話していると「マグネットペイント」なるものがあって、それを塗ると磁石がくっつくように…

ユダヤ式Why思考法を読んだ

ここ最近、ユダヤ人というものに興味があり時々ユダヤ人・ユダヤ教に関する本を読んでいるのですが、ユダヤ人に関する本の読書録を書けていなかったので書いておきたいと思います。 目次 目次 ユダヤ人のイメージ ユダヤ人に興味を持ったきっかけ 読んでみた…

数学素人が線形代数を学ぶときに読んでみてよかった書籍

今年から帝京大学の通信教育課程に入学して勉強しているのですが、線形代数の講義*1を受けるにあたって関連する本を何冊か読んでみました。せっかくなので、勉強していて躓いたときに助けになった本の紹介記事を書いておきたいと思います。*2 目次 目次 動機…

ARMの命令セットの条件指定について (2)

昨日の続き。mcommit.hatenadiary.comARMの命令では最上位4ビットで条件指定ができることがわかりましたがAL(無条件実行)以外の使い方がよく分かりませんでした。命令の実行条件を指定するというのはイメージ的には r0 = 1 if flag == true r0 += 2 のように…

ARMの命令セットの条件指定について

ARMの命令セット(v7)について調べていたので備忘録のためメモを残しておきます。■ARMv7のマニュアルhttps://www.macs.hw.ac.uk/~hwloidl/Courses/F28HS/Docu/DDI0406C_C_arm_architecture_reference_manual.pdfとりあえず命令セットのところを読んでみる。 …

スタックの状態を可視化するWebツールを書いてみた。

Webページ上でStackの状態を可視化するコードを書いてみました。stack viewerStackを可視化するツール自体に目新しい感じはしないのですが、Web上でこういうツールってありそうでなかったので作ってみました。 かなりざっくりしたものですが、よかったら使っ…

構文解析ハンズオン 関西出張版に参加させて頂きました

lang-impl.connpass.com参加させて頂きました。 目次 目次 良かった点 苦労した点 構文解析について思ったこと Rubyで式の構文解析をしてみた 書いてみて気づいたこと 再帰か状態遷移か 今後やってみたいこと パーサジェネレータを書く 関数型言語でパーサを…

Goでバイナリファイルを読み込んでHexダンプしてみた

Go

最近触り始めたGo言語で、勉強としてバイナリファイルを読み込んでHexダンプしてみました。 バイナリファイルといってもfile.Readを使った読み込みなのでバイナリかどうかはあまり関係ないかもしれない。 package main import ( "fmt" "os" ) func main() { …

レジスタの値を取得するx86のアセンブラ関数を書いてみた

前回書いたPINE64+の続きとして、とりあえずBROMの処理が終わった状態でCPUがどうなっているか知りたいのですが、難航しています。mcommit.hatenadiary.comBROMのコードのダンプを見た結果、コプロセッサの設定とかをしていることは分かりましたがどうも追い…

PINE64のBROMのコードをダンプして逆アセンブルしてみた。

Pine64の続き。 記事はさっきあげましたが、昨日(2/26)Lチカを試したのですが、書きかけになっていたので公開していませんでした。 スタックポインタの設定の件とかモヤモヤしたので今日はBROMのコードをダンプしてみました。 目次 目次 有力な手がかり ダン…

PINE64をベアメタルで遊んでみる。

随分前にPine64+ 2GBというボードを買っていたのですが積み基板になっていました。 ちょっとARMで遊びたくなったのでベアメタルからのLチカしてみました。 ソース とりあえずGithubで管理することにします。 github.com ツールチェインについて クロスコンパ…

小学1年生の娘にC言語を教えてみて気付いた、プログラミング教育を通して子供に伝えるべきたった1つの大切なこと

意識高そうなタイトルをつけてみましたが、単純に自分の子供にプログラミングを教えてみました。実際に教えてみると、子供にプログラミングを教えるという体験を通して逆に教えられたことがあったので書いておきたいと思います。 目次 目次 動機 教育方針 具…

gdbを使って386アセンブラの復習をする

結構前に買っていたセキュリティコンテストチャレンジブックという本を最近になって読んで、脆弱性のあるコードを動かしたりして遊んでいました。セキュリティコンテストチャレンジブック -CTFで学ぼう! 情報を守るための戦い方-作者: 碓井利宣,竹迫良範,廣…

TranscendのJDM820を買ってMacBookProのSSDを交換した

普段使っているMacBookPro(Late 2013)でS.M.A.R.Tエラーが出ていたため、タイトルの通り MacBookProで使えるSSDであるJDM820を買ってSSDを交換してみました。Transcend SSD Mac専用アップグレードキット PCle Gen 3.0 960GB 5年保証 JetDrive / TS960GJDM820…