linux_kernel
文章平均质量分 71
wiggens
这个作者很懒,什么都没留下…
展开
-
linux内存、cpu查看
用 'top -i' 看看有多少进程处于 Running 状态,可能系统存在内存或 I/O 瓶颈,用 free 看看系统内存使用情况,swap 是否被占用很多,用 iostat 看看 I/O 负载情况...还有一种办法是 ps -ef | sort -k7 ,将进程按运行时间排序,看哪个进程消耗的cpu时间最多。top:主要参数 :d:指定更新的间隔,以秒计算。 q:没有任何延迟的更新...转载 2018-08-02 10:07:19 · 13143 阅读 · 0 评论 -
linux查看系统版本
一、查看Linux系统发行版本命令1:lsb_release -a该命令适用于所有Linux系统,会显示出完整的版本信息,包括Linux系统的名称,如Debian、Ubuntu、CentOS等,和对应的版本号,以及该版本的代号,例如在Debian 8中将会显示代号jessie。? 1 2 3 4 5 6 $ lsb...转载 2017-10-19 11:47:04 · 262 阅读 · 0 评论 -
linux下网络程序遭遇SIGPIPE的解决
问题描述:我的一个服务器程序, 在Windows下运行正常.但当在Linux(centos 6.3)下,进行对端未开启的异常测试时,出现莫名退出 . 最后跟踪到是write调用导致退出. 用gdb执行程序, 退出时提示"Broken pipe". 问题分析:对一个对端已经关闭的socket调用两次write, 第二次将会生成SIGPIPE信号, 该信号默认结束进程.具体的分...转载 2017-10-12 14:46:31 · 375 阅读 · 0 评论 -
Linux中表示“时间”的结构体和相关函数
在Linux系统中,表示“时间”概念的结构体有多个,相关的时间处理函数也有很多,给人以很混乱的感觉。导致了当我们真正要使用这些结构体和函数的时候,却不知道到底该用哪个结构体和哪些函数。有必要加以归纳总结一下。通过查看头文件/usr/include/time.h 和 /usr/include/bits/time.h (1)我们可以找到下列四种表示“时间”的结构体:/* Returned ...转载 2017-10-12 09:58:54 · 443 阅读 · 0 评论 -
shell中$(( )) 与 $( ) 还有${ }的区别
$( ) 与 ` ` (反引号)在 bash shell 中,$( ) 与 ` ` (反引号) 都是用来做命令替换用(command substitution)的。所谓的命令替换与我们第五章学过的变量替换差不多,都是用来重组命令行:* 完成引号里的命令行,然后将其结果替换出来,再重组命令行。例如:[code]$ echo the last sunday is $(date -d "la...转载 2017-09-20 17:00:51 · 290 阅读 · 0 评论 -
hwclock 使用
Linux机器上的时间比较复杂,有各式各样的时钟和选项等等。一:机器里有两个时钟:硬件时钟和系统时钟硬件时钟从根本上讲是CMOS时钟;系统时钟是由内核维护的,它是从1969年末(即传说中的标志Unix时代开端的那个拂晓)开始算起的累积秒数。在DOS或Mac系统中,起作用的是硬件时钟。遗憾的是,你可能已经发现了,绝大多数电脑时钟都是很不准确的。它们从根本上讲是由小型电池供电的警报器时钟...转载 2017-09-07 11:31:44 · 1721 阅读 · 0 评论 -
Makefile递归编译
akefile=和:=x := fooy := $(x) barx := later其等价于:y := foo barx := later目标:$@ 表示规则中的目标文件集。如果有多个目标,那么,"$@"就是匹配于目标中模式定义的集合。依赖:$^ 所有的依赖集合。以空格分隔。如果在依赖目标中有多个重复的,那个这个变量会去除重复的依赖目标,只保留一份。依赖:$< 依赖...转载 2018-08-13 15:50:06 · 957 阅读 · 0 评论 -
linux下进程,线程创建初探
内核将进程的列表存放在任务队列(task list)的双向链表中,链表中结点类型为 task_struct,我们称之为进程描述符,此结构中包含的数据可以完整的描述一个进程。内核通过类型为pid_t(int)类型的PID来唯一标识一个进程。 linux是类UNIX操作系统,其创建线程有一定的独特性。linux系统并未提供产生进程的机制,它的实现与众不同,实现过程总的来说主...原创 2018-08-13 18:20:43 · 305 阅读 · 0 评论 -
用户空间与内核空间,进程上下文与中断上下文[总结]
1、前言 最近在学习linux内核方面的知识,经常会看到用户空间与内核空间及进程上下文与中断上下文。看着很熟悉,半天又说不出到底是怎么回事,有什么区别。看书过程经常被感觉欺骗,似懂非懂的感觉,很是不爽,今天好好结合书和网上的资料总结一下,加深理解。2、用户空间与内核空间 我们知道现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(...转载 2018-08-17 17:17:23 · 125 阅读 · 0 评论 -
中断上下文以及下文延后执行
中断的上下文与进程上下文并没有什么瓜葛,当执行一个中断处理函数时,内核处于中断上下文。由于中断相当于打断了当前执行的程序,而且中断也没有后备的进程,所以中断上下文不可以睡眠(注意某些函数会睡眠),中断处理也必须做到迅捷,有一定的时限要求。 中断处理程序存在希望中断程序运行的尽量快以及希望中断处理程序完成的工作量多这一对矛盾。因此我们一般将中断分为上下两个部分,成为上...原创 2018-08-21 12:53:44 · 460 阅读 · 0 评论 -
查看线程栈信息
每一个进程都有自己的一个进程堆栈空间。在Linux界面执行一个执行码时,Shell进程会fork一个子进程,再调用exec系统调用在子进程中执行该执行码。那么该如何看进程堆栈呢?方法/步骤 1 1、TOP命令,找到占用CPU最高的进程 2 2、通过TOP -H -p 进程ID,找到具体的线程占用情况,Shift+H可以开启关闭线程显示 3 ...转载 2018-08-25 09:50:58 · 3334 阅读 · 0 评论 -
Linux mount/unmount命令(转)
Linux mount/unmount命令(转)格式:mount [-参数] [设备名称] [挂载点] 其中常用的参数有:-a 安装在/etc/fstab文件中类出的所有文件系统。-f 伪装mount,作出检查设备和目录的样子,但并不真正挂载文件系统。-n 不把安装记录在/etc/mtab 文件中。-r 讲文件系统安装为只读。-v 详细显示安装信息。-w 将文件系统安装为可写,为...转载 2018-09-11 13:34:31 · 1276 阅读 · 0 评论 -
Linux 线程实现机制分析(转载)
Linux 线程实现机制分析(转载)自从多线程编程的概念出现在 Linux 中以来,Linux 多线应用的发展总是与两个问题脱不开干系:兼容性、效率。本文从线程模型入手,通过分析目前 Linux 平台上最流行的 LinuxThreads 线程库的实现及其不足,描述了 Linux 社区是如何看待和解决兼容性和效率这两个问题的。 一.基础知识:线程和进程按照教科书上的定义,进程是...转载 2018-11-13 16:02:42 · 127 阅读 · 0 评论 -
慎用SIGKILL
在 Linux 中,通常可以发送一些信号来杀死一个进程,一般用来杀死进程的信号有 SIGTERM、 SIGKILL。但是,如果希望进程合理地终止,就不要发送硬中断信号 SIGKILL,因为该信号是不能拦截的,进程接到该信号之后会马上退出,并没有机会进行现场清理——这包括对线程的关闭等操作。更好的做法是,发送 SIGTERM 信号,这样进程在接到该信号后,可以做一些退出的准备工作。...原创 2018-12-06 16:49:53 · 663 阅读 · 0 评论 -
Libpcap简介
1.Libpcap简介 Libpcap是Packet Capture Libray的英文缩写,即数据包捕获函数库。该库提供的C函数接口用于捕捉经过指定网络接口的数据包,该接口应该是被设为混杂模式。这个在原始套接子中有提到。 著名的软件TCPDUMP就是在Libpcap的基础上开发而成的。Libpcap提供的接口函数实现和封装了与数据包截获有关的过程。 Libpcap提供了用户级别...转载 2018-12-07 13:40:42 · 1529 阅读 · 0 评论 -
Linux启动流程和grub详解
还记得Windows的启动流程吗?相信大家能说出来个大概,为什么说出个大概呢,因为Windows是图形界面启动的,但是开机过程都做了什么,你知道吗,相反,Linux启动的时候,会把这些加载到屏幕上面显示,那接下来我们来看看Linux启动都发生了些什么把!!!Linux启动流程图简解开机启动流程当用户打开电源后,BIOS开机自检,确定启动设备,安装启动设备启动设...转载 2019-06-27 14:05:06 · 634 阅读 · 0 评论 -
Linux 开机引导和启动过程详解
你是否曾经对操作系统为何能够执行应用程序而感到疑惑?那么本文将为你揭开操作系统引导与启动的面纱。理解操作系统开机引导和启动过程对于配置操作系统和解决相关启动问题是至关重要的。该文章陈述了GRUB2 引导装载程序开机引导装载内核的过程和systemd 初始化系统执行开机启动操作系统的过程。事实上,操作系统的启动分为两个阶段:引导boot和启动startup。引导阶段开始于打开电源开关...转载 2019-06-27 14:02:58 · 302 阅读 · 0 评论 -
简单了解busybox
BusyBox 的诞生BusyBox 最初是由 Bruce Perens 在 1996 年为 Debian GNU/Linux 安装盘编写的。其目标是在一张软盘上创建一个可引导的 GNU/Linux 系统,这可以用作安装盘和急救盘。一张软盘可以保存大约 1.4-1.7MB 的内容,因此这里没有多少空间留给 Linux 内核以及相关的用户应用程序使用。BusyBox 许可证BusyBox...转载 2017-10-19 13:36:06 · 284 阅读 · 0 评论 -
linux进程间IPC通信
进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或交换信息。IPC的方式通常有管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、Socket、Streams等。其中 Socket和Streams支持不同主机上的两个进程IPC。以Linux中的C语言编程为例。一、管道管道,通常指无名管道,是 UNIX 系统IPC最古老的形式。...转载 2017-10-20 11:27:11 · 190 阅读 · 0 评论 -
sed 笔记
Sed是什么《sed and awk》一书中(1.2 A Stream Editor)是这样解释的:Sed is a "non-interactive" stream-oriented editor. It is stream-oriented because, like many UNIXprograms, input flows through the program and is...转载 2018-08-01 15:07:22 · 216 阅读 · 0 评论 -
awk笔记
Awk是什么Awk、sed与grep,俗称Linux下的三剑客,它们之间有很多相似点,但是同样也各有各的特色,相似的地方是它们都可以匹配文本,其中sed和awk还可以用于文本编辑,而grep则不具备这个功用。sed是一种非交互式且面向字符流的编辑器(a "non-interactive" stream-oriented editor),而awk则是一门模式匹配的编程语言,因为它的主要功能是用于...转载 2018-08-01 14:58:05 · 307 阅读 · 0 评论 -
shell中各种括号的作用详解()、(())、[]、[[]]、{}
一、小括号,圆括号()1、单小括号 () ①命令组。括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用。括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格。 ②命令替换。等同于`cmd`,shell扫描一遍命令行,发现了$(cmd)结构,便将$(cmd)中的cmd执行一次,得到其标准输出,再将此输出放到原来命令。...转载 2018-07-31 16:55:39 · 246 阅读 · 0 评论 -
Linux shell ${}简单用法
Linux shell ${}简单用法[转]http://linux.chinaunix.net/techdoc/develop/2007/05/05/956956.shtml为了完整起见,我这里再用一些例子加以说明 ${ } 的一些特异功能:假设我们定义了一个变量为:file=/dir1/dir2/dir3/my.file.txt我们可以用 ${ } 分别替换获得不同的值:${f...转载 2018-07-30 18:02:05 · 167 阅读 · 0 评论 -
nand flash 个人觉得写得比较好的文章
【详解】如何编写Linux下Nand Flash驱动版本:v2.2.1 Crifan Li摘要本文先解释了Nand Flash相关的一些名词,再从Flash硬件机制开始,介绍到Nand Flash的常见的物理特性,且深入介绍了Nand Flash的一些高级功能,然后开始介绍Linux下面和Nand Flash相关的软件架构MTD的相关知识,最后介绍了在Linux的MTD驱动框架...转载 2018-06-08 10:52:14 · 19645 阅读 · 3 评论 -
Linux 系统时间和硬件时间
Linux 系统时间和硬件时间一、首先要弄清几个概念:1. “系统时间”与“硬件时间”系统时间: 一般说来就是我们执行 date 命令看到的时间,linux系统下所有的时间调用(除了直接访问硬件时间的命令)都是使用的这个时间。硬件时间: 主板上BIOS中的时间,由主板电池供电来维持运行,系统开机时要读取这个时间,并根据它来设定系统时间(注意:系统启动时根据硬件时间设定系统时间的过程可能...转载 2018-05-04 14:53:57 · 5711 阅读 · 0 评论 -
crontab详解
linux 系统则是由 cron (crond) 这个系统服务来控制的。Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的。另 外, 由于使用者自己也可以设置计划任务,所以, Linux 系统也提供了使用者控制计划任务的命令 :crontab 命令。一、crond简介crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与window...转载 2018-03-22 18:09:07 · 343 阅读 · 0 评论 -
at命令
在windows系统中,windows提供了计划任务这一功能,在控制面板 -> 性能与维护 -> 任务计划, 它的功能就是安排自动运行的任务。 通过’添加任务计划’的一步步引导,则可建立一个定时执行的任务。在linux系统中你可能已经发现了为什么系统常常会自动的进行一些任务?这些任务到底是谁在支配他们工作的?在linux系统如果你想要让自己设计的备份程序可以自动在某个时间点开始在系...转载 2018-03-22 17:48:18 · 212 阅读 · 0 评论 -
linux kernol Makefile 语法分析
原文地址:Makefile 语法分析 作者:小卒-IT Makefile 语法分析 第一部分VERSION = 2# 给变量VERSION赋值PATCHLEVEL = 6# 给变量PATCHLEVEL赋值SUBLEVEL = 22# 给变量SUBLEVEL赋值EXTRAVERSION = .6# 给变量EXTRAVERSION赋值NAME = Holy Danc...转载 2018-01-27 23:37:05 · 309 阅读 · 0 评论 -
查看ubuntu当前系统的版本信息
有时候我们安装软件或者搭建服务的时候,需要了解当前系统的版本信息,下面几个命令可以帮助我们查看当前ubuntu系统的版本信息。一:利用命令:cat /proc/version1显示如下: Linux version 3.16.0-30-generic (buildd@kissel) linux内核版本号gcc version 4.8.2 gcc...转载 2018-01-10 09:22:59 · 5428 阅读 · 0 评论 -
Shell日期时间和时间戳的转换
Shell日期时间和时间戳的转换Gitlab的备份文件是以时间戳显示的,类似:1438624820_gitlab_backup.tar 为了更易于阅读,想把文件名转换成日期格式:2015-08-04_gitlab_backup.tar所以查找了下Shell里时间转换的方法,记录如下备忘。Linux下时间转换的一些命令:date +%s 可以得到UNIX的时间戳; 用shell...转载 2018-01-04 18:26:07 · 2780 阅读 · 0 评论 -
statfs
statfs获得硬盘使用情况 模拟linux命令 df原创 2010年03月01日 13:04:00标签: linux / struct / ext / path / system / disk18526 先说statfs结构:#include <sys/vfs.h> /* 或者 <sys/statfs.h> */int sta...转载 2017-12-25 10:46:25 · 12386 阅读 · 0 评论 -
U-boot makefile 解读
自己写的bootloader可以引导kernel了,我以为曾经神秘的u-boot代码将变得毫无挑战,然事实表明u-boot作为优秀的开源代码,阅读起来还是很有挑战的,值得一读!阅读碰到的头等问题:Makefile和shell脚本看不懂...说起来做linux也很久了,Makefile和shell脚本都接触过,但真的都是略懂而已.因为公司的Makefile和shell简单的一眼望的对穿,很初...转载 2017-12-01 11:47:28 · 868 阅读 · 0 评论 -
Makefiel = := ?= +=几个赋值运算符之区别
在Makefile中我们经常看到 = := ?= +=这几个赋值运算符,那么他们有什么区别呢?我们来做个简单的实验新建一个Makefile,内容为:ifdef DEFINE_VRE VRE = “Hello World!”elseendififeq ($(OPT),define) VRE ?= “Hello World! First!”endififeq ($(...转载 2017-12-01 10:09:48 · 189 阅读 · 0 评论 -
sed 用法小节
sed:Stream Editor文本流编辑,sed是一个“非交互式的”面向字符流的编辑器。能同时处理多个文件多行的内容,可以不对原文件改动,把整个文件输入到屏幕,可以把只匹配到模式的内容输入到屏幕上。还可以对原文件改动,但是不会再屏幕上返回结果。sed命令的语法格式:sed的命令格式: sed [option] 'sed command'filenamesed的脚本格式:sed [o...转载 2017-11-30 14:21:51 · 215 阅读 · 0 评论 -
linux几种时间函数总结
一、linux时间函数总结 最近的工作中用到的时间函数比较频繁,今天抽时间总结一下,在linux下,常用的获取时间的函数有如下几个: asctime, ctime, gmtime, localtime, gettimeofday , mktime, asctime_r, ctime_r, gmtime_r, localtime_r二、常用的结构体(1)struct t...转载 2017-11-21 14:47:34 · 292 阅读 · 0 评论 -
grub2详解(翻译和整理官方手册)
本文原创地址在博客园:https://www.cnblogs.com/f-ck-need-u/archive/2017/06/29/7094693.html翻译了grub2官方手册的绝大部分内容,然后自己整理了一下。因为内容有点杂,所以章节安排上可能不是太合理,敬请谅解。本人译作集合:http://www.cnblogs.com/f-ck-need-u/p/7048359.ht...转载 2019-07-04 17:08:44 · 3839 阅读 · 0 评论