Think Essentially

計算機テクノロジー全般が好きです

2023-01-01から1年間の記事一覧

【英語記事】Why Rust is Making You Fail. 【感想】

medium.com ​ 『エコシステムや開発者の市場がまだ未熟なRust言語は、生産性や学習コストの観点で現場に導入するメリットはない』といった趣旨の記事になります。正直、Rust好きな開発者としては耳が痛いお話です。 ​ エコシステムや開発者の市場がまだ未熟…

Gitで remote originのURLを参照する

git remote get-url --all origin

私がプログラミングに惹かれた理由

なぜプログラミングが好きなのか? 自己分析みたいなもので、ここにまとめます。 最初は計算機としての側面に惹かれました。今まで紙に書いていた数学における計算式を、普遍的に実行可能な形式として、記号を組み合わせて書けることが新鮮でした。元々、数…

NativeWindの導入で詰まった話【2023】

公式DocのQuick Startを参照しながらやったのですが、詰まった点があり、手順を踏まえて共有します。React Nativeのバージョンは以下です。 "react-native": "^0.72.5", 詰まったところ Quick StartのExpoの手順通りやったのに、.tsxファイル内のclassNameプ…

React NativeのWifiを用いた実機デバッグ

接続から起動まで一貫してまとめている記事がなかったこと、 また比較的新しいAndoird機種の設定方法が既存の記事と異なっていたため、まとめました。 機種 Pixel 7a, Android バージョン: 13 手順 設定画面 → デバイス情報 → ビルド番号を6回タップし、開発…

【Rust】与えられた浮動小数点数が整数か確認する

結論 浮動小数点数系列型のtrunc()を使う 概説 truncは、計算機科学の領域において端数処理という意味らしい。以下は公式のtrunc()の説明文。非整数値は、常に0に向かって切り捨てられることがポイントのよう。 Returns the integer part of `self`. This me…

x86_64 Linux アセンブリ入門

体裁 以下は"hello, world!"を出力するhello.asmの内容である section .data text db "Hello, world" section .text global _start ; リンカがエントリポイントを識別するために設定される ; 以下はラベル, 慣例的に_を接頭辞とする _start: mov rax, 1 ; ID…

マイクロカーネル HinaOS にシステムコールを実装する

はじめに 前回に引き続き、怒田晟也さん著“自作OSで学ぶマイクロカーネルの設計と実装”のIDEAS.mdより、マイクロカーネルHinaOSにシステムコールを追加します。 実装概要 割り込みの発生回数を取得するシステムコールを実装します。 あたりをつける kernel/s…

マイクロカーネル HinaOS に新規サーバを実装する

はじめに “自作OSで学ぶマイクロカーネルの設計と実装”におけるレポジトリ内のIDEAS.mdに非常に刺激的な課題が記載されていたので、チャレンジしようと思います。ちなみに、当書籍は懇切丁寧にソースコードの解説が記載されており、OS実装の学習に最適である…

【Rust】条件に応じた標準出力関数の挿入

概要 バイナリクレートを開発していて、特定の条件上でのみprintln!を用いたい時がある。そういう時は、debug-assersionを用いる。 手法 1. cargo.toml の追記 cargo.tomlにて、以下を追記する。 [profile.dev] debug-assertions = true [profile.dev]は、デ…

JIT/AOTコンパイル

JITコンパイラと見聞してイマイチピンとこなかったので、まとめる JIT;Just In Time 実行時に中間コード等のバイトコードを機械語に変換すること。 実行時に変換・翻訳が含まれるので、当然後者と比べると実行時間は長くなる。 Java等がこれに含まれる。 AO…

【コンピュータシステムの理論と実装】第4章

機械語に理解するために,以下の3つの抽象化についてだけ考えればよい. 1. メモリ コンピュータで,データや命令を保存するハードウェアデバイスを指す 各セルはワード,ロケーションとも呼ばれ,それぞれはユニークなアドレスを持つ Memory[address], RAM…

RustのGitHub運用について

GitHub上では、The Rust Programming Languageという組織として、Rust言語の開発・運用を行っている。 主なrepositoryは、 rust cargo crate.io rustリポジトリは、コンパイラと標準ライブラリが一緒になっている

良いコード/悪いコードで学ぶ設計入門 第四章 感想

Rust ランタイムについてまとめる

Rustのランタイムは、従来のガベージコレクション系の言語、Java, Goにおけるランタイムと意味合いが異なる。 概要 Rustランタイムは、標準ライブラリstdに組み込まれている Rust言語のリポジトリにおけるsrc/libstd/rt.rsがそれに該当する Rustのランタイム…

プロセスとは

プロセスとは プログラムの実行単位 メモリにロードされた実行中のプログラムの実体(インスタンス) 子プロセスとメモリを共有しない 1つ以上のスレッドを持つ プロセス管理 プロセスがCPUを独占することを防ぐ CPU割り当て管理と言い換えてもよいかも 一定…

test

test

test