Tony Memo

24のトニーのようになりたい。

2021年の目標

低レイヤを知りたい人のための Cコンパイラ作成入門 3日目

www.sigbus.info

dockerの導入を無事終えなんとか「ステップ2」まで実際にやってみました。

そもそも、** や strtol 関数がなんなのかなど基礎的なところで引っかかっているので、C言語に関しては、あらためて雑魚レベルだというのを痛感しましたorz

説明自体は、とてもわかりやすいので、周辺知識を少しずつカバーしていきたいと思います。

仕事でやっていることとは、直結しないのですが、自作コンパイラ、自作言語、自作OS、自作CPU、自作ブラウザをいずれ作成したいです。

現在は、英語、数学、データ構造とアルゴリズムのような基礎的な内容も勉強したいけど、少しずつ時間を割いてやるしかないかなぁ。

本業でも勉強しないといけないことがあるんだけど、なんとか、だましだましできているのと、だんだんとマネジメントの部分を要求されることが多くなってきたので、家では趣味を優先させたいですね。

ヘネパタ、パタヘネ、ドラゴンブック、タイガーブックSICPなども読んで理解していきたいです。

低レイヤを知りたい人のための Cコンパイラ作成入門 2日目

開発環境は、macOS + dockerでいきます。

簡易的な手順としては、

  1. docker for mac をダウンロード&インストールして、ログインする

  2. ubuntu のイメージをダウンロードしてコンテナを作成してログインしてbashを起動する
    docker run -it ubuntu bash

  3. パッケージリストを更新する
    apt-get update

  4. sudo インストール
    apt-get -y install sudo

  5. gcc インストール
    sudo apt-get -y install build-essential

  6. gccがインストールされたかの確認(バージョン確認)
    gcc -dumpversion

  7. git インストール
    sudo apt-get -y install git

  8. nano インストール sudo apt-get install nano

参考リンク

hub.docker.com

qiita.com

qiita.com

qiita.com

www.yokoweb.net

低レイヤを知りたい人のための Cコンパイラ作成入門 1日目

本日というか昨日は23:30ぐらいに帰宅しましたorz

www.sigbus.info

「はじめに」〜「ステップ1」まで読みました。

とてもわかりやすく説明していただいているのでわかりやすく、素晴らしいです。

コラムもとてもためになります。

さっそく「ステップ1」までやってみたいと思いましたが、開発環境の準備から始める必要があります。

私の環境は自宅は macOS 、仕事場は Windows 8.1 なので、

自宅:macOS → Docker 仕事場:Windows 8.1 → Hyper-VUbuntu Desktop 18.04.2 LTS)

で環境を構築しようと思います。

ruiさんからは、Linux環境をおすすめされていたので、素直にそれに従おうと思います。

仕事場は、少しハマりましたが(*)、Ubuntuのインストールまで終わったので、明日というか今日の昼休憩あたりに楽しみたいと思います。 *VHDを第1世代で作成すればOKでした。この辺りは、何故ダメだったかは余力があったら調べたいと思います。

問題は、自宅の macOS です。

docker レベルが0の私にとって、まずここから調べる必要がありますorz

ただ、さらっと説明がされているので、おそらくさほど難しくはないのでしょう。

今日はもう遅いので、そろそろ寝ようと思います。

今まで趣味らしい趣味がなかったので、とても楽しいです。

時間をかけていくらでもできそうな気がしますが、調子にのると明日の朝、後悔することになるので今日はもう寝ます。

それでは、おやすみなさい。

なお、ソースは、以下で管理していきます。

github.com

昔からやりたかったことに再チャレンジしてみる

turingcomplete.fm

tcfm で楽しそうに話されているみなさんのおかげで昔に一度挫折した低レイヤーへ再チャレンジしてみようと思いました。

プログラマとして仕事をはじめた当初に自作OS作成にチャレンジしましたが、仕事で必要な技術を覚えるのが優先となってしまい、そのままチャレンジに断念して15年たってしまいました。

自分が興味を持っていることは今の職場では求められていないのだと、断念した時のとてもつらい思いは今でも忘れません。

今、あらためて自分が本当にやりたいことは何かを問い直した時、やはり低レイヤーへの憧れは捨てきれませんでした。

rkx1209.hatenablog.com

www.sigbus.info

まずはこちらで公開されたありがたい記事たちを参考にしつつコンパイラについて学んでいきたいと思います。

できれば、自作コンパイラ、自作OS、自作CPUを作成して、すべて自作で動くようにしたいです。

普段は、C#で業務パッケージを作成しているので、仕事とは直接的には関係しないのですが、コツコツとやっていきたいと思います。

ゆくゆくは、低レイヤーで仕事ができると嬉しいですが、無理矢理、仕事に結びつけようとすると楽しくなくなってしまうかもしれないので、純粋に学ぶことの楽しさを追及していきたいと思います。