![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
nwpu053883
这个作者很懒,什么都没留下…
展开
-
多用户.gitconfig配置
经常遇到一个问题, 同一台电脑需要git pull不同账户及仓库的代码,则需要重新配置name, email等属性git config --global name "xxx"git config --global email "yyy"~/.gitconfig文件中会保存当前的配置。如何使多用户同时有效呢??以下是一个方式:[includeIf "gitdir...原创 2020-05-07 15:38:33 · 1337 阅读 · 0 评论 -
systemctl如何根据pid寻找具体哪个服务
家里折腾我家云omv系统,一直有个进程2105 aria2c --conf-path=/opt/etc/aria2.conf在写emmc文件...一会就写满了...需要利用systemctl disable 该项服务, 以解决该问题...root@omv:/opt# systemctl --help | grep -i pid status [PATTERN...|...原创 2020-03-24 23:14:38 · 1824 阅读 · 0 评论 -
udev rules sample
touch /etc/udev/rules.d/51-blk-dev.rulesACTION=="add", KERNEL=="sd[a-z][0-9]", RUN+="/bin/mkdir -p /mnt/%k"ACTION=="add", KERNEL=="sd[a-z][0-9]", RUN+="/bin/mount /dev/%k /mnt/%k"ACTION=="add", K...原创 2020-03-12 19:24:27 · 332 阅读 · 0 评论 -
vim 的一些 小tick(如%, !, $等 )
1. :$直接敲$, 是当前行的末尾$ or <End> To the end of the line. When a count is given also go ...原创 2020-01-11 14:17:11 · 934 阅读 · 0 评论 -
Linux调度器
https://www.cnblogs.com/tolimit/p/4303052.htmlhttps://mp.weixin.qq.com/s/W68WIT4AGdS7xJSecnHYcQhttps://mp.weixin.qq.com/s/V8ZONUdTeoALQuiy53uN_w挖坑...原创 2020-01-02 19:30:44 · 124 阅读 · 0 评论 -
spin_lock 相关 -- 原子上下文
在前面文章描述spin_lock的时候, 要求spin_lock/unlock中间的代码不能有主动放弃cpu, 进入睡眠的函数。 (如sleep, schedule()等)下面提一个问题?Q: 那在spin_lock/unlock中间代码段执行时, 时间片到了怎么办?A: spin_lock和spin_unlock中间代码是原子上下文。 故时间片轮转到了, 也不会调度。。。...原创 2020-01-02 19:25:54 · 271 阅读 · 0 评论 -
抢占(PREEMPTION)是如何发生的
http://linuxperf.com/?p=211挖坑...原创 2020-01-02 16:46:45 · 295 阅读 · 0 评论 -
spin_lock相关
spin_lock - 自旋锁编程时, 经常需要考虑的问题是同步问题。谁和谁之间同步呢?? 看你的关键代码段和共享数据区的访问/读写者。有可能会很多, 很乱...比如:线程和线程,线程和中断,中断和中断,此核和彼核...应用, 内核等都有很多锁, 互斥, 原子等机制...内核中,比如1. 原子变量2. 自旋锁 spin_lock3. 互...原创 2020-01-02 16:46:12 · 217 阅读 · 0 评论 -
关于mmu使用多级页表为什么省空间的分析
Q: 为什么使用多级页表能省内存?A:首先考虑一级页表的情况。内存虚拟空间是0~4G按4K一页的方式分页。那么需要总共1024 * 1024个页表项, 即1M个页表项其中每个页表项为32位整数。为什么??想想里面需要存放什么???最主要的其实就是映射的页表基地址。假设0x12345678的虚拟地址, 映射的物理地址是0x56789678。那我们页表项主...原创 2019-12-28 19:48:04 · 1863 阅读 · 1 评论 -
v4l2 vivi驱动分析
v4l2驱动框架相对还是挺复杂的,最好的参考例子有v4l2-pci-skeleton.c和vivi (Virtual Video)其中vivi在最新的Linux 4.xx版本也变得非常复杂。所以采用Linux-3.16.74版本作为学习...1. 该版本没有使用platform_driver框架, 故模块初始化入口函数vivi_init直接进行video设备的注册...原创 2019-12-26 15:52:58 · 1047 阅读 · 0 评论 -
Linux v4l2框架相关
记录下linux v4l2相关知识。1. v4l2 - Video For Linux 2 version.即内核中关于视频(audio, radio其实也可以用) 处理的驱动框架。常见如摄像头采集, 编解码器等 都可以用v4l2框架。2. 用户态编程网络上有很多相关文档。和大部分linux设备驱动一样, 用户态主要操作有open, close, read, wr...原创 2019-12-26 14:33:39 · 441 阅读 · 0 评论 -
Linux 内存管理
关于Linux内存管理...挖个坑...相关概念1. 用户态堆, 栈, 静态数据区, mmap映射区函数 - malloc, free, brk, mmap2. 内核态内核堆, 栈, 静态数据区, dma内存等相关函数 - kmalloc, vmalloc,ioremap, dma_allcoc_coherent, __get_free_pages.....原创 2019-12-24 11:28:18 · 89 阅读 · 0 评论 -
Linux 内核面向对象思想及实现
面向对象, 并不一定需要C++, JAVA语言才能实现。 C语言也能实现, 比如Linux内核。C语言实现面向对象的思想,1. 封装, 将数据和方法都封装在数据结构中, 其中方法可以使用函数指针来实现。2. 继承,3. 多态, 即具体的函数调非编译器决定, 而是程序运行期间决定, 即所谓的晚绑定(Late Binding)。 即封装中的函数指针, 可根据具体...原创 2019-12-03 11:51:14 · 2198 阅读 · 1 评论 -
vpath & VPATH
https://www.jianshu.com/p/26f732aaa2f0占坑原创 2019-12-02 16:07:44 · 169 阅读 · 0 评论 -
关于开源软件的交叉编译
Linux系统中, C/C++ 软件的编译方式从老到新无外乎以下一些方式:1. Makefile2. automake3. CMAKE4. meson + ninja开源软件移植, 例如从x86架构移植到arm架构, 主要工作就是编译器的替换。 将gcc编译器替换成arm-linux-gcc等交叉编译工具链。工具链 通常包括, gcc, g++,glibc库, bi...原创 2019-11-30 16:55:44 · 1212 阅读 · 0 评论 -
linux网络命令相关
1. netstatnetstat-t 查看 tcp 连接netstat -u 查看udp连接netstat -x 查看unix socket连接netstat -p 显示socket关联的程序(如不是本用户执行的程序, 需sudo netstat -p查看)2. nmapNetwork Mapper, 可以扫描网络常见的如查找指定网段下连接的主机。nmap...原创 2019-11-27 13:48:29 · 218 阅读 · 0 评论 -
关于arm的异常向量表
以前, armv6 如 (arm9, arm11等) 有7种异常模式。 分别为:User 用户模式, 应用程序运行于该模式。Svc (Supervisor) 超级模式, bootloader及内核运行于该模式。 系统调用通过swi陷入内核态, 切换到Svc模式。Sys (System) 系统模式, 一种特权模式, 貌似有些特殊场景会用, 比如中断嵌套等场景, 后续研究。Abort...原创 2019-11-16 17:00:44 · 2613 阅读 · 0 评论 -
设备树 记录
记录些设备树相关的规范。1. 节点, 属性, 值2. compatible, 匹配/兼容的驱动名称, OpenFirm框架会去寻找相应的驱动3. 寄存器amba_apu: amba_apu@0 { com...原创 2019-11-15 19:03:15 · 220 阅读 · 0 评论 -
ubuntu xorg无法进入的问题
这两天遇到两个问题, 记录一下...1. 本地gnome桌面无法进入...2. win10自带远程桌面工具登录xorg桌面无法登录...xorg - 全称XOrg Foundation Open Source Public Implementation of X11即XOrg基金会的一个X11开源实现, 即X11 Window Server的一个开源实现。发布于2005...原创 2019-10-17 14:23:27 · 6714 阅读 · 0 评论 -
小米随身wif linux平台配置
小米随身wifi及360随身wifi 使用的都是mt7601u芯片, 是ralink的产品线迭代产品。2011年被联发科收购后, ralink作为mtk的无线技术事业群。官网驱动可于https://www.mediatek.com/products/broadbandWifi/mt7601u下载如果你使用的是Linux v4.2以后的内核, 主线分支里就含有mt7601u的驱动了...原创 2019-10-15 11:03:42 · 1818 阅读 · 0 评论 -
busybox 网络相关
busybox - 瑞士军刀, 包含很多linux/unix 平台的有用utilities。比如sh, ls, cat, grep, touch, chmod, chown, cp, mv, vi, stat等等等包括系统常用工具, 编辑器, shell, 文件操作, 文件系统, 终端控制等等这里主要记录点网络相关操作1. ifconfig 这个不用说, 配置...原创 2019-10-14 21:08:25 · 2294 阅读 · 0 评论 -
内核模块 oops 堆栈回溯
kernel panic, oops, warn(dump_stack)会打印函数调用栈, 例如:[ 556.107661] [<ffffff8000ac9098>] g_loop_setup+0x30/0x300 [g_loop][ 556.113744] [<ffffff800867922c>] dwc3_ep0_delegate_req+0x2c/0x48...原创 2019-09-24 20:41:28 · 578 阅读 · 0 评论 -
ubuntu kdump + crash使用
1. kdump简介 coredump为用户态进程段错误等触发的crash现场转储机制, 可利用gdb进行corefile的调试. kdump为kernel crash/panic等而触发的转储机制, 一般使用crash工具进行调试.2. kdump原理 预留部分内存(如192MB) 供转储内核使用, 当panic/crash产生时 利用kexec系统调用...原创 2019-07-06 22:16:51 · 6501 阅读 · 1 评论 -
Buildroot的一些小ticks.
1. 下载失败需要重新下载等情况可参考如下:.stamp_configured, 此文件表示已经配置过 .stamp_downloaded, 此文件表示源码已经下载过,没有此文件会重新下载.stamp_patched, 此文件表示已经打过补丁.stamp_extracted 此文件表示已经压过 .stamp_builted 此文件表示源码已经编译过 .stamp_t...原创 2019-06-23 12:32:08 · 698 阅读 · 0 评论 -
Linux系统中的计时机制及相关时间函数
1. 时间相关硬件计算机系统中的时间主要由三种时钟硬件提供的:实时时钟(Real Time Clock,RTC),可编程间隔定时器(Programmable Interval Timer,PIT),时间戳计数器(Time Stamp Counter,TSC)。这些时钟硬件都是基于固定频率的晶振来提供时钟方波信号输入。一般说来,Linux内核主要需要两种类型的时间:一类是单步递增性时钟,转载 2012-08-25 22:59:23 · 712 阅读 · 0 评论 -
Linux 计时
Linux 常见计时系统调用如下:序号函数类型精度级别时间1timeC系统调用低2timesC系统调用低3clockC系统调用低4gettimeofday linux环境下C系统调用高Example:#include原创 2012-08-26 18:37:11 · 549 阅读 · 0 评论 -
Linux IPC System V Message Queue
Linux IPC:1. pipe ---- 匿名管道2. fifo ----- 有名管道3. signal ---- 异步信号4. semaphore --- 信号灯,用于同步5. message queue ---- posix message queue, system-v message queue6. shared memory ---原创 2012-08-23 22:37:01 · 3138 阅读 · 0 评论 -
win7下直接删除ubuntu系统导致启动报grub rescue no such partition错误
安装win7和ubuntu双系统后, ubuntu有修改硬盘默认的MBR为GRUB, 故在win7下删除ubuntu系统后造成GRUB 找不到对应的(hd0, msdos6)。(利用ls,set命令可以查看grub rescue 脚本)解决方法: 还原MBR1. 可利用光盘或U盘启动windowsPE系统, 利用里面自带的磁盘分区工具, 还原MBR2.原创 2012-07-19 23:27:45 · 3664 阅读 · 1 评论 -
Linux系统移植
<br />Linux系统移植<br />目 录<br />第一部分 前言...................................................................................................................................8<br />1 硬件环境...........................................................................转载 2011-04-28 15:12:00 · 1475 阅读 · 0 评论 -
ubuntu 默认shell修改
1. 支持的shell# /etc/shells: valid login shells/bin/sh/bin/bash/bin/rbash/bin/dash/usr/bin/screen------------------------------------------------------------------------------------2. cat /etc...原创 2019-08-08 09:53:16 · 2720 阅读 · 0 评论 -
ubuntu scp踩坑
Note that scp follows symbolic links encoun‐tered in the tree traversal.=======================================================scp 拷贝时软链接会失效, 直接拷贝原文件过来....导致拷贝5G的内容过来, 远远大于5G... 且很久没结束......原创 2019-08-08 15:17:59 · 1201 阅读 · 0 评论 -
Makefile tips
1. 关于 Makefile中 =, .=, ?=的区别= 最基本的赋值:= 覆盖之前的值?= 如果没有被赋值过就赋予等号后面的值+= 添加等号后面的值2. patsubst -- pattern substitute局部替换例如 patsubst %.c, %.o, hello.c该方法输出hello.o3. wildcard通配符例如...原创 2019-08-12 15:56:49 · 92 阅读 · 0 评论 -
fastboot usb 驱动相关
1. fastboot -- 安卓线刷协议. 协议: uboot/doc/README.android-fastboot uboot/doc/README.android-fastboot-protocol2. 源码 uboot及android-platform-system-core中都有.3. 配置uboot usb外设模式启动....原创 2019-08-15 20:14:05 · 1402 阅读 · 0 评论 -
sudo 环境变量相关
1. LD_LIBRARY_PATH, PATH 等指定运行时环境.但对于sudoer并不适用,path 可 更改/etc/sudoer文件Defaults› secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin".........原创 2019-08-20 16:46:04 · 140 阅读 · 0 评论 -
ubuntu 包管理
1. 各发行版 包管理工具ubuntu/debian .deb apt, apt-cache, apt-get, dpkg centos/redhat .rpm yum fedora .rpm dnf archlinux xxx pacman 2. ubuntu 工具相关 常见: 1). sudo apt-...原创 2019-08-20 15:31:40 · 119 阅读 · 0 评论 -
udev 驱动相关
1. 问题,register_chrdev_region/alloca_chrdev_region cdev_init/cdev_add 以上函数仅为字符设备分配,注册等操作.内核模块加载后, cat /proc/devices中可看到该设备.但是 具体的设备节点(/dev/xxxx) 需要使用mknod命令手动创建.2. 故linux 2.6以后引入了...原创 2019-08-09 20:32:42 · 303 阅读 · 0 评论 -
Linux源码内核版本号
内核根目录 Makefile# SPDX-License-Identifier: GPL-2.0VERSION = 5PATCHLEVEL = 0SUBLEVEL = 18EXTRAVERSION =NAME = Shy Crocodile该内核版本号为5.0.18原创 2019-08-07 17:19:42 · 937 阅读 · 0 评论 -
一些不错的主题
vim, notepad++, xshell, putty等终端及编辑器主题选择:一些经典的主题如下:solarized_darksolarized_lighttango (ubuntu 19.04默认主题)molokaigruvbox-----------------------------------------------------------------...原创 2019-08-09 17:18:59 · 178 阅读 · 0 评论 -
ubuntu服务器编译内核 -- 更新个人PC主机
由于虚拟机编译内核速度太慢, 故使用服务器编译内核并更新虚拟机内核.步骤如下:1. 内核编译1). 下载Linux 主线内核源码 --https://www.kernel.org/2). cd linux_source cp /boot/config-* .config make menuconfig (load, config,...原创 2019-08-08 16:05:04 · 183 阅读 · 0 评论 -
Linux 启 动 分 析 专 题 【转】
Linux 启 动 分 析 专 题 第一部分 背景知识简介 几乎所有编写代码的人都有这种体会:如今在计算机这个行业中,许多技术不是你不懂,而是你不知道。所以,在分析之前有些背景知识是必须要知道的。 一. 硬盘结构简介 1. 硬盘参数释疑 到目前为止, 人们常说的硬盘参数还是古老的 CHS (Cylinder/Head/Sector)参数. 那么为什么要使用这些参数, 它们的意义是什么? 它们的取值范围是什么? 很久以前, 硬盘的容量还转载 2011-06-02 09:43:00 · 831 阅读 · 0 评论