LINUX
那颗流星
提炼升华
展开
-
Linux下的进程状态切换
先上图include/linux/sched.h描述进程的状态/* Used in tsk->state: */#define TASK_RUNNING 0x0000#define TASK_INTERRUPTIBLE 0x0001#define TASK_UNINTERRUPTIBLE 0x0002#define __TASK_STOPPED 0x0004#define __TASK_TRACED 0x0008/* Used in tsk->exit_st原创 2020-09-21 18:45:35 · 563 阅读 · 0 评论 -
kernel源码下载并通过qemu运行
如何运行最新的内核源码,把过程记录下。1.下载源码git clonehttps://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git2.编译arch/x86/configs/有i386_defconfig和x86_64_defconfig,这里以x86_64_defconfig为例,make x86_64_defconfigmake -j4运行内核qemu-system-x86_64 -kernel arch/.原创 2020-09-13 15:47:46 · 610 阅读 · 0 评论 -
vfs概念
Linux读写文件的一个demo如下,运行后系统死机了,原因是f->f_op->write为NULL,导致空指针,将f->f_op->write换成vfs_write代码正常运行static int stmvl53l0x_write_offset_calibration_file(void){ struct file *f; ...原创 2019-12-12 20:17:28 · 767 阅读 · 0 评论 -
Linux下syscall分析
先看如何增加系统调用diff --git a/kernel4.4/arch/arm/include/uapi/asm/unistd.h b/kernel4.4/arch/arm/include/uapi/asm/unistd.hindex ede692f..081ab28 100644--- a/kernel4.4/arch/arm/include/uapi/asm/unistd.h+...原创 2019-11-29 20:12:53 · 1540 阅读 · 0 评论 -
Linux中寻找头文件的方法
在Linux的世界里,可能用到来某个函数,但找不到头文件的苦恼。 如果是应用程序,只需在终端上运行一下man+函数名即可。 如果是驱动程序,我们需要进入代码中,进入内核的include目录,使用grep -rin “函数名” *,就可以找到该函数在哪个头文件里定义的了。当然应用程序也可通过此方法寻找头文件,对应到路径是/usr/include。 也就是说,使用arm-linux-gcc编译的原创 2015-10-30 21:12:54 · 3903 阅读 · 0 评论 -
查看系统中的Linux内核版本
在Linux内核的顶层Makefile中,顶端就有,格式为VERSION = 3PATCHLEVEL = 0SUBLEVEL = 8EXTRAVERSION =NAME = Sneaky Weasel以上的版本号就是3.08原创 2016-03-07 10:06:57 · 531 阅读 · 0 评论 -
修改make的版本
由于编译Android源码对make的版本有特定的需要,因此有时候需要修改make的版本。下载make的源码http://ftp.gnu.org/gnu/make/选择特定的版本,并解压。./configuremakemake install运行make -version,显示安装的版本号则安装成功。原创 2016-01-08 19:38:23 · 2109 阅读 · 0 评论 -
启动busybox自带的ftp服务器
关于ftp工作原理详解 ,可参考http://blog.chinaunix.net/uid-12814440-id-2914750.html为了了解ftp,首先在ubuntu上搭建一个ftp服务器先。在ubuntu12.04中搭建ftp服务器:sudo apt-get install vsftpd完成安装后,就可以用Ubuntu系统的用户名和密码登陆了。可以在手机上原创 2015-11-17 22:08:45 · 8018 阅读 · 9 评论 -
查看某个文件所依赖的库文件
由于某些可执行文件是以动态链接库的形式编译的,如果没有将动态链接库复制到相应的目录下,会出现该程序运行失败的情况。对于电脑上的程序,可通过objdump -x toolbox | grep NEEDED查看。对于arm交叉工具链编译出来的程序,可通过arm-linux-objdump -x toolbox | grep NEEDED查看。例如objdump -x date原创 2015-12-04 00:03:59 · 2324 阅读 · 0 评论