duangsuse::Echo
583 subscribers
4.12K photos
118 videos
579 files
6.13K links
import this:
美而不丑、明而不暗、短而不凡、长而不乱,扁平不宽,读而后码,行之天下,勿托地上天国。
异常勿吞,难过勿过,叹一真理。效率是很重要,盲目最是低效。
简明是可靠的先验,不是可靠的祭品。
知其变,守其恒,为天下式;穷其变,知不穷,得地上势。知变守恒却穷变知新,我认真理,我不认真。

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
#wasm #os #linux
https://telegra.ph/Linux-中-RISC-V-的-mmap-的重大问题-01-29
冷知识Q&A
> RISC-V Linux 内存页表(vm_area)适配问题在供应链的什么层级?

首先man 上写的支持sv48,但代码支持不到 且语义错误 这不符合Linus的严谨度
答:在JVM,gcc-libs 层级,影响交叉编译
glibc.malloc() 会请求 brk(<128KB)或 mmap(-1=/dev/mem)

py.mmap(*fpage, access=PROT_EXEC); fpage=fd+len+offset
mmap(vaddr+len, PROT_EXEC, MAP_PRIVATE, fd+offset); MAP_FIXED=dup2=replace

mmap还用于0copy fwrite() ,拒绝在用户态搞 IO Buffers
brk 是ELF体系下自带的内存池,暂存碎片化的小对象(4K分页后 lazy分配的)。其实 open() fd 也是个Refcount对象,因此,rm -rf 不像NT总提示文件未close()拒绝访问(还有内存不能BE READ ,坐和放宽,哈哈)

> x64 等ISA更费内存吗
确实,每个指针都占8byte,.so.text 段也会膨胀,只是整数计算和GPU无需这么高精度。(.rodata/bss 段不会,因为依然 int=i32,char=u8 , 另外这些段Addr<heap)

这不利于嵌入式,每条指令都耗电的。但SSE等特性、游戏的流畅度需要大量内存,所以32转64是种进步,更何况小白用户眼里下载 1G值1刀啊
.so段可以用 readelf -Sd; ldd 查询, Termux.dev waydro.id MSYS2.org 能够跨 glibc,bionic,msvc libc 平台, just like webVM.io 😋 #recommend

> 47bit?

2**32 /1024**3 =4GB, fat32单文件最大
2**47 /1024**4 =128TB, linux v6.6 单进程最大工作集

cat /proc/cpuinfo 可以看到CPU最大寻址范围
webVM.io 试玩Linux(su密码是 password)是查不了这种运维命令:它只实现 ext2fs(on http byterange) 和 net 的沙盒

> 寻址?
对CPU和内存分时复用(并发,容器化..统一设备格式API)是kernel的基本功。
sudo cat /proc/self/maps|grep ] 里,地址从低到高是 heap(brk) stack vsyscall(类似 fakeroot,libfuse 等AOP)
btw. sshfs,squashfs,overlayfs,snap 不是必须链接到FUSE,这只是微/宏内核之辩,类似于Android的反GPL C/S架构: system_server-AIDL-HAL.sysfs.dts
https://xiaolincoding.com/os/2_os_structure/linux_vs_windows.html#linux-的设计

线程,就是完全共享内存的多进程,使用strace 就会发现main()线程只是个进程组。免root gdb 据此实现AOP
内存段,能下载内存条~如swap分区就是时间换空间,反义词是ramdisk=rd
WinXP 启用/PAE后多进程可以突破4G内存限制。在分段寻址数组的DOS, size_t < void*
获取堆起始只需在putenv,asprintf,. 前调用 sbrk(0)。 stack可以在 gdb cat 里看 bt; 或 info proc all
tcmalloc等堆分配器不会比GC简单。它们不会线性地查找4~?KB空闲链表或建正好够大的块,从而减少难以复用的碎片。这里不是说二叉"堆"算法,但它涉及 Hash桶,BitSet,Trie,线段树,SortedSet(RBt)—反正 Doug Lea 都会!

> BIT(38)?
作者希望一直使用sv48 MMU 模式,和x86一致
不然就需要先if(mmap) 一下,看是否支持sv57,我猜的
AI: 当 mmap 的文件大小超过虚拟地址空间的大小时,RISC-V 会返回 -ENOMEM 错误,而其他架构会返回成功。可能会给 RISC-V 的软件移植带来一些灾难问题。

> mmap() 到的bytes比read()更快吗?
从编程范式来讲,read+write(另存为式) IO 反而是最FP、最全拷贝的做法,而 mremap(mount,但挂载是对象树) 更适合随处+单次修改增长
FP的性能都很差。mmap 除了对碎片(npm,pip缓存..) 慢,不适合 line/request-buffered 等IO 需求(.sock vs SHM),它可以表示任何文件格式
只有从 load即拷贝+dump(csv/ini/bytes) 统一为单YAML编辑指针,才能完全避免 malloc(手动"黏包"BUFSIZE) 和样板代码。但最前沿的,JSON的增量性序列化库 tree-sitter 都不好用。 为了0拷去用strcat,printf() 而拒绝模板字符串亏大了
说人话: Linux 内存分页器和 FAT 等文件系统间只是算法的差异。今天,睡休眠已经取代开关机,内存和磁盘何必隔着序列化?像CRIU那样进程快照如何? C对数据结构的僵化早该退场了

#暴论 OSdev一点不比各语言的stdlib人聪明。 Linux内存段本该是C对象(不止有bytes)、而进程本该是C协程(不止能exit0),你看 ps|head 就知道那是 def pipe(): yield line ,再比较下 Promise.{all,race} 与O_NONBLOCK的 epoll 呢?
async 说白了,就是拿retAddr闭包"链表"当线程栈用,手动 for(;;)getEvListeners(events.poll轮询)() 跑这些小线程,只为了更轻量(隔绝于竞态的 SIGINT等抢占式异步)
只是DOM把内核允许死循环的洞补好罢了,让parallel,SIMD被严谨的 numpy,ForkJoin(PySpark~多线下载) 取代,用 job或yield(x).then(回调自身) 而无所谓"线程" "阻塞" 🐴
DOM渲染器和linux/sched就是一类东西。如果学习WASM拒绝int指针,检查每次索引越界,userspace 内存地址完全隔离有鬼用?直接拿inode改文件内容,核内核外大和谐
反正Android,Web框架也必须做权限和apt管理,fd,cookie那就是RPC句柄嘛。SQL注入不就本来是想传bool函数来RPC,无奈PHP的operator重载力(DSL悟性)太差 只好去eval代码致RCE。 markdown 渲染杀死了评论区XSS。剩下的复杂性就是libs表现欲过剩,矫枉过正。我这就是唱Powershell 打POSIX

再比如eBPF抓包,这种程度的AOP,ruby js DevTools 玩烂了的东西,换API集 换到 globalThis=ld-linux(ver.so) 就变科技了,其实就是工具链烂 语法丑 👎
C 编译器总是做能截断struct val 的访问,做不检查接口的union{}多态,暴露不含size的list(美其名曰buffer&支持多返回),CLR和Go可没有,RESTful 则更加安全。py只靠ctypes+Rc 就干爆了strcat和各种野指针
C也没有匿名函数,所以 pthread_create(fn,必须绑定arg) 。对象和闭包都是代码+数据 是双指针。OOP就是FP,class是共享构造参数的多函数
如果我们摒弃所有术语,只从语意和用户需求,自顶向下地谈,IT和CS的技术,往往只是被不断地跨端复制 👎
btw. so文件是 Singleton Object 的缩写 \: section-segment 则是常量池和堆。 gcc -static 只会打包有符号表的.o 汇编,是做tar 不涉及ld导出表
螺莉莉的黑板报
【本报讯】首个超越 GPT-4o 的开源模型!Llama 3.1 泄露:4050 亿参数即将登场! 近日,Meta 的新一代大模型 Llama 3.1 在 Reddit 上被泄露,引发广泛关注。Llama 3.1 包含 8B、70B 和 405B 参数版本,基准测试显示其性能在多个领域超过了 OpenAI 的 GPT-4o 和 Claude Sonnet 3.5 等闭源模型。模型卡泄露的信息显示,Llama 3.1 使用了 15T+ tokens 进行训练,支持多语言,并进行了指令微调和合成数据训练。尽…
https://tttttt.me/danteslimbo/3368
duangsuse: #谈政事 UBI红利

这个普法现金是资本主义版的,收支透明,加上有新的AI奴隶, 结果会不一样

大跃进主要的问题不是大锅饭,而是完全禁止多劳多得,zz挂帅瞎指挥、浮夸风、高税收

UBI不是的,只是一种提升消费的福利,中国目前基本上还是负福利

某党普遍有一种错觉,饥荒都是福利陷阱导致的

那完全是错误归因,因为他们发的福利,是伴随政治经济翻天覆地变化来的。波波没有给人发福利,为什么也代来灾难? 美团讲师每天蹭吃蹭喝捡鸡腿,为啥没影响其他润人奋斗?
其实只要留一点点小产权,不要打鸡血瞎指挥,哪怕继续吃大锅饭、继续充胖子还鹅爹的粮,灾害情况都会好一半

那三年末,某些人要求「宁要核子不要裤子」,又说抗美援朝之流是「大仁政」,对农B救亡图存只是小的,它就是为了核子剥光衣服的🤡

多少地方农民吃观音土第二天就要撑死了,这核弹,保护的是他们的生命么? 幸好它抗美援朝,不然中国就是西朝鲜