• errno全局变量各值含义

    日期:

    Linux下最常见的就是errno了,一般当发生错误时便会给全局变量errno赋值,其所有可能的值可查看linux的库文件,以下是查看linux v3.0的结果: /usr/include/asm-generic/errno-base.h [cpp] view plaincopyprint? prestyle= margin:0px10px;font-family:mono...

  • 正则表达式基础知识

    日期:

    正则表达式固然是非常强大,有时对于众多的匹配规则,确实难以记忆,列出一个正则表达式语法表格,以便不时之需。 正则表达式基础知识 一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体...

  • expect批量修改linux密码

    日期:

    最近对linux批量执行的脚本很感兴趣,在网上到处找有关expect批量执行脚本,今天就给大家共享一个批量修改密码的脚本. 脚本内容: #!/usr/bin/expect#yemaosheng.comif { $argc2 } { send_user usage: $argv0 host file cmd file \n exit} # 机器列表数据格式: I...

  • linux使用jstack来找出死循环的java代码

    日期:

    我们使用jdk自带的jstack来分析。当linux出现cpu被java程序消耗过高时,以下过程说不定可以帮上你的忙: 1、top查找出哪个进程消耗的cpu高 21125 co_ad2 18 0 1817m 776m 9712 S 3.3 4.9 12:03.24 java 5284 co_ad 21 0 3028m 2.5g 9432 S 1.0 16.3 6629:44 j...

  • 如何在加载模块时向模块传递参数值

    日期:

    1.现象描述 Linux系统中,动态加载的模块往往需要实现: 1)在加载模块时,向模块传递一个参数值,且该参数值在模块运行过程中不能对其进行修改; 2)在加载模块时,向模块传递一个参数值,且该参数值在模块运行过程中根据需求对其进行动态修改。 2.关键过程...

  • 简单休眠之等待队列

    日期:

    1.简单休眠 让进程以一种安全的方式进入休眠,必须牢记两条规则: 第一条:永远不能在原子上下文中进入休眠。即是说,我们的进程不能在拥有自旋锁、顺序锁、读写锁时休眠。如果我们已经禁止了中断,也不能休眠。但是,在拥有信号量时休眠是合法的。 第二条:...

  • Linux内核读写文件

    日期:

    1. 序曲 在用户态,读写文件可以通过read和write这两个系统调用来完成(C库函数实际上是对系统调用的封装)。但是,在内核态没有这样的系统调用,我们又该如何读写文件呢? 阅读linux内核源码,可以知道陷入内核执行的是实际执行的是sys_read和sys_write这两个...

  • 内核比较: 2.6 内核中改进了内存管理

    日期:

    随着 Linux 内核的发展和成熟,更多的用户期待着 Linux 可以运行非常大的系统来处理科学分析应用程序或者甚至海量数据库。这些企业级的应用程序通常需要大量的内存才能好好运行。2.4 Linux 内核有识别相当大数量的内存的功能,但是 2.5 内核发生了很多改变,...

  • Linux slab 分配器剖析

    日期:

    动态内存管理 内存管理的目标是提供一种方法,为实现各种目的而在各个用户之间实现内存共享。内存管理方法应该实现以下两个功能: 最小化管理内存所需的时间 最大化用于一般应用的可用内存(最小化管理开销) 内存管理实际上是一种关于权衡的零和游戏。您可...

  • Linux 同步方法剖析

    日期:

    本文讨论了 Linux 内核中可用的大量同步或锁定机制。这些机制为 2.6.23 版内核的许多可用方法提供了应用程序接口(API)。但是在深入学习 API 之前,首先需要明白将要解决的问题。 并发和锁定 当存在并发特性时,必须使用同步方法。当在同一时间段出现两个或...