道亦无名
王阳明曰: 立志 勤学 改过 择善
我曰: flag practice debug release
展开
-
Linux权限管理
Linux权限管理是Linux系统中保证系统安全性和管理效率的重要手段。Linux权限主要涉及对文件和目录的操作权限,包括读(r)、写(w)和执行(x)三种基本权限。原创 2024-10-18 22:01:53 · 174 阅读 · 0 评论 -
高速缓存 SLAB 对象 之间的关系
高速缓存(Cache)、SLAB(Slab Allocator)和对象(Object)在操作系统和内存管理中各自扮演着重要的角色,并且它们之间存在一定的关系。综上所述,高速缓存、SLAB和对象在内存管理和对象处理方面各自扮演着重要的角色,并且它们之间存在密切的关系。通过预分配和复用slab,SLAB可以减少内存分配和释放的开销,从而优化对象的创建和销毁过程。在内存管理和对象处理方面,高速缓存可以用来存储频繁访问的对象或数据片段,从而减少对主存储器的访问,提高系统的响应速度。原创 2024-05-30 08:57:37 · 40 阅读 · 0 评论 -
Linux系统的节拍率
另外,为了方便用户空间程序,Linux内核还提供了一个用户空间节拍率USER_HZ,它固定为100,即每秒触发100次时间中断。Linux系统的节拍率(HZ)是一个内核可配选项,不同的系统可能设置不同的值。节拍率代表了系统定时器每秒钟产生的节拍总数,它决定了两次定时器中断发生的间隔时间。通常可选的系统节拍率有100Hz、200Hz、250Hz、300Hz、500Hz和1000Hz等,默认情况下一般选择100Hz。总之,Linux系统的节拍率是一个重要的内核参数,它影响着系统的定时和时间管理功能。原创 2024-05-30 08:54:59 · 233 阅读 · 0 评论 -
linux的孤儿进程
具体来说,当父进程退出时,系统会将这些孤儿进程重新分配给一个特殊的进程——是指其父进程已经终止或被杀死,而该进程本身还在运行的进程。因此,尽管孤儿进程在名义上失去了它们的父进程,但在Linux系统中,它们实际上仍然受到系统的管理和控制,不会造成系统资源的泄漏或不稳定。进程会负责回收这些孤儿进程的资源,确保它们不会成为僵尸进程(zombie process),即那些已经结束但仍然保留在进程表中的进程。进程负责在系统启动时启动并管理其他所有进程,也是系统中所有孤儿进程的最终父进程。进程(PID为1的进程)。原创 2024-05-30 09:30:00 · 112 阅读 · 0 评论 -
Linux内核线程
内核线程可以进行繁忙的异步事件处理,也可以睡眠等待某事件的发生,并且能够访问内核函数和数据结构。内核线程主要在内核空间运行,处理与内核相关的任务,而用户空间线程则主要在用户空间运行,处理应用程序的任务。在Linux中,内核线程可以被视为内核的一个分身,用于处理特定的任务。内核线程的调度由内核负责,这意味着一个内核线程处于阻塞状态时,不会影响其他内核线程的执行。总的来说,Linux内核线程是操作系统中一种重要的并发处理机制,它们为内核提供了处理各种任务和事件的能力,从而确保了系统的稳定性和高效性。原创 2024-05-29 14:30:00 · 58 阅读 · 0 评论 -
Linux的线程状态
在Linux中,每个进程都有一个当前的状态,这个状态用于标识进程当前正在做什么。这将输出每个进程的PID和状态。你可以通过状态字符来识别进程的当前状态。命令配合不同的选项来查看进程的状态。要查看这些状态,你可以使用。原创 2024-05-29 07:49:01 · 562 阅读 · 0 评论 -
Linux踢掉远程用户
命令将强制终止用户会话,因此请谨慎使用。确保要踢掉的用户是你想踢掉的用户,以避免不必要的损失。原创 2024-01-11 00:00:00 · 412 阅读 · 0 评论 -
Linux的操作系统分类
例如,家庭用途可以选择Linux Mint、Ubuntu、OpenSUSE、Fedora、PC-BSD等版本;商业用途可以选择Debian、RHEL、CentOS等版本;理想用途可以选择FreeBSD、OpenBSD、Solaris、OpenSolaris等版本。Debian系包括Debian、Ubuntu、Mint等及其衍生版本,Red Hat系则包括RedHat、Fedora、CentOS等。2、还有一些其他的发行版,如Slackware、Gentoo、Arch Linux、LFS和SUSE等。原创 2024-01-04 02:15:00 · 599 阅读 · 0 评论 -
Linux OpenMP使用总结
这些是编写 Linux OpenMP 程序的一些基本指导方针。请注意,OpenMP 是一个复杂的主题,需要深入了解和经验才能充分利用其功能。原创 2023-12-05 11:30:01 · 888 阅读 · 0 评论 -
如何诊断Linux系统中的性能问题
例如,通过修改“kernel.sched_mc_power_savings”和“kernel.sched_migration_cost”等参数,可以平衡CPU的能效和性能。为了更好地诊断性能问题,还可以考虑使用系统性能监控工具,例如Nagios、Zabbix、Prometheus等。这些工具可以提供实时的系统性能监控、历史性能数据的分析和警报等功能,帮助你更好地了解系统的性能状况并采取相应的优化措施。对于磁盘问题,除了优化代码和缓存数据到内存中,你还可以考虑使用SSD来提高磁盘读写性能。原创 2023-09-12 20:15:00 · 189 阅读 · 0 评论 -
windows和linux的一些差异性
总的来说,Linux和Windows都有自己的优点和缺点。对于我个人来说,我更加喜欢在Linux上进行开发和编程工作,因为Linux提供了更加灵活和自由的工具和环境。但是,在某些情况下,我可能需要在Windows上进行一些特定的任务,例如使用特定的软件或者硬件设备。总的来说,Linux和Windows的体验差异不仅仅在于操作方式和功能上,还与社区支持、安全性、依赖关系和应用程序多样性等因素有关。总之,Linux和Windows作为两个不同的操作系统,都有自己的优势和不足。原创 2023-07-01 05:34:33 · 827 阅读 · 0 评论 -
linux 下使用shell 编程实现 目录下面的文件重命名
上述脚本中,cd命令进入到目录/home/user/old_files,for循环遍历所有以old_开头的文件,使用mv命令将文件名中的old_替换为new_,完成文件重命名。可以使用for和mv命令来实现目录下面的文件重命名。原创 2023-06-08 07:30:00 · 873 阅读 · 0 评论 -
linux 下使用shell 编程实现 目录下面的文件重命名
上述脚本中,cd命令进入到目录/home/user/old_files,for循环遍历所有以old_开头的文件,使用mv命令将文件名中的old_替换为new_,完成文件重命名。可以使用for和mv命令来实现目录下面的文件重命名。原创 2023-06-08 07:30:00 · 543 阅读 · 0 评论 -
利用X11获取鼠标实时位置
该程序使用XOpenDisplay函数打开一个X11显示连接,然后使用DefaultRootWindow函数获取根窗口的ID。在一个无限循环中,使用XNextEvent函数获取事件,如果事件类型是MotionNotify,则表示鼠标位置发生了变化,可以通过event.xmotion.x_root和event.xmotion.y_root获取鼠标位置。首先需要安装X11库,然后编写一个程序,调用X11库中的函数来获取鼠标位置。在Linux系统中,可以使用X11库来获取鼠标实时位置。原创 2023-03-31 00:00:00 · 553 阅读 · 0 评论 -
写一个Linux内核驱动LED的代码
该驱动使用GPIO 17控制一个LED,并使用定时器以500毫秒的间隔切换LED状态。在初始化时,驱动请求GPIO并设置其方向为输出。然后设置定时器并启动定时器回调函数。在退出时,驱动停止定时器并释放GPIO。请注意,该驱动仅作为示例,实际应用中可能需要更多的错误处理和安全性检查。原创 2023-03-30 23:00:00 · 146 阅读 · 0 评论 -
linux的生态包含哪些
Linux生态系统包含了一系列的软件和技术,包括以下几个方面:原创 2023-03-30 21:15:00 · 470 阅读 · 0 评论 -
Linux发展历程
Linux 是一套 Unix-like 的操作系统,是 Unix 的一种,它控制整个系统基本服务的核心程序 (kernel) 是由 Linus 带头开发出来的,「Linux」这个名称便是以「Linus’s unix」来命名,Linus 选择用「大众公有版权」 (GPL)的方式来发行这份程序,这个版权允许任何人以任何形式复制与散布 Linux 的原始程序,换句话说,Linux 实际上是「免费的」,使用者在网络上就可以抓到 Linux 的原始程序代码,随心所欲的复制与更改 Linux 的原始程序,在因特网的日渐原创 2023-02-10 01:15:00 · 308 阅读 · 0 评论 -
编译出错 yacc:未找到命令
通过搜索,知道可以通过安装Bison-GNU解析器来纠正此错误。发电机,但是即使安装了Bison之后,仍然遇到相同的错误。在终端上运行以下命令以安装bison,yacc可执行文件和配置。yacc随bison一起提供。重新运行编译就解决问题了。原创 2023-01-10 00:00:00 · 1136 阅读 · 1 评论 -
编译出现 fatal error: openssl/bio.h: 没有那个文件或目录
在编译过程中出现一下情况。重新在执行编译就OK了。原创 2023-01-11 00:00:00 · 249 阅读 · 0 评论 -
linux下修改swap分区遇到文件忙如何解决?
fallocate: fallocate 失败: 文本文件忙。fallocate: fallocate 失败: 文本文件忙。先关闭swap分区,再重新分配后配置打开。原创 2022-11-02 08:23:22 · 6199 阅读 · 10 评论 -
linux下串口收发多线程通讯处理
代码如下:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/types.h>#include <errno.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h>#include <termios.h>#include <原创 2022-04-12 00:00:00 · 1758 阅读 · 0 评论 -
嵌入式Linux 多线程串口通讯
代码如下:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/types.h>#include <errno.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h>#include <termios.h>#include <原创 2022-03-14 15:57:10 · 3203 阅读 · 0 评论 -
glibc 和 libc的区别
glibc 和 libc 都是 Linux 下的 C 函数库。libc 是 linux 下的 ANSI C 函数库;glibc 是 Linux 下的 GUN C 函数库。glibc是linux下面c标准库的实现,即GNU C Library。glibc本身是GNU旗下的C标准库,后来逐渐成为了Linux的标准c库,而Linux下原来的标准c库Linux libc逐渐不再被维护。Linux下面的标准c库不仅有这一个,如uclibc、klibc,以及上面被提到的Linux libc,但是glibc无疑是用原创 2022-03-14 23:30:00 · 4105 阅读 · 0 评论 -
linux下串口16进制操作
主要流程如下:废话不多说,代码如下:#include<stdio.h> #include<stdlib.h> #include<unistd.h> #include<sys/types.h> #include<sys/stat.h> #include<fcntl.h> #include<termios.h> #include<errno.h> #define FALSE原创 2022-03-02 23:45:00 · 1567 阅读 · 0 评论 -
centos7.9开启console控制台登录
修改内核参数grubby --update-kernel=ALL --args=“console=ttyS0,115200n8”重启reboot原创 2022-02-18 22:30:00 · 1030 阅读 · 0 评论 -
linux下C++获取命令行的执行结果
纯干货代码如下:#include <stdio.h>#include <sys/types.h>#include <unistd.h>#include <stdlib.h>#include <string.h>#include <iostream>using namespace std;string cmd_system(const char* command);int main(){ char str[1原创 2021-12-08 00:00:00 · 1828 阅读 · 0 评论 -
编译freerdp需要的一些依赖库
主要是以下的操作就好了: sudo apt-get install build-essential git-core debhelper cdbs dpkg-dev autotools-dev cmake pkg-config xmlto libssl-dev docbook-xsl xsltproc libxkbfile-dev libx11-dev libwayland-dev libxrandr-dev libxi-dev libxrender-dev libxext-dev libxiner原创 2021-12-02 11:11:41 · 1275 阅读 · 0 评论 -
git:‘ignore‘ 不是一个 git 命令。参见 ‘git --help‘。的解决办法
在ubuntu下使用git 管理时出现以下问题$ gitignoreCommand 'gitignore' not found, did you mean: command 'git-ignore' from deb git-extras (5.1.0-1)Try: sudo apt install <deb name>使用命令行$ sudo apt install git-extras正在读取软件包列表... 完成正在分析软件包的依赖关系树 正在读取状原创 2021-11-11 19:15:00 · 2202 阅读 · 0 评论 -
Ubuntu qt clion 配置
CMakeList.txt如下:cmake_minimum_required(VERSION 3.20)project(qttest)set(CMAKE_CXX_STANDARD 14)set(CMAKE_AUTOMOC ON)set(CMAKE_AUTORCC ON)set(CMAKE_AUTOUIC ON)set(CMAKE_INCLUDE_CURRENT_DIR ON)find_package(Qt5 COMPONENTS Qt5Widgets R原创 2021-10-13 00:00:00 · 353 阅读 · 0 评论 -
XPutImage解析
XPutImage (display, d, gc, image, src_x, src_y, dest_x, dest_y, width, height)Display *display; //display 指定到 X 服务器的连接。Drawable d; //d 指定可绘制对象。GC gc; //指定 GC。XImage *image; //image 指定要与矩形组合的图像。int src_x; //指定 XImage 结构定义的图像左边缘的 X 偏移。int src_y;原创 2021-10-11 11:55:08 · 672 阅读 · 0 评论 -
Clion 加断点无法进入解决办法
自使用Clion工具调试Cmake工程的时候发现无法 编译后无法进行断点调试。在cmake工程的最外层CMakelist.txt中需要加入调试信息如下:set(CMAKE_BUILD_TYPE Debug)重新build整个工程就可以了进行断点调试了...原创 2021-09-27 13:01:36 · 1952 阅读 · 1 评论 -
Ubuntu 在登陆界面usb的键盘和鼠标上无法输入和移动(注明:与内核驱动有关系)
在网上找到了很多方法尝试大致分为几类1、xrog为启动通过重启按住esc 进入到recovery mode中进行处理 xorg这种方式可行,但是后面无法进行扩展屏的展示。只能单屏显示。2、因之前使用过usb重定向软件,这个里面有重新加载内核驱动,这些内核模块与usb有关连。通过卸载相关的驱动软件 同时卸载驱动就完成了。这里最终彻底解决的办法还是卸载usb重定向软件,最后usb的问题也解决了,扩展屏的问题也解决了。...原创 2021-09-26 14:22:02 · 987 阅读 · 0 评论 -
ubuntu 下面进行sudo密码输入的脚本
在我们进行一些自动化安装的过程中,会出现需要root权限去安装,但是有时候输入的此书太多了。于是就想到一种脚本方式:万能公式如下:sudo -S 应用程序 << EOFpassword<<EOF这样就好了。...原创 2021-09-16 14:55:10 · 715 阅读 · 0 评论 -
windows下远程连接linux桌面的方法
首先执行 yum install xrdp接下来执行sudo yum install tigervnc-server需要安装的程序已经完成现在开始开启服务/bin/systemctl start xrdp.servicewindows上打开应用输入IP地址输入用户名密码即可原创 2021-03-17 11:33:48 · 2114 阅读 · 0 评论 -
expect的使用
expect就是一套用来实现自动交互功能的软件。主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信。expect自动交互流程:spawn启动指定进程expect获取指定关键字send向指定程序发送指定字符执行完成退出.注意该脚本能够执行的前提是安装了expect需要使用yum install -y expect使用的一个简单的例子如下:#!/bin/expect -fspawn scp -r /home/temp develop@192.168.0.74:/原创 2020-12-24 16:19:49 · 365 阅读 · 2 评论 -
No Caching mode page found 的解决办法Centos7
在安装CENTOS7的时候出现这个问题[sdb] No Caching mode page found [sdb] Assuming drive cache:write through然后卡在这个地方了 进过多方位排查再启动选择install test 这个地方的时候按键盘E进入编辑将命令vmlinuz initrd=initrd.img linux dd quiet,修改为vmlinuz initrd=initrd.img inst.stage2=hd:/dev/sdc4 rdblackli原创 2020-12-23 14:38:55 · 11659 阅读 · 0 评论 -
Ubuntu下pip3安装失败的解决办法
The program ‘pip3’ is currently not installed. You can install it by typing:apt install python3-pip这种直接按照他们所说的方式处理有问题。需要进行一个特别处理。修改源sudo apt-get purge --auto-remove python3-pipsudo apt-get update sudo apt-get -y install python3-pip执行效果如下:...原创 2020-12-09 11:32:47 · 3887 阅读 · 0 评论 -
scp定时传输文件脚本Linux
shell脚本参数#!/bin/shsrc_file=/mcrun/cdr/statdest_file=/cbss/dcc01/indicatorsfilename=stat_sp_9001.databill_date=`date +%Y%m%d`host_ip=*username=*password=*echo "$host_ip"cd /home/mcrun/public/scp_ruku./expect_scp $host_ip $username $password $src原创 2020-12-08 09:52:34 · 2428 阅读 · 2 评论 -
记一次ThinkStation上Centos显卡驱动的大坑
最近由于项目出差,需要临时搭建centos的工作站。材料:thinkStaion 工作站 ,P620显卡系统:Centos7.6由于P620显卡只有miniDP的输出口,只能买接线头子进行转接才能查看。买好了转接头子,一起按照计划进行。装好系统,下载内核源码,下载nvida显卡驱动。一起操作正常。在装完显卡驱动后,重新启动,发现在后面出现了一个很大的问题,就是显示器上出现了跳屏的现象,就像90年代的那种大头显示器的一闪一闪的跳动。刚开始我还以为驱动不对,修改xorg的配置项,修改引导配置文件原创 2020-11-13 13:55:51 · 1187 阅读 · 0 评论 -
centos7 同步网络时间
安装ntpdatesudo yum install -y ntpdate然后使用命令同步网络时间sudo ntpdate pool.ntp.org重新查看时间如下:此处还不能完全解决掉这个问题,因为重启之后将会读取硬件时钟的数据。时间又会恢复到之前的样子。使用hwclock看硬件时间,还是有问题。写入硬件时间如下hwclock -w...原创 2020-10-24 21:29:06 · 7069 阅读 · 0 评论