Linux
张鸷
这个作者很懒,什么都没留下…
展开
-
Makefile之------Makefile中常用的函数
在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能。make所支持的函数也不算很多,不过已经足够我们的操作了。函数调用后,函数的返回值可以当做变量来使用。一、函数的调用语法函数调用,很像变量的使用,也是以“$”来标识的,其语法如下: $()或是 ${}这里,就是函数名,make支持的函数不多。是函数的参数,参数间以逗转载 2015-04-29 21:27:18 · 446 阅读 · 0 评论 -
read 系统调用剖析
Read 系统调用在用户空间中的处理过程 Linux 系统调用(SCI,system call interface)的实现机制实际上是一个多路汇聚以及分解的过程,该汇聚点就是 0x80 中断这个入口点(X86 系统结构)。也就是说,所有系统调用都从用户空间中汇聚到 0x80 中断点,同时保存具体的系统调用号。当 0x80 中断处理程序运行时,将根据系统调用号对不同的系统调用分别处理(调用不同的内核转载 2015-11-20 17:27:37 · 7542 阅读 · 0 评论 -
ARM Linux系统调用
下面的分析以2.6.34为例。内核部分ARM-Linux的系统调用列表定义在arch/arm/kernel/call.S中: * This file is included thrice in entry-common.S //entry-common.S将会包含这个文件。根据偏移量,获取函数的指针*//* 0 */转载 2015-11-20 12:50:45 · 1762 阅读 · 0 评论 -
浅析 Linux 初始化 init 系统,第 3 部分: Systemd
近年来,Linux 系统的 init 进程经历了两次重大的演进,传统的 sysvinit 已经逐渐淡出历史舞台,新的 UpStart 和 systemd 各有特点,越来越多的 Linux 发行版采纳了 systemd。本文简要介绍了这三种 init 系统的使用和原理,每个 Linux 系统管理员和系统软件开发者都应该了解它们,以便更好地管理系统和开发应用。本文是系列的第 3 部分,主要讲述 syst转载 2015-11-30 19:07:57 · 595 阅读 · 2 评论 -
浅析 Linux 初始化 init 系统,第 2 部分: UpStart
从 sysvinit 到 systemd 近年来,Linux 系统的 init 进程经历了两次重大的演进,传统的 sysvinit 已经淡出历史舞台,新系统 UpStart 和 systemd 各有特点,而越来越多的 Linux 发行版采纳了 systemd。本文简要介绍了这三种 init 系统的使用和原理,每个 Linux 系统管理员和系统软件开发者都应该了解它们,以便更好地管理系统和开发应用。转载 2015-11-30 18:48:57 · 425 阅读 · 0 评论 -
并行启动应用程序从而加速 Linux 的引导
使用 initng 和 upstart 对于 Linux® 的最大抱怨(尤其来自开发人员)就是 Linux 的引导速度。默认情况下,Linux 是一个通用的操作系统,可以作为一个开箱即用的客户机桌面或服务器使用。由于 Linux 具有很好的灵活性,因此可以用作各种用途的基础,但对于任何特定的配置来说,尚不是最理想的选择。本文将向您展示可以提高 Linux 引导速度的一些方法,包括两种可以对初始化过转载 2015-11-30 18:20:31 · 518 阅读 · 0 评论 -
浅析 Linux 初始化 init 系统,第 1 部分: sysvinit
从 sysvinit 到 systemd 近年来,Linux 系统的 init 进程经历了两次重大的演进,传统的 sysvinit 已经淡出历史舞台,新的 init 系统 UpStart 和 systemd 各有特点,而越来越多的 Linux 发行版采纳了 systemd。本文简要介绍了这三种 init 系统的使用和原理,每个 Linux 系统管理员和系统软件开发者都应该了解它们,以便更好地管理系转载 2015-11-30 18:28:30 · 315 阅读 · 0 评论 -
Android系统init.rc分析
在 Android中使用启动脚本init.rc,可以在系统的初始化过程中进行一些简单的初始化操作。这个脚本被直接安装到目标系统的根文件系统中,被 init可执行程序解析。 init.rc是在init启动后被执行的启动脚本. (1)android启动文件系统后调用的第一个应用程序是/init,此文件的很重要的内容是解析了init.rc和init.xxx.rc 两个配置文件,然后执行解析出来的任务。转载 2015-12-02 09:52:04 · 751 阅读 · 0 评论 -
Linux电源管理-Suspend/Resume流程
前言根据上一节linux电源管理-概述可知,linux电源管理存在的几种方式,如何查看这几种方式,以及最后的如何睡眠唤醒等。通过echo mem > /sys/power/state就可以达到睡眠,所以可以根据此节点的sys代码分析suspend的流程。suspend代码分析在手机端执行如下命令:echo mem > /sys/power/state根据sys节点的属性命令规则,可以此节点的实现代码转载 2016-11-19 14:14:13 · 1947 阅读 · 0 评论 -
ubuntu下fastboot找不到devices
在ubuntu下,输入lsusb命令,显示Bus 001 Device 004: ID 0bb4:0c02 High Tech Computer Corp. Dream / ADP1 / G1 Phone (Debug) Bus 001 Device 002: ID 80ee:0021 第一个Device是我的手机,因此说明ubuntu已经检测到这个设备了。 另外virtualbox的活动u转载 2017-04-19 16:53:36 · 2033 阅读 · 0 评论 -
Ubuntu error: insufficient permissions for device(解决adb shell问题)
今天在Linux下连接平板usb,试用adb shell时出现error: insufficient permissions for device, 而且我们输入adb devices显示:xxnan@xxnan-pt:~$ adb devicesList of devices attached ???????????? device那么我们怎么解决它呢?首先在终端查看usb的ID,输入转载 2017-04-19 16:58:57 · 1710 阅读 · 0 评论 -
内核线程
在linux内核中,所谓的内核线程实际上是一个共享父进程地址空间的进程,它有自己的系统堆栈;所以它们依然是一个进程,只不过这些进程可以与其他进程共享某些资源,这里的其他进程也是所谓的线程。1 内核线程与普通进程的异同 1.1 内核线程没有自己的地址空间,所以它们的"current->mm"都是空的; 1.2 内核线程只能在内核空间操作,不能与用户空间交互; 1.3 跟普通进程一转载 2015-07-17 14:19:26 · 460 阅读 · 0 评论 -
typecheck(type,x) 作用
在kernel 2.6.30 的typecheck.h源码中有如下定义#define typecheck(type,x) /({ type __dummy; / typeof(x) __dummy2; / (void)(&__dummy == &__dummy2); / 1; /})这个有什么作用呢?下面举例来转载 2015-10-16 18:39:55 · 785 阅读 · 0 评论 -
使用 ftrace 调试 Linux 内核,第 2 部分
ftrace 是 Linux 内核中提供的一种调试工具。使用 ftrace 可以对内核中发生的事情进行跟踪,这在调试 bug 或者分析内核时非常有用。本系列文章对 ftrace 进行了介绍,分为三部分。本文是第二部分,通过示例介绍了如何使用 ftrace 中的跟踪器,并对不同格式的跟踪信息进行了描述,同时还对如何使用 ftrace 调试指定内核模块进行了介绍。通过对本文的学习,读者可以了解如何转载 2015-07-31 18:04:38 · 326 阅读 · 0 评论 -
Linux shell命令---------find
除了在一个目录结构下查找文件这种基本的操作,你还可以用find命令实现一些实用的操作,使你的命令行之旅更加简易。本文将介绍15种无论是于新手还是老鸟都非常有用的Linux find命令。首先,在你的home目录下面创建下面的空文件,来测试下面的find命令示例。01# vim create_sample_files.sh转载 2015-04-29 20:29:03 · 423 阅读 · 0 评论 -
Makefile之---linux内核Makefile和Kconfig的浅要分析
内核中那些文件将被编译?他们是怎样被编译的?他们连接时顺序如何确定?那个文件在最前面?内核最先执行的文件怎样确定?这些都是通过Makefile来管理的。a)顶层Makefile它是所有Makefile文件的核心,从总体上控制内核编译,连接b).config配置文件(make menuconfig内核配置完之后自动生成),所有Makefile文件都是根据.config来确定使用那些文转载 2015-04-28 23:56:54 · 613 阅读 · 0 评论 -
apt linux命令简介
前言 Linux系统维护中令管理员很头疼的就是软件包之间的依赖性了,往往是你要安装A软件,但是编译的时候告诉你X软件安装之前需要B软件,而当你安装Y软件的时候,又告诉你需要Z库了--好不容易安装好Z库,发现版本还有问题......可能很多朋友都有过这个经历。其实开源社区早就对这个问题尝试进行解决了,不同的发行版推出了各自的工具,比如Yellow Dog的YUM ,Debian转载 2015-05-17 11:41:58 · 534 阅读 · 0 评论 -
linux内核中等待队列(wait_event,wake_up...)
根据内核3.1.6版本源码、书籍和网上资料,对几个函数进行分析 介绍这几个函数,不得不先介绍等待队列wait_queue_head_t 等待队列用于使得进程等待某一特定事件的发生,无需频繁的轮询,进程在等待周期中睡眠,当时间发生后由内核自动唤醒。等待队列 (一)数据结构 等待队列结构如下,因为每个等待队列都可以转载 2015-07-17 14:16:48 · 638 阅读 · 0 评论 -
深入探索 Kdump,第 3 部分: Kdump 原理探秘
Kdump 实现的基本原理Kdump 的实现可以分为两个部分:内核和用户工具。内核提供机制,用户工具在这些机制上实现各种转储策略。内核机制对用户工具的接口是一个系统调用:kexec_load(),它被用于加载捕获内核和传递一些相关信息。捕获内核启动后,会像一般内核一样,去运行为它创建的 ramdisk 上的 init 程序。而各种转储机制都可以事先在 init 中实现。为了在生产内核崩溃时转载 2015-07-30 14:55:33 · 1037 阅读 · 0 评论 -
深入探索 Kdump,第 4 部分: kdump 的亲密战友 crash
简介: crash 是目前广泛使用的 linux 内核崩溃转储文件的分析工具,掌握 crash 的使用技巧,对于分析定位内核崩溃的问题,有着非常重要的作用。本文首先介绍了 crash 的基本概念和安装方法,其次详细介绍了如何使用 crash 工具分析内核崩溃转储文件,包括各种常用调试命令的使用方法,最后以几个实际工作中遇到的真实案例向读者展示了 crash 的强大功能。在这篇文章中,既有详细的工具转载 2015-07-30 14:47:52 · 836 阅读 · 0 评论 -
深入探索 Kdump,第 2 部分: Kdump 图形化配置工具
引言众所周知,RHEL 和 SUSE 是当今比较主流的两大企业版 Linux,尤其在云计算服务器领域内锦上添花。对于界面用户,相对枯燥的 kdump 命令行终端配置文件,他们更加需要看到一个简单便捷的图形配置工具作为绝技杀手锏。下面以 IBM Power 架构和 RHEL6.2、SLES11SP2 系统为例,讲解这种图形工具分别是如何使界面用户操作方便、简单明了。RHEL6.2 介绍 sy转载 2015-07-30 14:52:41 · 904 阅读 · 0 评论 -
ftrace的使用
This article explains how to set up ftrace and be able to understand how to trace functions. It should be useful for current kernel developers and device driver developers who want to debug kernel i转载 2015-07-31 18:08:59 · 591 阅读 · 0 评论 -
使用 ftrace 调试 Linux 内核,第 3 部分
ftrace 是 Linux 内核中提供的一种调试工具。使用 ftrace 可以对内核中发生的事情进行跟踪,这在调试 bug 或者分析内核时非常有用。本系列文章对 ftrace 进行了介绍,分为三部分。本文是第三部分,通过示例代码介绍如何在代码中使用 ftrace 提供的工具函数,以与 ftrace 交互。通过本文的讲解,读者可以在实际代码中使用 ftrace,方便了调试和分析转载 2015-07-31 18:06:32 · 405 阅读 · 0 评论 -
linux kernel 之 工作队列
1. 什么是workqueueLinux中的Workqueue机制就是为了简化内核线程的创建。通过调用workqueue的接口就能创建内核线程。并且可以根据当前系统CPU的个数创建线程的数量,使得线程处理的事务能够并行化。workqueue是内核中实现简单而有效的机制,他显然简化了内核daemon的创建,方便了用户的编程.工作队列(workqueue)是另外一种将工作推后执行的形式.工转载 2015-07-21 17:02:47 · 2402 阅读 · 0 评论 -
使用 ftrace 调试 Linux 内核,第 1 部分
ftrace 是 Linux 内核中提供的一种调试工具。使用 ftrace 可以对内核中发生的事情进行跟踪,这在调试 bug 或者分析内核时非常有用。本系列文章对 ftrace 进行了介绍,分为三部分。本文是第一部分,介绍了内核相关的编译选项、用户态访问 ftrace 的接口、ftrace 的数据文件,并对 ftrace 提供的跟踪器的用途进行了介绍,以使读者更好的了解和使用该工具。转载 2015-07-31 18:00:54 · 520 阅读 · 0 评论 -
linux下devicetree中惯用的of函数
linux下devicetree中常用的of函数 从device_node中获取信息: int of_property_read_u8_array(const struct device_node *np, const char *propname,u8 *out_values, size_t sz); int of_property_read_u16_array(const struct d转载 2017-04-19 17:01:09 · 682 阅读 · 0 评论