易截截图软件、单文件、免安装、纯绿色、仅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


相关文档:

BusyBox 简化嵌入式 Linux 系统

http://www.ibm.com/developerworks/cn/linux/l-busybox/
BusyBox 简化嵌入式 Linux 系统
为小环境准备的一个小工具包
文档选项
<tr valign="top"><td width="8"><img alt="" height="1" width="8" src="//www.ibm.com/i/c.gif"/></ ......

应用TPM作linux可信起动的初步实践


首先要有一台带有TPM 1.2芯片,装有linux系统的计算机。
使用下面这条命令可以查看系统内核tpm驱动情况:
$ ls -la /lib/modules/`uname -r`/kernel/drivers/char/tpm
总计 100
drwxr-xr-x 2 root root 4096 02-03 21:47 .
drwxr-xr-x 7 root root 4096 02-03 21:47 ..
-rwxr--r-- 1 root root 9812 01-21 15:27 tp ......

在Linux下进行文件“粉碎”

众所周知Windows下的文件删除之后是有可能恢复的,对重要文件,为了增加恢复的难度,我们可以用文件粉碎工具进行文件粉碎。我最常用的是集成到资源管理器中的Eraser。那么在Linux下有没有类似的软件呢?我在一台只有Ubuntu系统的主机上,安装了一个文件粉碎工具wipe,有些想法,记下来。
安装:apt-get install wipe
wipe ......

LINUX常用命令(基础)

LINUX常用命令(基础)
1. man 对你熟悉或不熟悉的命令提供帮助解释
eg:man ls 就可以查看ls相关的用法
注:按q键或者ctrl+c退出,在linux下可以使用ctrl+c终止当前程序运行。
2. ls 查看目录或者文件的属*,列举出任一目录下面的文件
eg: ls /usr/man
ls -l
a.d表示目录(directory),如果是一个"-"表示是文件,如果 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号