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

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
#web #sysadmin emmm... 那个啥 a 的插件我还记得在 WordPress 上是反垃圾的,不知道这里的是 PHP、Nginx(迫真)还是 Flarum 的插件
Forwarded from LetITFly News (LetITFly | 让技术飞)
昨晚确认 LetITFly #BBS 遇到发帖回帖故障的问题(在管理员账号未能复现😱,因此晚些才发现😭
目前只确认 2018.11.2 18:04:48 之前是正常的😱(这是故障前最后一个帖子的发表时间)
如有进展,会告知。
Forwarded from Deleted Account
API Key 无效
Forwarded from Deleted Account
去把 Akismet 插件关了
duangsuse::Echo
#web #sysadmin emmm... 那个啥 a 的插件我还记得在 WordPress 上是反垃圾的,不知道这里的是 PHP、Nginx(迫真)还是 Flarum 的插件
PHP 里那叫 PECL 扩展?(迫真
Zend 的 PHP 有 Zend 虚拟机扩展和 PHP 扩展 PHP Extension 之分...

工程系最喜欢这种做法... PHP 有好多人感觉喜欢拿 C 而不是 PHP 写库一样(需要 CFFI C 语言外部函数接口除外)?
还是觉得 CRuby 的做法好... 虽然也有 native extensions 但 Rubygems 不需要自己操心,哪像 PHP 这么落后 PEAR PECL 还分开,从 Perl 这种老 Unix 系语言(还有很多很老的语言)激发的 Ruby 都比它先进不少
#Python #Lua #PL ... 大概是因为简单吧?
Forwarded from 羽毛的小白板
🤔 为什么同是胶水,Lua 比起 py 没那么火呢
羽毛的小白板
🤔 为什么同是胶水,Lua 比起 py 没那么火呢
而且 Lua 在游戏开发领域也比较火的,不管是后端(服务端)还是游戏本身的业务逻辑脚本里

Python 大概是... 起步的早???但好像是比 Ruby 早,不知道 Lua 比起来怎么样
羽毛的小白板
🤔 为什么同是胶水,Lua 比起 py 没那么火呢
反正现在一大堆入门教程都是写 Python 的... 中国的编程培训班也很多主要教 Python

So 在我看来 Python3 基本可以说等于小白语言...
除了简单易学外没有啥好的... 😶

Python 的后端自己也在喷新内建 asyncio 库和 async 关键字不好的说... 还不如 greenlet
最准确(对我自己来说)的看法来说,我觉得 Python 不适合被称为胶水语言,它的 CFFI 我觉得设计得很不怎么样,虽然也有内建(貌似)专门的 DSL 写 C 接口的

而 Lua 里 loadlib 扩展还舒服一些的说

何况现在哪门语言没有 FFI,连 CovScript 这种自己写的语言都有内建 CFFI 支持了,C#、C++、Rust、Crystal、Smalltalk?、Guile、ChezScheme 甚至 Java Kotlin Groovy 都有不同程度访问原生资源的能力

差点说 GNU bc、AWK/SED、APL、COBOL、ML 都要有了(不确定

最好的胶水语言,我想对 POSIX 操作系统来说是它自己的 Shell,因为 cmdline、stdio、environ 这些东西已经把程序们很好的结合在一起了,这比什么都强
羽毛的小白板
🤔 为什么同是胶水,Lua 比起 py 没那么火呢
btw. Python 第一版发布于 1991 年,Lua 则是 1993 年,Lua 之前的 SOL(简易对象语言) 和 DEL(数据表语言) 都没有这么火,Lua 是 2k 年左右才受到重视的吧貌似
duangsuse::Echo
btw. Python 第一版发布于 1991 年,Lua 则是 1993 年,Lua 之前的 SOL(简易对象语言) 和 DEL(数据表语言) 都没有这么火,Lua 是 2k 年左右才受到重视的吧貌似
很多好语言没有胜过特性稍逊的语言的主要原因就是诞生得太晚了,比如 Ruby 和 Lua 不如 Python 早所以现在这么多垃圾 Python 小学生厨才能在那里写个简单的 if else 石头剪刀布就炫耀 (跑
#life 好了,都 810 了,本来打算多讲会事的,明天再吧,因为我得写点名器了... which 之前已经设计好的,至少比那些易语言党强的可扩展可定制性...
This media is not supported in your browser
VIEW IN TELEGRAM
duangsuse::Echo
#life 好了,都 810 了,本来打算多讲会事的,明天再吧,因为我得写点名器了... which 之前已经设计好的,至少比那些易语言党强的可扩展可定制性...
今天讲之前那个 x86 汇编的 helloworld 为什么出问题吧... 讲完再写不影响的,我已经基本会简单的 Qt 了... 就是我还看不到内存泄漏溢出、悬垂指针(Use-after-free)和非线程安全的风险
duangsuse::Echo
今天讲之前那个 x86 汇编的 helloworld 为什么出问题吧... 讲完再写不影响的,我已经基本会简单的 Qt 了... 就是我还看不到内存泄漏溢出、悬垂指针(Use-after-free)和非线程安全的风险
讲完再写个 ARMv7 glibc (arm_v7-unknown-linux-gnu) #llvm #sysadmin #recommended #binary #backend

(arch_subarch-vendor-os-abi-objectfmt) where

arch:
CPU 解释器平台,如 ARM、x86、x86_64、SPARC

编译到原生代码的语言,诸如 C/C++ 需要程序员时刻考虑底层的实现细节,诸如硬件解释器平台
一般来说不同的硬件处理器((嵌入式)微控制器)平台有不同的 ISA(指令结构,Instruction Structure Architude)和解释器体系结构,与其他平台差异很大

所有代码被翻译成由 0(低电位)和 1(高电位)组成的,一定大小的二进制数字(如 0101、1111)组合成的一定长度的单元(必须是 2 的整数倍,一般最小为 8 位二进制数字)「字节序列」

然后被机器处理器按程序计数器(指令指针)进行取指令、解码逻辑分派、执行

就是说不同的平台之间有实现差异,举个例子来说,ARM 系列的 RISC(精简指令集系处理器)就只能使用 load/store 指令访问内存,而 x86 系列的 CISC(传统的复杂指令系处理器)很大一部分指令都可以访问内存,典型的方式是使用 effective address(迫真?)(实际上,我还不记得 ARM 系列一般都有哪几种参数寻址方式)

好吧我承认上一个例子是不好的,再举个例子,ARM 机器有 j 指令用于跳转(设置程序计数器来实现类似 Java goto 一样的功能),而 x86 里这是 jmp 指令,你看字面上都不一样所以他们是不能直接互相兼容的,换句话说就是「x86 机不能直接解释 ARM 的指令字节序列,而 ARM 也不能直接解释 x86 的指令字节序列」

上面的看不懂没有关系... 因为这些知识还不是系统的,有太多涉及你们可能不知道的知识,而我也不写例子所以大概是一脸蒙蔽
因为我现在不是讲这个...

subarch: CPU 解释器子平台,如 ARMv7、ARMv8

举个例子,有些版本的 ARM 处理器(比如 ARMv6-M)有 DMB DSB ISB 这种(码位控制)指令,而有些没有(诸如 ARMv6)
所以 ARMv6 处理器就不能执行(或者不能很好的支持)有这些指令的 ARMv6-M 代码(指令序列)

ARMv6-M 程序员手册
ARMv7-M 程序员手册

我忽略了其他的一些平台差异,诸如字节序(大端/小端)、寄存器集合、浮点实现、子平台特性(诸如 AVX、SSE、NEON)等

vendor: 生产厂家类型,如 SUSE、PC、Apple、NVIDIA

不说了... 都知道,我们一般都是 PC 或者 unknown

os: 操作系统平台,如 Linux、OpenBSD、Win32

一般都是 win32 或者 Linux
这里有个容易混淆的地方是 win32 是一个平台,包括 32 位和 64 位 Windows,从 Windows 3.1(第一个使用 NT 内核的 Windows 版本开始)就叫 win32 了

Windows 的 64 位版本里 Win32 支持貌似叫 WOW64(Windows on Windows64)

abi: 程序二进制(底层运行环境)接口,如 GNU glibc、MSVC、Android、Musl

Musl 貌似是部分兼容 Glibc 的,一般用于嵌入式开发
Glibc 是很传统的 Unix-like 系统 C 语言基础库,老的闭源 libc 的替代者
MSVC,M$ VisualC (runtime?) msvcrt*.dll,类似 Glibc

ABI 是应用程序到操作系统交互的一栋桥梁。很少有人不使用 libc 开发应用程序,当然你用汇编 syscall 手动调用内核函数并且自己写 ldscript(开发更底层的程序的时候可能用得到,比如链接内核、内核模组(模块)什么的)就算了

objectfmt: 对象文件格式,如 COFF、ELF、MachO

常用 ELF,Extesible Library Format,可扩展库格式,它也是基于 COFF,Linux 很早就给予其内建支持了

MachO 是苹果 Darwin(OS X(这个 X 是罗马数字 10,读 "ten"))用的可执行文件格式,妈的在我这里 Linux 环境里处理起来好麻烦啊

ABI 的吧... 虽然都是很简单的程序而已,连分支都没有用到
duangsuse::Echo
讲完再写个 ARMv7 glibc (arm_v7-unknown-linux-gnu) #llvm #sysadmin #recommended #binary #backend (arch_subarch-vendor-os-abi-objectfmt) where arch: CPU 解释器平台,如 ARM、x86、x86_64、SPARC 编译到原生代码的语言,诸如 C/C++ 需要程序员时刻考虑底层的实现细节,诸如硬件解释器平台 一般来说不同的硬件处理器((嵌入式)微控制器)平台有不同的 …
... 再附加上一个 DalvikVM 的 smali 汇编猜数游戏吧,然后教你们怎么用 enjarify、dex2jar 之类的(2333

jadx、jd-gui 什么的那种简单到爆炸的玩意就不教你们了,你用脚趾头都想得出来怎么用啊?

最后附上一句:我是擅长逆向工程的(迫真)(hhhh 开什么玩笑....