- 博客(672)
- 资源 (3)
- 收藏
- 关注

原创 linux实用命令及注意(持续更新)
1、cp -a src/* des不会复制src目录以及子目录的文件(夹),cp -a src/. des则会复制所有文件(包括隐藏文件)。2、du -h --max-depth=1 . 显示当前目录每个子目录的大小
2020-11-13 10:38:33
2116
原创 夯死定位问题代码位置方法
1、objdump vmlinux(需要先通过对应内核符号表(system.map)找到函数的地址)2、carsh vmcore(适用于能正常kdump生产vmcore(内存映像)的情况)内核引起的死机问题一般会在串口打印堆栈信息,一般能通过pc值找到问题代码位置。
2025-02-21 18:14:17
170
原创 DMA总结
1、DMA是什么不通过CPU的内存访问。DMA降低了CPU的负担,性能也比传统的非DMA(PIO)访存方式提高数倍(具体提升大小与与硬件相关)。内存访问:计算机内部主要涉及两种内存访问。一种是 物理内存DRAM,另一种是 设备内存(如网卡,显卡等PCIe设备)。
2025-02-21 11:04:52
805
原创 Linux arm64 IOMMU总结
如果设备申请DMA时,内核为设备分配的DMA buffer的地址高于4GB(以下简称为“high buffer”),则设备将无法寻址到它。后面的文章将会提到,如果启动参数中同时启用SWIOTLB和硬件IOMMU(即Intel IOMMU),那么当Linux系统启动完成后,SWIOTLB将会被禁用,而仅保留硬件IOMMU。相比硬件IOMMU,SWIOTLB存在memcpy()操作,需要CPU的参与,降低了效率,这是软件实现的固有弊端。可以看出,IOMMU是DMA过程中的一环,也是实现DMA的一种手段。
2025-02-19 16:18:24
663
原创 linux内核总结
2、https://lxr.missinglinkelectronics.com (比第一个功能多一些,可以搜索内核中的字符串,内核版本不全)1、https://elixir.bootlin.com (只能搜索函数和宏定义,功能单一)3、下载源代码grep命令搜索(最麻烦、但是检索范围最大)一、阅读Linux内核源代码方法。
2025-01-13 19:06:36
197
原创 内核文档使用记录
关于启动参数的详细介绍在Documentation/admin-guide/kernel-parameters.rst,常见的earlycon、loglevel、quiet、ro都有详细的介绍。Linux内核的官方文档在 /Documentation目录,介绍是目录下的index.rst文件,常用的kdump、fb、RCU都在子目录下有介绍。遇事不决先查官方文档。
2025-01-13 16:06:03
93
原创 arm地址对齐的总结
/ __iomem是个64位的地址 u8表示从这个地址取8位的数据(编译器是这么解释的)地址对齐是规定(这个对齐不是c语言结构体的对齐) arm x86都需要,只不过看硬件来做还是软件来做,硬件做成本大一些。arm手册说指令对齐 实际上就是指令的地址对齐,如果硬件不对齐,软件也不做,cpu执行指令就会错。寄存器读写一般都是32位数据操作,小于32位(单、双字节对齐)的话都是先读写32。
2024-03-21 08:49:27
367
原创 Linux内核查看配置文件
一般是/boot/config-(内核名),如果没有可以查看proc/config.gz,前提是内核打开CONFIG_IKCONFIG_PROC配置。如下图所示:
2023-11-29 10:34:08
344
原创 ubuntu20.04设置rc.local开机自启动服务(配置自定义脚本)
ubuntu20.04设置rc.local开机自启动服务(配置自定义脚本)
2022-11-09 17:38:52
367
原创 OS知识杂记
一、acpi表 平台设备(多数为板载设备)platform 需要apci表描述(走的控制器),pci设备不需要acpi表描述。 判断某个设备是不是pci设备的方法:1、lspci 命令看到的设备都是acpi设备;2、询问硬件设计工程师(划主板的) acpi表(二进制文件)是 /sys/firmware/acpi/tables/DSDT 文件,可以反编译查看源文件(也可以通过查找某个驱动的id来寻找acpi文件) (centos8 )反编译acpi命令:iasl -da -
2021-08-25 16:54:25
320
原创 win7手册
1、xmanager(图形化远程控制)安装方法参考https://me.jinchuang.org/archives/536.html。
2021-08-20 14:54:28
117
原创 ubuntu20.04配置静态ip
编辑文件/etc/netplan/01-network-manager-all.yaml,内容为如下:network: version: 2 renderer: NetworkManager ethernets: enp0s3: dhcp4: false addresses: [192.168.0.88/24] gateway4: 192.168.0.1 nameservers:114.114.11
2021-07-05 11:10:40
4089
原创 ubuntu20.04 arm64 安装docker
vim /etc/apt/sources.list在最后面添加docke-ce源:deb http://mirrors.aliyun.com/docker-ce/linux/ubuntu/ xenial stableapt-get update更新源可能会提示没有公钥(The following signatures couldn't be verified because the public key is not available: NO_PUBKEY XXXX)执行如下命令.
2021-06-23 11:20:57
1515
原创 常见问题解决办法
1、CentOS7 解决无法挂载NTFS格式的U盘。添加源安装ntfs-3g包,参考https://www.pianshen.com/article/50441198519/
2021-04-16 18:28:15
2240
转载 shell中输入输出重定向,>、>>、<、<<、>/dev/null、2>&1、<<end、<<EOF等
参考:www.runoob.com/linux/linux-shell-io-redirections.html实际上,输入输出重定向中的3个标准文件描述符,输入0、正常输出1、错误输出2,这三个值经常被省略。举例:ls > shell_out 等价于:ls 1> shell_out前言相信大家经常能在shell脚本中发现>/dev/null 2>&1这样的语句。以前的我并没有去深入地理解这段命令的作用,照搬照用,直到上周我将这段...
2021-03-26 14:13:57
1096
原创 win7 scp命令的使用
win7使用scp命令,需要下载对应的包,安装之后才可以在cmd命令行使用。在win7 cmd命令行,使用scp命令从win7传大文件(超过4G)到linux服务器上。需要先切换到文件所在的磁盘。比如,当前在c盘,需要传输的文件在d盘,则利用切换命令:【d:】切换到d盘,再传。(一般使用scp -r 源文件 目标目录)如果不切换磁盘,则会报如下错。(无法识别磁盘)特别注意windows与linux命令的差异,不要搞混了。...
2021-03-15 14:08:24
5014
原创 linux 环境变量PATH路径的三种方法
1、控制台中设置,只对当前的shell 起作用,换一个shell设置无效 (关闭shell Path会还原为原来的path):$PATH="$PATH":NEW_PATH 或者使用export 命令export PATH=NEW_PATH:$PATH2、修改 /etc/profile 文件,这是针对所有的用户的,所有的shell在/etc/profile的最下面添加: export PATH="$PATH:/NEW_PATH"3、修改bashrc文件,这是针对某一特定的用户,修改其个人...
2021-02-24 09:47:18
982
原创 《linux内核完全剖析》第8章 内核代码 读书笔记
1、简介linux/kernel/下包括 10 个 C 文件和 2 个汇编文件(不包括blk_drv/、chr_drv/和math/子目录)。从功能上可以分为三类,一类是硬件(异常)中断处理程序文件,另一类是系统调用服务处理程序文件,第三类是进程调度等通用功能文件。如下图所示2、中断处理程序包含asm.s 和 traps.c 文件。asm.s用于实现大部分硬件异常所引起的中断服务过程的汇编程序部分,而 traps.c 程序则实现了asm.s 中断处理过程中调用的C函数部分。3、系统调用处
2021-01-14 11:01:29
180
原创 《linux内核完全剖析》第七章 初始化程序 笔记
1、简介初始化程序位于init/目录下,该目录只有一个main.c文件,系统执行完boot/目录下的head.s程序后把执行权交给main.c。main.c程序进行了内核初始化的所有工作。2、main.c功能描述main.c利用setup.s取得的系统参数设置系统的根文件设备号和一些内存全局变量。这些内存变量包括主内存的开始地址、系统内存容量和高速缓冲区内存的末端地址。如果定义了虚拟盘,主内存会适当减少。内存映射图如下之后内核进行所有方面的硬件初始化,包含陷阱门、块设备、字符设备和tty
2021-01-12 17:16:13
899
原创 《linux内核完全剖析》第六章 引导启动程序 笔记
1、简介引导启动程序部分主要在boot/子目录下,该目录包含三个汇编代码文件bootsect.S、head.S和setup.S。由于目前没有对汇编进行系统的学习,所以本文不对代码细节实现做讲解,主要描述代码的功能。2、操作系统启动执行流程PC电源打开后,80x86结构CPU进入实模式,从地址0xFFFF0执行程序代码,这个地址通常是BIOS中的地址。随后BIOS开始执行系统检测,在物理地址0处开始初始化中断向量,然后BIOS将启动设正在上传…重新上传取消正在上传…重新上传取消备的第一个扇区读入内
2021-01-08 17:02:36
208
原创 HDU 5876 补图最短路
题意:给一个图,和起点s,求s在补图中到各个点的最短路。分析:补图最短路,算是比较套路的一类题了,bfs+两个set维护邻接点和未扩展的点。代码:#include<bits/stdc++.h>using namespace std;#define ll long long#define inf 0x3f3f3f3fconst int N = 1e6+5;int ...
2019-10-09 15:11:21
285
原创 线性基总结(题目合集)
线性基的三大性质:线性基能相互异或得到原集合的所有相互异或得到的值。线性基是满足性质1的最小的集合。线性基没有异或和为0的子集。模板:const int MaxBasis = 62;///二进制位数struct LB { ll base[MaxBasis+10]; bool rel; int sz; vector<ll> Basis;/// 线性...
2019-10-07 10:09:54
493
原创 2019牛客国庆集训派对day1 C Distinct Substrings
题意:https://ac.nowcoder.com/acm/contest/1099/C。分析:大致题意是说向字符串末尾添加任意字符所增加的不同子串个数。容易知道,新增的子串一定是后缀,如果新增字符没有出现过,那么贡献n+1,n为字符串的长度,如果出现过了,容易发现如果这个字符的前一个位置的的前缀的后缀和原串的后缀部分相同,那么肯定有重复的,重复的个数就是两个前缀的最长公共后缀长度+1(因为...
2019-10-05 11:36:40
234
原创 2019牛客国庆集训派对day1 K 双向链表练习题
题意:https://ac.nowcoder.com/acm/contest/1099/K分析:要求不断地让一个列表追加到另一个列表中,并反转。但是不停反转是很耗性能的,不停地反转将会导致超时。为了解决这个反转超时问题,我们开两个表,一个正向表,一个反向表。把正向表与反向表的元素对调一下,就相当于反转了。这样就不会超时了。用c++list(双向链表)模拟很方便。代码:#include...
2019-10-05 09:06:58
277
2
原创 训练赛小总结
距离icpc只有两个多月了,最近发现思维太差劲了,很多简单题都要做很久,甚至想半天想不出来,本来还想着专题训练的,但是现在得调整一下,还是得以打比赛和补题为主,专题为辅,抽空回顾一些重要且常见的算法。打算每天至少训练一场cf,牛客、cf的比赛如果不冲突,就都参加并补题,另外每周一场队内赛,完全按照正式比赛来搞。下面总结一些比赛的过失和教训,时刻警示自己,避免总是犯一样的错误。1、如果一道题想到...
2019-09-05 21:55:58
239
原创 个人训练打卡
日期 比赛 2019.9.5 Codeforces Round #582 (Div. 3) 2019.9.6 Comet OJ - Contest #10 2019.9.10 牛客练习赛51
2019-09-05 21:36:04
201
原创 阶段目标
9.3-9.4 主席树9.5-9.6 线段树9.7-9.8 树链剖分9.9-9.10 单调队列9.11-9.12 KMP+扩展KMP9.13-9.14 后缀树组9.15 AC自动机9.16 字典树9.17 哈希9.18 bitset
2019-09-03 19:56:29
187
原创 概率期望总结(题目合集)
1、2018-2019 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2018) E - Explosion Exploit(dfs+概率)题意:我方n人,血量已知,对方m人,血量已知。现在有d点伤害,一点一点扣,每次伤害对所有活着的人的概率相同。问d次伤害后对面全死的概率。分析:好题,把概率和dfs结合在了一起,概率题做的少,不...
2019-09-02 20:05:56
395
原创 并查集总结(题目合集)
1、codeforces 1213G Path Queries题意:给你一颗n个点的树,求路径最大边权小于等于某个数(m组)的点对数,n,m<=2e5。分析:算是一道思维题,想到了联通块计算贡献,不知道怎么处理多组询问,看了题解才知道是先将边权排序,依次加入加入边,不断合并并计算联通块的贡献,注意路径压缩,否则tle。代码:#include<bits/stdc++.h...
2019-09-02 19:25:18
397
原创 构造总结(题目合集)
1、codeforces1202D Print a 1337-string...题意:构造一串只由 ‘1’,‘3’,‘7’ 组成的字符串,使其 ‘1337’ 子序列数量为n。分析:这类构造题一般是将一个数拆成几部分相加,这题可以构造成形如 133 7.7 3..7,则‘1337’子序列数量为C(n,2)+k,其中C(n,2)是第一个‘1’、中间所有的‘3’和最后一个‘7’构成子序列数量,...
2019-09-02 19:06:44
464
原创 cdq分治总结(题目合集)
1、The Preliminary Contest for ICPC Asia Nanjing 2019A. The beautiful values of the palace题意:给出一个n*n(n为奇数)的蛇形矩阵,将其中的m个点的值改为各位数之后,给出p组询问,查询子矩阵的和(必须是m个点集中的点,其他的点可看成值为0)。分析:数组求和或者矩阵求和,一般树状数组和线段树就可以做,...
2019-09-01 22:11:00
683
原创 数学问题总结(题目合集)
现在主要攻数据结构。把一些简单的很好的数学问题收集一下,之后再补回来。1、2018-2019 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2018)K. King's Colors题意:给出一个含有n个节点的树,以及k个颜色,询问有多少种方式正好用k个颜色给树染色,并且任意两个相邻的节点颜色不同。分析:二项式反演,参考htt...
2019-08-27 23:13:20
409
原创 概率期望总结(题目合集)
1、2018-2019 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2018) E - Explosion Exploit(dfs+概率)题意:我方n人,血量已知,对方m人,血量已知。现在有d点伤害,一点一点扣,每次伤害对所有活着的人的概率相同。问d次伤害后对面全死的概率。分析:好题,把概率和dfs结合在了一起,概率题做的少,不...
2019-08-27 20:21:30
605
音乐播放器
2017-12-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人