自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

代码背包客的博客

在代码的海洋中像背包客一样拥有积极,乐观,开放和包容的态度,乐于接受新事物和新挑战,勇于面对困难和挫折。用代码改变世界。

  • 博客(32)
  • 收藏
  • 关注

原创 一文掌握ADB的安装及使用

ADB(Android Debug Bridge)是一款功能强大的Androd开发工具,可用于在计算机和Android设备之间进行通信和控制。

2025-01-27 13:02:26 3468

原创 大数运算之C语言实现

在我们代码编程过程中,我们经常需要处理各种规模的数值。从日常工作中的一些简单算术在到科学研究中的复杂计算,数字无处不在。然而,当数值变的异常庞大时,就需要用到大数运算来进行实现。本文我们将介绍大数运算的基本概念以及C语言实现大数运算的方法。

2025-01-25 23:30:53 861

原创 统计安卓手机一段时间内进程中每个线程的平均CPU使用率

在Android系统性能监控中,统计每个线程在一段时间内的平均CPU使用率对开发者来说是一个重要的任务.因为这不仅有助于我们了解设备的运行状况,还能帮助开发者优化应用性能。下文我将介绍如何在Android手机上实现统计一个进程中每个线程的平均CPU使用率。

2025-01-25 16:04:17 720

原创 制作一个纯净版的系统镜像(Linux,Window都可以)

现如今,电脑已经成为我们工作和生活中不可或缺的工具,我们可以使用电脑来帮助我们做许多事情,那么当我们的电脑出现问题,需要重新安装一个新的系统时,我们该如何重新给我们的电脑安装一个新的系统呢,本文我们将介绍如何使用UltralSO来给我们的电脑制作一个绿色安全的系统镜像。

2025-01-05 20:18:21 2634

原创 Linux内核编码风格及检测脚本与格式化工具

Linux内核的编码风格是我们在编写内核代码或者提交patch时需要参考遵守的一套规范,它不仅可以增强代码的可读性和可维护性,还可以更好的确保代码质量以及方便团队协作。本文我们将详细介绍Linux内核编码风格的一些基本要点,并探讨如何使用检测脚本checkpatch.pl以及C代码格式化工具indent来确保我们的代码更好的符合这些规范。

2025-01-05 20:17:15 918

原创 Ftrace: 深入探究Linux内核的追踪利器

Ftrace(Function Trace) 是 Linux 内核自 2.6.27 版本起引入的一个内核级别的追踪子系统。它提供了丰富的追踪功能,例如函数调用追踪、中断追踪、调度程序追踪等,可以帮助我们深入了解内核代码的运行细节。

2024-12-29 20:36:51 1333

原创 如何使用交叉编译器调试C语言程序在安卓设备中运行

随着移动设备的普及与技术的飞速发展,越来越多的开发者面临着在Android设备上运行和调试C语言等程序的需求。然而,在软件开发的世界里,不同硬件架构对程序运行的要求千差万别,这无疑增加了开发的复杂性。特别是在移动计算领域,Android设备以其多样的硬件架构和操作系统版本而著称,包括ARM、x86、MIPS等多种处理器架构,每种架构都拥有独特的指令集和硬件特性。传统的编译器是为特定主机平台设计的,能够生成在该平台上直接运行的二进制代码。

2024-12-29 20:34:36 995

原创 一文搞懂Linux kernel编译步骤

什么是Linux的内核编译呢?简单来说,Linux内核编译是一个将内核源代码转换成可在特定的硬件架构上运行的二进制文件的过程。通过编译内核,我们可以根据自己的需求和兴趣对内核进行定制和优化,以满足特定的应用场景。

2024-11-06 20:12:28 2586

原创 Linux kernel 源码下载与源码在线阅读地址及其相关资源网站

Linux内核源码的下载地址和在线阅读方式有多种,下面是一些与之相关的网址。同时也包含一些与kernel相关的一些资源网站,供大家参考学习!

2024-11-06 09:27:30 1546

原创 dpkg:错误:另外一个进程已经为dpkg前端锁加锁

在新装ubuntu系统时,我们常常会遇见dpkg的错误,,如下图。

2024-10-19 18:00:13 3825

原创 Oracle VM VirtualBox虚拟机内存不够用的解决方案

在使用Oracle VM VirtualBox虚拟机的过程中,随着时间的推移,我们会感觉我们的内存越来越不够用,今天就来给大家分享一下我们如何解决虚拟机内存不够用的问题。

2024-08-14 18:57:45 1096

原创 VirtualBox虚拟机启动显示:系统出错并无法恢复,请尝试注销并重新登录的解决方法

虚拟机之前一直正常,无任何改动,隔了一段时间用Oracle VM VirtualBox虚拟机打开ubuntu20.04时,出现下图所示错误,注销并重新登录后依旧无法解决。

2024-08-14 09:54:45 1096

原创 深入理解ARM64的函数调用标准与栈布局

函数调用标准(Procedure Call Standard, PCS)是指在函数调用过程中,对父/子函数如何编译以及链接做一些规范和约定。如参数的传递,返回值处理、寄存器的使用和栈的布局等。函数调用标准定义了函数调用的具体实现机制。对于不同的处理器架构都有不同的函数调用标准,本文我们将讲解关于ARM64的函数调用标准。是一份描述ARM64架构函数调用的标准和规范文档。该文档网址地址点这里。每个函数(同时具有caller和callee)的栈结构格式栈顶保存的是自己的栈帧基地址,即指向上一个栈帧的栈顶。

2024-07-07 17:51:26 1715

原创 探索Linux世界的趣味命令:解锁你的终端新玩法

Linux中有趣的命令我们今天先分享到这里,希望通过学习和使用这些命令,能使我们在繁忙的工作和生活中找到一些乐趣和放松,激发出我们对Linux世界的更多好奇和探索欲。

2024-07-06 22:24:10 1271

原创 Vim新手之路:熟练使用操作指令

vim常用指令说明。

2024-07-06 18:33:42 1150

原创 C语言边界处理 —— 哨兵思想

哨兵思想的基本思路是:在数据结构的末尾添加一个特殊的"哨兵"元素,这个哨兵元素具有一些特殊的性质,可以用来判断是否已经到达了数据结构的边界。哨兵元素通常是一个特殊的值,比如数字-1、字符'\0'等。这个特殊值不会出现在正常的数据中。通过检查是否遇到了哨兵元素,我们可以知道是否已经到达了数据结构的边界。在遍历或处理数据结构时,我们可以一直遍历到遇到哨兵元素为止,这样就可以确保不会越过数据结构的边界。我们来看一下下面这段代码// 不使用哨兵的 find_index 函数i < n;i++) {

2024-07-02 20:32:52 614

原创 ARMv8寄存器详解

本文我来给大家介绍一下ARMv8的寄存器部分,ARMv8中有34个寄存器,包括31个通用寄存器、一个栈指针寄存器SP(X31),一个程序计数器寄存器PC,一个处理器状态寄存器PSTATE(在ARMv7架构中使用程序状态寄存器(Current Program Status Register,CPSR)来表示当前的处理器状态(processor stste),而在ARMv8里使用PSTATE寄存器来表示)。寄存器位数描述X0-X3064bit通用寄存器,如果有需要可以当作32bit使用:W0-W30。

2024-07-02 15:41:06 3023

原创 VSCode下MarkDown格式操作详解

Markdown 是一种轻量级的标记语言,Markdown 的简单性、可读性、跨平台性以及内容优先的特点,使的它成为当下非常流行的文本标记语言,广泛应用于各种内容创作和发布场景中。[在这里插述](https://img-blog.csdnimg.cn/direct/2f217b06bb1f44ee8de923140fde0723.png)这是一个在线的数学公式编译[网址](https://www.2weima.com/gongshi.html)17.(专心模式)专心写文档,ctrl + K 松开后按Z。

2024-06-29 18:31:29 1614

原创 一文搞懂计算机的大小端

大小端(Endianness)是计算机中一个非常重要的概念,它描述了数据在内存中的存储方式。在大端法中,数据的高位字节存储在内存的低地址处,低位字节存储在高地址处。也就是说,多字节数据在内存中的存储顺序是从高位到低位。在小端法中,数据的低位字节存储在内存的低地址处,高位字节存储在高地址处。也就是说,多字节数据在内存中的存储顺序是从低位到高位。我们可以通过下面这副图来帮助我们更清晰的理解大小端。

2024-06-29 11:45:42 475

原创 ARMV8的基本介绍

ARM处理器实现的是精简指令集体系结构。下面我们来看一下ARMv8体系结构中的一些基本概念和定义。在ARM公司的技术手册中,把处理器处理事务的过程抽象为处理机。处理器运行时的环境,包括寄存器的位宽、支持的指令集、异常模型、内存管理以及编程模型等。ARMv8体系结构定义了两个执行状态。64位的执行状态。提供31个64位的通用寄存器。

2024-06-28 19:32:49 1166

原创 Linux终端按下键盘无响应的问题

当我们按(Ctrl + Alt + T)打开终端后,有时候会发现自己的终端界面好像被锁了,按下键盘终端没有显示相应的字符。,导致终端的输出被暂停。解决方法也很简单,按。出现这个问题的原因是我们不小心按下的。

2024-06-26 14:50:06 1634

原创 秒懂宏内核、微内核和混合内核的区别

宏内核是一种将操作系统的大部分功能全部集成到单一的内核程序中的内核设计方式,在这种设计中,内核包含了进程管理、内存管理、文件系统、设备驱动程序等多种核心功能。这些模块只有处于内核态下才可以运行。下面我来简单介绍一下用户态和内核态的区别。内核态:内核态是操作系统内核运行的特权模式,拥有最高的系统权限和访问权限。它的特点是完全控制硬件资源(如内核可以直接访问和控制CPU、内存、I/O设备等系统资源。)、执行特权级操作(如内核可以执行特权级指令,,如修改页表、关中断等操作。

2024-06-26 14:39:18 3762

原创 C语言static_assert函数介绍

static_assert 是C11标准引入的一个编译时断言机制,它的作用是在编译时对给定的常量表达式进行检查,如果表达式的值为 false,则编译会失败并给出错误提示。在介绍之前我们需要知道什么是断言?总的来说,断言是一种重要的程序调试和质量保证手段,有助于提高代码的健壮性和可靠性。我们在实际开发中,应该根据具体需求,合理地使用断言机制。下面我们来介绍。必须是一个在编译时可以计算出结果的常量表达式。如果表达式的值为false(即0),则编译会失败。

2024-06-22 12:02:44 544

原创 kernel源码container_of函数介绍

在我们进行内核开发的时候,我们经常会看到函数的身影,今天我们就来深入的分析一下函数.函数的作用是给定结构体中某个成员的地址(ptr),该结构体类型(type)和该成员的名字(member)从而获取这个成员所在的结构体变量的首地址。结构体中某个成员的地址该成员所在的结构体类型该成员在结构体中的名称2. 源码中的宏介绍:*/typeoftypeof的作用是检查两个变量或类型是否具有相同的类型,忽略类型修饰符(如constvolatile等)是一个GCC编译器内置的函数宏。

2024-06-22 11:37:32 818

原创 Git常用命令以及常见问题

1.基础命令:用户名邮箱用户名文件名文件名文件名版本号2.分支操作:分支名分支名3.远程仓库操作:别名远程地址别名分支远程地址远程库地址别名远程分支名。

2024-06-22 09:20:16 323

原创 Linux遍历指定目录下所有匹配指定文件名的文件,并打印出每个文件的路径和文件内容

在我们的Linux编程过程中,我们经常会查找不同目录下的相同文件名,那我们怎样可以快速且清晰的查找到我们想获取的内容呢,我们可以执行下面的shell语句,而不需要写一个脚本。

2024-06-21 20:32:48 925

原创 Linux内核目录结构介绍

kernel一级目录介绍类型名称功能备注dirarch架构相关目录。dirblock块设备相关目录dircrypto加密相关目录。dirDocumentation文档相关目录。dirdrivers驱动相关目录。dirfirmeare固件相关目录。dirfs文件系统相关目录。dircrypto加密相关目录。dirinclude头文件相关目录。dirinit初始化相关目录。

2024-06-18 20:19:39 233

原创 虚拟机重启后进入initramfs的解决方法

Windows下使用虚拟机不能正常正常进入系统,而是进入一个以initramfs开头的命令行界面!

2024-06-17 11:05:43 1880

原创 Linux字符设备驱动编程

Linux字符设备驱动编程。详细有代码,可以直接使用

2023-12-07 17:09:31 542 1

原创 Linux常用命令

linux基础命令大全

2023-12-06 18:34:56 876 1

原创 GitHub克隆远程项目到本地(可以克隆指定文件夹)以及从本地上传文件到GitHub(Linux和Windows均可,对虚拟机也适用)

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。我们在上面浏览时,有时会发现一些对我们很有用的源代码或者文件。

2020-06-09 08:52:03 4360 1

原创 解决ubuntu系统18.04开机找不到无线适配器的问题(对Windows和Linux双系统也适用)

(因为专用驱动是闭源的,而ubuntu开源,微软认为“闭源系统是不安全 的,所以闭源的软件在开启secure boot的时候不能启用”。在系统设置中打开“软件与更新”面板,进入“附加驱动”选项卡,如果网络正常,且源设置正常,那么一般能搜到对应的无线网卡驱动,安装之后再重启电脑就可以了。2.在bois界面找到secure boot,必需把secure boot关掉,这步非常重要。完成这一步,就可以看到有wifi的图标了。

2020-05-17 13:46:31 2559 5

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除