<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="http://wiki.linuxtoy.cn/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://wiki.linuxtoy.cn/feed.php">
        <title>LinuxToy - blog:programming</title>
        <description></description>
        <link>http://wiki.linuxtoy.cn/</link>
        <image rdf:resource="http://wiki.linuxtoy.cn/lib/exe/fetch.php?media=wiki:dokuwiki.svg" />
       <dc:date>2026-05-14T16:01:29+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://wiki.linuxtoy.cn/doku.php?id=blog:programming:c_unsigned_and_signed&amp;rev=1738509028&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.linuxtoy.cn/doku.php?id=blog:programming:float_number&amp;rev=1738509028&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.linuxtoy.cn/doku.php?id=blog:programming:linux_daemon_process&amp;rev=1738509028&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.linuxtoy.cn/doku.php?id=blog:programming:linux_gnuc_attribute&amp;rev=1738509028&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.linuxtoy.cn/doku.php?id=blog:programming:linux_kernel_ftrace&amp;rev=1738509028&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.linuxtoy.cn/doku.php?id=blog:programming:linux_locks&amp;rev=1738509028&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.linuxtoy.cn/doku.php?id=blog:programming:linux_process&amp;rev=1738509028&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.linuxtoy.cn/doku.php?id=blog:programming:linux_stack&amp;rev=1738509028&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.linuxtoy.cn/doku.php?id=blog:programming:makefile&amp;rev=1738509028&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://wiki.linuxtoy.cn/lib/exe/fetch.php?media=wiki:dokuwiki.svg">
        <title>LinuxToy</title>
        <link>http://wiki.linuxtoy.cn/</link>
        <url>http://wiki.linuxtoy.cn/lib/exe/fetch.php?media=wiki:dokuwiki.svg</url>
    </image>
    <item rdf:about="http://wiki.linuxtoy.cn/doku.php?id=blog:programming:c_unsigned_and_signed&amp;rev=1738509028&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-02T15:10:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>c_unsigned_and_signed</title>
        <link>http://wiki.linuxtoy.cn/doku.php?id=blog:programming:c_unsigned_and_signed&amp;rev=1738509028&amp;do=diff</link>
        <description>C语言无符号数与有符号数的比较

在算术运算和关系运算中如果参与运算的操作数类型不同，编译系统会自动对数据类型进行转换(隐式转换)

赋值表达式中，右边表达式的值隐式转换为左边变量的类型,并赋值给左边.
函数调用时，隐式将实参转换为形参的类型后，再赋值为形参.</description>
    </item>
    <item rdf:about="http://wiki.linuxtoy.cn/doku.php?id=blog:programming:float_number&amp;rev=1738509028&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-02T15:10:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>float_number</title>
        <link>http://wiki.linuxtoy.cn/doku.php?id=blog:programming:float_number&amp;rev=1738509028&amp;do=diff</link>
        <description>浮点数在计算机中的表示方法



reference:
1. CSDN 浮点数在计算机中的表示
2. IEEE_754 

转换

	* 一个十进制的浮点数，例如：abcd.efg  (其中a~g为0..9)，用多项式表示为：
    a*10^3 + b*10^2 + c*10^1 + d*10^0 + e*10^(-1) + f*10^(-1) + g*10^(-3)

	* 一个二进制的浮点数，我们也将其表示成：abcd.efg  (其中a~g为0或1)，用多项式表示为：</description>
    </item>
    <item rdf:about="http://wiki.linuxtoy.cn/doku.php?id=blog:programming:linux_daemon_process&amp;rev=1738509028&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-02T15:10:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>linux_daemon_process</title>
        <link>http://wiki.linuxtoy.cn/doku.php?id=blog:programming:linux_daemon_process&amp;rev=1738509028&amp;do=diff</link>
        <description>Linux daemon进程

什么是daemon进程

daemon进程是指长时间运行在后台的进程，也叫守护进程.

为什么会有daemon进程?

由于控制终端的原因(例如断开终端连接)会产生一些信号, 进程接受到这些信号的缺省动作是让进程退出.</description>
    </item>
    <item rdf:about="http://wiki.linuxtoy.cn/doku.php?id=blog:programming:linux_gnuc_attribute&amp;rev=1738509028&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-02T15:10:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>linux_gnuc_attribute</title>
        <link>http://wiki.linuxtoy.cn/doku.php?id=blog:programming:linux_gnuc_attribute&amp;rev=1738509028&amp;do=diff</link>
        <description>GNUC compiler attribute

GNU C的__attribute__机制可以设置函数属性, 变量属性和类型属性.
语法格式：
__attribute__((attribute list))
attribute前后都有两个下划线，并紧跟一对圆扩号。 放置于声明的尾部，</description>
    </item>
    <item rdf:about="http://wiki.linuxtoy.cn/doku.php?id=blog:programming:linux_kernel_ftrace&amp;rev=1738509028&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-02T15:10:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>linux_kernel_ftrace</title>
        <link>http://wiki.linuxtoy.cn/doku.php?id=blog:programming:linux_kernel_ftrace&amp;rev=1738509028&amp;do=diff</link>
        <description>linux ftrace 简介



ftrace背景

ftrace 是 Function Trace的意思, 最开始主要用于记录内核函数的运行轨迹
随着功能的逐渐增加，演变成一个用于trace的framework.

static tracepoints

static tracepoints within the kernel (event tracing)</description>
    </item>
    <item rdf:about="http://wiki.linuxtoy.cn/doku.php?id=blog:programming:linux_locks&amp;rev=1738509028&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-02T15:10:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>linux_locks</title>
        <link>http://wiki.linuxtoy.cn/doku.php?id=blog:programming:linux_locks&amp;rev=1738509028&amp;do=diff</link>
        <description>Concurrency and locks in linux

进程上下文与中断上下文

什么是进程

什么是上下文

中断为何不属于进程

内核中的互斥机制

信号量semaphore

读取者/写入者信号量rwsem

completion

自旋锁

读取者/写入者自旋锁</description>
    </item>
    <item rdf:about="http://wiki.linuxtoy.cn/doku.php?id=blog:programming:linux_process&amp;rev=1738509028&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-02T15:10:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>linux_process</title>
        <link>http://wiki.linuxtoy.cn/doku.php?id=blog:programming:linux_process&amp;rev=1738509028&amp;do=diff</link>
        <description>linux进程

进程是程序执行时的一个实例
? 多线程应用程序的多个执行流的创建、处理、调度都是在用户态进行的(通常使用POSIX兼容的pthread库)

进程描述符

作用: 用于管理进程
类型：task_struct</description>
    </item>
    <item rdf:about="http://wiki.linuxtoy.cn/doku.php?id=blog:programming:linux_stack&amp;rev=1738509028&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-02T15:10:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>linux_stack</title>
        <link>http://wiki.linuxtoy.cn/doku.php?id=blog:programming:linux_stack&amp;rev=1738509028&amp;do=diff</link>
        <description>Stack and Heap in linux



进程地址空间

Linux使用虚拟内存机制来管理计算机中的物理内存.
每个进程的内存空间都是独立的(在物理地址空间上)，假如在32位系统中,进程虚拟地址的起始地址都是0x08048000h
对于同时运行的多个进程而言，就像运行在自己的内存小宇宙中，他们都认为其内存地址
开始于同一个地址。</description>
    </item>
    <item rdf:about="http://wiki.linuxtoy.cn/doku.php?id=blog:programming:makefile&amp;rev=1738509028&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-02T15:10:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>makefile</title>
        <link>http://wiki.linuxtoy.cn/doku.php?id=blog:programming:makefile&amp;rev=1738509028&amp;do=diff</link>
        <description>Makefile

Basic rules



每条规则由 &quot;目标，依赖，命令&quot; 组成
TARGET : PREREQUISITES
    COMMAND
    ...
    ...


make 根据规则的依赖关系，决定是否执行规则所定义的命令

Makefile中的内容:
1. 显式规则
  描述了如果更新目标文件，需要明确的给出目标文件，依赖文件，命令.
 (有些规则没有命令，这样的规则只是描述了文件的依赖关系)</description>
    </item>
</rdf:RDF>
