ときどきの雑記帖 RE* (新南口)
微笑みがえし
エレベーター
東急武蔵小杉駅でエレベーターの交換更新作業をやってるんだけど
期間が一月の半ばから三月いっぱい中旬くらいとか
ずいぶんな長さ。
なんでまたそんなに?
エレベーターと言えば [B! 交通] 六本木駅のエレベーター長期停止に頭抱える交通局、海外製の落とし穴 みたいな話もあるみたいだけど。
Pascal
Ask HN: Are people still using Pascal? | Hacker News
Delphiを含めてもまあ、という感じではある。
Technical Debt
「技術的負債」と「Technical Debt」がまったく同じものか ということはさておき、向こうでもこういう話が出るんすかね。
ワーテルロー
「ナポレオン~覇道進撃~」が何回か前からワーテルローの戦いに。
Zig
- Zig’s Curious Multi-Sequence for Loops | Hacker News
- Zig’s Curious Multi-Sequence For Loops | Loris Cro’s Blog
Zigのforループの話。なかなか面白い。
- Pointer to the element
- Labels, break and continue
- else for for loops
- Inlined for loops
- Multi-sequence for loops and data oriented design (DOD)
- Hoisting safety checks
attribute random_layout
C言語の構造体メンバーの配置をランダム化できるらしいとのことで、やってみました。gccとclangでやり方が違うので、少し手間取りましたが、勉強になりますね~。また1つスキルがアップしました。 pic.twitter.com/qiDQUpy3pi
— Yutaka Hirata (@yutakakn) February 26, 2023
翻訳単位をまたぐ場合(つまり複数の .c から同一の .h に書かれた同一の構造体を参照する場合)はどうなるんだろう。今時のリンカにはそんな機能があるんだろうか。それとも構造体名かなんかをシードにして並べ替えて常に一意になるんだろうか(randomizeとは) https://t.co/zPYaQZbQrg
— AoiMoe a.k.aしお兄P (@AoiMoe) February 27, 2023
struct randomizationに期待されてる効用は、そもそも何なのか。
— Kazuho Oku (@kazuho) February 27, 2023
ASLRで関数のアドレスが固定じゃなくなった(攻撃コードに呼び出したい関数のアドレス直書きできなくなった)けど。関数ポインタをメンバにもつ構造体において、その関数ポインタのオフセットは固定なわけで。だから構造体のアドレスが
目的やらはともかく、「へー」と思ったのでgccマニュアルを見てみたが見当たらない?
- Common Type Attributes (Using the GNU Compiler Collection (GCC))
- x86 Type Attributes (Using the GNU Compiler Collection (GCC))
Two attributes are currently defined for x86 configurations: ms_struct and gcc_struct.
キーワードで検索すると導入の意図らしきものが見つかった。
To get structure randomization working in the kernel, a few things need to be done to ensure that it works smoothly without breaking anything. Once enabled, the randstruct plugin will do its magic provided a few conditions are met. First, structures marked for randomization need to be tagged with the __randomize_layout annotation.
で、どうも「プラグイン」によって実現されているようで、 マニュアルに見当たらなかったのはこれが原因? (GCCの場合。clangがどうなのかは興味なかったので知りたい人は各自でヨロシク)
Linux 4.13 で __randomize_layout ( https://lwn.net/Articles/719732/ )という、 構造体のレイアウトをランダム化するための属性指定がマージされ、LSMインタフェースもその対象になりました。
- Linux Kernel Driver DataBase: CONFIG_GCC_PLUGIN_RANDSTRUCT:
- c - Is there a GCC keyword to allow structure-reordering? - Stack Overflow
As a side note, the Linux kernel implements a gcc plugin to introduce an attribute named randomize_layout. The goal is to use it in the definition of the structures to make the compiler randomize the order of the fields.
- Plugins (GNU Compiler Collection (GCC) Internals)
- plugins - GCC Wiki
- KMC Staff Blog:GCC のプラグインを作ってみる
- Attributes in Clang - Clang 17.0.0git documentation
ところで
記述法については以下の通り。
__attribute__((hoge)) void f(void); // hoge という属性を付加
括弧に関してなのですが、二重に書いてください。一重だとエラーが出ました。
カッコを二重に書かせるの、なにか意図があったような記憶があるのだけど なんでだっけ?
ところで(その2)
発端のツイートのツイート主さんは
という本を最近出したばかりで、 ちょっと興味があったので 本屋で眺めてみたのだけど以下略 (結局買ってはいないので中身についてあれこれ言及することはしない)。
まあタイトル決めたのは著者じゃないって話になるのかもしれないけど。
FORTRAN Compiler on IBM 704
TXH/TXL
いわゆる「自己書き換え」がこのソースコードでは よく使われているのだけど、 TXHをTXLに書き換えて動作を切り替えている例が 今見ている辺りにある。
MS093 *** MS335,0 TXH FOR LEFT SIDE, TXL FOR RIGHT SIDE. 4F13542
MS321 *** MS330,0 TXH ON LEFT, TXL ON RIGHT OF = SIGN. 4F13661
MS310 *** MSERR=,0 TXH FOR LEFT, TXL FOR RIGHT OF EQUAL SIGN. 4F13676
上記の(本来は離れたところにあるのだけど)
***
の部分を
CAL TXHOP SET SWITCHES FOR LEFT SCAN. 4F13474
STP MS093 X 4F13475
STP MS310 X 4F13476
STP MS321 X 4F13477
でTXHにして
MS311 CAL TXLOP SET SWITCHES FOR RIGHT SIDE SCAN. 4F13670
STP MS093 X 4F13671
STP MS310 X 4F13672
STP MS321 X 4F13673
でTXLにしている。 TXLOPやTXHOPはどこにあるかというと
TXLOP TXL FIXCON,,50*1 *** FDA,,K*L 4F10194
PZE 50*2,,100 DBL,,J 4F10195
FXCNIX TXI ALT,,5-2 TXI ALT,,I 4F10196
REM 4F10197
PZE G+1,,1 FLOCON) ARG1+L,,L 4F10198
PZE FLOCON,,** TDA,,N 4F10199
TXHOP TXH FLOCON,,50*1 *** FDA,,K*L 4F10200
PZE 50*1+1,,450 DBL,,J 4F10201
ここ。 一見プログラムコードのように見えるけど 実はデータテーブル(のはず)。
The seven deadly sins of mathematics
The seven deadly sins of mathematics pic.twitter.com/e8lFzbhmt1
— World of Engineering (@engineers_feed) February 24, 2023
そういえば最近読んだとある本で 「ゼロに何を掛けてもゼロ、ゼロを何乗してもゼロ」 みたいな文が出てきて、 「あれ? 00 は?」 と思ったのはここだけの話。
(自分で宣伝)
— 新山祐介 (Yusuke Shinyama) (@mootastic) February 26, 2023
数式を使わない Transformer の直感的な説明:https://t.co/xK1x0hcxDT
戸塚vs東戸塚pic.twitter.com/ydXwxE1WWv
— 大神奈川 (@GreaterKanagawa) February 26, 2023
tnozakiさんとこは結局あのままshutdown?
「かくしごと」の話の続き…orz