duangsuse::Echo via @vote
大家目前是更喜欢用基于LLVM的编译器Clang呢, 还是更喜欢GNU编译器GCC呢 🌝 GCC – 17 👍👍👍👍👍👍👍 74% Clang – 5 👍👍 22% 人家用的可是高贵的TCC, 为什么没有呢? – 1 ▫️ 4% 👥 23 people voted so far.
TCC还有一个编译Linux到内存然后直接跑起来的buff( 还没有编译过Linux内核的咸鱼们可以来体验一下廉价的内核编译 ~~虽然是全自动的~~.
只需一TCCBOOT, 一64MiB内存 x86机, 大约1s的二十倍时间即可体验.
tar -xf qemu_tccboot.tar.gz&&qemu-system-i386 -kernel tccboot -initrd initrd.img \--enable-kvm
https://bellard.org/tcc/tccboot.html
自己编译一遍然后再折腾什么才是蕞吼滴( 毕竟一个人的水平不能从"编译过Linux没" 看出 🙈
只需一TCCBOOT, 一64MiB内存 x86机, 大约1s的二十倍时间即可体验.
TCC is distributed under the GNU Lesser General Public License. tar -xf qemu_tccboot.tar.gz&&qemu-system-i386 -kernel tccboot -initrd initrd.img \--enable-kvm
https://bellard.org/tcc/tccboot.html
自己编译一遍然后再折腾什么才是蕞吼滴( 毕竟一个人的水平不能从"编译过Linux没" 看出 🙈
duangsuse::Echo
#complain #China ssh到自己岳父80大洋的VPS上, 看到20MiB/s我才知道中国ISP多害人. 居然让我有3MiB/s即谢天谢地了. 😑
This media is not supported in your browser
VIEW IN TELEGRAM
#GFW #complain #China 位置:http://ftp.yzu.edu.tw/nongnu/tinycc/tcc-0.9.26.tar.bz2 [跟随至新的 URL]
—2017-10-18 09:11:06— http://ftp.yzu.edu.tw/nongnu/tinycc/tcc-0.9.26.tar.bz2
正在解析主机 ftp.yzu.edu.tw... 140.138.144.170
正在连接 ftp.yzu.edu.tw|140.138.144.170|:80... 失败:连接超时。
重试中。 666666 👍
—2017-10-18 09:11:06— http://ftp.yzu.edu.tw/nongnu/tinycc/tcc-0.9.26.tar.bz2
正在解析主机 ftp.yzu.edu.tw... 140.138.144.170
正在连接 ftp.yzu.edu.tw|140.138.144.170|:80... 失败:连接超时。
重试中。 666666 👍
#Learn Boom
* Error in `./a.out': munmap_chunk(): invalid pointer: 0x00000000006004eb *
[1] 4399 abort (core dumped) ./a.out
duangsuse虽然还是个小白, 但是在想: 为什么Rust可以把常量区的静态字串free而C不行呢? 于是duangsuse遂认为是libc特意不让这麽做的, 于是就去edb调试了下( 越来越看不懂了... 最后只是知道我之前free的的确是那个char* a 🙈
#include<stdio.h>
extern void free();
int main() {
printf("Hello, world!\n");
char* a = "free me(but you can't) XD";
free(a);
return 0;
}
* Error in `./a.out': munmap_chunk(): invalid pointer: 0x00000000006004eb *
[1] 4399 abort (core dumped) ./a.out
duangsuse虽然还是个小白, 但是在想: 为什么Rust可以把常量区的静态字串free而C不行呢? 于是duangsuse遂认为是libc特意不让这麽做的, 于是就去edb调试了下( 越来越看不懂了... 最后只是知道我之前free的的确是那个char* a 🙈
#Learn #lang #Lowlvl_backend
➜ tccboot git clone https://github.com/cisco/ChezScheme.git
正克隆到 'ChezScheme'...
remote: Counting objects: 4476, done.
remote: Total 4476 (delta 0), reused 0 (delta 0), pack-reused 4476
接收对象中: 100% (4476/4476), 906.56 MiB | 3.00 MiB/s, 完成.
处理 delta 中: 100% (2312/2312), 完成.
正在检出文件: 100% (558/558), 完成.
🌚 刚才突然一个脑洞, 看看
看这源码体积就比GCC差三倍了
➜ tccboot git clone https://github.com/cisco/ChezScheme.git
正克隆到 'ChezScheme'...
remote: Counting objects: 4476, done.
remote: Total 4476 (delta 0), reused 0 (delta 0), pack-reused 4476
接收对象中: 100% (4476/4476), 906.56 MiB | 3.00 MiB/s, 完成.
处理 delta 中: 100% (2312/2312), 完成.
正在检出文件: 100% (558/558), 完成.
🌚 刚才突然一个脑洞, 看看
Chez-Scheme 这个被王垠吹得比任何其它编译器都好()的编译器, 能不能拿 现有内核的或再拿chez-scheme实现一个linux (大坑填不起, 写一个 即时编译生成到内存直接跑的BL 一看 TCC不足一M, CS有4M 我想 可能就没必要试了(虽然要试也没有时间啊, 🙈看这源码体积就比GCC差三倍了
GitHub
cisco/ChezScheme
Chez Scheme . Contribute to cisco/ChezScheme development by creating an account on GitHub.
#Learn #Lowlvl_backend
围观Linux第一个发布. 我想这个内核肯定是干净的. 没有任何blob. 适合任何人拿作来学习之用. 当然前提是得有时间 🌚
https://mirrors.ustc.edu.cn/kernel.org/linux/kernel/v1.0/linux-1.0.tar.gz
—---------------------------------------------------------------------------—
Language Files Lines Code Comments Blanks
—---------------------------------------------------------------------------—
Assembly 19 5416 4585 0 831
Autoconf 1 139 122 17 0
C 282 141361 107211 17091 17059
C Header 205 23804 14978 5387 3439
Makefile 28 1664 1019 316 329
Shell 2 50 26 17 7
—---------------------------------------------------------------------------—
Total 537 172434 127941 22828 21665
—---------------------------------------------------------------------------—
围观Linux第一个发布. 我想这个内核肯定是干净的. 没有任何blob. 适合任何人拿作来学习之用. 当然前提是得有时间 🌚
https://mirrors.ustc.edu.cn/kernel.org/linux/kernel/v1.0/linux-1.0.tar.gz
—---------------------------------------------------------------------------—
Language Files Lines Code Comments Blanks
—---------------------------------------------------------------------------—
Assembly 19 5416 4585 0 831
Autoconf 1 139 122 17 0
C 282 141361 107211 17091 17059
C Header 205 23804 14978 5387 3439
Makefile 28 1664 1019 316 329
Shell 2 50 26 17 7
—---------------------------------------------------------------------------—
Total 537 172434 127941 22828 21665
—---------------------------------------------------------------------------—
#Learn #Lowlvl_backend Rust写的内核rustboot因为CI构建脚本拿Ruby写就成了Ruby写的内核, 而它64位的版本因为使用了Pure64装载kernel又被打上了拿汇编写的主要语言标签 完全服气 🌚
duangsuse::Echo
Photo
#Lowlvl_backend #Learn 恐怕到目前为止系统编程语言只有Rust是能保证可以不需要你深入了解, 现在的GNU/Linux无需更多配置即可编译的唯一语言了. 因为autoconf居然还分版本, 许多C的构建系统质量欠佳, 而且有的还不告诉你如何正确编译... 有的还把错误的代码放到发布里逼你为他们修复愚蠢的语法错误... 有的项目构建环境考虑的情况太少, 或者他们根本考虑不到别人的工作环境是什么样的, 所以duangsuse的所有项目都会给构建指南. 因为被这些只能看代码而无法编译的项目气到了 🌚