app program
文章平均质量分 69
kerneler_
做一个有技术追求的人
ps:目前公司太忙,暂没时间更新博客,,大家评论我尽量回复,望大家谅解
展开
-
init命令
init命令所谓的init进程,它是一个由内核启动的用户级进程。 内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。所以,init始终是第一个进程(其进程编号始终为1)。内核会在过去曾使用过init的几个地方查找它,它的正确位置(对Linux系统来说)是/sbin/init。如果内核找不到i原创 2013-08-02 10:44:11 · 1330 阅读 · 0 评论 -
open的O_DIRECT选项
#define _FILE_OFFSET_BITS 64 //访问大磁盘#define _GNU_SOURCE //定义O_DIRECT#i nclude open的O_DIRECT选项- - 一个客户的技术支持。问题的背景是他们希望系统掉电时,损失最小。而用O_转载 2014-09-03 14:58:20 · 3795 阅读 · 0 评论 -
termial创建时ptmx与pts的关系
我们打开一个terminal,那么将会在devpts文件系统/dev/pts下创建一个对应的pts字符文件,该pts字符文件节点直接由/dev/ptmx节点的驱动函数ptmx_open()调用devpts_pty_new(tty->link)[tty对应ptmx,tty->link对应/dev/pts/xxx,那么tty->link->link又对应回ptmx同样ptm_drive转载 2014-07-22 16:06:48 · 1801 阅读 · 0 评论 -
linux线程资源回收方法
Linux系统中程序的线程资源是有限的,表现为对于一个程序其能同时运行的线程数是有限的。而默认的条件下,一个线程结束后,其对应的资源不会被释放,于是,如果在一个程序中,反复建立线程,而线程又默认的退出,则最终线程资源耗尽,进程将不再能建立新的线程。解决这个问题,有2种方式,系统自动释放线程资源,或者由另一个线程释放该线程资源。注意,在这里,我认为进程运行后,本身,也是一个线程,主线原创 2014-04-28 17:25:50 · 13118 阅读 · 6 评论 -
linux下操作大于2G文件
1、包含所有头文件以前,先定义这些宏:#ifndef __USE_FILE_OFFSET64#define __USE_FILE_OFFSET64#endif#ifndef __USE_LARGEFILE64#define __USE_LARGEFILE64#endif#ifndef _LARGEFILE64_SOURCE#define _LARGEFILE转载 2014-05-19 10:59:09 · 4669 阅读 · 0 评论 -
printf行缓冲区的分析总结
最近在客户那调试串口的时候,read串口然后printf打印,单字符printf,发现没有输出,后来想起来printf这些标准输入输出函数也是属于标准C库glibc的, 这里就要区分一下标准库函数和系统调用了。 系统调用是内核提供给上层程序的接口,能够实现内核和上层之间的交互,系统调用在内核中的实现是软中断的方式,通过相应的中断服务例程来实现,而标准库函数是在系统调用的基础之上封装原创 2013-08-18 12:29:30 · 14771 阅读 · 10 评论 -
linux系统/sbin/init执行过程
对于linux的启动过程,之前一直都是研究到内核运行/sbin/init,启动第一个用户进程为止,因为这部分一直都是在内核态工作,所以对于学习内核还是有帮助的,当时/sbin/init之后的过程也需要明白,今天就总结一下。 首先大体写一下内核从启动到执行/sbin/init的流程: head.S ===> start_kernel ===> rest_init ===>原创 2013-08-03 18:43:57 · 26240 阅读 · 0 评论 -
linux守护进程实现
守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待 处理某些发生的事件。守护进程是一种很有用的进程。 Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。 同时,守护进程完成许多系统任务。比如,作业规划进程crond,打印进程lpd等。 守护进程的编程本身并不原创 2013-07-27 14:00:05 · 1994 阅读 · 0 评论 -
linux僵尸进程分析
Linux的僵尸进程及其解决方法 1. 产生原因: 在UNIX 系统中,一个进程结束了,但是他的父进程没有等待(调用wait / waitpid)他,那么他将变成一个僵尸进程。通过ps命令查看其带有defunct的标志。僵尸进程是一个早已死亡的进程,但在进程表(processs table)中仍占了一个位置(slot)。 但是如果该进程的父进程已经先结束了转载 2013-07-27 14:13:10 · 1293 阅读 · 0 评论 -
为什么空循环进程会导致CPU占有率很高?
linux系统是时间片调度算法,微观上所有可运行进程都是串行,不管进程中作何操作,该进程的时间片一到就切换到下一进程,那为什么一个空循环进程CPU占用率还这么高原创 2016-01-29 19:57:13 · 14964 阅读 · 4 评论