一個失蹤X口的回歸,向你在特殊的日子里用一篇濫竽充數式的文筆描述10年間一些你聞所未聞的硬核科技,和一輩子都無法相信的離奇實踐。本文以之前這麼多篇blog的信用擔保。半夜裡爬起來,讀一遍就能過癮,多讀幾遍過足癮 ...
即興打出這個標題,似乎性息量有點大,後面的內容真的和你想象的是一樣的嗎?
自上一篇blog告別這裡有多少年了,掐指一算,今天是一個回歸的日子,看著這裡搭上雲之路,漸漸的變成了雲主機中的一員,感慨時事境遷,時代的標簽默默地打在每一件事物的身上。
延續標題的思路,預防被稱作標題黨,看了一下時間,接下來就開始用最最最簡短的語言分享點點從2019向前的縮影和片斷,包含一些歷史的解密:P
2009年9月,發表了一篇名為簡單介紹SXS的一些有意思的特性的文章,似乎淡淡之筆,在文章的結尾,留下一個美好的遠景。事實上在一個禮拜之後,是的7天以後,這個遠景落地了,簡而言之return OK. 這是一個難以表述的心情,這是一個很有意思的想法,在產生這個想法的同時,已經在同步醞釀一片英文稿,如果我做到了,這個世界會多一份技術展示,思緒間很多美化巨硬的想法,這是一個什麼技術呢,簡而言之就是從流讀取一份庫文件(WWindows Dynamic Link Library),這裡我實現了COM類型庫從網路流直接在OS記憶體中展開載入(fhandle是不存在的,是不存在的,是不存在的),並且免註冊調用的真實案例和一個在我當時看來十分完美世界上絕無僅有的封裝 。很不幸,文章流產了:(
為什麼?為什麼?為什麼? 為什麼成功的封裝,絕無僅有的嘗試和實現,卻久久在磁碟的塊中塵封了近10年,10年這個世界變化了許多,我公佈一下當時留了一個開場E草稿在某站點後臺卻從來沒有公開的原因: 當一切調用都很成功,當我用巨硬的某版本windows SDK中不知名html2xhtml.dll解析更多網頁的時候,卻發現,這個dll遠遠不是我想象了可以厚顏無恥的舔一下巨硬這麼自然而然,事實上這個dll很失敗,除了少數Hello world站點中的基礎頁面,幾乎不能正確返回任何有意義的結果,而我在1個禮拜前正YY著強強聯手的文章,展示一個簡單而神奇的DOM處理過程,然後我很生氣,這就是為什麼沒有然後的原因(儘管,不時地會偷偷打開看一眼,當時已經順利相容了Windows XP, Windows 7, wWidow 8.0 8.1 )。
接下來的時光,似乎仍舊在.net這個世紀產物上,偶爾碰碰C++,偶爾寫寫SQL, 2016年底,很時髦的用起了.NET CORE 1.0, 做了一個世界上絕無僅有的single EXE部署,裡面藏著core, async await (EF.core, socket, network stream, file stream)一切可以await的都大力註入到async這個關鍵字中,然而,這個在2017初收工的掛載core類混淆和core方法加密的EXE居然可以在WINDOWS的services列表裡出現,而且不依賴任何外部環境和文件,執行的宛如什麼都不懂的智障,和你想象的是一樣的嗎?顯然這個cpu利用率不到5%的工程遠遠超乎了想象。
然而這就結束了嗎?不!
這個世界上有一個神奇的事物叫linux.
為了宣告和這個事物的緣分,我用gcc4.9在windows 10 X64 docker中編譯出了這個世界上絕無僅有的Aria2 3.14 for ARM.服務正常人類已經拋棄的linux kernel 2.6.X,此後居然靜態編入dev版openssl和c-ares,幫作者的源碼里完善了一下網路隔離. 當回視這個厲害的自製toolchain,那幾天就像幾個月一樣漫長,事實上幾天時間里,就是和abi撕逼的經歷,後續會公開部分.
最近幾年openwrt也在蓬勃發展,最先我採用的是ddwrt,作者還是保留了toolchain:P, 作為一個手慢的意識流鍵盤黨,如果敲一下make就可以製作一個絕無僅有的image是不是很雞凍呢?事實上,接觸後不到幾天就在編譯出了4m不存版ss,我很認真地不忘初衷的記下里程碑, 我學會了焊接,我學會了拆flash,我學會了裝B,我用GCC8X編譯git shapshot已經半年多了,lede這種過時的回收站永遠嗤之以鼻,編譯過Branch 18.06的我知道和snapshot版本的不同力反饋,最近誰提交一個patch又讓大家恢復到同一起跑線,dyne的dnscrypt-proxy帶上extension沒有openssl, https-dns-proxy也沒有openssl,認真起來可是減少了2M的空間, 3個月前開通了WPA3,波瀾不驚的關掉了。
最近有一個小眾mini音樂盒子開箱(編輯一下23:44:46,註明這是一個幾十元的全新盒子,和你想象的是一樣的嗎?),看了一下時間,當一個標題黨就可以按時發文拉,所以計劃中的拍照上圖環節省略了...
這是一個奇跡,開箱不到半小時,截獲以下性息,你們可以拜讀以示我的清白,絕無抄襲
Linux version 2.6.31 (root@ubuntu) (gcc version 4.3.3 (GCC) ) #2 Mon Sep 22 10:02:42 CST 2014 flash_size passed from bootloader = 16 arg 1: console=ttyS0,115200 arg 2: root=31:02 arg 3: rootfstype=jffs2 arg 4: init=/sbin/init arg 5: mtdparts=ath-nor0:64k(u-boot),64k(u-boot-env),14080k(rootfs),2048k(uImage),64k(mib0),64k(ART) arg 6: mem=64M CPU revision is: 0001974c (MIPS 74Kc) ath_sys_frequency: cpu srif ddr srif cpu 535 ddr 400 ahb 200 Determined physical RAM map: memory: 02000000 @ 00000000 (usable) User-defined physical RAM map: memory: 04000000 @ 00000000 (usable) Initrd not found or empty - disabling initrd
#ls /lib ld-uClibc-0.9.30.so libdl-0.9.30.so libresolv-0.9.30.so ld-uClibc.so.0 libdl.so.0 libresolv.so.0 libapr-1.so libexpat.so.0 librt-0.9.30.so libapr-1.so.0 libexpat.so.0.5.0 librt.so.0 libapr-1.so.0.5.1 libgcc_s.so libssl.so.1.0.0 libaprutil-1.so libgcc_s.so.1 libthreadutil.so.6 libaprutil-1.so.0 libhowl.so.0 libthreadutil.so.6.0.3 libaprutil-1.so.0.5.3 libiw.so.29 libuClibc-0.9.30.so libavcodec.so.52 libixml.so.2 libupnp.so.6 libavcodec.so.52.123.0 libixml.so.2.0.8 libupnp.so.6.3.2 libavdevice.so.52 libm-0.9.30.so libusb-0.1.so.4 libavdevice.so.52.5.0 libm.so.0 libusb-0.1.so.4.4.4 libavformat.so.52 libmDNSResponder.so.0 libusb-1.0.so libavformat.so.52.111.0 libnsl-0.9.30.so libusb-1.0.so.0 libavutil.so.50 libnsl.so.0 libusb-1.0.so.0.1.0 libavutil.so.50.43.0 libpcre.so libusb.so libc.so.0 libpcre.so.1 libutil-0.9.30.so libcrypt-0.9.30.so libpcre.so.1.2.3 libutil.so.0 libcrypt.so.0 libpthread-0.9.30.so libz.so.1 libcrypto.so.1.0.0 libpthread.so.0 modules
#cat /proc/cpuinfo system type : Atheros AR934x processor : 0 cpu model : MIPS 74Kc V4.12 BogoMIPS : 267.26 wait instruction : yes microsecond timers : yes tlb_entries : 32 extra interrupt vector : yes hardware watchpoint : yes, count: 4, address/irw mask: [0x0000, 0x0600, 0x0400, 0x0000] ASEs implemented : mips16 dsp shadow register sets : 1 core : 0 VCED exceptions : not available VCEI exceptions : not available
請有恩山邀請碼的PM我
I2C, airplay, line out, 我是一個隨便的人嗎?本來想著大力出奇跡,現在對這這個沒有縫的mini, 它已經穩穩的運行在650MHZ, 這是怎麼做到的這麼神奇的麽?封裝袋裡的散熱片在哭泣,它還有機會嗎? boom750MHZ?
望著這個放在抽屜里僅僅只能boot的盒子,嘴角露出了笑意???
讓我們牢記一個時代,2014, linux 2.6.31
未完待續...請關註
2019.2