易截截图软件、单文件、免安装、纯绿色、仅160KB

Linux 新增系统调用的启示

最近在研究 Linux 内核的时间子系统,为下一篇长文《服务器程序中的日期与时间》做准备,无意中注意到了 Linux 新增的几个系统调用的对编写服务器代码的影响,先大致记录在这里。这篇博客也可算作前一篇《多线程服务器的常用编程模型》的一个注脚。 1. 服务器程序的风格可能在变 新的创建文件描述符的 syscall 一般都支持额外的 flags 参数,可以直接指定 O_NONBLOCK 和 FD_CLOEXEC,例如: accept4 – 2.6.28 eventfd2 – 2.6.27 inotify_init1 – 2.6.27 pipe2 – 2.6.27 signalfd4 – 2.6.27 timerfd_create 2.6.25 以上 6 个 syscalls,除了最后一个是新功能,其余的都是增强原有的调用,把数字尾号去掉就是原来的 syscall。 O_NONBLOCK 的功能是开启“非阻塞IO”,而文件描述符默认是阻塞的。 这些创建文件描述符的系统调用能直接设定 O_NONBLOCK 选项,或许能反映当前 Linux (服务端)开发的风向,那就是我在前一篇博客《多线程服务器的常用编程模型》里推荐的 one loop per thread + (non-blocking IO with IO multiplexing)。从这些内核改动来看,non-blocking IO 已经主流到让内核增加 syscall 以节省一次 fcntl(2) 调用的程度了。 另外,以下新系统调用可以在创建文件描述符时开启 FD_CLOEXEC 选项: dup3 – 2.6.27 epoll_create1 – 2.6.27 FD_CLOEXEC 的功能是让程序 fork() 时,子进程会自动关闭这个文件描述符(见下面的更正)。而文件描述默认是被子进程继承的(这是传统 Unix 的一种典型 IPC,比如用 pipe(2) 在父子进程间单向通信)。 以上 8 个新 syscalls 都允许直接指定 FD_CLOEXEC,或许说明 fork() 的主要目的已经不再是创建 worker process 并通过共享的文件描述符和父进程保持通信,而是像 Windows 的 CreateProcess 那样创建“干净”的进程,其与父进程没有多少瓜葛。 以上两个 flags 在我看来,说明 Linux 服务器开发的主流模型正在由 fork() + worker processes 模型转变为我前文推荐的多线程模型。fork() 的使用频度会大大降低,将来或许只有专门负责启动别的进程的“看门狗程序”才会调用 fork(),而一般的服务器程序(此处“服务器程序”的定义见我前一篇文章)不会再 fork() 出子进程了。原因之一是,fork() 一般不能在多线程程序中调用,因为 Linux 的 fork() 只克隆当前线程的 thread of control,不克隆其他线程。也就是说不能


相关文档:

linux svn常用命令

假如上传代码到SVN上,最简单的一种方法就是:进入代码目录,然后$svn import -m "New import" myqwcode http://192.168.0.222/svn/myqwcode就可以了,不需要建立新目录!
1、将文件checkout到本地目录
svn checkout path(path是服务器上的目录)
   例如:svn checkout svn://192.168.1.1/pro/domain
  ......

如何保障Linux用户安全

Linux应用范围的日益扩展,使得其使用性越来越受到关注。性是一个复杂和广泛的问题,此处我们主要关注Linux用户的账户安全,特别是Linux系统管理员如何保障用户的安全。
  
  
  口令安全
  
  
  Linux系统中的/etc/passwd文件含有全部系统需要知道的每个用户的信息(加密口令的密文也可能存于/etc/ ......

Debian Linux进入不了图形界面的折腾

首先我的操作系统是Debian Linux,我Debian用的是Xfce桌面环境,昨天我用了命令apt-get install gnome,安装了一堆软件之后重启,就进入不了图形界面了,只能进入字符界面,今天可好折腾了。
  上午在网上查资料,可能总结了几个吧
  1、在字符界面输入命令startx
  2、修改init的默认级,所在文件的位置/etc/initt ......

Linux系统安装之二: 硬盘安装Fedora 9

热心点评:硬盘安装fedora的规则就像我们非常亚克西的政策一样, 告诉你不能发送yellow短信, 但就是不告诉你yellow的尺度是什么, 你只能冒着手机停机的危险,测试下哪些短信究竟射黄了。 通过不下两位数的重启, 摸索了一点点规则。 OK, 我想Linux不是gov, 安装还是有规则可言的,只是我们还没有找到这个readme?  达 ......

How to check into Linux OS

I learned some experience while Nanjing found 0x03 error. At begining, we don't know why our GSRM(a linux process) hang in a short time 5 seconds sometimes. It didn't handle any message at that time and the interruption is not regularly. So we assume we have Linux OS problem. We did following checks ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号