Linux
文章平均质量分 89
zdy0_2004
这个作者很懒,什么都没留下…
展开
-
一文搞懂 | Linux 同步管理
一文搞懂 | Linux 同步管理(下)RCU 解决了什么RCU 是读写锁的高性能版本,它的核心理念是读者访问的同时,写者可以更新访问对象的副本,但写者需要等待所有读者完成访问之后,才能删除老对象。读者没有任何同步开销,而写者的同步开销则取决于使用的写者间同步机制。RCU 适用于需要频繁的读取数据,而相应修改数据并不多的情景,例如在文件系统中,经常需要查找定位目录,而对目录的修改相对来说并不多,这就是 RCU 发挥作用的最佳场景。RCU 例子RCU 常用的接口如下图所示:API转载 2021-10-18 13:19:28 · 604 阅读 · 0 评论 -
操作系统与存储:解析Linux内核全新异步IO引擎io_uring设计与实现
https://mp.weixin.qq.com/s/QshDG-nbmBcF1OBZbBFwjg作者:draculaqian,腾讯后台开发工程师引言存储场景中,我们对性能的要求非常高。在存储引擎底层的IO技术选型时,可能会有如下讨论关于IO的讨论。http://davmac.org/davpage/linux/async-io.htmlSo from the above documentation, it seems that Linux doesn't have a true asy转载 2021-02-21 11:59:24 · 728 阅读 · 0 评论 -
AUTOTOOLS
AUTOTOOLS(转载)步骤1:编写源码文件。[root@localhost home]# vi hello.c内容如下:#include"hello.h"int main(){printf("Hello world!\n");}[root@localhost home]# vi hello.h内容如转载 2013-07-10 15:06:01 · 602 阅读 · 0 评论 -
AIO简介
分类: LINUXLinux的I/O机制经历了一下几个阶段的演进:1. 同步阻塞I/O: 用户进程进行I/O操作,一直阻塞到I/O操作完成为止。2. 同步非阻塞I/O: 用户程序可以通过设置文件描述符的属性O_NONBLOCK,I/O操作可以立即返回,但是并不保证I/O操作成功。3. 异步事件阻塞I/O: 用户进程可以对I/O事件进行阻塞,但是I/O操作并不转载 2013-07-17 15:49:42 · 608 阅读 · 0 评论 -
sed 简明教程
awk于1977年出生,今年36岁本命年,sed比awk大2-3岁,awk就像林妹妹,sed就是宝玉哥哥了。所以 林妹妹跳了个Topless,他的哥哥sed坐不住了,也一定要出来抖一抖。sed全名叫stream editor,流编辑器,用程序的方式来编辑文本,相当的hacker啊。sed基本上就是玩正则模式匹配,所以,玩sed的人,正则表达式一般都比较强。同样,本篇文章不会说sed转载 2013-07-02 20:58:50 · 693 阅读 · 0 评论 -
ioremap和ioport_map
ioremap和ioport_map分类: linux驱动开发2011-11-14 09:16 1171人阅读 评论(1) 收藏 举报iolinux编程一.基础介绍IO寄存器(内存)有两种地址映射方式,即映射到IO地址空间(portio),映射到内存地址空间(mmio)。在linux-2.6之前,前者使用inb/outb(......)访问,后者转载 2013-07-26 17:35:21 · 687 阅读 · 0 评论 -
为学Linux,我看了这些书
为学Linux,我看了这些书去年开始,抱着学习的态度开始了我的Linux学习,到现在,差不多一年了,收获很多,不敢说精通Linux,但是,还是对得起“略懂”这两个字的。这一年里我看了很多书,细细数下,大概15本左右,其中包含了两个方面,一个是Android,另一个就是Linux。当然,在学习之初,遇到了不少瓶颈,在这里,还要感谢师兄师姐的指导。写这篇文章的目的有两个:1转载 2013-08-10 00:36:33 · 774 阅读 · 0 评论 -
查看Linux内核版本的命令
查看Linux内核版本的命令 今天遇到这道题给跪了,这里记一下呀~~ 方法一: 命令: uname -a作用: 查看系统内核版本号及系统名称方法二:命令: cat /proc/version作用: 查看目录"/proc"下version的信息,也可以得到当前系统的内核版本号及系统名称补充说明: /proc文件转载 2013-10-30 01:30:02 · 644 阅读 · 0 评论 -
epoll使用详解(精髓)
epoll使用详解(精髓)分类: Linux程序及使用2009-04-11 16:34 79037人阅读 评论(17) 收藏 举报eventssocketstruct网络服务器linuxepoll - I/O event notification facility在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有转载 2014-09-11 11:12:07 · 572 阅读 · 0 评论 -
Linux是怎么启动的(整理)
按下电源按钮的直到欢迎页出来之后,linux总共做的事可以分为五步来完成。1、 BIOS加电自检:加电自检,检测硬件设备。然后按照cmos上面的顺序来搜索处在活动状态下的可以引导的设备。可以是光驱、软盘、USB等。2、 加载主引导加载程序(MBR):主引导程序是一个512字节的映像。包含一点机器码还有一个小的分区。主引导程序的任务就是查找并且加载处在硬盘转载 2014-09-15 22:39:44 · 585 阅读 · 0 评论 -
linux下线程池的实现(c++)
linux下线程池的实现(c++) 2012-12-07 16:11:44| 分类: 电子安防项目|举报|字号 订阅参考:http://hi.baidu.com/boahegcrmdghots/item/f3ca1a3c2d47fcc52e8ec2e1/* * autoptr.h * * Created on: 2012-12-7 *转载 2014-10-13 00:26:06 · 545 阅读 · 0 评论 -
pthread_cond_signal和pthread_cond_wait简介
pthread_cond_signal和pthread_cond_wait简介分类: C和C++语言2012-07-02 18:07 16760人阅读 评论(9) 收藏 举报signalnullstructbufferjoinvariables原文: http://apps.hi.baidu.com/share/detail/19786281http://h转载 2014-10-13 00:15:34 · 370 阅读 · 0 评论 -
使用 kqueue 在 FreeBSD 上开发高性能应用服务器
概述kqueue 是 FreeBSD 上的一种的多路复用机制。它是针对传统的 select/poll 处理大量的文件描述符性能较低效而开发出来的。注册一批描述符到 kqueue 以后,当其中的描述符状态发生变化时,kqueue 将一次性通知应用程序哪些描述符可读、可写或出错了。kqueue 支持多种类型的文件描述符,包括 socket、信号、定时器、AIO、VNODE、PIPE。本转载 2014-11-16 01:22:12 · 708 阅读 · 0 评论 -
LINUX 汇编语言开发指南
LINUX 汇编语言开发指南Posted on 2008-06-17 21:11 T.S Liu 阅读(860) 评论(0) 编辑 收藏 引用 所属分类: ubuntu 转载自:IBM developerWorks 中国网站肖文鹏(xiaowp@263.net)北京理工大学计算机系硕士研究生2003 年 7 月汇编语言的优点是速度快,可以转载 2014-10-16 23:35:32 · 882 阅读 · 0 评论 -
dlopen函数详解
dlopen函数详解 2013-03-05 10:19:52分类: LINUXLinux提供了一套API来动态装载库。下面列出了这些API:- dlopen,打开一个库,并为使用该库做些准备。- dlsym,在打开的库中查找符号的值。- dlclose,关闭库。- dlerror,返回一个描述最后一次调用dlopen、dlsym,或dlclo转载 2014-11-20 17:55:52 · 912 阅读 · 0 评论 -
Linux内核部件分析——原子性操作atomic_t
Linux内核部件分析原子性操作atomic_t[日期:2011-10-06]来源:Linux社区 作者:qb_2008[字体:大 中 小]在任何处理器平台下,都会有一些原子性操作,供操作系统使用,我们这里只讲x86下面的。在单处理器情况下,每条指令的执行都是原子性的,但在多处理器情况下,只有那些单独的读操作或写操作才是原子性的。为转载 2014-10-16 22:44:28 · 586 阅读 · 0 评论 -
epoll详解
epoll详解2013-12-25 00:21:40 分类: LINUX什么是epollepoll是什么?按照man手册的说法:是为处理大批量句柄而作了改进的poll。当然,这不是2.6内核才有的,它是在2.5.44内核中被引进的(epoll(4) is a new API introduced in Linux kernel 2.5.44),它几乎转载 2014-10-18 00:04:28 · 461 阅读 · 0 评论 -
【翻译】两种高性能I/O设计模式(Reactor/Proactor)的比较
【翻译】两种高性能I/O设计模式(Reactor/Proactor)的比较分类: Comet&&NIO2012-12-20 19:05 762人阅读 评论(0) 收藏 举报目录(?)[+]【翻译】两种高性能I/O设计模式(Reactor/Proactor)的比较这是05年的老文章,网上有人早就翻译过了:http://www.cppblog转载 2014-10-18 00:07:02 · 1108 阅读 · 0 评论 -
linux lsof命令详解
简介lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因转载 2014-11-05 01:07:16 · 420 阅读 · 0 评论 -
Dynamically Loaded (DL)
Dynamically Loaded (DL)简而言之,共享对象通过dlopen动态打开动态库的加载完成后,返回一个句柄,通过dlsym定位到你需要执行的函数指针然后可以在程序中使用 dlopen -- open a dynamically linked library dlsym -- get the address of a symbol in a dynamica转载 2014-11-21 14:56:51 · 488 阅读 · 0 评论 -
File descriptor(FD)
Contains: 1、FD 2、fcntl 3、dup、dup2 4、ioctl 文件描述符(File descriptor)是计算机科学中的一个术语,是一个用于表述指向文件的引用的抽象化概念。 引用文件描述符在形式上是一个非负整数。 实际上,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。当程序打开一个现有文件或转载 2014-11-22 00:03:28 · 551 阅读 · 0 评论 -
C语言正则表达式详解 regcomp() regexec() regfree()详解
标准的C和C++都不支持正则表达式,但有一些函数库可以辅助C/C++程序员完成这一功能,其中最著名的当数Philip Hazel的Perl-Compatible Regular Expression库,许多Linux发行版本都带有这个函数库。C语言处理正则表达式常用的函数有regcomp()、regexec()、regfree()和regerror(),一般分为三个步骤,如下所示:转载 2014-11-21 16:04:58 · 734 阅读 · 0 评论 -
linux ls 只显示文件或者文件夹
只显示文件夹 ls -l | grep ^d只显示文件 ls -l | grep ^-解释一下: ls -l 之后会得到下面的内容drwx------ 4 jinwang users 4096 2012-02-09 15:00 .xchat2-rw-r--r-- 1 jinwang us转载 2014-11-26 23:49:24 · 669 阅读 · 0 评论 -
编写linux设备驱动程序
http://blog.csdn.net/dongliqiang2006/article/details/4495804http://edu.stuccess.com/knowcenter/KernelTech/device_driver/00000002.htm 一.总观设备驱动程序:系统调用是操作系统内核和应用程序之间的接口,而设备驱动程 序是操作系统内核和设备硬件之间的接转载 2014-11-26 23:59:17 · 511 阅读 · 0 评论 -
提高 Linux 上 socket 性能
提高 Linux 上 socket 性能http://blog.csdn.net/byxdaz/article/details/624804提高 Linux 上 socket 性能 加速网络应用程序的 4 种方法M. Tim Jones, 资深软件工程师, Emulex Tim Jones 是一名嵌入式软件工程师,他是 GNU/Linux Applicati转载 2014-11-27 00:03:13 · 469 阅读 · 0 评论 -
linux指令大全(完整篇)
#1 linux指令大全(完整篇)http://blog.csdn.net/byxdaz/article/details/508336cat cd chmod chown cp cut 名称:cat 使用权限:所有使用者 使用方式:cat [-AbeEnstTuv] [--help] [--version] fileName 说明:把档案串连接后传转载 2014-11-27 00:10:46 · 666 阅读 · 0 评论 -
linux内存管理之malloc、vmalloc、kmalloc的区别
http://blog.csdn.net/fangjian1204/article/details/39738293linux内存管理之malloc、vmalloc、kmalloc的区别分类: Linux内核2014-10-02 21:02 184人阅读 评论(0) 收藏 举报mallocvmallockmalloclinux内核内存管理1、kmallo转载 2014-10-21 16:41:46 · 712 阅读 · 0 评论 -
linux头文件说明
验证程序断言 c p i o归档值 字符类型 目录项 出错码 文件控制 浮点常数 文件树漫游 组文件 语言信息常数 实施常数 本地类别 数学常数 消息类别 口令文件 正则表达式 搜索表 非局转载 2014-11-27 00:05:57 · 431 阅读 · 0 评论 -
Linux环境进程间通信(五): 共享内存
http://blog.csdn.net/wangeen/article/details/8349285采用共享内存通信的一个显而易见的好处是效率高,因为进程可以直接读写内存,而不需要任何数据的拷贝。对于像管道和消息队列等通信方式,则需要在内核和用户空间进行四次的数据拷贝,而共享内存则只拷贝两次数据[1]:一次从输入文件到共享内存区,另一次从共享内存区到输出文件。实际上,进程之间在共享转载 2014-11-26 23:41:52 · 370 阅读 · 0 评论 -
libevent源码深度剖析三
Leveldb源码分析--22http://blog.csdn.net/sparkliang?viewmode=contents转载 2014-10-22 00:26:34 · 618 阅读 · 0 评论 -
cas cpu 硬件同步原语(compare and swap)
cas分类: linux api2012-07-04 11:16 311人阅读 评论(0) 收藏 举报算法linux内核structjni汇编google在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁(后面的章节还会谈到锁)。锁机制存在以下问题:(1)在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,转载 2014-11-07 00:43:09 · 2248 阅读 · 1 评论 -
Linux内核书籍点评
Linux内核书籍点评Win32 dll不能使用MFC的类库, 也就是不能使用MFC所提供的功能 MFC DLL又分2种 1. 标准MFC DLL 可以使用MFC类库 但是不能输出类 2. 扩展MFC DLL 可以输出类==================ZT:MFC DLL 有三种形式的MFC DLL(在该DLL中可以使用和继承已有的MFC类)可转载 2014-11-07 01:14:14 · 576 阅读 · 0 评论 -
taskset榨干服务器CPU:让进程运行在指定的CPU内核
我的Linode十分繁忙,在跑一些密集操作数据库的Rake任务时尤其如此。但我观察发现,Linode服务器的4核CPU,只有第1个核心(CPU#0)非常忙,其他都处于idle状态。不了解Linux是如何调度的,但在Linode的这种状态下,显然有优化的余地。除了处理正常任务,CPU#0还需要处理各种中断。因此,若能将CPU#0分担的任务摊派到其他CPU核心上,可以预见,系统的处理能力将有更转载 2014-11-07 01:19:45 · 1770 阅读 · 0 评论 -
GCC的内嵌汇编语法
AT&T ASM Syntax 1 Overview开发一个OS,尽管绝大部分代码只需要用C/C++等高级语言就可以了,但至少和硬件相关部分的代码需要使用汇编语言,另外,由于启动部分的代码有大小限制,使用精练的汇编可以缩小目标代码的Size。另外,对于某些需要被经常调用的代码,使用汇编来写可以提高性能。所以我们必须了解汇编语言,即使你有可能并不喜欢它。 如果我们选择转载 2014-11-07 01:27:28 · 822 阅读 · 0 评论 -
Qt+ffmpeg解码视频
Qt+ffmpeg解码视频http://www.oschina.net/code/snippet_1466652_442721. [文件] main.cpp ~ 176B 下载(0) ?1234567891011转载 2014-11-29 22:44:49 · 1717 阅读 · 0 评论 -
Linus:利用二级指针删除单向链表
Linus:利用二级指针删除单向链表http://coolshell.cn/articles/8990.htmlLinus大婶在slashdot上回答一些编程爱好者的提问,其中一个人问他什么样的代码是他所喜好的,大婶表述了自己一些观点之后,举了一个指针的例子,解释了什么才是core low-level coding。下面是Linus的教学原文及翻译——转载 2015-01-27 22:51:15 · 425 阅读 · 0 评论 -
十天学Linux内核之第七天---电源开和关时都发生了什么
十天学Linux内核之第七天---电源开和关时都发生了什么http://www.cnblogs.com/lihuidashen/p/4250095.html说实话感觉自己快写不下去了,其一是有些勉强跟不上来,其二是感觉自己越写越差,刚开始可能是新鲜感以及很多读者的鼓励,现在就是想快点完成自己制定的任务,不过总有几个读者给自己鼓励,很欣慰的事情,不多感慨了,加紧时间多多去转载 2015-01-26 20:45:15 · 666 阅读 · 0 评论 -
操作系统中进程简介
操作系统中进程简介http://blog.jobbole.com/82926/操作系统:进程介绍很久前我就想写这篇文章了,但总是以各种理由来拖延。操作系统是我日常工作的主要部分,特别是GNU/Linux,这篇文章主要关注GUN/Linux。进程是个大话题,我不确定如何才能覆盖进程的所有知识点。这篇文章将会包含足够多的代码让你学会如何与进程交互。这些代码例转载 2015-01-28 01:03:50 · 526 阅读 · 0 评论 -
Linux多线程同步方式
Linux多线程同步方式http://www.cnblogs.com/cchust/p/4252500.html 当多个线程共享相同的内存时,需要确保每个线程看到一致的数据视图,当多个线程同时去修改这片内存时,就可能出现偏差,得到与预期不符合的值。为啥需要同步,一件事情逻辑上一定是有序的,即使在并发环境下;而操作系统对于多线程不会自动帮我们串行化,所以需要我们通过操转载 2015-01-27 21:25:08 · 522 阅读 · 0 评论 -
十天学Linux内核之第八天---构建Linux内核
http://www.cnblogs.com/lihuidashen/p/4253752.html 到目前为止,我们已经认识了Linux内核子系统,也探究了系统的初始化过程,并且深入探索了start_kernel()函数,同样,了解内核映像的创建也是非常重要的,接下来将讨论一下内核映像的编译和链接过程,那么这些当然需要工具链了,工具链包含编译程序、汇编程序、链接程序,是创建Li转载 2015-01-27 20:46:39 · 485 阅读 · 0 评论