<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[量子象限]]></title><description><![CDATA[你永远不应该停止探索，而在一切探索的尽头，你将抵达起点，对它拥有全新的认识]]></description><link>https://blog.youkuaiyun.com/fly_wt</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; fly_wt]]></copyright><item><title><![CDATA[建立独一无二的GitHub Profile]]></title><link>https://blog.youkuaiyun.com/fly_wt/article/details/143838542</link><guid>https://blog.youkuaiyun.com/fly_wt/article/details/143838542</guid><author>fly_wt</author><pubDate>Sun, 17 Nov 2024 21:12:21 +0800</pubDate><description><![CDATA[算不上炫酷，但是区分度还是有的。其实很简单：建立一个和你账户ID同名的repository，然后创建一个Readme，而这个readme就会显示在你的public profile。可以参考我的：https://github.com/violet227/violet227/blob/main/README.md。如果你经常使用Github，而且想让自己的主页更加的unique，这篇简单的教程可能会对你帮助。这是一个开源的项目：github-readme-stats。]]></description><category></category></item><item><title><![CDATA[超越bash：让你的命令行更聪明]]></title><link>https://blog.youkuaiyun.com/fly_wt/article/details/133677429</link><guid>https://blog.youkuaiyun.com/fly_wt/article/details/133677429</guid><author>fly_wt</author><pubDate>Sun, 08 Oct 2023 12:38:31 +0800</pubDate><description><![CDATA[zsh是一种类Unix操作系统下的shell，它是Bourne shell的一个替代品，并且它的设计目的是成为一个更加强大和易于使用的shell。和Bash相比，zsh具有更多的特性和更好的自定义选项，例如更好的自动补全功能、更好的命令别名等等。]]></description><category></category></item><item><title><![CDATA[代码对比工具，都在这了]]></title><link>https://blog.youkuaiyun.com/fly_wt/article/details/132954374</link><guid>https://blog.youkuaiyun.com/fly_wt/article/details/132954374</guid><author>fly_wt</author><pubDate>Sun, 17 Sep 2023 21:27:44 +0800</pubDate><description><![CDATA[Beyond Compare选择最好的方法来突出不同之处，文本文件可以用语法高亮和设置比较规则的方法进行查看和编辑，适用于用于文档、源代码和HTML。Beyond Compare可以很方便地对比出两份源代码文件之间的不同之处，相差的每一个字节用颜色加以表示，查看方便，支持多种规则对比。KDiff3是一个跨平台的代码对比和合并工具，具有直观的图形界面和三向合并功能，适用于多人协作项目。Meld是一个开源的跨平台代码对比和合并工具，具有直观的用户界面，允许您比较和合并文件和目录。]]></description><category></category></item><item><title><![CDATA[新书推荐：《AIGC未来已来——迈向通用人工智能时代》]]></title><link>https://blog.youkuaiyun.com/fly_wt/article/details/130656500</link><guid>https://blog.youkuaiyun.com/fly_wt/article/details/130656500</guid><author>fly_wt</author><pubDate>Sat, 13 May 2023 13:34:58 +0800</pubDate><description><![CDATA[AIGC为何引发关注？
ChatGPT会成为人工智能的拐点吗？
GPT-4未来已来，奇点时刻该如何面对？
人类的创新能力会被AIGC替代吗？
当下有哪些典型的AIGC变现手段？
AIGC的不足与挑战？]]></description><category></category></item><item><title><![CDATA[Linux物理内存模型]]></title><link>https://blog.youkuaiyun.com/fly_wt/article/details/127204383</link><guid>https://blog.youkuaiyun.com/fly_wt/article/details/127204383</guid><author>fly_wt</author><pubDate>Sat, 08 Oct 2022 10:38:16 +0800</pubDate><description><![CDATA[本文是Linux内存管理系列文章的第一篇，先对一些常见概念有一个基本的认知。Linux内存有哪三大结构？去本文中找答案吧！Multiprocessors系统设计内存架构的两种模式UMANUMALinux物理内存的三大结构Node: CPU和本地内存组成Node, 用 struct pglist_data 表示，放在一个数组里面。]]></description><category></category></item><item><title><![CDATA[kernel启动镜像不是vmlinux，而是它！]]></title><link>https://blog.youkuaiyun.com/fly_wt/article/details/127196463</link><guid>https://blog.youkuaiyun.com/fly_wt/article/details/127196463</guid><author>fly_wt</author><pubDate>Fri, 07 Oct 2022 17:13:49 +0800</pubDate><description><![CDATA[上一节我们介绍了vmlinux的编译过程。vmlinux是一个ELF文件，上百M，无法直接flash到板子上。由此可以发现，arm64的启动镜像为压缩后的。再进一步走到boot目录下的Makefile。]]></description><category></category></item><item><title><![CDATA[Linux kernel中.o文件的编译过程]]></title><link>https://blog.youkuaiyun.com/fly_wt/article/details/127187319</link><guid>https://blog.youkuaiyun.com/fly_wt/article/details/127187319</guid><author>fly_wt</author><pubDate>Thu, 06 Oct 2022 20:18:05 +0800</pubDate><description><![CDATA[在嵌入式Linux的开发过程中，内核编译是一个永远也绕不开的话题。了解整个内核的构造节省编译时间在编译报错时快速定位问题进一步了解内核的启动本文从Linux kernel中.o文件的编译探索kbuild机制。]]></description><category></category></item><item><title><![CDATA[如何编译并运行Linux系统？]]></title><link>https://blog.youkuaiyun.com/fly_wt/article/details/127187302</link><guid>https://blog.youkuaiyun.com/fly_wt/article/details/127187302</guid><author>fly_wt</author><pubDate>Thu, 06 Oct 2022 20:16:27 +0800</pubDate><description><![CDATA[学习Linux内核是一件振奋人心的事情，而在学习伊始对Linux内核的成功编译并运行也更会燃起更足的动力去钻研。本文从下载并编译Linux内核、编译busybox、制作一个最小的根文件系统，最后用qemu启动你编译好的内核和根文件系统 ，初步感受Linux内核的魅力所在。]]></description><category></category></item><item><title><![CDATA[如何在MFC中添加一个线程]]></title><link>https://blog.youkuaiyun.com/fly_wt/article/details/124076134</link><guid>https://blog.youkuaiyun.com/fly_wt/article/details/124076134</guid><author>fly_wt</author><pubDate>Sun, 17 Jul 2022 15:57:49 +0800</pubDate><description><![CDATA[如何在MFC中添加一个线程]]></description><category></category></item><item><title><![CDATA[Linux内核的命令行解析机制]]></title><link>https://blog.youkuaiyun.com/fly_wt/article/details/125132038</link><guid>https://blog.youkuaiyun.com/fly_wt/article/details/125132038</guid><author>fly_wt</author><pubDate>Sun, 05 Jun 2022 14:56:01 +0800</pubDate><description><![CDATA[bootargs如何传递给kernel？kernel的cmdline如何解析？这篇文章相信会为你一扫疑惑！]]></description><category></category></item><item><title><![CDATA[全网最全的Mac代码风格总结]]></title><link>https://blog.youkuaiyun.com/fly_wt/article/details/124676060</link><guid>https://blog.youkuaiyun.com/fly_wt/article/details/124676060</guid><author>fly_wt</author><pubDate>Mon, 09 May 2022 21:42:19 +0800</pubDate><description><![CDATA[全网最全的Mac代码风格总结
Mac的风格的代码样式，有谁会拒绝呢？那么怎样在文章、博文、PPT汇报等界面中将代码转换成Mac风格呢？岛主这里教大家4中方法
1. 一个神奇的转换网站
推荐指数：⭐⭐⭐⭐⭐
只要将代码贴在上面，选择好自己喜欢的代码颜色样式以及背景样式，就可以一键导出Mac风格的代码截图，非常优雅有没有！


评论回复“mac”获取网址链接。
2. 万能的vscode插件
推荐指数：⭐⭐⭐⭐⭐
如果你使用vscode，那么只需下载插件：codeSnape。

使用方法极其简单。选中代码右键点击]]></description><category></category></item><item><title><![CDATA[什么是overcommit_memory?]]></title><link>https://blog.youkuaiyun.com/fly_wt/article/details/122659024</link><guid>https://blog.youkuaiyun.com/fly_wt/article/details/122659024</guid><author>fly_wt</author><pubDate>Sun, 23 Jan 2022 23:05:23 +0800</pubDate><description><![CDATA[1. 前言
在日常的工作中可能我们会经常遇到程序fork失败的问题。遇到fork失败往往有两种可能性：

进程数超标：可以通过cat /proc/sys/kernel/threads-max查看
内存不足

进程数预设值往往很大，几乎不太能超标，所以fork失败的原因大部分都是由于内存不足造成的。
我们知道，由于MMU实现了虚拟地址到物理地址的转换，所以我们在申请虚拟地址时往往可以申请一大块内存，这实际上是对资源的有效利用，毕竟只有内存真正被投入使用时（如memset）才会实际分配物理内存，这种允许内存超额]]></description><category></category></item><item><title><![CDATA[Github+jsDelivr搭建免费快速的个人图床]]></title><link>https://blog.youkuaiyun.com/fly_wt/article/details/122026285</link><guid>https://blog.youkuaiyun.com/fly_wt/article/details/122026285</guid><author>fly_wt</author><pubDate>Sun, 19 Dec 2021 17:02:49 +0800</pubDate><description><![CDATA[香！手把手搭建免费快速的个人图床

本文同步发表如下平台：
优快云：https://editor.youkuaiyun.com/md?not_checkout=1&amp;articleId=122026285
知乎专栏：


经常写博文的朋友对床图肯定不陌生。岛主习惯使用markdown撰写博客，将图片放在床图网站生成外链统一管理，这样一份博文就可以发布在不同的平台。不过免费的床图网站有时不稳定，付费价格又都不便宜。
最近了解到了Github+jsDelivr的方式搭建个人床图，既稳定又快速还免费，突出一个香！
搭]]></description><category></category></item><item><title><![CDATA[如何判断大小端？（C语言实现）]]></title><link>https://blog.youkuaiyun.com/fly_wt/article/details/121887194</link><guid>https://blog.youkuaiyun.com/fly_wt/article/details/121887194</guid><author>fly_wt</author><pubDate>Sun, 12 Dec 2021 14:52:05 +0800</pubDate><description><![CDATA[大端模式：是指数据的高字节保存在内存的低地址中；
小端模式：是指数据的高字节保存在内存的高地址中。]]></description><category></category></item><item><title><![CDATA[hub和交换机区别]]></title><link>https://blog.youkuaiyun.com/fly_wt/article/details/121585424</link><guid>https://blog.youkuaiyun.com/fly_wt/article/details/121585424</guid><author>fly_wt</author><pubDate>Sat, 27 Nov 2021 23:19:01 +0800</pubDate><description><![CDATA[工作层次不同

集线器工作在物理层，属于1层设备，每发送一个数据，所有的端口均可以收到，采用了广播的方式，因此网络性能受到很大的限制。
交换机工作在数据链路层，属于2层设备，通过学习之后，每个端口形成一张MAC地址转发表，根据数据包的MAC地址转发数据，而不是广播形式。


转发方式不同

集线器的工作原理是广播形式，无论哪个端口收到数据之后，都要广播到所有的端口，当接入设备比较多时，网络性能会受到很大的影响。
交换机根据MAC地址转发数据，收到数据包之后，检查报文的目的MAC地址，找到对应的端口进行转..]]></description><category></category></item><item><title><![CDATA[一图看懂结构体对齐]]></title><link>https://blog.youkuaiyun.com/fly_wt/article/details/121446429</link><guid>https://blog.youkuaiyun.com/fly_wt/article/details/121446429</guid><author>fly_wt</author><pubDate>Sat, 20 Nov 2021 22:01:24 +0800</pubDate><description><![CDATA[一图看懂C语言结构体对齐
为什么需要结构体对齐？根本原因在于CPU访问数据的效率问题。

不是所有的硬件平台都能访问任意地址的任意数据，某些硬件平台只能在某些地址处取某些特定类型的数据的，否则抛出异常。
数据结构（尤其是栈）应尽可能在自然边界上对齐，因为在访问为对齐的内存时，处理器需要访问多次，而对齐的内存处理器只需要访问一次。

对齐原则

以 #pragma pack(x) 中 x 的大小和结构中占用空间最大的成员做比较，取小值为 n（外对齐依据）
以 n 值和结构体每个成员比较，得出结果列表为 m[x]]></description><category></category></item><item><title><![CDATA[什么是内存乱序访问？]]></title><link>https://blog.youkuaiyun.com/fly_wt/article/details/121437224</link><guid>https://blog.youkuaiyun.com/fly_wt/article/details/121437224</guid><author>fly_wt</author><pubDate>Sat, 20 Nov 2021 12:33:28 +0800</pubDate><description><![CDATA[什么是内存乱序访问？
文章目录什么是内存乱序访问？1. 编译乱序1.1 编译优化等级1.2 使用volatile1.3 编译器屏障1.4 加锁2. 运行乱序3. 总结
不断深挖计算机底层的原理越发觉得有趣，今天聊聊内存乱序执行的话题。
首先问个问题：我们写得程序会按照既定的顺序执行么？
这似乎毫无疑问。但是了解编译、链接原理的“底层”知识，则不会轻易下定论。特别是在用到多线程涉及到内存共享没有加锁的时候，也会暴露这个问题。
所以很遗憾，在某些情况下，程序指令的执行顺序会发生改变，这就产生了我们所说的内存乱序]]></description><category></category></item><item><title><![CDATA[一款练习汇编的神器——DosBox]]></title><link>https://blog.youkuaiyun.com/fly_wt/article/details/121436063</link><guid>https://blog.youkuaiyun.com/fly_wt/article/details/121436063</guid><author>fly_wt</author><pubDate>Sat, 20 Nov 2021 10:42:25 +0800</pubDate><description><![CDATA[往期回顾
CPU的“三条”总线
物理地址是怎么确定的？以8086为例
前面两节简单地阐述了CPU和内存如何通信以及物理地址的确定方法。今天开始实战演练下如何操纵寄存器和内存，因为岛主是基于8086来学习的汇编，先不谈Linux，这里我们借助一款神器来通透的观察寄存器和内存——DosBox。
DosBox
体验一个裸机的环境，在一个没有操作系统的环境中直接对硬件编程是很酷的一件事情。学习汇编需要使用debug来帮助我们更好地了解计算机系统。王爽老师的《汇编语言》上级环境使用的是dos系统，我们现在一般不会装d]]></description><category></category></item><item><title><![CDATA[物理地址是怎么确定的？以8086为例]]></title><link>https://blog.youkuaiyun.com/fly_wt/article/details/121435502</link><guid>https://blog.youkuaiyun.com/fly_wt/article/details/121435502</guid><author>fly_wt</author><pubDate>Sat, 20 Nov 2021 10:10:17 +0800</pubDate><description><![CDATA[物理地址
我们知道，CPU 访问内存单元时，要给出内存单元的地址。所有的内存单元构成的存储空间是一个一维的线性空间，每一个内存单元在这个空间中都有唯一的地址，我们将这个唯一的地址称为物理地址。
8086是16位结构的CPU，这也就是说，在8086内部，能够一次性处理、传输、暂时存储的信息的最大长度是16位。内存单元的地址在送上地址总线之前，必须在CPU中处理、传输、暂时存放。
而上一篇我们讲到，地址总线的宽度决定CPU的寻址能力。8086有20根地址总线，可以传送20位地址，所以其寻址能力为2^20B，即1]]></description><category></category></item><item><title><![CDATA[结构体初始化的四种方法]]></title><link>https://blog.youkuaiyun.com/fly_wt/article/details/121434848</link><guid>https://blog.youkuaiyun.com/fly_wt/article/details/121434848</guid><author>fly_wt</author><pubDate>Sat, 20 Nov 2021 09:01:55 +0800</pubDate><description><![CDATA[结构体初始化的四种方法
从事嵌入式开发后开始使用C来编程。刚开始觉得非常拧巴，经常阅读C代码也就慢慢习惯了。由于没有类的概念，结构体在C中大量使用，今天聊聊结构体变量初始化的四种方法。
C语言中结构体初始化的四种方法
举例：
 typede struct block { 
 	char name[32];     
 	int type;     
 	int size; 
 }block;

方法一：定义时赋值
 block test = {"version", 1, 32}； 需要注意对应的顺序，不能错]]></description><category></category></item></channel></rss>