人生は勉強ブログ

https://github.com/dooooooooinggggg

Linux Kernelをビルドする際,プリプロセッサの出力を残す

この記事はSFC-RG Advent Calendar 2019の17日目の記事です. 結論 Makefileのこの辺にKBUILD_CFLAGS += -save-temps=objという行を加えてビルドする. before KBUILD_CFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \ -fno-strict-aliasing -…

KASLRの実装と挙動の確認

この記事はSFC-RG Advent Calendar 2019の16日目の記事です. 今年も遅くなって申し訳ないです. この記事では,KASLR,kernel address space layout randomizationについて記述する. KASLRは,カーネル領域における仮想アドレス空間のランダム化である.こ…

Debian buster でデスクトップ環境を切り替える

自分のためのメモです. 環境 Debian buster 10.1 install KDE sudo apt install task-kde-desktop GNOME sudo apt install task-gnome-desktop 切り替え 環境の切り替え sudo update-alternatives --config x-session-manager ログイン画面の変更 sudo dpkg…

"No rule to make target 'debian/certs/debian-uefi-certs.pem', needed by 'certs/x509_certificate_list'. Stop."を解決する

Debianでカーネルをビルドする際に以下のエラーが発生して,ビルドが停止した. make # SYSTBL arch/x86/include/generated/asm/syscalls_32.h # SYSHDR arch/x86/include/generated/asm/unistd_32_ia32.h # SYSHDR arch/x86/include/generated/asm/unistd_6…

debファイルを用いてDebianのLinuxカーネルを簡単にアップデートする

概要 Debianのカーネルをアップデートする際に,debファイルを用いることで,aptを用いてインストールをシンプルに行うことができる. また,カーネルのパッケージをdebファイルとして保持できるため,ロールバックも容易になる. 環境 Debian 9 stretch mak…

Linux KernelをビルドしてQEMUで動かす.

環境 cat /etc/debian_version # 9.9 qemu-system-x86_64 --version # QEMU emulator version 2.8.1(Debian 1:2.8+dfsg-6+deb9u7) # Copyright (c) 2003-2016 Fabrice Bellard and the QEMU Project developers Debian stretch 9.9 QEMU: 2.8.1 必要なパッケ…

Linux(2.6.11)において,int 0x80命令によってシステムコールが呼ばれる流れを追ってみる

Linux(2.6.11)において,int 0x80命令によってシステムコールが呼ばれる流れを追ってみた この記事では,以下の本を参考に,実際にコードを見ていく記事. 参考文献: Linuxカーネル2.6解読室 Linuxカーネル2.6解読室作者: 高橋浩和,小田逸郎,山幡為佐久出版…

セグメント機構とCPUの動作モード(Linux(64bit)との関係性)

この記事はsfc-rg Advent Calendar 2018 5日目の記事です. 遅くなってしまいました.ごめんなさい. 概要 セグメント機構とそれに付随するCPUの動作モードに関する記事. あとで自分が見るときのために,CPUのセグメント機構について大雑把に説明し,32bit…

Linux(64bit)のページング機構

この記事はsfc-rg Advent Calendar 2018 4日目の記事です. 概要 Linuxのページング機構について勉強する必要があったが,書籍やインターネットにある情報は,32bit版のものが多く,64bit版の情報を探すのに苦労した. 今後自分のような人が出てきた際に,困…

Cyber AgentのエンジニアJOBに参加した

この記事はなに? Cyber AgentのエンジニアJOBというイベントに応募し,1ヶ月インターンさせていただいた時の記録と,得られたものや,反省点などを書いたもの. 参加させていただいた部署は,FRESH LIVEという,ライブ配信サービスを行う部署. 8月は,この…

プロセスの概要 UNIX V6の実装を読んだ

研究室にて,UNIX V6のソースコードを読んでみる本を輪講した. はじめてのOSコードリーディング ~UNIX V6で学ぶカーネルのしくみ (Software Design plus)作者: 青柳隆宏出版社/メーカー: 技術評論社発売日: 2013/01/09メディア: 単行本(ソフトカバー)購入…

KVM/QEMU上の仮想マシンに対して,libvmiを使ってみる

環境 Debian 9.4.0 やっていくこと libvmiとは KVM/QEMUとは VirtualBoxでNested Virtualizationはできない 仮想化でない(USBブートした)Debianの上で,KVM/QEMUを動かす. libvmiのサンプルプログラムを実行. libvmiとは libvmiとは,virtual machine intr…

Common Lispの基礎的な文法5

あくまで自分用のメモ。 今後の実装の時に、簡単に振り返るための記事。 進めている本は、Land Of Lisp Land of Lisp作者: M.D. ConradBarski,Conrad Barski,川合史朗出版社/メーカー: オライリージャパン発売日: 2013/02/23メディア: 大型本購入: 1人 クリ…

Common Lispの基礎的な文法4

あくまで自分用のメモ。 今後の実装の時に、簡単に振り返るための記事。 進めている本は、Land Of Lisp Land of Lisp作者: M.D. ConradBarski,Conrad Barski,川合史朗出版社/メーカー: オライリージャパン発売日: 2013/02/23メディア: 大型本購入: 1人 クリ…

Cloudflare + github.ioで簡単に独自ドメイン(https)なページを公開する。

前提条件 独自ドメインを持っている Cloudflareのアカウント Githubのアカウント 手順 Githubにて、リポジトリを作成する。 Githubにて、リポジトリを作成する。 この時、"ユーザー名" +.github.ioという名前にする。(例えばユーザー名が、aaaだったら、aaa.…

Common Lispの基礎的な文法3

あくまで自分用のメモ。 今後の実装の時に、簡単に振り返るための記事。 進めている本は、Land Of Lisp Land of Lisp作者: M.D. ConradBarski,Conrad Barski,川合史朗出版社/メーカー: オライリージャパン発売日: 2013/02/23メディア: 大型本購入: 1人 クリ…

Common Lispの基礎的な文法2

あくまで自分用のメモ。 今後の実装の時に、簡単に振り返るための記事。 進めている本は、Land Of Lisp Land of Lisp作者: M.D. ConradBarski,Conrad Barski,川合史朗出版社/メーカー: オライリージャパン発売日: 2013/02/23メディア: 大型本購入: 1人 クリ…

Common Lispの基礎的な文法

あくまで自分用のメモ。 今後の実装の時に、簡単に振り返るための記事。 プログラマは皆どのようにしてLisperと化して行くのか? <- この記事を読んで興味を持ったのが始めようと思ったきっかけ。 進めている本は、Land Of Lisp Land of Lisp作者: M.D. Conra…

x86-64 アーキテクチャCPUで、lifegameを実装するための準備

*このブログは、インターン先の勉強会に向けて作った資料を、ブログとして公開するために一部書き直したものです。 動機 所属している研究室の発表があり、何か実装しなければならなかった。 今後の足がかりとして、アセンブリで何かを実装してみよう。 完…

VirtualBox上のdebian 9.4.0のnetwork初期設定

前回、以下の記事にて、VirtualBoxへのインストールが完了した。 blog.ishikawa.tech 今回は、ネットワークなど、普通に使うための設定を書いていく。 path $ vim .profile 以下を記入。 export PATH=$PATH:$HOME/bin:/sbin:/usr/sbin:/usr/local/bin ついで…

x86(32bit)のレジスタを一言で説明する。

自分用のメモ。 レジスタの名前(32bit) 汎用レジスタ eaxアキュームレータ ecxカウンタ edxデータレジスタ ebxベースレジスタ 以上は、様々な目的で利用されるが、大抵は一時変数として用いられる。 汎用レジスタ2 espスタックポインタ ebpベースポインタ es…

debian 9.4.0をvirtual box上にインストールし、Guest Additionsまでインストール

この記事では、実際に選択したもの、実行したコマンドを載せてます。 もし間違いがあれば気軽にご指摘お願いします。 環境 MacBookPro 2016 late 使用するISO debian-9.4.0-amd64-DVD-1.iso ない場合は、 $ wget https://cdimage.debian.org/debian-cd/curre…

gdb,objdump,gccのオプションのメモ

完全に自分用のメモ objdumpよく使うオプション -D -M intel 表記法の変更 gdbよく使うオプション 起動時 -q 起動中 xメモリの内容を直接チェック この中には、 o8進 x16進 u符号なし10進 t2進 を、x/oのように指定する。 b単一バイト hハーフワード(2バイト…

bitcoin-cliのドキュメントをざっと和訳した

bitcoin-cliのコマンド一覧を探したが、英語のサイトしかなく、これらをメモがてら日本語に訳してみる。 不備があったり、いい訳があったらコメントください。 参考にしたサイトは以下 Original Bitcoin client/API calls list コマンド一覧 各コマンドに対…

buffer overflowと、それに必要な前提知識1

昔、社内の勉強会用に作った資料のメモ。 以下の本が参考。 Hacking: 美しき策謀 第2版 ―脆弱性攻撃の理論と実際作者: Jon Erickson,村上雅章出版社/メーカー: オライリージャパン発売日: 2011/10/22メディア: 単行本(ソフトカバー)購入: 9人 クリック: 16…

ざっくりHTTP/2

この記事はSFC-RG Advent Calendar 2017の15日目です。 何か書かなければならないので、とりあえず、最近読んだreal world httpの中から、 HTTP/2とは結局なんなのかということを書いてみる。 Real World HTTP ―歴史とコードに学ぶインターネットとウェブ技…

bitcoindをvagrant上のubuntuに導入する

ソースからビルドするのがめんどくさかったので、apt-getからbitcoindを導入する。 今回は、testnetでやる。 その時のメモ。 参考にしたサイトは、以下 bitcoin-cliを使ったBitcoinAPI入門 bitcoin-cli で使えるコマンド一覧 vagrantのsetup % vagrant box a…

LLVMについて調べた 2

先日の記事で、llvmをうまくインストールできないという結論に至ったが、よく見てみたらコマンドがおかしかった。 % llvm which clang /usr/local/opt/llvm/bin/clang % llvm clang -v clang version 6.0.0 (https://llvm.org/git/clang.git 68e041468bfb4a3…

LLVMについて調べた

先日、社内の勉強会で、コンパイラ関連の話を聞いていた際に、LLVMという単語を初めて聞いた。 とても興味が湧いたので、調べてみることにした。 ちなみに僕は、コンパイラなど使ったことしかないため、かなり遠い道のりになりそう。 関連するサイト LLVM/Cl…

MacBookPro early2015でkali linuxをusbブートする

動機 深夜で暇なので、MacBookProでkali linuxをusbブートするということに挑戦してみようと思う。 参考にした記事 MacでUbuntu USBブートを作る。 kali linuxをUSBにインストールしてmacbook airでブートできるようにしてみた Kali LinuxをUSBにインストー…