<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[chuck_huang的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/chuck_huang</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; chuck_huang]]></copyright><item><title><![CDATA[Ubuntu 18.04 必备设置]]></title><link>https://blog.youkuaiyun.com/chuck_huang/article/details/105472831</link><guid>https://blog.youkuaiyun.com/chuck_huang/article/details/105472831</guid><author>chuck_huang</author><pubDate>Sun, 12 Apr 2020 17:40:33 +0800</pubDate><description><![CDATA[Ubuntu 18.04 必备设置
移除libreoffice
sudo apt remove libreoffice*

设置缩放匹配4K屏幕
gsettings set org.gnome.desktop.interface scaling-factor x

x 可根据屏幕尺寸设置为 1.75 或者 2
网络相关软件
sudo apt install net-tools proxychain...]]></description><category></category></item><item><title><![CDATA[A Linux Kernel Miracle Tour - 内存回收]]></title><link>https://blog.youkuaiyun.com/chuck_huang/article/details/80212666</link><guid>https://blog.youkuaiyun.com/chuck_huang/article/details/80212666</guid><author>chuck_huang</author><pubDate>Sun, 06 May 2018 11:08:49 +0800</pubDate><description><![CDATA[内存回收



为什么需要内存回收

因为Linux的设计是用内存换效率，所以有多少内存它就会吃多少内存。如果你读一次文件，它会使用内存缓存文件，你每次修改不用操作实际的存储设备，而只是操作内存而言。所以随着系统运行时间的推移，越来越来的内存被用作系统加速的缓存。当你申请内存的时候，可能发现已经没有足够可用的内存了。所以内存回收就是为了解决这样的问题而诞生的。



内存回收回收哪些内存

所谓的...]]></description><category></category></item><item><title><![CDATA[AT&T 汇编入门 - 寻址方式]]></title><link>https://blog.youkuaiyun.com/chuck_huang/article/details/79936459</link><guid>https://blog.youkuaiyun.com/chuck_huang/article/details/79936459</guid><author>chuck_huang</author><pubDate>Sat, 14 Apr 2018 03:11:02 +0800</pubDate><description><![CDATA[AT&amp;amp;T 汇编入门 - 寻址方式



网上已经有很多文章讲述寻址方式。 
其实从汇编的角度来看，寻址方式分为以下4种基本类型化。 
- 立即数寻址 
- 寄存器寻址 
- 内存寻址 
- IO 端口寻址

立即数寻址



movl $0x1234, %rdi
addl 22, value

寄存器寻址



movl %rax, %rbx
movl %rax, space

内存寻址
...]]></description><category></category></item><item><title><![CDATA[AT&T 汇编入门 - 汇编使用printf]]></title><link>https://blog.youkuaiyun.com/chuck_huang/article/details/79936322</link><guid>https://blog.youkuaiyun.com/chuck_huang/article/details/79936322</guid><author>chuck_huang</author><pubDate>Sat, 14 Apr 2018 00:48:43 +0800</pubDate><description><![CDATA[AT&amp;amp;T 汇编入门 - 汇编使用printf



一般 C 语言的hello world 我们都是通过printf 打印的，而不是直接往stdout 写入字符串. 
那我们现在就来试试如何在汇编中调用libc的printf 函数。

    .section .data
msg:
    .ascii &quot;hello world!\n&quot;

    .section .text
    .g...]]></description><category></category></item><item><title><![CDATA[AT&T 汇编入门 - Hello World]]></title><link>https://blog.youkuaiyun.com/chuck_huang/article/details/79922595</link><guid>https://blog.youkuaiyun.com/chuck_huang/article/details/79922595</guid><author>chuck_huang</author><pubDate>Fri, 13 Apr 2018 03:25:16 +0800</pubDate><description><![CDATA[AT&amp;amp;T 汇编入门 - Hello World



文档的目的是为了能够入门x86_64 GNU Assembly 和 能够看懂 Linux Kernel 的启动代码。涉及的汇编知识未必是深入和最优的，如发现错误或者对实际的汇编程序编写的影响，请评论指出。

平台：Intel x86_64

编译器： gas

汇编组成



汇编程序是由定义好的段组成的，每个段的意义都不一样。最常用的...]]></description><category></category></item><item><title><![CDATA[Linux Kernel 基础 - 链表]]></title><link>https://blog.youkuaiyun.com/chuck_huang/article/details/79851564</link><guid>https://blog.youkuaiyun.com/chuck_huang/article/details/79851564</guid><author>chuck_huang</author><pubDate>Sun, 08 Apr 2018 14:48:35 +0800</pubDate><description><![CDATA[内核链表



链表作为数据结构的最基本类型，内核在各个模块基本都会使用到。单纯的链表没有任何意义。内核对于链表的使用是将链表内嵌入各种数据结果，从面向对象的角度来看就是用链表将各种对象的实例都通过链表链接起来。那让我们来看看链表在内核的实现



链表的结构体



struct list_head {
    struct list_head *next, *prev;
};

此结构体就是内...]]></description><category></category></item><item><title><![CDATA[KVM 虚拟化学习笔记-1]]></title><link>https://blog.youkuaiyun.com/chuck_huang/article/details/79833362</link><guid>https://blog.youkuaiyun.com/chuck_huang/article/details/79833362</guid><author>chuck_huang</author><pubDate>Fri, 06 Apr 2018 14:30:08 +0800</pubDate><description><![CDATA[KVM 虚拟化学习笔记



什么是KVM？

Kernel-based Virtual Machine的简称，是一个 Linux Kernel 的模块。它是一种全虚拟化的解决方案，目前在x86，AMD和ARM都已经支持。使用KVM虚拟机，你可以在其上运行没有修改过代码的Linux 和 Windows 操作系统。

KVM 开发环境

本学习笔记主要是针对 kernel + kvmtool 的环境...]]></description><category></category></item><item><title><![CDATA[深入浅出内存管理-内存初始化]]></title><link>https://blog.youkuaiyun.com/chuck_huang/article/details/79740482</link><guid>https://blog.youkuaiyun.com/chuck_huang/article/details/79740482</guid><author>chuck_huang</author><pubDate>Thu, 29 Mar 2018 11:51:51 +0800</pubDate><description><![CDATA[深入浅出内存管理-内存初始化

]]></description><category></category></item><item><title><![CDATA[深入浅出内存管理-memblock]]></title><link>https://blog.youkuaiyun.com/chuck_huang/article/details/78733543</link><guid>https://blog.youkuaiyun.com/chuck_huang/article/details/78733543</guid><author>chuck_huang</author><pubDate>Wed, 06 Dec 2017 18:16:13 +0800</pubDate><description><![CDATA[深入浅出内存管理-memblock]]></description><category></category></item><item><title><![CDATA[A Linux Kernel Miracle Tour - 启程]]></title><link>https://blog.youkuaiyun.com/chuck_huang/article/details/78585360</link><guid>https://blog.youkuaiyun.com/chuck_huang/article/details/78585360</guid><author>chuck_huang</author><pubDate>Mon, 20 Nov 2017 23:55:08 +0800</pubDate><description><![CDATA[A Linux Kernel Miracle Tour - 启程]]></description><category></category></item><item><title><![CDATA[Linux Shell 特殊符号]]></title><link>https://blog.youkuaiyun.com/chuck_huang/article/details/78440496</link><guid>https://blog.youkuaiyun.com/chuck_huang/article/details/78440496</guid><author>chuck_huang</author><pubDate>Fri, 03 Nov 2017 23:02:35 +0800</pubDate><description><![CDATA[$# 是传给脚本的参数个数 
$0 是脚本本身的名字 
$1 是传递给该shell脚本的第一个参数 
$2 是传递给该shell脚本的第二个参数 
$@ 是传给脚本的所有参数的列表 
$* 是以一个单字符串显示所有向脚本传递的参数，与位置变量不同，参数可超过9个 
$$ 是脚本运行的当前进程ID号 
$? 是显示最后命令的退出状态，0表示没有错误，其他表示有错误

判断语句的参数请自己man te]]></description><category></category></item></channel></rss>