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

GNU/Linux 开发环境 (1)

几周以前,无意中看了我开发Linux服务程序的工作环境搭配这篇文章,忍不住拍了砖,结果作者在回复中激我,要我写个看看。其实看不惯很多人围绕M$的习惯,早已有写点什么的想法,可是没什么时间,也担心不同的想法和自己退步了很多的中文会迷惑有Linux学习热情的同行,更不用说没准还会吓跑别人。为了表示我是从来不吃激将法的,我等了几周,觉得那篇文章差不多被人遗忘了,就开始了思考这个题目。
声明:写这些是为了和有学习Linux开发兴趣的同行们交流,坚决看不惯Linux或者不得不学点Linux的人就不要浪费时间看了。另外文中的中文翻译不准确的地方,我都尽量标注英语以防误解。
1)GNU + Linux
许多人特别是内核的开发者曾经反复强调Linux只是Linux操作系统的内核,这是我非常赞同的,因为GNU工具同样是Linux操作系统不可缺少的部分,GNU + Linux才是完整的操作系统。
理解GNU/Linux的第一步是理解内核模式和用户模式的区别。其实简单的讲,使用任何一种Linux发布版,我们直接用的都是用户模式下的应用程序,尽管操作都是在内核的帮助下完成的,这和Windows没有区别。
无论在用户模式还是内核模式,GNU工具是必不可少的,尽管它们远远没有内核出的风头大。这就是我坚持称之为GNU/Linux的原因。不过,区别是GNU工具是内核开发所必需的,而在用户模式下,它们是任何应用程序运行不可或缺的。
GNU工具:bash, GCC (GNU Compiler Collection, 不是GNU C compiler), ld, gdb, gprof, glibc, binutils, nm, objdump, ldd, 等等等等.
2)内核开发
GNU/Linux的内核开发环境非常简单,但也是对技能和知识要求很高的,命令行的工具如GCC, make, shell script 和 vi/Emacs/Nano 是必须会用的,因为大多数情况下,调试的时候只有bash,同时,必须有很强的代码阅读能力,因为许多细节都在内核代码中。
需要注意的是,虽然有kgdb的存在,内核代码的调试基本不用调试器,因此printk是首要工具,而且它是必须熟练掌握的,因为每个内核开发者都会不可避免的依赖它。不过另一个有趣的kgdb应用是它可以用来学习system call是如何实现的。
我虽然做了不少内核开发和调试,但是深知自己很肤浅,在此就不继续深谈了。需要说明的是,GNU/Linux开发不是只有内核开发,也不是做内核开发就高人一等,“术业有专攻”而已。
3) 用户模式应用程序的开发
在Linux和UNIX的世界,延续了内核开发习惯,C语言是最重要的编程语言,简单的讲,内核 +  GLIBC


相关文档:

Linux 的多线程编程的高效开发经验

2009 年 4 月 23 日
本文中我们针对 Linux 上多线程编程的主要特性总结出 5 条经验,用以改善 Linux 多线程编程的习惯和避免其中的开发陷阱。在本文中,我们穿插一些 Windows 的编程用例用以对比 Linux 特性,以加深读者印象。
背景
Linux 平台上的多线程程序开发相对应其他平台(比如 Windows)的多线程 API 有一些细微 ......

修改Linux文件句柄限制

1. #vi /etc/profile,增加ulimit -HSn 65536
2. #vi /etc/security/limits.conf,为你的用户增加
    user soft nofile 38192
    user hard nofile 65536
3. 重启Shell即可
4. ulimit -a 查看设置是否成功。
5. 查看系统总限制的命令:
   #cat /proc/sys/fs/file-max
6 ......

Linux iptables防火墙构建示例

#!/bin/sh
/sbin/modprobe ip_conntrack_ftp
CONNECTION_TRACKING="1"
ACCEPT_AUTH="0"
DHCP_CLIENT="0"
IPT="/sbin/iptables" # Location of iptables on your system
INTERNET="eth0" # Internet-connected interface
LO ......

linux 开机问题

Ubuntu10.04镜像会出现无法识别键盘输入。在登录画面时,不能输入密码,无法正常进入系统。 解决办法: (1) 开户屏幕键盘功能 在上图开机界面在右下角单击小人图案,再单击“Universal Access Perferences”,出击“Universal Access Perferences”对话框,在对话框中选中“Use on-screen keybo ......

Linux文件类型

目录
 
2.1 普通文件;
2.2 目录;
2.3 字符设备或块设备文件;
2.4 套接口文件;
2.5 符号链接文件;
1、Linux文件的扩展名;
2、Linux 文件类型;
3、关于本文;
4、后记;
5、参考文档;
6、相关文档;
++++++++++++++++++++++++++++++++++++++
正文
++++++++++++++++++++++++++++++++++++++
1、 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号