<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[LinuxEngineer的专栏]]></title><description><![CDATA[屌丝气质]]></description><link>https://blog.youkuaiyun.com/LinuxEngineer</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; LinuxEngineer]]></copyright><item><title><![CDATA[Linux Device Link机制]]></title><link>https://blog.youkuaiyun.com/LinuxEngineer/article/details/158386271</link><guid>https://blog.youkuaiyun.com/LinuxEngineer/article/details/158386271</guid><author>LinuxEngineer</author><pubDate>Fri, 20 Mar 2026 11:43:27 +0800</pubDate><description><![CDATA[Device link（设备链接）是Linux内核驱动核心中用来表示设备之间依赖关系的机制。它允许驱动作者描述超越单纯父子层次关系的设备依赖，例如兄弟设备之间的依赖，同时能够让驱动核心自动处理这些依赖关系。排序依赖：保证"供应商(supplier)"设备和"消费者(consumer)"设备之间正确的挂起/恢复和关闭排序列驱动存在依赖：保证供应商设备先绑定驱动，消费者设备才会被探测；供应商解除绑定前，消费者会先解除绑定。]]></description><category></category></item><item><title><![CDATA[Linux UCLAMP机制深度分析]]></title><link>https://blog.youkuaiyun.com/LinuxEngineer/article/details/159242984</link><guid>https://blog.youkuaiyun.com/LinuxEngineer/article/details/159242984</guid><author>LinuxEngineer</author><pubDate>Thu, 19 Mar 2026 11:51:54 +0800</pubDate><description><![CDATA[是Linux内核调度器的一个功能，它允许开发者为任务设置CPU利用率上下界，通过约束任务的有效CPU利用率来间接控制CPU频率。精细化控制：从全局频率控制 → 任务级别的细粒度控制性能隔离：不同优先级任务互不干扰，各得其所实时性保证：通过UCLAMP_MIN设置性能基线，避免deadline miss能耗优化：通过UCLAMP_MAX限制不必要的升频，节省能耗API简洁：一个sched_setattr()调用，使用简单。]]></description><category></category></item><item><title><![CDATA[动态规划算法]]></title><link>https://blog.youkuaiyun.com/LinuxEngineer/article/details/114371724</link><guid>https://blog.youkuaiyun.com/LinuxEngineer/article/details/114371724</guid><author>LinuxEngineer</author><pubDate>Wed, 10 Mar 2021 00:04:27 +0800</pubDate><description><![CDATA[题目

剑指 Offer 10- II. 青蛙跳台阶问题

难度简单126收藏分享切换为英文接收动态反馈

一只青蛙一次可以跳上1级台阶，也可以跳上2级台阶。求该青蛙跳上一个n级的台阶总共有多少种跳法。

答案需要取模 1e9+7（1000000007），如计算初始结果为：1000000008，请返回 1。

示例 1：


输入：n = 2
输出：2


示例 2：


输入：n = 7
输出：21


示例 3：


输入：n = 0
输出：1

提示：

0 &lt;= n &lt;= 100
注..]]></description><category></category></item><item><title><![CDATA[链表求和]]></title><link>https://blog.youkuaiyun.com/LinuxEngineer/article/details/114085987</link><guid>https://blog.youkuaiyun.com/LinuxEngineer/article/details/114085987</guid><author>LinuxEngineer</author><pubDate>Thu, 25 Feb 2021 15:49:57 +0800</pubDate><description><![CDATA[题目：

分析：

算法
]]></description><category></category></item><item><title><![CDATA[分治算法]]></title><link>https://blog.youkuaiyun.com/LinuxEngineer/article/details/113871331</link><guid>https://blog.youkuaiyun.com/LinuxEngineer/article/details/113871331</guid><author>LinuxEngineer</author><pubDate>Sat, 20 Feb 2021 10:30:17 +0800</pubDate><description><![CDATA[基本思想

分治算法是将规模比较大的问题，拆解成规模较小的问题，递归拆解下去，一直到问题小到可以直接得出结论．最终，再将这些子问题的解合并成最终问题的解．

分治算法与动态规划算法的本质区别是，子问题之间相互独立，能够最终合并成最终解．动态规划算法分解的子问题有以下特点：一个子问题在下一阶段决策中可能被多次使用到！

经典例题

题目：剑指 Offer 53 - I. 在排序数组中查找数字 I

描述：统计一个数字在排序数组中出现的次数

示例 1:

输入: nums = [5,7,7,8,8,10], ]]></description><category></category></item><item><title><![CDATA[算法系列文章1：约瑟夫环]]></title><link>https://blog.youkuaiyun.com/LinuxEngineer/article/details/113395790</link><guid>https://blog.youkuaiyun.com/LinuxEngineer/article/details/113395790</guid><author>LinuxEngineer</author><pubDate>Fri, 29 Jan 2021 19:34:16 +0800</pubDate><description><![CDATA[问题：

0,1,2,...n这n个数排成一个圈, 从数字0开始，每次从这个圈里删除第m个数字．删除后从下一个数字开始，求出从这个圈里剩下的最后一个数字．

例如：0,1,2,3,4,5 m=3 最后剩下的是数字3．

分析：

首先，我们考虑是否能够按照平时最常规的方法（循环处理的方式进行求解）进行处理．虽然能够处理但时间复杂度应该比较高．但我们在这里也把代码写出来．

算法：

算法1，使用循环处理的方式，但这种方法时间复杂度较高．


class solution{
public:
    int l]]></description><category></category></item><item><title><![CDATA[软件程序员必备技能]]></title><link>https://blog.youkuaiyun.com/LinuxEngineer/article/details/91045115</link><guid>https://blog.youkuaiyun.com/LinuxEngineer/article/details/91045115</guid><author>LinuxEngineer</author><pubDate>Thu, 06 Jun 2019 15:45:09 +0800</pubDate><description><![CDATA[从业多年后，根据自身的工作经验和网上的一些文章，简单总结了一下作为一个程序员应该具备哪些技能。

鄙人浅见，如果有遗漏或者不对的地方，还请大家指正，我们共同讨论。


...]]></description><category></category></item><item><title><![CDATA[高通kernel顶层目录下的AndroidKernel.mk文件]]></title><link>https://blog.youkuaiyun.com/LinuxEngineer/article/details/78191694</link><guid>https://blog.youkuaiyun.com/LinuxEngineer/article/details/78191694</guid><author>LinuxEngineer</author><pubDate>Tue, 10 Oct 2017 13:46:10 +0800</pubDate><description><![CDATA[目录(?)[-]

高通kernel顶层目录下的AndroidKernelmk文件

文件层级结构文件具体内容带注释

定义变量第一处PERL变量

KERNEL_TARGET 和 INSTALLED_KERNEL_TARGET 变量TARGET_KERNEL_ARCH 和 KERNEL_ARCH 变量TARGET_KERNEL_HEADER_ARCH 和 KERNEL_HEADE]]></description><category></category></item><item><title><![CDATA[git如何合并只有两个commit到一个]]></title><link>https://blog.youkuaiyun.com/LinuxEngineer/article/details/78019315</link><guid>https://blog.youkuaiyun.com/LinuxEngineer/article/details/78019315</guid><author>LinuxEngineer</author><pubDate>Mon, 18 Sep 2017 15:05:59 +0800</pubDate><description><![CDATA[用rebase -i

比如下图的commit 历史，想要把 "Second change" 和 "Third change" 这两个commit合并到一起





那么可以 





1




git rebase -i 7a734e9d47895e096313003d6a2e4f697a16e2e3






注意 7a734e9d4]]></description><category></category></item><item><title><![CDATA[Linux终端使用技巧]]></title><link>https://blog.youkuaiyun.com/LinuxEngineer/article/details/54287765</link><guid>https://blog.youkuaiyun.com/LinuxEngineer/article/details/54287765</guid><author>LinuxEngineer</author><pubDate>Mon, 09 Jan 2017 12:15:44 +0800</pubDate><description><![CDATA[Shift+Ctrl+T:新建标签页
Shift+Ctrl+W:关闭标签页
Ctrl+PageUp:前一标签页
Ctrl+PageDown:后一标签页
Shift+Ctrl+PageUp:标签页左移
Shift+Ctrl+PageDown:标签页右移
Alt+1:切换到标签页1
Alt+2:切换到标签页2
Alt+3:切换到标签页3
Shift+Ctrl+N:新建窗口
Shif]]></description><category></category></item><item><title><![CDATA[ADB不识别device not found]]></title><link>https://blog.youkuaiyun.com/LinuxEngineer/article/details/51322849</link><guid>https://blog.youkuaiyun.com/LinuxEngineer/article/details/51322849</guid><author>LinuxEngineer</author><pubDate>Thu, 05 May 2016 14:43:32 +0800</pubDate><description><![CDATA[ADB不识别device not found，以下是5条简单方法：
1.手机usb 数据线连接pc咯，在设备管理器里看看有没的黄色的未安装驱动的设备，有的话就把手机驱动拿过来装下（尽量多刷新几次）。
2. 在cmd里直接adb shell，有问题的话会出现"device notfound"，我呢，参考网上的说法“adbkill-server”再"adbstart-server"..算是一种方式]]></description><category></category></item><item><title><![CDATA[c++动态联编与静态联编]]></title><link>https://blog.youkuaiyun.com/LinuxEngineer/article/details/50196399</link><guid>https://blog.youkuaiyun.com/LinuxEngineer/article/details/50196399</guid><author>LinuxEngineer</author><pubDate>Sun, 06 Dec 2015 17:11:30 +0800</pubDate><description><![CDATA[摘要】：本文阐述了静态联编和动态联编的概念和区别，通过具体实例分析了实现动态联编的条件，指出了虚函数是实现动态联编的基础。

【关键词】：静态联编；动态联编；虚函数


在C++中，联编是指一个计算机程序的不同部分彼此关联的过程。按照联编所进行的阶段不同，可分为两种不同的联编方法：静态联编和动态联编。

    1. 静态联编



静态联编是指联编工作在编译阶段完成的，这种]]></description><category></category></item><item><title><![CDATA[Linux shell command]]></title><link>https://blog.youkuaiyun.com/LinuxEngineer/article/details/49071283</link><guid>https://blog.youkuaiyun.com/LinuxEngineer/article/details/49071283</guid><author>LinuxEngineer</author><pubDate>Mon, 12 Oct 2015 11:22:28 +0800</pubDate><description><![CDATA[Linux shell command
Verify the file size 
For example: dump -h –max-depth=1 Work/
This command can show the size of all files located in the “Work” 
 directory.]]></description><category></category></item><item><title><![CDATA[WIFI基本知识整理]]></title><link>https://blog.youkuaiyun.com/LinuxEngineer/article/details/48468661</link><guid>https://blog.youkuaiyun.com/LinuxEngineer/article/details/48468661</guid><author>LinuxEngineer</author><pubDate>Tue, 15 Sep 2015 15:46:41 +0800</pubDate><description><![CDATA[这里对wifi的802.11协议中比较常见的知识做一个基本的总结和整理，便于后续的学习。因为无线网络中涉及术语很多，并且许多协议都是用英文描述，所以有些地方翻译出来会有歧义，这种情况就直接英文来描述了。

 

主要内容：

一、基本概述

二、实践基础

三、一些原理

四、补充

五、其它

 

 

一、基本概述

===============]]></description><category></category></item><item><title><![CDATA[package用法]]></title><link>https://blog.youkuaiyun.com/LinuxEngineer/article/details/47980413</link><guid>https://blog.youkuaiyun.com/LinuxEngineer/article/details/47980413</guid><author>LinuxEngineer</author><pubDate>Tue, 25 Aug 2015 17:36:59 +0800</pubDate><description><![CDATA[java应用程序文件
这个说法是我自己抽象出来的，指的是一般的组织在package中的所有文件。
大体分成这三种：
1，java程序源文件，扩展名为.java。
2，编译好的java类文件，扩展名为.class。
3，其他文件，除了以上的，就是资源文件。
例如图片文件，xml文件，mp3文件
等等等等都可以组织在package之中。(你当然也可以把一部电影放在package里面，当然]]></description><category></category></item><item><title><![CDATA[Linux下查看文件和文件夹大小]]></title><link>https://blog.youkuaiyun.com/LinuxEngineer/article/details/47803877</link><guid>https://blog.youkuaiyun.com/LinuxEngineer/article/details/47803877</guid><author>LinuxEngineer</author><pubDate>Thu, 20 Aug 2015 10:15:01 +0800</pubDate><description><![CDATA[当磁盘大小超过标准时会有报警提示，这时如果掌握df和du命令是非常明智的选择。

    df可以查看一级文件夹大小、使用比例、档案系统及其挂入点，但对文件却无能为力。
    du可以查看文件及文件夹的大小。

    两者配合使用，非常有效。比如用df查看哪个一级目录过大，然后用df查看文件夹或文件的大小，如此便可迅速确定症结。

    下面分别简要介绍

    df命令]]></description><category></category></item><item><title><![CDATA[Android Alarm自上而下 调试浅析]]></title><link>https://blog.youkuaiyun.com/LinuxEngineer/article/details/47682397</link><guid>https://blog.youkuaiyun.com/LinuxEngineer/article/details/47682397</guid><author>LinuxEngineer</author><pubDate>Sat, 15 Aug 2015 15:39:21 +0800</pubDate><description><![CDATA[1.为了创建一个新的Alarm，使用set方法并指定一个Alarm类型、触发时间和在Alarm触发时要调用的Intent。如果你设定的Alarm发生在过去，那么，它将立即触发。

这里有4种Alarm类型。你的选择将决定你在set方法中传递的时间值代表什么，是特定的时间或者是时间流逝：

❑ RTC_WAKEUP

在指定的时刻（设置Alarm的时候），唤醒设备来触发Intent。
]]></description><category></category></item><item><title><![CDATA[C语言指针强制类型转换]]></title><link>https://blog.youkuaiyun.com/LinuxEngineer/article/details/45749501</link><guid>https://blog.youkuaiyun.com/LinuxEngineer/article/details/45749501</guid><author>LinuxEngineer</author><pubDate>Fri, 15 May 2015 20:57:50 +0800</pubDate><description><![CDATA[概要：

C语言中，任何一个变量都必须占有一个地址，而这个地址空间内的0-1代码就是这个变量的值。不同的数据类型占有的空间大小不一，但是他们都必须有个地址，而这个地址就是硬件访问的依据，而名字只是提供给程序员的一种记住这个地址的方便一点的方法。但是，不同的变量在机器中都是0-1代码，所以，我们不能简单的通过检查一个值的位来判断它的类型。

例如，定义如下：

int a;

 fl]]></description><category></category></item><item><title><![CDATA[复制构造函数（拷贝构造函数）]]></title><link>https://blog.youkuaiyun.com/LinuxEngineer/article/details/45130671</link><guid>https://blog.youkuaiyun.com/LinuxEngineer/article/details/45130671</guid><author>LinuxEngineer</author><pubDate>Sun, 19 Apr 2015 17:00:13 +0800</pubDate><description><![CDATA[也许很多C++的初学者都知道什么是构造函数，但是对复制构造函数（copy constructor）却还很陌生。对于我来说，在写代码的时候能用得上复制构造函数的机会并不多，不过这并不说明复制构造函数没什么用，其实复制构造函数能解决一些我们常常会忽略的问题。
       为了说明复制构造函数作用，我先说说我们在编程时会遇到的一些问题。对于C++中的函数，我们应该很熟悉了，因为平常经常使用；对于类的]]></description><category></category></item><item><title><![CDATA[Linux Driver porting的步骤]]></title><link>https://blog.youkuaiyun.com/LinuxEngineer/article/details/44980051</link><guid>https://blog.youkuaiyun.com/LinuxEngineer/article/details/44980051</guid><author>LinuxEngineer</author><pubDate>Fri, 10 Apr 2015 15:15:40 +0800</pubDate><description><![CDATA[1. 认真阅读IC的spec，我们需要从中读出一些有用的信息。
    1） IC正确的（或者可以说精确的）上电时序，这其中包括，Host端控制IC时存在几个pin（regulator， GPIO等），这几个pin严格的上点时序是怎么样的。
    2）IC上电时，是否需要发送一定的初始化序列，来保证IC的正常工作。
    3）IC的正常工作时的工作原理及工作模式等。
2. Driver]]></description><category></category></item></channel></rss>