2025/07
taizooo.icon
top
https://gyazo.com/e60821b5dad34840294e231d49e59a2b
https://gyazo.com/9c7c8e9858b922c9e588045541309db0
https://gyazo.com/f9e925e982b36991d46e3e0b581de56d
https://gyazo.com/a0ee9dcf9d3183f221d0ca9d30ca4794
通信メディアの標準をイーサネットが握るのとほぼ同じ頃(1980年代前半)、DTP 革命も起きていた
appletalk の話と、インスタントの話、シンクロしている
違う方向から見ている
Appletalk がイーサネットを選ばなかったこと、トークンリングが間に合わなかったこと、シリアルケーブルを選んだことについて後で調べる
https://gyazo.com/a248b64b716c3e1b092f1387fe1c533b
アセンブラでは原則として1行に1命令を記述し、アセンブルすることによりマシン語に1対1対応で変換されます。あくまでマシン語を人間が理解しやすい形式で表現しただけで、使える命令はCPUのマシン語のみです。ですからニモニックはCPU毎に異なりますし、オペランドのアドレッシングモードの表現の仕方もアセンブラによって違いがあります。ですから「アセンブラ」一般の解説はなくて特定のCPUそれも処理系ごとの説明があって、必要なだけの個別のアセンブラを覚える羽目になるわけです。
ですからアセンブラを覚えて使おうと思えば、例えば「8086のアセンブラ」などのように常に特定のCPUに対して、そのCPUの命令表やレジスタ一覧を見つつ使い方を覚えることになります。とはいえ命令の部分を除けば、どのCPU向けであってもアセンブラ自体のコーディングは似たりよったりでもあり、いずれにせよCPUが理解できる命令を1行ずつ書いていくことには違いありません。
アセンブラには変数も無ければ、その型もありませんし、制御構文なんてものは存在しません。CPUが持っているレジスタのサイズに注意して読み書き計算し、フラグレジスタの状態で分岐する命令を使うことで判断であったりループを作るのです。関数呼び出しも無いのですがサブルーチン呼び出し命令はあるのでそれを使い、戻り値は特定のレジスタに設定して呼び出し側でそれをチェックする書き方をします。
最初はCPUの命令表を見ても、それらをどう使えばいいのか途方にくれるかもしれません。実は大部分の命令(やレジスタ)は特殊な用途にしか使わないので、一般的に使うパターンは限られます。もっともわざわざアセンブラを使う時は特殊なことをするときなので、普段は目にしない命令を使うこともありますけどね。
そこでアセンブラを覚えるのにオススメの方法は、C言語などで書かれたプログラムをデバッグすることです。コードはコンパイラが書いてくれますし、デバッガを使うことで、命令を実行するたびにレジスタの値がどのように変化するのかを確認することができます。ということでデバッガをどう使うかの話になるのですが、そこからは次回ということで。
C で書いてアセンブリにする
人間が読む
C で書いて(アセンブリにして)機械語にする
機械が読む(実行する)
MIPS のアセンブリだとするとクロスコンパイル? が必要
https://gyazo.com/882009ac344978c5ef07eb2ee7ad7031
コンピュータ・アーキテクチャの講義で MIPS 命令セットを使って説明をしているが、コンパイラが生成するアセンブリが気になる人もいると思うのでこの記事で扱っておく。
最近の環境だと clang というコンパイラを使うのが良い。
GCC の場合は MIPS のクロスコンパイル環境を用意するのがやや面倒なので割愛するが、
https://gyazo.com/ec2379da1f5a447ff35fc0f6a8b88071
Cross Compile With Clang
Install clang/llvm:
Windows: Download a binary from llvm.org, or use MSys2 and pacman -S mingw64/mingw-w64-x86_64-clang.
Mac: Use the XCode version, or install via brew: brew install llvm
Linux: sudo apt install clang
Cross Compile With GCC
The GCC MIPS cross-compilers are readily available in binary form on Linux. If you have loads of patience, you may be interested in compiling a GCC MIPS cross-compiler from source on some other OS; this is a non-trivial task that I cannot help you with.
GCC MIPSクロスコンパイラは、Linuxではバイナリ形式ですぐに入手できます。もし忍耐力に余裕があれば、他のOSでGCC MIPSクロスコンパイラをソースからコンパイルしてみるのも良いかもしれません。これは簡単な作業ではないので、私がお手伝いすることはできません。
On my installation of Ubuntu 18.04, binaries of gcc-mips are available in the standard built-in repositories. If you are not on Ubuntu 18.04, you may need to add some new repositories. Run a search for "gcc MIPS" and you should find what you need.
私のUbuntu 18.04では、gcc-mipsのバイナリは標準の組み込みリポジトリで利用可能です。Ubuntu 18.04以外の環境の場合は、新しいリポジトリを追加する必要があるかもしれません。「gcc MIPS」で検索すれば、必要なものが見つかるはずです。
Windows: You can get this to work using Windows Subsystem Linux 2. This will require you to install a Linux distribution (there are several options) on a virtual machine running on your Windows desktop. One of the choices is Ubuntu 18.04; I can confirm that these instructions will work on that distro, but I haven't tried the others.
Windows: Windows Subsystem Linux 2を使えば動作します。Windowsデスクトップ上で動作する仮想マシンにLinuxディストリビューション(複数の選択肢があります)をインストールする必要があります。選択肢の一つはUbuntu 18.04です。この手順はこのディストリビューションでも動作することを確認済みですが、他のディストリビューションは試していません。
wsl2 のネットワーク構成
https://gyazo.com/40dcf15af07b79ce1a7f4bc1b42dc9c0
Hyper-V マネージャのWSLの仮想スイッチ
https://gyazo.com/ed77920bfe7cc3cd19a62d5a290ed2b0
https://gyazo.com/96522220db360ab357732acf35af8a7e
tracert
https://gyazo.com/ff6ba27dbc37d24cfaa8ad3857166a56
https://gyazo.com/09a3f98528aafea259b3e891392d9688
https://gyazo.com/b29096bf8fa52ed0eb5393d01b651634
WSL2は仮想マシン全てに同じIPを割り当てている
windows 側
code:1.cmd
$ ipconfig.exe
Windows IP 構成
中略
イーサネット アダプター vEthernet (WSL):
接続固有の DNS サフィックス . . . . .:
リンクローカル IPv6 アドレス. . . . .: fe80::ec6c:22c6:2eb4:221f%57
IPv4 アドレス . . . . . . . . . . . .: 172.24.208.1
サブネット マスク . . . . . . . . . .: 255.255.240.0
デフォルト ゲートウェイ . . . . . . .:
イーサネット アダプター vEthernet (external):
接続固有の DNS サフィックス . . . . .:
IPv6 アドレス . . . . . . . . . . . .: 略
一時 IPv6 アドレス. . . . . . . . . .: 略
リンクローカル IPv6 アドレス. . . . .: fe80::7476:28b0:2df3:f926%21
IPv4 アドレス . . . . . . . . . . . .: 192.168.10.10
サブネット マスク . . . . . . . . . .: 255.255.255.0
デフォルト ゲートウェイ . . . . . . .: fe80::ae44:f2ff:fe66:5090%21
192.168.10.1
中略
イーサネット アダプター vEthernet (Default Switch):
接続固有の DNS サフィックス . . . . .:
リンクローカル IPv6 アドレス. . . . .: fe80::314e:2d6d:95a8:22e1%51
IPv4 アドレス . . . . . . . . . . . .: 172.30.224.1
サブネット マスク . . . . . . . . . .: 255.255.240.0
デフォルト ゲートウェイ . . . . . . .:
code:2.cmd
$ ROUTE.EXE print /4
===========================================================================
インターフェイス一覧
24...XX XX XX XX XX XX ......Intel(R) Ethernet Converged Network Adapter X540-T2 #2 57...XX XX XX XX XX XX ......Hyper-V Virtual Ethernet Adapter #2 21...XX XX XX XX XX XX ......Hyper-V Virtual Ethernet Adapter #3 1...........................Software Loopback Interface 1
51...XX XX XX XX XX XX ......Hyper-V Virtual Ethernet Adapter
===========================================================================
IPv4 ルート テーブル
===========================================================================
アクティブ ルート:
ネットワーク宛先 ネットマスク ゲートウェイ インターフェイス メトリック
0.0.0.0 0.0.0.0 192.168.10.1 192.168.10.10 271
127.0.0.0 255.0.0.0 リンク上 127.0.0.1 331
127.0.0.1 255.255.255.255 リンク上 127.0.0.1 331
127.255.255.255 255.255.255.255 リンク上 127.0.0.1 331
172.24.208.0 255.255.240.0 リンク上 172.24.208.1 271
172.24.208.1 255.255.255.255 リンク上 172.24.208.1 271
192.168.10.0 255.255.255.0 リンク上 192.168.10.10 271
192.168.10.10 255.255.255.255 リンク上 192.168.10.10 271
192.168.10.255 255.255.255.255 リンク上 192.168.10.10 271
224.0.0.0 240.0.0.0 リンク上 127.0.0.1 331
224.0.0.0 240.0.0.0 リンク上 192.168.10.10 271
224.0.0.0 240.0.0.0 リンク上 172.24.208.1 271
255.255.255.255 255.255.255.255 リンク上 127.0.0.1 331
255.255.255.255 255.255.255.255 リンク上 192.168.10.10 271
255.255.255.255 255.255.255.255 リンク上 172.24.208.1 271
===========================================================================
固定ルート:
ネットワーク アドレス ネットマスク ゲートウェイ アドレス メトリック
0.0.0.0 0.0.0.0 192.168.10.1 既定
===========================================================================
wsl 側
code:1.sh
$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: bond0: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether XX:XX:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff
3: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether XX:XX:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff
4: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether XX:XX:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff
inet 172.24.221.55/20 brd 172.24.223.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::略/64 scope link
valid_lft forever preferred_lft forever
5: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
link/sit 0.0.0.0 brd 0.0.0.0
code:2.sh
default via 172.24.208.1 dev eth0
172.24.208.0/20 dev eth0 proto kernel scope link src 172.24.221.55
WSL2ではネットワークが分離
windows の wsl2 にはネットワークのミラーモードがあるらしい
NAT 経由ではなくて、直接、物理 NIC をミラーする(共有する)っぽい
https://gyazo.com/6426b7858c59fb64e24091ce2fa05f3f
既定のネットワーク モード: NAT
既定では、WSL はネットワークに NAT (ネットワーク アドレス変換) ベースのアーキテクチャを使用します。 NAT ベースのネットワーク アーキテクチャを使用する場合は、次の考慮事項に注意してください。
Windows (localhost) から Linux ネットワーク アプリにアクセスする
Linux ディストリビューションでネットワーク アプリ (NodeJS や SQL サーバーで実行されているアプリなど) を構築している場合は、(通常と同じように) localhost を使用して Windows アプリ (Edge や Chrome インターネット ブラウザーなど) からアクセスできます。
Linux (ホスト IP) から Windows ネットワーク アプリにアクセスする
Linux ディストリビューション (Ubuntu など) から Windows で実行されているネットワーク アプリ (NodeJS や SQL サーバーで実行されているアプリなど) にアクセスする場合は、ホスト コンピューターの IP アドレスを使用する必要があります。 これは一般的なシナリオではありませんが、次の手順に従って動作させることができます。
ミラーモードのネットワーク
Windows 11 22H2 以降を実行しているマシンでは、ミラー モードのネットワークを有効にするために、 .wslconfig ファイルの [wsl2] セクションの下に networkingMode=mirrored を設定できます。
https://gyazo.com/d12abd131fb1852da9161f6967205e4a
これを有効にすると、WSL は、新しいネットワーク機能を追加し、互換性を向上させるために、Windows 上のネットワーク インターフェイスを Linux に "ミラーリング" するという目標を持つまったく新しいネットワーク アーキテクチャに変更されます。
このモードを有効にするための現在の利点を次に示します。
1. IPv6 のサポート
2. localhost アドレス 127.0.0.1を使用して Linux 内から Windows サーバーに接続します。
(IPv6 localhost アドレス ::1 はサポートされていません)
3. VPN のネットワーク互換性の向上
4. マルチキャストのサポート
5. ローカル エリア ネットワーク (LAN) から WSL に直接接続する
wsl をミラーモードで立ち上げれば、 Chrome DevTools Protocol ( CDP )のエンドポイント( localhost:9222 )にも直接アクセスできるっぽいですよ
1
@mizchi: Linux を開発のメインで使いたいのは、普段からブラウザ+ターミナル+VSCodeで作業が完結していて、ブラウザがホスト、ターミナルがWSLにあって疎通が今大変だるくなっていて、Windowsをメインの開発環境にするのはナシで、Mac or Ubuntu 2
@mizchi: あんまり気持ちを共有できないと思われますが、 WSL 内の Puppeteer がホストのChromeに CDP(WebSokect)でアクセスすることができなくて、これが今非常にだるい。AIからブラウザを操作するインテグレーション書くことが多いのでここが作業の障壁になってる 3
@mizchi: WSL 内に Chrome をいれれば、と言われるとは思うんだけど、そうじゃない。ホスト側の Chrome を操作できることに意味がある 4
@riywo: @mizchi mirrored で WSL 動かしてたら特に問題なく host 側の CDP に puppeteer から繋げたので、こちらはどうでしょう? wsl2
networkingMode=mirrored # or "auto" since WSL 2.2
NAT でしたらこんな感じで host の IP 拾えばいけるみたいです。
WINHOST=$(ip route | awk '/default/ {print $3}')
5
@mizchi: @riywo あれ、本当ですか。mirrored にして何度か挑戦してるんですが、 chrome.exe --remote-debugging-port=9222 で curl でホストではPuppeteer が疎通してる状態で、WSLからホストの 9222 にアクセスしにいってるんですが繋がったことがなく何が悪いのかずっとわからない状態です... 6
@riywo: @mizchi 何ですかねぇ。とりあえず手元ではこんな感じで動いてます。 https://pbs.twimg.com/amplify_video_thumb/1942633018943836160/img/mnHGq_aYRcz9RAk2.jpg
https://gyazo.com/59db0175d937d4f369081affea7040cd
https://open.spotify.com/intl-ja/album/5A3DdmV8pXsQx9bNRgsSUh
https://gyazo.com/7ee56c561094802ec389a35dcbeeb95e
インプットとアウトプットの関係について(ついて?)
https://gyazo.com/c8cd4c520b72ad2d11fdb46a2129ecbe
hitode909 サンのこれは「学んだこと」なんだけど、
読んでいない本について堂々と語る方法 の流儀に則ると「学んだこと」と「学ぼうとしていること」と「学ぶかもしれないこと」と「学んだけど忘れてしまったこと」と「まだ出会っていないけど学ぶかもしれないこと」といったふうにもっと幅が広がるので インプットとアウトプットの間に、もう一つの軸を置く感じ?
話を端折ると
ただ見かけただけのページの URL を貼ることにまで、話を広げるというか巻き込むことができそうで
つまり
「学んでいないこと」を発信するまでの時間や質
という話に繋げられないか、という
みたいな
という話にもつながる
なにを言っているのかよくわかっていない
Dimension (HxWxD, mm)
142.2 x 69.9 x 7.9
Weight (g)
150
サイズ(高さ x 幅 x 厚さ, mm)
146.9 x 70.5 x 7.2
重量 (g)
162
サイズと重量4
152.8 mm(高さ) x 72 mm(幅) x 8.5 mm(奥行き)
198 g
サイズと重量4
154.7 mm(高さ) x 73.3 mm(幅) x 8.9 mm(奥行き)
185.9 g
Galaxy S10 から Pixel 9a になって、なんかだいぶデカくなった
実体として「かたまり感」がある
重さと厚み?
頑丈そうではある
ただの四角いブロック的な印象
繊細さがない
ソラリアプラザ 172cm
モデル私品のシューズがことごとくイイ
https://gyazo.com/3fccd2e27f00f473b58b6d72213e9786
ヴァンズのスリッポン、チェッカー柄
https://gyazo.com/61ac4fa066b4939df0d73d7538ff0143
クラークスのワラビー
https://gyazo.com/b8d20add7c146d07241ca36423c73be2
ブランドストーンのサイドゴアブーツ
欲しいもの
カンゴールの帽子
コットンのハンチング
https://gyazo.com/081d1e98c128b12ec7ff878ce6fa0f7c
ドクターマーチン
プレーントウ
https://gyazo.com/4b6ba8676479eb65be60785c307a7ef0
サイドゴアブーツ
ブラックステッチ
https://gyazo.com/db7c6aae9a1fae3dc7e2fa4472fcdd10
ショートなサイドゴアブーツ
https://gyazo.com/89cfccdb07fd4ca8a0fdab95fa8da935
カンゴールのパタゴニア・インスパイア・キャップ、イイ
パクリともいう
https://gyazo.com/e0780a6c424991c64e1564c855818319
https://gyazo.com/15463110f482d965f461be5888de68e2
「自然の闘争から、飢餓と死から、われわれにとってはもっとも高貴な目的と思える高等動物の誕生が直接の結果としてもたらされるのだ。この世界観には荘厳さがある。生命は、もろもろの力と共に数種類あるいは一種類に吹き込まれたことに端を発し、重力の不変の法則に従って地球が循環する間に、実に単純なものからきわめて美しくきわめてすばらしい生物種が際限なく発展し、なおも発展しつつあるのだ」(下巻, p.403/第5-10行)
end