
Linux
文章平均质量分 78
Lniux常用
咸鱼弟
在你想要放弃的那一刻, 想想为什么当初走到了这里。
展开
-
linux内核态获取纳秒ns时间
内核态常用获取纳秒的函数。u64是unsigned long long类型的数据类型,打印用%llu。注意多核使用情况,如果你发现时间t1超前与t2,说明是多核影响的。原创 2024-04-01 10:44:15 · 756 阅读 · 1 评论 -
Linux常用的调试工具
Linux系统中有许多常用的调试技巧和工具,如gdb、strace、valgrind、perf、tcpdump等,这些工具可以有效地快速诊断和解决各种问题。掌握这些调试技巧和工具,可以提高Linux开发人员的调试效率和开发质量。原创 2023-10-23 21:03:27 · 745 阅读 · 0 评论 -
lspci源码
显示Linux系统的pci设备最简单的方法就是使用lspci命令原创 2023-10-16 19:16:06 · 1089 阅读 · 0 评论 -
Linux程序崩溃时的信号量(signal)说明
Linux程序崩溃时的信号量(signal)说明,exception 7 11 15原创 2023-10-06 15:31:46 · 8739 阅读 · 0 评论 -
IPC进程间通信及示例代码
进程通信( InterProcess Communication,IPC)就是指进程之间的信息交换。本文介绍了进程间通信的方法及对应的代码示例原创 2023-09-02 17:15:47 · 1072 阅读 · 0 评论 -
Linux CPU线程绑核
Linux CPU线程绑核原创 2023-09-02 11:49:45 · 1388 阅读 · 0 评论 -
Linux操作系统块设备参数调优
Linux操作系统块设备参数调优原创 2023-08-04 15:23:58 · 646 阅读 · 0 评论 -
linux查看/修改某个进程运行的CPU核
linux查看/修改某个进程运行的CPU核原创 2023-06-06 14:23:14 · 1853 阅读 · 0 评论 -
Linux Netlink 代码示例
netlink 编码示例原创 2023-02-17 20:12:36 · 1488 阅读 · 0 评论 -
linux查看/设置某个进程运行的CPU核
linux 系统下查看/设置某个进程运行的CPU核原创 2023-02-03 09:34:38 · 3005 阅读 · 0 评论 -
Linux内核工作队列(workqueue)详解
Linux内核工作队列(workqueue)详解原创 2022-12-21 14:49:45 · 12918 阅读 · 2 评论 -
BUG: scheduling while atomic 分析Linux内核
在编写Linux内核模块时遇到BUG: scheduling while atomic 本文对其进行分析原创 2022-12-21 11:12:04 · 3069 阅读 · 0 评论 -
Linux内核中的jiffies详解
讲解jiffies jiffies:是记录着从电脑开机到现在总共的时钟中断次数原创 2022-12-07 23:05:45 · 6847 阅读 · 0 评论 -
C语言中钩子函数使用讲解
钩子(hook)又称钩子函数,是在一个有序的周期中的某些特殊时刻,系统内部预先设置好的函数,当系统周期到达指定时刻 会自动执行该'钩子'。钩子函数的函数体内容由开发者编写,这绐了幵发者在不同阶段做某些处理的机会。原创 2022-10-05 09:53:30 · 8125 阅读 · 0 评论 -
git拉取代码到本地及提交代码
git 拉去最新分支及提交代码原创 2022-09-11 20:35:21 · 7973 阅读 · 0 评论 -
主流的CPU架构
主流CPU架构原创 2022-09-11 16:06:14 · 12714 阅读 · 3 评论 -
多线程互斥锁 pthread_mutex 的使用及初始化问题
互斥锁 pthread_mutex 的使用及注意事项原创 2022-08-26 14:11:29 · 17995 阅读 · 0 评论 -
Linux内存管理之mmap
mmap使用详解原创 2022-07-16 11:42:30 · 2927 阅读 · 0 评论 -
vim使用全集——有这一篇就够了
看到那些使用vim操作很6的大神,你是不是很羡慕,当自己使用时,则好多操作都不会,每次都需要先查,因此总结常用的操作命令。1、vim的几种模式正常模式:可以使用快捷键命令,或按:输入命令行。 插入模式:可以输入文本,在正常模式下,按i、a、o等都可以进入插入模式。 可视模式:正常模式下按v可以进入可视模式, 在可视模式下,移动光标可以选择文本。按V进入可视行模式, 总是整行整行的选中。ctrl+v进入可视块模式。 替换模式:正常模式下,按R进入。2、启动vimvim -c原创 2022-03-22 22:43:18 · 2715 阅读 · 2 评论 -
配置本地yum源
1、将U盘作为本地yum源,首先挂载U盘,确保光盘挂载点有文件[root@xuexi yum.repos.d]# ls /mntCentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL2、yum的一切配置信息都存储在一个叫yum....原创 2022-03-22 10:20:38 · 32048 阅读 · 1 评论 -
Linux源码阅读——PCI总线驱动代码(三)PCI设备枚举过程
linux源码阅读,PCI设备枚举过程。原创 2022-03-06 09:30:00 · 4546 阅读 · 6 评论 -
Linux源码阅读——PCI总线驱动代码(二)配置空间访问设置
linux源码阅读pci设备驱动加载过程。原创 2022-03-05 17:17:47 · 1939 阅读 · 4 评论 -
Linux源码阅读——PCI总线驱动代码(一)整体框架
linux 源码分析pci设备初始化流程。原创 2022-03-05 16:19:57 · 4689 阅读 · 5 评论 -
一文了解Linux内核
本文来自 [https://www.ssdfans.com]目录什么是操作系统OS操作系统的的组成什么是内核kernel内核的操作内核的分类Linux操作系统Linux内核内核源码结构Linux内核与硬件的关系是什么使Linux内核与其他经典Unix内核不同?Linux内核架构Linux内核接口Linux可加载内核模块 (The Linux Loadable Kernel Module (LKM) )什么是操作系统OS操作系统(简称...原创 2022-02-24 08:45:55 · 6033 阅读 · 5 评论 -
40个常用git命令(下)
40个常用git命令(上)_咸鱼弟的博客-优快云博客21、将标签添加到您的项目标签使您可以标记开源项目中的重要事件。开发人员经常使用它们来标记新的复发或错误修复。请仔细查看以下git命令,以了解如何使用git将标签添加到项目中。linuxidc@Ubuntu:~/www.linuxidc.com$ git tag 1.0.0 new-linuxidclinuxidc@ubuntu:~/www.linuxidc.com$ git tag 1.0.0 new-linuxidcfatal:原创 2022-02-15 20:29:47 · 982 阅读 · 7 评论 -
40个常用git命令(上)
目录1、配置用户配置文件2、初始化Git仓库3、添加项目文件4、验证添加的文件5、提交对存储库的更改6.显示日志7、验证项目分支8、重置项目分支9、添加一个新分支10、在分支之间切换11、删除项目分支12、检查提交,树和文件之间的差异13、合并两个分支14、还原现有提交15、隐藏工作目录16、克隆仓库17、提取新更新18、推送您的更新19、显示远程存储库20、连接到远程仓库1、配置用户配置文件您可以使用git co.原创 2022-02-13 16:35:48 · 297 阅读 · 6 评论 -
Linux下CPU使用率过高的排查方法
在 Linux 系统下,使用 top 命令查看 CPU 使用情况。%Cpu(s): 0.3us, 0.1sy, 0.0ni, 99.6id, 0.0wa, 0.0hi, 0.0si, 0.0stus(user):表示 CPU 在用户运行的时间百分比,通常用户 CPU 高表示有应用程序比较繁忙。典型的用户程序有:数据库、Web 服务器等。 sy(sys):表示 CPU 在内核态运行的时间百分比(不包括中断),通常内核态 CPU 越低越好,否则表示系统存在某些瓶颈。 n...原创 2022-02-13 16:07:13 · 5761 阅读 · 5 评论 -
Linux下grep的使用
该内容转自Linux中的Grep命令(在文件中查找文本)_Linux教程_Linux公社-Linux系统门户网站grep命令语法grep [OPTIONS] PATTERN [FILE...]OPTIONS - 零个或多个选项。 Grep包含许多控制其行为的选项。 PATTERN - 搜索模式。 FILE - 零个或多个输入文件名。为了能够搜索文件,运行命令的用户必须对该文件具有读取权限。在文件中搜索字符串grep命令最基本的用法是在文件中搜索字符串(文本)。例如原创 2022-02-11 09:11:34 · 3066 阅读 · 5 评论 -
Linux系统下查看netlink的使用情况
cat /proc/net/netlink 命令可以查看netlink的使用情况。例如Eth:为netlink的协议号Pid:0,代表内核使用,非零值代表是进程号原创 2022-02-08 15:46:25 · 2323 阅读 · 4 评论 -
backtrace函数
1、函数原型#include <execinfo.h> int backtrace(void **buffer, int size); 该函数获取当前线程的调用堆栈,获取的信息将会被存放在buffer中,它是一个指针数组,参数size用来指定buffer中可以保存多少个void*元素。函数的返回值是实际返回的void*元素个数。buffer中的void*元素实际是从堆栈中获取的返回地址。char **backtrace_symbols(void *const.原创 2022-01-26 17:19:11 · 2899 阅读 · 4 评论 -
Linux下udev规则详解
如何运用udev?编写udev规则?通过udev更好的管理Linux设备?udev是什么? udev 是 Linux2.6 内核里的一个功能,它替代了原来的 devfs,成为当前 Linux 默认的设备管理工具。udev 以守护进程的形式运行,通过侦听内核发出来的 uevent 来管理 /dev目录下的设备文件。不像之前的设备管理工具,udev 在用户空间 (user space) 运行,而不在内核空间 (kernel space) 运行。devfs 概述: ...原创 2022-01-26 16:37:48 · 3097 阅读 · 4 评论 -
Linux下后台运行几种方法
1、nohup将程序以忽略挂起信号的方式运行起来补充说明nohup命令 可以将程序以忽略挂起信号的方式运行起来,被运行的程序的输出信息将不会显示到终端。无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。如果当前目录的 nohup.out 文件不可写,输出重定向到$HOME/nohup.out文件中。如果没有文件能创建或打开以用于追加,那么 command 参数指定的命令不可调用。如果标准错误是一个终端,那么把指定的命令写给标准错误的所有输出原创 2021-12-16 17:12:00 · 23286 阅读 · 10 评论 -
GDB高级技巧:边Debug边修复BUG,无需修改代码,无需重新编译
友情提醒:本文转自公众号“一口LInux”,可关注该公众号获取更多知识。本文介绍的调试技巧非常实用,但为了讲解清楚,篇幅较长,请耐心看完,我保证你定会有收获!引言程序调试时,你是否遇到过下面几种情况:1、经过定位,终于找到了程序中的一个BUG,满心欢喜地以为找到了root cause,便迫不及待地修改源码,然后重新编译,重新部署。但验证时却发现,真正的问题并没有解决,代码中还隐藏着更多的问题。2、调试时,我们找到代码中一个可疑的地方,但是不能100%确定这真的就是个BUG。要想确定,只能修原创 2021-11-21 15:50:16 · 1349 阅读 · 4 评论 -
Linux内核开发中EXPORT_SYMBOL的使用方法
EXPORT_SYMBOL是Linux内核中一个常见的工具,其作用是讲一个”Symbol”(函数或者变量)导出到内核空间,使得内核的所有代码都可以使用。我们用下面的例子来说明其使用方法。注意:在这篇文章中我假设你已经知道了内核模块开发的基本套路。假设我们创建了两个内核模块mod1和mod2,其中mod1中有一个方法func_exported需要在mod2内调用。Mod1Mod1中的源代码为// mod1.c#include <linux/init.h>#include <原创 2021-10-26 17:11:02 · 1015 阅读 · 5 评论 -
Linux内核调试方法
内核开发比用户空间开发更难的一个因素就是内核调试艰难。内核错误往往会导致系统宕机,很难保留出错时的现场。调试内核的关键在于你的对内核的深刻理解。一 调试前的准备在调试一个bug之前,我们所要做的准备工作有:有一个被确认的bug。 包含这个bug的内核版本号,需要分析出这个bug在哪一个版本被引入,这个对于解决问题有极大的帮助。可以采用二分查找法来逐步锁定bug引入版本号。 对内核代码理解越深刻越好,同时还需要一点点运气。 该bug可以复现。如果能够找到复现规律,那么离找到问题的原因...原创 2021-10-06 16:57:16 · 11363 阅读 · 6 评论 -
CPU使用率查看方法
导读Linux作为一个多任务操作系统,将每个CPU的时间划分为很短的时间片,再通过调度器轮流分配给各个任务使用,因此造成多任务同时运行的错觉。为了维护CPU时间,Linux通过事先定义的节拍率(内核中表示为HZ),触发时间中断,并使用全局变量Jiffies记录了开机以来的节拍数。每发生一次时间中断,Jiffies的值就加1。节拍率HZ是内核的可配选项,可以自定义配置,可通过/boot/config来查询$ grep 'CONFIG_HZ=' /boot/config-$(uname -r)CO原创 2021-09-08 14:05:02 · 18902 阅读 · 5 评论 -
Linux内核API wait_for_completion_timeout
概述wait_for_completion_timeout函数功能描述:此函数用于阻塞当前进程,等待其他进程的执行结束,被等待进程保存在输入参数的wait字段所代表的等待队列中。有两种情况可以结束此种等待:第一,当等待队列中的进程被函数complete( )或函数complete_all( )唤醒,等待结束,阻塞进程将继续执行;第二,当等待的时钟节拍超时时,被阻塞的进程会继续执行。此函数将当前进程设置为不可中断的等待状态,所以即使通过Ctrl+C组合键也不能强制结束等待;此函数设置的等待时间是函数原创 2021-09-02 15:52:39 · 6461 阅读 · 3 评论 -
【超详细】CentOS编译安装升级新内核
1、已经准备好CentOS系统,打算要重新编译内核或升级内核2、准备源码centos:http://vault.centos.org/下载对应版本内核也可以使用标准内核:http://ftp.sjtu.edu.cn/sites/ftp.kernel.org/pub/linux/kernel/此处建议使用centos对应版本的内核。3、挂载U盘3.1、插入U盘3.2、#sudo fdisk –l查看所挂载盘符名称如下图,假设盘符名称为sdc13...原创 2021-08-13 17:15:17 · 3760 阅读 · 5 评论 -
理解git reset 三种模式 绝对经典
git reset 有三种模式“--soft”“、”“--mixed”、"--hard"大家都知道,理解其原理就会知道它的使用场景了。原创 2020-02-17 23:14:49 · 469 阅读 · 5 评论 -
git将多个commit合并成一个commit提交
使用场景:在自己的开发分支上开发一个功能提交多次,有多个commit,想将多次提交的commit合并成一个commit,方便代码管理。例如将最近四次提交的commit合并成一个1、查看提交历史记录git log2、回退到第5个提交,将后面4次提交的内容变为未提交状态git reset commitID(第五个commit的ID) //git reset 等同于git re...原创 2020-02-17 22:20:19 · 9281 阅读 · 6 评论