Linux
高雪林
求职ing个人邮箱gaoxuelin1989qq.comQQ:836471085
展开
-
APUE读书笔记-第17章-高级进程间通信
17.1 引言*两种高级IPC:基于STREAMS的管道(STREAMS-based pipe)以及UNIX域套接字(UNIX domain socket)可以在进程间传送打开文件描述符。服务进程可以使它们的打开文件描述符与指定的名字相关联,客户进程可以使用这些名字与服务进程通信17.2 基于STREAMS的管道*可以用fattach函数给STREAMS管道一个文件系统中的名字原创 2013-08-18 14:21:49 · 1424 阅读 · 0 评论 -
linux 0号进程和1号init进程
linux 0号进程和1号init进程进程0:Linux引导中创建的第一个进程,完成加载系统后,演变为进程调度、交换及存储管理进程进程1:init 进程,由0进程创建,完成系统的初始化. 是系统中所有其它用户进程的祖先进程Linux中1号进程是由0号进程来创建的,因此必须要知道的是如何创建0号进程,由于在创建进程时,程序一直运行在内核态,而进程运行在用户态,因此创建0号进程涉及到特权级转载 2013-07-30 10:36:15 · 8793 阅读 · 0 评论 -
BIOS
BIOSBIOS是英文"Basic Input Output System"的缩略语,直译过来后中文名称就是"基本输入输出系统"。其实,它是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序。 其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。抠出纽扣电池可使BIOS恢复到出厂默认值。BIOS设置程转载 2013-07-30 10:35:08 · 733 阅读 · 0 评论 -
脚本文件
脚本script是使用一种特定的描述性语言,依据一定的格式编写的可执行文件,又称作宏或批处理文件。脚本通常可以由应用程序临时调用并执行。各类脚本目前被广泛地应用于网页设计中,因为脚本不仅可以减小网页的规模和提高网页浏览速度,而且可以丰富网页的表现,如动画、声音等。举个最常见的例子,我们点击网页上的E-mail地址时能自动调用Outlook Express或Foxmail这类邮件软件,就是通过脚本功转载 2013-07-29 10:49:31 · 824 阅读 · 0 评论 -
Bootstrap
bootstrapping 自举(bootstrapping)一词来自于人都是靠自身的“自举”机构站立起来的这一思想。计算机必须具备自举能力将自己所有的元件激活,以便能完成加载操作系统这一目的,然后再由操作系统承担起那些单靠自举代码无法完成的更复杂的任务。自举只有两个功能:加电自检和磁盘引导。 加电自检:当我们按下计算机电源开关时,头几秒钟机器似乎什么反应也没有,其实,这时的计算机正在进行加转载 2013-07-30 10:32:20 · 1264 阅读 · 0 评论 -
C/C++与JAVA跨平台特性比对
UNIX一般用C的原因:C对于底层的操作是很快,这个JAVA比不上。操作界面,都是类似DOS那样的要求不高。 JAVA跨平台的实现:java通过虚拟机(JVM)运行的而虚拟机各个平台都可以安装,在JRE下运行 JAVA与C的混合编程:Java提供JNI接口,用JDK的工具生成JNI的C代码头文件进行扩展原创 2013-07-29 10:58:41 · 1283 阅读 · 0 评论 -
linux打包压缩命令汇总
FROM: http://www.cnblogs.com/end/archive/2011/04/20/2022614.htmllinux打包压缩命令汇总tar命令 [root@linux ~]# tar [-cxtzjvfpPN] 文件与目录 ....参数:-c :建立一个压缩文件的参数指令(create 的意思);-x :解开一个压缩文件的参数指令!转载 2013-08-02 16:23:57 · 689 阅读 · 0 评论 -
Linux打印真实pid的方法
FROM http://www.linuxsir.org/bbs/thread365066.htmlLinux打印真实pid采用gettid()的方法,使用getpid()只能获得进程组的pid,而不是进程单独自己的pid看到apue上讲到,由于linux是用进程去实现线程的,因此异步信号发送到特定线程,因为每个线程作为独立的进程运行,系统就不能选择当前还没有阻塞该信号的线程,这样可能转载 2013-08-02 16:17:42 · 8715 阅读 · 0 评论 -
linux驱动面试常见题目
FROM http://blog.csdn.net/rensanshi/article/details/95662831. linux内核里面,内存申请有哪几个函数,各自的区别?Kmalloc() __get_free_page() mempool_create() 2. IRQ和FIQ有什么区别,在CPU里面是是怎么做的? 3. int *a;ch转载 2013-08-02 14:05:35 · 4374 阅读 · 0 评论 -
linux中xinetd服务
linux中xinetd服务xinetd是一个daemon程序,所有结尾带d的程序都是daemon程序,也就是守护程序 守护程序分为2种处理模式: 第一个是stand alone状态的,表示该程序始终监听,一直处于运行状态,例如httpd 第二个是super daemon,它始终处于sleep状态,直到有人唤醒它,xinetd就是一个super daemon,但它的使命是将一个请求转载 2013-07-30 10:36:42 · 1119 阅读 · 0 评论 -
关于信号未决与阻塞
在网上转的,关于信号未决与阻塞的,相对理解了http://blog.csdn.net/sunyubo458/article/details/4484957信号状态: 信号的”未决“是一种状态,指的是从信号的产生到信号被处理前的这一段时间;信号的”阻塞“是一个开关动作,指的是阻止信号被处理,但不是阻止信号产生。 APUE例题在sleep前用sigprocmask阻转载 2013-08-05 08:58:31 · 856 阅读 · 0 评论 -
APUE读书笔记-第12章-线程控制
12.1 引言*线程控制包括在同一进程中的多个线程之间如何保持数据的私有性,以及基于进程的系统调用如何与线程进行交互12.2 线程限制*线程限制的使用时为了增强应用程序在不同的操作系统实现之间的可移植性12.3 线程属性*线程属性guardsize控制着线程栈末尾之后用以避免栈溢出的扩展内存的大小*线程的属性还包括可取消状态、可取消类型、并发度*并发度控原创 2013-08-05 15:18:52 · 1227 阅读 · 0 评论 -
APUE读书笔记-第16章-网络IPC: 套接字
16.1 引言*进程能够通过套接字网络IPC接口和其他进程通信。通过该接口,其他进程运行位置是透明的,它们可以在同一台计算机上也可以在不同的计算机上。实际上,这正是套接字的目标之一:同样的接口既可以用于计算机间通信又可以用于计算机内通信*16.2 套接字描述符*要创建一个套接字,可以调用socket函数int socket(int domain, int type, int原创 2013-08-14 09:25:51 · 1215 阅读 · 0 评论 -
APUE读书笔记-第15章-进程间通信
15.1 引言*进程之间交换信息的方法可以经由fork或exec传送打开文件,或者通过文件系统*进程之间相互通信的其他技术——IPC(InterProcess Communication)包括半双工管道、FIFO、全双工管道、命名全双工管道、消息队列、信号量、共享存储、套接字、STREAMS15.2 管道*管道有两种局限性:(1)历史上,它们是半双工的(即数据只能在一个方向原创 2013-08-12 15:32:36 · 1450 阅读 · 0 评论 -
帧缓存
FROM http://baike.baidu.com/view/1040793.htm帧缓冲存储器(Frame Buffer):简称帧缓存或显存,它是屏幕所显示画面的一个直接映象,又称为位映射图(Bit Map)或光栅。帧缓存的每一存储单元对应屏幕上的一个像素,整个帧缓存对应一帧图像。 一个支持OpenGL渲染的窗口 (即帧缓存) 可能包含以下的组合:· 至多4个颜色缓存·转载 2013-08-08 11:06:57 · 2609 阅读 · 0 评论 -
APUE读书笔记-第14章-高级I/O
14.1 引言*高级I/O包括非阻塞I/O、记录锁、系统V流机制、I/O多路转换(select和poll函数)、readv和writev函数以及存储映射I/O(mmap)14.2 非阻塞I/O*非阻塞I/O使我们可以调用open、read和write这样的I/O操作,并使这些操作不会永远阻塞14.3 记录锁*记录锁(record locking)的功能是:当一个原创 2013-08-08 10:27:29 · 1185 阅读 · 0 评论 -
APUE读书笔记-第18章-终端I/O
18.1 引言*终端I/O的用途很广泛,包括用于终端、计算机之间的直接连线、调制解调器以及打印机等等,所以终端I/O系统非常复杂18.2 综述*终端I/O有两种不同的工作模式:(1)规范模式输入处理(Canonical mode input processing)(2)非规范模式输入处理(Noncanonical mode input processing)原创 2013-08-20 15:53:36 · 1453 阅读 · 0 评论 -
APUE读书笔记-第13章-守护进程
第13章 守护进程13.1 引言*守护进程也称精灵进程(daemon)是生存期较长的一种进程。它们常常在系统自举时启动,仅在系统关闭时才终止。因为它们没有控制终端,所以说它们是在后台运行的。UNIX系统有很多守护进程,它们执行日常事务活动13.2 守护进程的特征*系统进程依赖于操作系统实现。父进程ID为0的各进程通常是内核进程,它们作为系统自举过程的一部分而启动。(init原创 2013-08-05 22:14:16 · 1074 阅读 · 0 评论 -
/dev/zero和/dev/null的区别
FROM: http://www.cnblogs.com/jacktu/archive/2010/06/28/1766791.html使用/dev/null 把/dev/null看作"黑洞". 它非常等价于一个只写文件. 所有写入它的内容都会永远丢失. 而尝试从它那儿读取内容则什么也读不到. 然而, /dev/null对命令行和脚本都非常的有用.禁止标准输出. 1转载 2013-08-05 16:36:14 · 754 阅读 · 0 评论 -
APUE读书笔记-第11章-线程
11.1 引言*一个进程中的所以线程都可以访问该进程的组成部件,如文件描述符和内存*无论何时,只要单个资源需要在多个用户间共享,就必须处理一致性问题*同步机制用以防止多个线程查看到不一致的共享资源11.2 线程概念*典型的UNIX进程可以看成只要一个控制线程:一个进程在同一时刻只做一件事情。有了多个控制县城以后,在程序设计时可以把进程设计成在同一时刻能够做不止一件事,每原创 2013-08-04 20:31:24 · 1207 阅读 · 0 评论 -
资源的软限制和硬限制
FROM:http://wenda.tianya.cn/question/6207f28ce3fcfc45FROM:http://blog.csdn.net/victor1220/article/details/5338331硬限制是指对资源节点和数据块的绝对限制,在任何情况下都不允许用户超过这个限制;而软限制是指用户可以在一定时间范围内(默认时为一周,在/usr/include/sy转载 2013-08-02 13:56:13 · 4978 阅读 · 0 评论 -
APUE读书笔记-第10章 信号
第10章 信号10.1 引言*信号是软件中断。信号提供了一种处理异步事件的方法 10.2 信号概念*每个信号都有一个名字。这些名字都以三个字符SIG开头*在头文件中,这些信号被定义为正整数(信号编号)*不存在编号为0的信号。kill函数对信号编号0有特殊的应用。此种信号编号值被称为空信号 10.3 signal函数*程序启动:当执行一个程序时,所有信号的状态原创 2013-08-02 13:23:27 · 1040 阅读 · 0 评论 -
UNIX环境高级编程 勘误表
The following errors were fixed in the second printing.Page 413, third paragraph. If a signal is related to an expiring timer, it is sent to an arbitrary thread, not necessarily to the thread tha转载 2013-07-31 16:51:53 · 945 阅读 · 0 评论 -
进程VS线程
进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.线程是进程的一个实体,线程的划分尺度小于进程,使得多线程程序的并发性高是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有转载 2013-07-29 09:11:14 · 1291 阅读 · 0 评论 -
shell中的IFS和$*变量
本文转载自http://blog.chinaunix.net/uid-22566367-id-381955.html不得不说shell里面的全局变量都是些恶心的家伙,特别是这家伙----IFS,恶心之极,差点被它忽悠过去了,所以赶快记录下来,以免下次再被忽悠!!!STRING1="111 222 333 444"echo $STRING1echo "$STRING1"转载 2013-07-28 21:22:40 · 3989 阅读 · 1 评论 -
多进程编程 相对于 多线程编程的优势
转载自http://zhidao.baidu.com/question/346115769.html1. 多进程的优势在于任务的独立性,比如某个任务单独作为一个进程的话,崩溃只影响自己的服务,其他任务不受影响.如果是多个任务在同一个进程内部利用多个线程进行处理,某个线程发生了未处理的异常的话,会导致整个进程完蛋,所有的任务跟着遭殃.2. 从资源分配上来说,多进程方案比多线程方案更加灵转载 2013-07-28 20:51:59 · 1172 阅读 · 0 评论 -
APUE读书笔记-第9章 进程关系
第9章 进程关系9.1 引言*每个进程都有一个父进程(初始的内核进程并无父进程,也可以说其父进程就是它自己)*当子进程终止时,父进程得到通知并能取得子进程的退出状态9.2 终端登录*终端可以是基于字符的终端、仿真简单的基于字符终端的图形终端,或者是运行窗口系统的图形终端*系统管理员创建通常名为/etc/ttys的文件,其中,每个终端设备都有一行,每一行说明设备名和传原创 2013-07-30 21:07:07 · 861 阅读 · 0 评论 -
Linux强大的IO重定向和管道功能(内含命令替换,实例:批量删除文件)
1. 标准输入与输出 我们知道,执行一个shell命令行时通常会自动打开三个标准文件,即标准输入文件(stdin),通常对应终 端的键盘;标准输出文件(stdout)和标准错误输出文件(stderr),这两个文件都对应终端的屏幕。进程将从标准输入文件中得到输入数据,将正常 输出数据输出到标准输出文件,而将错误信息送到标准错误文件中。 我们以cat命令为例,cat命令的功能是从命转载 2013-07-30 11:31:38 · 2093 阅读 · 0 评论 -
linux特殊符号大全
linux特殊符号大全在shell中常用的特殊符号罗列如下:# ; ;; . , / \ 'string'| ! $ ${} $? $$ $* "string"* ** ? : ^ $# $@ `command`{} [] [[]]转载 2013-07-30 11:31:56 · 877 阅读 · 0 评论 -
bootloader和bootstrap的区别
bootloader和bootstrap的区别在 《embedded linux primer 》上看到的,其实还有一些分歧和不精确的地方,比如bootstrap 和bootstrap loader似乎在PC上还有区别,不过还是不影响理解了http://www.devbone.com/leadbbs/MINI/Default.asp?100-2246-0-0-0-0-0-a-.htm转载 2013-07-30 10:35:19 · 6875 阅读 · 2 评论 -
动态链接库dll,静态链接库lib, 导入库lib
本文转载自http://blog.csdn.net/gljseu/article/details/9533503目前以lib后缀的库有两种,一种为静态链接库(Static Libary,以下简称“静态库”),另一种为动态连接库(DLL,以下简称“动态库”)的导入库(Import Libary,以下简称“导入库”)。静态库是一个或者多个obj文件的打包,所以有人干脆把从obj文件生成转载 2013-07-28 19:10:55 · 751 阅读 · 0 评论 -
shell,console,terminal的区别
本文转载自http://www.linuxsir.org/bbs/thread362001.html?pageon=1终端(terminal,或者叫物理终端):是一种设备,不是一个程序,一般说的就是能提供命令行用户界面的设备,典型的是屏幕和键盘,或其他的一些物理终端。虚拟终端:屏幕和键盘只是一个终端,可能不够用,又不想增加设备投入,就产生了虚拟终端。gnome-terminal转载 2013-07-28 20:34:39 · 6461 阅读 · 0 评论 -
Linux使用O_ASYNC实现异步IO
本文探讨一个《Unix/Linux编程实践教程》P219出现的bug,在Linux上bounce_async.c程序代码运行失败。Unix有两个异步输入(asynchronous input)系统。一种方法是当输入就绪时发送信号,另一个系统当输入被读入时发送信号。UCB(BSD)中通过设置文件描述块(file descriptor)的O_ASYNC位来实现第一种方法。第二种方法是POS原创 2013-07-27 22:06:17 · 7068 阅读 · 2 评论 -
Linux 进程通信之 ——信号和信号量总结
FROM: http://blog.csdn.net/yuzhoudiwang/article/details/4368279现在最常用的进程间通信的方式有:信号,信号量,消息队列,共享内存。 所谓进程通信,就是不同进程之间进行一些"接触",这种接触有简单,也有复杂。机制不同,复杂度也不一样。通信是一个广义上的意义,不仅仅指传递一些massege。他们的使用方法是基本相同的,所转载 2013-08-02 13:14:31 · 898 阅读 · 0 评论 -
信号阻塞
FROM http://blog.csdn.net/allwtg/article/details/5182958信号的阻塞就是让系统暂时保留信号待以后发送。由于另外有办法让系统忽略信号,所以一般情况下信号的阻塞只是暂时的,只是为了防止信号打断敏感的操作。 当需要修改某些全局变量时,可以通过sigprocmask()函数阻塞处理函数中也使用该变量的信号。转载 2013-08-02 11:36:23 · 907 阅读 · 0 评论 -
Linux信号丢失问题分析
转载自http://hi.baidu.com/qiupingwu/item/f8ff6d3856c051b8633aff0c1. 问题引入 我们想实现这样的一个功能:通过使用~SIGUSR1~信号实现对守护进程的重启。 我们编写了如下代码:/*restart1.c*/#include#includestatic void sig_usr(in转载 2013-08-01 13:29:57 · 3110 阅读 · 0 评论 -
Linux下对后台进程通过kill传递信号不起作用的问题
在阅读APUE信号一章时,我遇到Linux下对后台进程通过kill传递信号不起作用的问题具体情形与如下链接中的老兄一致:编译执行下面的信号程序,然后再shell命令行:先让程序在后台运行,得到进程ID,然后用kill向该进程发送信号:kill -USR1 ID,但是没有结果#include "apue.h"static void sig_usr(int);int main原创 2013-08-01 13:55:18 · 5500 阅读 · 0 评论 -
APUE读书笔记-第8章进程控制
第8章 进程控制8.1 引言*进程控制包括创建新进程、执行程序、进程终止8.2 进程标识符*每个进程都有一个非负整型的唯一进程ID。因为进程ID标识符总是唯一的,常将其用作其它标识符的一部分以保证其唯一性。例如,应用程序有时就把进程ID作为名字的一部分来创建一个唯一的文件名*ID为0的进程通常是调度进程,常常被称为交换进程(swapper)*ID为1的进程通常是in原创 2013-07-29 10:33:31 · 874 阅读 · 1 评论 -
linux计算器命令
linux 自带了2个命令可以支持做基本的数学计算,不想使用命令可以用python或其他2个命令很好记,一个是dc 其实是表达式求值栈操作,另一个是bc,其实是一种解释性语言了,支持各种while if等等1:先说dc,支持以下常用命令+ - * / % ^ | v(开方)使用起来也非常方便,例如要计算 1 + 1 = ? 首先输入dc命令后,每行输入一个转载 2013-07-29 09:32:19 · 832 阅读 · 0 评论 -
linux如何复制文件夹
CP命令格式: CP [选项] 源文件或目录 目的文件或目录选项说明:-b 同名,备分原来的文件 -f 强制覆盖同名文件 -r 按递归方式保留原目录结构复制文件cp -r /tmp/a /root/a转载 2013-07-29 08:54:08 · 626 阅读 · 0 评论