- 博客(14)
- 资源 (5)
- 收藏
- 关注
翻译 Linux 内核中的 Soft 和 Hard Lockup
这周遇到了一个内核关于 softlockup 和 hardlockup 相关的 bug, 首先在内核文档中找到了关于他们的定义和实现的介绍的非常详细,还在网上找到了更多关于他们的介绍和很细可以查看文后参考的博客1. 首先来介绍下 softlockup 和 hardlockup 在内核中怎么定义的:softlockup 是导致内核在内核态下循环超过20秒(这个时间是可以通过内核参数设置的)...
2019-04-12 17:37:16
3075
原创 Vim snippet 小技巧
要使用 vim snippet 要经过下面几个步骤:1. 为自己的 vim 添加 snippet 插件使用 vim snippet 的话首先要在自己的 ~/.vimrc 添加如下的2个插件内容:Plugin 'SirVer/ultisnips'Plugin 'honza/vim-snippets'" 下面是相关的配置信息let g:UltiSnipsExpandTrigger = ...
2019-04-12 13:41:32
3885
原创 总线、设备、驱动模型
总线、设备、驱动实体功能代码设备描述基地址、中断号、时钟、DMA、复位等信息arch/arm arch/blackfin arch/xxx 等目录驱动完成外设的功能,如网卡收发包,声卡录放,SD卡读写…drivers/* 等目录总线完成设备和驱动的关联drivers/base/platform.c drivers/pci/pci-driver.c...
2019-04-01 19:33:40
1863
原创 ARM 设备树
https://www.kernel.org/doc/Documentation/devicetree/usage-model.txtThe “ Open Firmware Device Tree” , or simply Device Tree (DT), is a datastructure and language for describing hardware. More specif...
2019-04-01 19:28:49
1066
原创 Linux 进程,线程和调度 ---- 02
1. fork、 vfork、 clone写时拷贝技术从图中可以看出,在最开始阶段的时候,就是有一个进程在运行,并且虚拟地址是可读可写的使用fork以后产生了子进程,子进程会拷贝父进程的信息,并且共享内存资源的信息,并把相应的共享虚拟地址标记为只读的状态。任一一个进程 write 后,写进程会申请新的物理地址,并把共享的物理地址断开,并标记为 R+W,也就是 Copy On Write ...
2019-03-31 16:34:05
541
转载 VirtualBox 命令行操作
VirtualBox Command Line最近在用 VirtualBox 运行虚拟机的时候,由于图形窗口太多了,于是就查找了一些便于管理 VirtualBox 的命令用命令行的方式可以避免打开更多的窗口,直接使用命令行,也不用用鼠标来回的选择控制虚拟机啦To find a list of the VMs, issue the commandVBoxManage list vmsli...
2019-03-31 16:29:17
5274
原创 Linux 常用命令行快捷键
1. Tab在输入命令的时候可以敲 tab 键进行命令行自动补全,很方便的一个工具。在查看文件或者编辑文件的时候也可以使用,并自动补全文件名2. Ctrl + c结束当前终端运行的程序3. Ctrl + z将当前进程发送到后台。如果您正在运行程序,并且您需要终端一段时间但不想完全退出程序,这将非常有用。输入命令 fg 以返回进程。4. Ctrl + w删除当前命令行,光标前...
2019-03-27 18:20:48
181
翻译 What Is Readable Code
What Is Readable Code?分享的这篇文章是关于代码可读性的设计和使用的知识Code creates interfaces. But code itself is also an interface.代码创建接口。 但代码本身也是一个接口。首先介绍了可读性是多少?从三个方面介绍可读性代码看起来漂亮时是否可读? 看起来漂亮是可读性的一个很好的副作用,但它并没有那么有用...
2019-03-27 17:48:20
158
原创 Github 同步更新 fork 的提交
# 1. 首先查看自己的远程仓库设置的情况$ git remote -vorigin xxxx.git (fetch)origin xxxx.git (push)# 2. 添加 fork 的上游仓库$ git remote add upstream yyyy.git$ git remote -v # 查看添加后的仓库情况origin xxxx.git (fetch)orig...
2019-03-22 17:14:43
124
原创 How to Design Fault-tolerant Systems in Three Easy Steps
How to Design Fault-tolerant Systems in Three Easy Stepsidentify all possible faults (software, hardware, design, operation, environment, …)detect and contain the faultshandle the faultdo nothing...
2019-01-09 16:05:58
171
原创 在Debian 8中安装 gcc-arm-linux-gnueabi编译debian的 deb安装包
从Debian 的官网中可以发现完全没有 gcc-arm-linux-gnueabi 这个安装包,但是他们在 unstable (sid)中提供了相应的安装包。以下是提供安装交叉工具链的方法和如何使用交叉编译可以通过CrossToolchains — 这篇官方文档来设置安装 相应的交叉编译工具安装过软件之后就可以编译相应的软件了,CrossCompiling提供了如何使用交叉编译...
2018-12-11 14:15:52
2931
原创 Neighbour table overflow
kern.warning :Neighbour table overflow这几天查看bug列表的时候,发现一个关于 Neighbour table overflow相关的bug。从字面上看应该是内核 ARP 相关的 table cache 用光了,在这种情况下应该增加 ARP table cache 的大小。那么该如何增加是一个问题,有问题先Google一下。发现好多关于该问题的解决方法...
2018-12-03 11:07:01
692
原创 perf: interrupt took too long
Perf 问题最近Linux 内核总是报一下错误信息,所以抽出点时间找了点资料了解了下:[ 6216.961770] perf: interrupt took too long (2502 > 2500), lowering kernel.perf_event_max_sample_rate to 79000发现在红帽的Bugzilla上已经有人提出过这个bug了,瞬间感觉轻松了不少...
2018-12-03 10:51:51
35169
1
原创 进程的生命周期
进程的生命周期1. 进程控制块 PCB 与 task_struct进程是资源封装管理的单位,资源指占用的内存,文件系统,信号及处理 方法。线程是调度的单位,进程的区别是资源,资源是隔离的,进程把资源描述清楚就可以了Process Control Block(PCB) 进程控制块, 在不同操作系统中用于描述进程,在 Linux 的 PCB 就是用 task_struct 来描述。描...
2018-08-07 10:13:21
10022
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人