作为一个Linux管理员,防御病毒,间谍程序, rootkit等非常重要.
下面为你列举了10款Linux安全工具.

  一.freebsd

  FreeBSD 4.7

  当显示 boot … 9 seconds按任意健

  输入:boot -s

  登录以后

  #/sbin/mount -a

  #passwd

  输入新密码.

  FreeBSD 5.*

  当要求选择启动模式时按4进入单用户模式登录以后

  #/sbin/mount -a

  #passwd

  输入新密码.

  二.solaris

  ROOT密码遗忘的处理方法

  1,如果还能用普通用户登陆的话,%df /etc,确定包含/etc目录分区的设备名

  %df /etc

  / /dev/dsk/c0t0d0s0…

  此例中是c0t0d0s0,如果你的根目录分区设备不一样的话,替换一下就可以啦

  2,把系统盘插入cdrom中

  3,出现提示符后,使用sync命令刷新文件系统

  4,按下stop+A

  5,ok状态下键入boot cdrom -s

  6,在#提示符下键入mkdir /temp ,然后键入mount /dev/dsk/c0t0d0s0 /temp

  如果出现挂接不上的情况时,那么就运行fsck先 fsck /dev/rdsk/c0t0d0s0,然后在mount

  7,cd /temp/etc

  8,cp shadow shadowbak

  9,cat shadow

  得到root的口令字符串

  root:djglcj0J:6453::::(其中djglcj0J就是root的加密后的口令字符串)

  10,sed s/djglcj0J// shadow>shadownew

  11,cat shadownew查看是否已经变为

  root::6453::::

  12,cp shadownew shadow

  13,cd /

  unmount /temp

  sync

  shutdown -i0 -g0 -y

  3,出现提示符后,使用sync命令刷新文件系统

  4,按下stop+A

  5,ok状态下键入boot cdrom -s

  6,在#提示符下键入mkdir /temp ,然后键入mount /dev/dsk/c0t0d0s0 /temp

  如果出现挂接不上的情况时,那么就运行fsck先 fsck /dev/rdsk/c0t0d0s0,然后在mount

  7,cd /temp/etc

  8,cp shadow shadowbak

  9,cat shadow

  得到root的口令字符串

  root:djglcj0J:6453::::(其中djglcj0J就是root的加密后的口令字符串)

  10,sed s/djglcj0J// shadow>shadownew

  11,cat shadownew查看是否已经变为

  root::6453::::

  12,cp shadownew shadow

  13,cd /

  unmount /temp

  sync

  shutdown -i0 -g0 -y

  14,取出CD后,重起系统,这时root就不需要密码啦!

  这样也可以!

  OK boot cdrom -s

  #TERM=sun

  #export TERM

  #mount /dev/dsk/c0t0d0s0 /a

  #vi /a/etc/shadow(删除root的加密后的密码)

  #reboot

  三.SCO UNIX

  一旦运行SCO UNIX 机器的超级用户口令忘了,可以用这个方法解决。

  在另一台安装了SCO UNIX的机器上,以Root用户注册,进入系统,用 mkdev fd命令或命令scoadmin中的Filesystem之Floppy Filesystem Manager来制作应急启动盘,包括Boottable 盘和Root filesystem盘。

  将上述制作的Root filesystem盘安装到硬盘上。

  # mount /dev/fd0135ds18 /mnt

  再将硬盘上的/etc/passwd 和/tcb/files/auth/r/root两个文件拷贝到Root filesystem盘上。

  # cp /etc/passwd /mnt

  # cp /tcb/files/auth/r/root /mnt

  卸载机器1硬盘上的软盘。

  # umount /dev/rfd0135ds18

  用Boot软盘去启动遗忘口令的机器,根据提示插入Root filesystem软盘,待出现“#”时,进行下面操作,将硬盘挂到软盘上:

  # mount /dev/hd0root /mnt

  备份硬盘上的/etc/passwd和/tcb/files/auth/r/root两个文件。因为这两个文件中还包含其他用户的注册信息。

  用Root filesystem软盘上的两个文件,覆盖硬盘上的两个文件/etc/passwd 和/tcb/files/auth/r/root。

  # mkdir /cyh

  # mount /dev/fd0135ds18 /cyh

  # cd /cyh

  # cp passwd /mnt/etc

  # cp root /mnt/tcb/files/auth

  卸载安装上的两个文件系统。

  # umount /dev/hd0root

  # umount /dev/fd0135ds18

  取出软盘,重新启动机器,待出现Login时,以Root用户注册,键入第二台机器的超级用户口令,这样便可进入的超级用户了。

  进入超级用户后,用Passwd和Root这两个文件的备份覆盖原来的文件,接着用passwd命令修改超级用户的口令。

  用户可以用Alt+F2换一个窗口,以Root注册,现在用修改后的口令就能用了。

  四.aix4.3.3(ibm) rs/6000

  将第一张安装盘放入光驱,重起机器,按f5键,终端按5,进入maintance页面,选择mount rootvg的功能选项,调用password修改口令,退出即可

  五.linux

  三种办法:

  1.在系统进入单用户状态,直接用passwd root去更改

  2.用安装光盘引导系统,进行linux rescue状态,将原来/分区挂接上来,作法如下:

  cd /mnt

  mkdir hd

  mount -t auto /dev/hdaX(原来/分区所在的分区号) hd

  cd hd

  chroot ./

  passwd root

  这样可以搞定

  3.将本机的硬盘拿下来,挂到其他的linux系统上,采用的办法与第二种相同

  6.redhat 8 redhat9

  (1). lilo法

  1. 在出现 lilo: 提示时键入 linux single

  画面显示 lilo: linux single

  2. 回车可直接进入linux命令行

  3. #vi /etc/shadow

  将第一行,即以root开头的一行中root:后和下一个:前的内容删除,

  第一行将类似于

  root::……

  保存

  4. #reboot重启,root密码为空

  (2). grub法

  1. 在出现grub画面时,用上下键选中你平时启动linux的那一项(别选dos哟),然后按e键

  2. 再次用上下键选中你平时启动linux的那一项(类似于kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/),然后按e键

  3. 修改你现在见到的命令行,加入single,结果如下:

  kernel /boot/vmlinuz-2.4.18-14 single ro root=LABEL=/

  4. 回车返回,然后按b键启动,即可直接进入linux命令行

  5. #vi /etc/shadow

  将第一行,即以root开头的一行中root:后和下一个:前的内容删除,

  第一行将类似于

  root::……

  保存

  6. #reboot重启,root密码为空

  7.HP-UX

  启动时按esc 进入isl

  进入ISL后:

  isl>bo pri

  (yes/no)y

  ipl>hpux -is

  ipl>vi /etc/passwd

  去掉root 的密码即可。

如今Redhat Enterprise Linux已经出到4.0 Update 4了,但是载体还是只有CD,没有DVD。而且CD已经达到了5CD了!刻录出来麻烦,安装的时候换盘也麻烦。我们能不能把5CD合并成为一张DVD呢?答案是可以的!我已经操作成功了!

下面我说一下我是怎么搞定的。我所有的操作用到了如下两个软件:UltraISO,VMWARE。当然还有RHEL的5CD安装镜象。VMWARE中需要先安装好一个Redhat的Linux,安装好anaconda和anaconda runtime。OK,下面我就说一下我是怎么制作的:

1. 把5张CD的文件都COPY到一起,假设为D:isobuild

2. 把isobuild目录共享出来

3. 在VMWARE的Linux里面使用smbmount命令把isobuild目录mount到/mnt/isobuild

4. 在Linux中执行 PYTHONPATH=/usr/lib/anaconda /usr/lib/anaconda-runtime/pkgorder /mnt/isobuild/ i386 > /mnt/isobuild/xander-pkgorder

5. 在Linux中执行 /usr/lib/anaconda-runtime/genhdlist –fileorder /mnt/isobuild/xander-pkgorder /mnt/isobuild/

6. 用UltraISO打开CD1的镜象,使用D:isobuildRedhat替换光盘中的/Redhat,保存。

至此,DVD镜象文件制作完毕。在刻录前可先用VMWARE测试所制作的DVD光盘是否可正常安装。

制作过程中参考了 How to Create RHEL-4 DVD from CDs 一文

 

How to Create RHEL-4 DVD from CDs Reply with quote
*Setting up the build directory:*

The first thing to do is to copy all the cdrom ISOs to one location:
mkdir -p /mnt/disk{1,2,3,4}
mount -o loop RHEL4-U1-i386-AS-disc1.iso /mnt/disk1
mount -o loop RHEL4-U1-i386-AS-disc2.iso /mnt/disk2
mount -o loop RHEL4-U1-i386-AS-disc3.iso /mnt/disk3
mount -o loop RHEL4-U1-i386-AS-disc4.iso /mnt/disk4

We now copy all the files from the directories to a single directory:
mkdir -p /data/isobuild
rsync -rv /mnt/disk{4,3,2,1}/* /data/isobuild/

We also need to copy across the .diskinfo file that is not caught by our *:
cp /mnt/disk1/.diskinfo /data/isobuild/

The .diskinfo file identifies the CD as being a correct Red Hat Installer disk
and is checked by anaconda during the start of the install.

We could now build the DVD as it is but we really should have a fiddle first Smile

*Adding more software to the DVD*
We could add some of our own rpms to /data/isobuild/RedHat/RPMS; however by just
doing this does not make them available at install time. There is an XML file
that is read and ensures that the packages are installed in the correct order.

So let us throw a few random packages into the mix:

Add some java:
cp jre-1_5_0_03-linux-i586.rpm /data/isobuild/RedHat/RPMS/

Some encryption for GAIM:
cp gaim-encryption-2.36-3.rf.i386.rpm /data/isobuild/RedHat/RPMS/

*Updating the comps.xml file*
We need to ensure that the host computer has anaconda and anaconda-runtime installed:
up2date anaconda anaconda-runtime

Before we update the XML dependency file we need to sort out package orders.
If you have added a lot of new packages you may need to remove some old
packages that you have replaced with newer versions to stop conflicts.

So the first command is:
PYTHONPATH=/usr/lib/anaconda /usr/lib/anaconda-runtime/pkgorder /data/isobuild/ i386 > /data/isobuild/xander-pkgorder

This creates a list of files in the order it needs to install them
in the file /data/isobuild/xander-pkgorder. Sometimes an occasional
RPM will not provide the information anaconda needs. You can edit
the file manually and insert your RPMs at the end.

Next we need to generate the dependency file:

/usr/lib/anaconda-runtime/genhdlist –fileorder /data/isobuild/xander-pkgorder /data/isobuild/

You will probably have a few hiccoughs the first time you run these commands.
Most may be resolved by adding the missing entries to the pkgorder file or
deleting duplicate packages.

*Creating an automated installer*
We could *now* if we wanted to build our DVD; however we can make an
automated installer.

So crack open system-config-kickstart and create a kickstart file with
all the packages and partitioning etc you need for your systems.

copy the resulting file to /data/isobuild/ks.cfg

we can now edit the file /data/isobuild/isolinux/isolinux.cfg

copy or change the three lines:
label linux
kernel vmlinuz
append initrd=initrd.img ramdisk_size=8192

to
label xander
kernel vmlinuz
append initrd=initrd.img ramdisk_size=8192 ks=cdrom:/ks.cfg

Then change the default at the top of the file to xander. This means that
the default action is to install directly from the DVD using your kickstart file.

*Building the DVD iso*
Now to build the iso:

cd /data/isobuild

chmod a+w isolinux/isolinux.bin

mkisofs -r -T -J -V "Custom RHEL4 Build" -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o /data/custom-RHEL4-dvd.iso /data/isobuild/

*Buring the DVD*
Now we can burn the image to the CD. I assume the CD writer is already
set up on your system. We use cdrecord below, but you can use other
programs as well. The command is invoked as:

cdrecord -v speed=4 dev=0,0,0 /data/custom-RHEL4-dvd.iso

The speed and dev options depend on your system. The device for the dev
argument can be determined by using the -scanbus option to cdrecord:

cdrecord -scanbus

Using the DVD

Once the image is burned onto the DVD, insert the DVD into the target
machine and boot the machine. You should get the custom message that
you created earlier. At this point, you can either press Enter at the
boot prompt or let it timeout. When it times out it uses the default
label, which we specified as ks (Kickstart).

linux 线程 进程经典文章
http://www.douzhe.com 作者:hjzgq 发表于:2003-08-06 11:54:40

有关linux下进程与线程看过很多文章,我觉的这篇可以说最经典

---------------------------------

一.基础知识:线程和进程

按照教科书上的定义,进程是资源管理的最小单位,线程是程序执行的最小单位。在操作系统设计上,从进程演化出线程,最主要的目的就是更好的支持SMP以及减小(进程/线程)上下文切换开销。

无论按照怎样的分法,一个进程至少需要一个线程作为它的指令执行体,进程管理着资源(比如cpu、内存、文件等等),而将线程分配到某个cpu上执行。一个进程当然可以拥有多个线程,此时,如果进程运行在SMP机器上,它就可以同时使用多个cpu来执行各个线程,达到最大程度的并行,以提高效率;同时,即使是在单cpu的机器上,采用多线程模型来设计程序,正如当年采用多进程模型代替单进程模型一样,使设计更简洁、功能更完备,程序的执行效率也更高,例如采用多个线程响应多个输入,而此时多线程模型所实现的功能实际上也可以用多进程模型来实现,而与后者相比,线程的上下文切换开销就比进程要小多了,从语义上来说,同时响应多个输入这样的功能,实际上就是共享了除cpu以外的所有资源的。

针对线程模型的两大意义,分别开发出了核心级线程和用户级线程两种线程模型,分类的标准主要是线程的调度者在核内还是在核外。前者更利于并发使用多处理器的资源,而后者则更多考虑的是上下文切换开销。在目前的商用系统中,通常都将两者结合起来使用,既提供核心线程以满足smp系统的需要,也支持用线程库的方式在用户态实现另一套线程机制,此时一个核心线程同时成为多个用户态线程的调度者。正如很多技术一样,"混合"通常都能带来更高的效率,但同时也带来更大的实现难度,出于"简单"的设计思路,Linux 从一开始就没有实现混合模型的计划,但它在实现上采用了另一种思路的"混合"。

在线程机制的具体实现上,可以在操作系统内核上实现线程,也可以在核外实现,后者显然要求核内至少实现了进程,而前者则一般要求在核内同时也支持进程。核心级线程模型显然要求前者的支持,而用户级线程模型则不一定基于后者实现。这种差异,正如前所述,是两种分类方式的标准不同带来的。

当核内既支持进程也支持线程时,就可以实现线程-进程的"多对多"模型,即一个进程的某个线程由核内调度,而同时它也可以作为用户级线程池的调度者,选择合适的用户级线程在其空间中运行。这就是前面提到的" 混合"线程模型,既可满足多处理机系统的需要,也可以最大限度的减小调度开销。绝大多数商业操作系统(如Digital Unix、Solaris、 Irix)都采用的这种能够完全实现POSIX1003.1c标准的线程模型。在核外实现的线程又可以分为"一对一"、"多对一"两种模型,前者用一个核心进程(也许是轻量进程)对应一个线程,将线程调度等同于进程调度,交给核心完成,而后者则完全在核外实现多线程,调度也在用户态完成。后者就是前面提到的单纯的用户级线程模型的实现方式,显然,这种核外的线程调度器实际上只需要完成线程运行栈的切换,调度开销非常小,但同时因为核心信号(无论是同步的还是异步的)都是以进程为单位的,因而无法定位到线程,所以这种实现方式不能用于多处理器系统,而这个需求正变得越来越大,因此,在现实中,纯用户级线程的实现,除算法研究目的以外,几乎已经消失了。

Linux内核只提供了轻量进程的支持,限制了更高效的线程模型的实现,但Linux着重优化了进程的调度开销,一定程度上也弥补了这一缺陷。目前最流行的线程机制LinuxThreads所采用的就是线程-进程"一对一"模型,调度交给核心,而在用户级实现一个包括信号处理在内的线程管理机制。Linux-LinuxThreads的运行机制正是本文的描述重点。

二.Linux 2.4内核中的轻量进程实现

最初的进程定义都包含程序、资源及其执行三部分,其中程序通常指代码,资源在操作系统层面上通常包括内存资源、IO资源、信号处理等部分,而程序的执行通常理解为执行上下文,包括对cpu的占用,后来发展为线程。在线程概念出现以前,为了减小进程切换的开销,操作系统设计者逐渐修正进程的概念,逐渐允许将进程所占有的资源从其主体剥离出来,允许某些进程共享一部分资源,例如文件、信号,数据内存,甚至代码,这就发展出轻量进程的概念。Linux内核在 2.0.x版本就已经实现了轻量进程,应用程序可以通过一个统一的clone()系统调用接口,用不同的参数指定创建轻量进程还是普通进程。在内核中, clone()调用经过参数传递和解释后会调用do_fork(),这个核内函数同时也是fork()、vfork()系统调用的最终实现:

<linux-2.4.20/kernel/fork.c>
int do_fork(unsigned long clone_flags, unsigned long stack_start,
struct pt_regs *regs, unsigned long stack_size)

其中的clone_flags取自以下宏的"或"值:

<linux-2.4.20/include/linux/sched.h>
#define CSIGNAL 0x000000ff /* signal mask to be sent at exit */
#define CLONE_VM 0x00000100 /* set if VM shared between processes */
#define CLONE_FS 0x00000200 /* set if fs info shared between processes */
#define CLONE_FILES 0x00000400 /* set if open files shared between processes */
#define CLONE_SIGHAND 0x00000800 /* set if signal handlers and blocked signals shared */
#define CLONE_PID 0x00001000 /* set if pid shared */
#define CLONE_PTRACE 0x00002000 /* set if we want to let tracing continue on the child too */
#define CLONE_VFORK 0x00004000 /* set if the parent wants the child to wake it up on mm_release */
#define CLONE_PARENT 0x00008000 /* set if we want to have the same parent as the cloner */
#define CLONE_THREAD 0x00010000 /* Same thread group? */
#define CLONE_NEWNS 0x00020000 /* New namespace group? */
#define CLONE_SIGNAL (CLONE_SIGHAND | CLONE_THREAD)

在do_fork ()中,不同的clone_flags将导致不同的行为,对于LinuxThreads,它使用(CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND)参数来调用clone()创建"线程",表示共享内存、共享文件系统访问计数、共享文件描述符表,以及共享信号处理方式。本节就针对这几个参数,看看Linux内核是如何实现这些资源的共享的。

1.CLONE_VM

do_fork ()需要调用copy_mm()来设置task_struct中的mm和active_mm项,这两个mm_struct数据与进程所关联的内存空间相对应。如果do_fork()时指定了CLONE_VM开关,copy_mm()将把新的task_struct中的mm和active_mm设置成与 current的相同,同时提高该mm_struct的使用者数目(mm_struct::mm_users)。也就是说,轻量级进程与父进程共享内存地址空间,由下图示意可以看出mm_struct在进程中的地位:

2.CLONE_FS

task_struct 中利用fs(struct fs_struct *)记录了进程所在文件系统的根目录和当前目录信息,do_fork()时调用copy_fs()复制了这个结构;而对于轻量级进程则仅增加fs->count计数,与父进程共享相同的fs_struct。也就是说,轻量级进程没有独立的文件系统相关的信息,进程中任何一个线程改变当前目录、根目录等信息都将直接影响到其他线程。

3.CLONE_FILES

一个进程可能打开了一些文件,在进程结构task_struct中利用files(struct files_struct *)来保存进程打开的文件结构(struct file)信息,do_fork()中调用了copy_files()来处理这个进程属性;轻量级进程与父进程是共享该结构的, copy_files()时仅增加files->count计数。这一共享使得任何线程都能访问进程所维护的打开文件,对它们的操作会直接反映到进程中的其他线程。

4.CLONE_SIGHAND

每一个Linux进程都可以自行定义对信号的处理方式,在 task_struct中的sig(struct signal_struct)中使用一个struct k_sigaction结构的数组来保存这个配置信息,do_fork()中的copy_sighand()负责复制该信息;轻量级进程不进行复制,而仅仅增加signal_struct:: count计数,与父进程共享该结构。也就是说,子进程与父进程的信号处理方式完全相同,而且可以相互更改。

do_fork()中所做的工作很多,在此不详细描述。对于SMP系统,所有的进程fork出来后,都被分配到与父进程相同的cpu上,一直到该进程被调度时才会进行cpu选择。

尽管Linux支持轻量级进程,但并不能说它就支持核心级线程,因为Linux的"线程"和"进程"实际上处于一个调度层次,共享一个进程标识符空间,这种限制使得不可能在Linux上实现完全意义上的POSIX线程机制,因此众多的Linux线程库实现尝试都只能尽可能实现POSIX的绝大部分语义,并在功能上尽可能逼近。

三.LinuxThread的线程机制

LinuxThreads是目前Linux平台上使用最为广泛的线程库,由Xavier Leroy ([email protected])负责开发完成,并已绑定在GLIBC中发行。它所实现的就是基于核心轻量级进程的"一对一"线程模型,一个线程实体对应一个核心轻量级进程,而线程之间的管理在核外函数库中实现。

1.线程描述数据结构及实现限制

LinuxThreads 定义了一个struct _pthread_descr_struct数据结构来描述线程,并使用全局数组变量__pthread_handles来描述和引用进程所辖线程。在__pthread_handles中的前两项,LinuxThreads定义了两个全局的系统线程: __pthread_initial_thread和__pthread_manager_thread,并用 __pthread_main_thread表征__pthread_manager_thread的父线程(初始为 __pthread_initial_thread)。

struct _pthread_descr_struct是一个双环链表结构,__pthread_manager_thread所在的链表仅包括它一个元素,实际上,__pthread_manager_thread是一个特殊线程,LinuxThreads仅使用了其中的errno、p_pid、p_priority等三个域。而__pthread_main_thread 所在的链则将进程中所有用户线程串在了一起。经过一系列pthread_create()之后形成的__pthread_handles数组将如下图所示:

图2 __pthread_handles数组结构

新创建的线程将首先在__pthread_handles数组中占据一项,然后通过数据结构中的链指针连入以__pthread_main_thread为首指针的链表中。这个链表的使用在介绍线程的创建和释放的时候将提到。

LinuxThreads 遵循POSIX1003.1c标准,其中对线程库的实现进行了一些范围限制,比如进程最大线程数,线程私有数据区大小等等。在LinuxThreads的实现中,基本遵循这些限制,但也进行了一定的改动,改动的趋势是放松或者说扩大这些限制,使编程更加方便。这些限定宏主要集中在 sysdeps/unix/sysv/linux/bits/local_lim.h(不同平台使用的文件位置不同)中,包括如下几个:

每进程的私有数据key数,POSIX定义_POSIX_THREAD_KEYS_MAX为128,LinuxThreads使用 PTHREAD_KEYS_MAX,1024;私有数据释放时允许执行的操作数,LinuxThreads与POSIX一致,定义 PTHREAD_DESTRUCTOR_ITERATIONS为4;每进程的线程数,POSIX定义为64,LinuxThreads增大到1024 (PTHREAD_THREADS_MAX);线程运行栈最小空间大小,POSIX未指定,LinuxThreads使用 PTHREAD_STACK_MIN,16384(字节)。

2.管理线程

"一对一"模型的好处之一是线程的调度由核心完成了,而其他诸如线程取消、线程间的同步等工作,都是在核外线程库中完成的。在LinuxThreads中,专门为每一个进程构造了一个管理线程,负责处理线程相关的管理工作。当进程第一次调用pthread_create()创建一个线程的时候就会创建(__clone())并启动管理线程。

在一个进程空间内,管理线程与其他线程之间通过一对"管理管道(manager_pipe[2])"来通讯,该管道在创建管理线程之前创建,在成功启动了管理线程之后,管理管道的读端和写端分别赋给两个全局变量__pthread_manager_reader和 __pthread_manager_request,之后,每个用户线程都通过__pthread_manager_request向管理线程发请求,但管理线程本身并没有直接使用__pthread_manager_reader,管道的读端(manager_pipe[0])是作为__clone ()的参数之一传给管理线程的,管理线程的工作主要就是监听管道读端,并对从中取出的请求作出反应。

创建管理线程的流程如下所示:
(全局变量pthread_manager_request初值为-1)

图3 创建管理线程的流程

初始化结束后,在__pthread_manager_thread中记录了轻量级进程号以及核外分配和管理的线程id, 2*PTHREAD_THREADS_MAX+1这个数值不会与任何常规用户线程id冲突。管理线程作为pthread_create()的调用者线程的子线程运行,而pthread_create()所创建的那个用户线程则是由管理线程来调用clone()创建,因此实际上是管理线程的子线程。(此处子线程的概念应该当作子进程来理解。)

__pthread_manager()就是管理线程的主循环所在,在进行一系列初始化工作后,进入while(1)循环。在循环中,线程以2秒为timeout查询(__poll())管理管道的读端。在处理请求前,检查其父线程(也就是创建 manager的主线程)是否已退出,如果已退出就退出整个进程。如果有退出的子线程需要清理,则调用pthread_reap_children()清理。

然后才是读取管道中的请求,根据请求类型执行相应操作(switch-case)。具体的请求处理,源码中比较清楚,这里就不赘述了。

3.线程栈

在LinuxThreads中,管理线程的栈和用户线程的栈是分离的,管理线程在进程堆中通过malloc()分配一个THREAD_MANAGER_STACK_SIZE字节的区域作为自己的运行栈。

用户线程的栈分配办法随着体系结构的不同而不同,主要根据两个宏定义来区分,一个是NEED_SEPARATE_REGISTER_STACK,这个属性仅在IA64平台上使用;另一个是FLOATING_STACK宏,在i386等少数平台上使用,此时用户线程栈由系统决定具体位置并提供保护。与此同时,用户还可以通过线程属性结构来指定使用用户自定义的栈。因篇幅所限,这里只能分析i386平台所使用的两种栈组织方式:FLOATING_STACK方式和用户自定义方式。

在FLOATING_STACK方式下,LinuxThreads利用mmap()从内核空间中分配8MB空间(i386系统缺省的最大栈空间大小,如果有运行限制(rlimit),则按照运行限制设置),使用mprotect()设置其中第一页为非访问区。该 8M空间的功能分配如下图:

图4 栈结构示意

低地址被保护的页面用来监测栈溢出。

对于用户指定的栈,在按照指针对界后,设置线程栈顶,并计算出栈底,不做保护,正确性由用户自己保证。

不论哪种组织方式,线程描述结构总是位于栈顶紧邻堆栈的位置。

4.线程id和进程id

每个LinuxThreads线程都同时具有线程id和进程id,其中进程id就是内核所维护的进程号,而线程id则由LinuxThreads分配和维护。

__pthread_initial_thread 的线程id为PTHREAD_THREADS_MAX,__pthread_manager_thread的是 2*PTHREAD_THREADS_MAX+1,第一个用户线程的线程id为PTHREAD_THREADS_MAX+2,此后第n个用户线程的线程 id遵循以下公式:

tid=n*PTHREAD_THREADS_MAX+n+1

这种分配方式保证了进程中所有的线程(包括已经退出)都不会有相同的线程id,而线程id的类型pthread_t定义为无符号长整型(unsigned long int),也保证了有理由的运行时间内线程id不会重复。

从线程id查找线程数据结构是在pthread_handle()函数中完成的,实际上只是将线程号按PTHREAD_THREADS_MAX取模,得到的就是该线程在__pthread_handles中的索引。

5.线程的创建

在pthread_create ()向管理线程发送REQ_CREATE请求之后,管理线程即调用pthread_handle_create()创建新线程。分配栈、设置thread 属性后,以pthread_start_thread()为函数入口调用__clone()创建并启动新线程。pthread_start_thread ()读取自身的进程id号存入线程描述结构中,并根据其中记录的调度方法配置调度。一切准备就绪后,再调用真正的线程执行函数,并在此函数返回后调用 pthread_exit()清理现场。

6.LinuxThreads的不足

由于Linux内核的限制以及实现难度等等原因,LinuxThreads并不是完全POSIX兼容的,在它的发行README中有说明。

1)进程id问题

这个不足是最关键的不足,引起的原因牵涉到LinuxThreads的"一对一"模型。

Linux 内核并不支持真正意义上的线程,LinuxThreads是用与普通进程具有同样内核调度视图的轻量级进程来实现线程支持的。这些轻量级进程拥有独立的进程id,在进程调度、信号处理、IO等方面享有与普通进程一样的能力。在源码阅读者看来,就是Linux内核的clone()没有实现对 CLONE_PID参数的支持。

在内核do_fork()中对CLONE_PID的处理是这样的:

if (clone_flags & CLONE_PID) {
if (current->pid)
goto fork_out;
}

这段代码表明,目前的Linux内核仅在pid为0的时候认可CLONE_PID参数,实际上,仅在SMP初始化,手工创建进程的时候才会使用CLONE_PID参数。

按照POSIX定义,同一进程的所有线程应该共享一个进程id和父进程id,这在目前的"一对一"模型下是无法实现的。

2)信号处理问题

由于异步信号是内核以进程为单位分发的,而LinuxThreads的每个线程对内核来说都是一个进程,且没有实现"线程组",因此,某些语义不符合POSIX标准,比如没有实现向进程中所有线程发送信号,README对此作了说明。

如果核心不提供实时信号,LinuxThreads将使用SIGUSR1和SIGUSR2作为内部使用的restart和cancel信号,这样应用程序就不能使用这两个原本为用户保留的信号了。在Linux kernel 2.1.60以后的版本都支持扩展的实时信号(从_SIGRTMIN到 _SIGRTMAX),因此不存在这个问题。

某些信号的缺省动作难以在现行体系上实现,比如SIGSTOP和SIGCONT,LinuxThreads只能将一个线程挂起,而无法挂起整个进程。

3)线程总数问题

LinuxThreads将每个进程的线程最大数目定义为1024,但实际上这个数值还受到整个系统的总进程数限制,这又是由于线程其实是核心进程。

在kernel 2.4.x中,采用一套全新的总进程数计算方法,使得总进程数基本上仅受限于物理内存的大小,计算公式在kernel/fork.c的fork_init()函数中:

max_threads = mempages / (THREAD_SIZE/PAGE_SIZE) / 8

在i386 上,THREAD_SIZE=2*PAGE_SIZE,PAGE_SIZE=2^12(4KB),mempages=物理内存大小/PAGE_SIZE,对于256M的内存的机器,mempages=256*2^20/2^12=256*2^8,此时最大线程数为4096。

但为了保证每个用户(除了root)的进程总数不至于占用一半以上物理内存,fork_init()中继续指定:

init_task.rlim[RLIMIT_NPROC].rlim_cur = max_threads/2;
init_task.rlim[RLIMIT_NPROC].rlim_max = max_threads/2;

这些进程数目的检查都在do_fork()中进行,因此,对于LinuxThreads来说,线程总数同时受这三个因素的限制。

4)管理线程问题

管理线程容易成为瓶颈,这是这种结构的通病;同时,管理线程又负责用户线程的清理工作,因此,尽管管理线程已经屏蔽了大部分的信号,但一旦管理线程死亡,用户线程就不得不手工清理了,而且用户线程并不知道管理线程的状态,之后的线程创建等请求将无人处理。

5)同步问题

LinuxThreads中的线程同步很大程度上是建立在信号基础上的,这种通过内核复杂的信号处理机制的同步方式,效率一直是个问题。

6)其他POSIX兼容性问题

Linux中很多系统调用,按照语义都是与进程相关的,比如nice、setuid、setrlimit等,在目前的LinuxThreads中,这些调用都仅仅影响调用者线程。

7)实时性问题

线程的引入有一定的实时性考虑,但LinuxThreads暂时不支持,比如调度选项,目前还没有实现。不仅LinuxThreads如此,标准的Linux在实时性上考虑都很少。

数百种Windows软件的替代品列表

程序所执行任务的描述 Windows Linux
1) 网络连接
网页浏览器 微软 IE,网景 Netscape / Mozilla, Opera [私有],Firebird,…… 1) Netscape/ Mozilla
2) Galeon.
3) Konqueror.
4) Opera.[私有]
5) Firebird.
6) Nautilus
7) Epiphany
8) Links.(用 “-g”开关)
9) Dillo(俄语补丁 – 在此
10) Encompass
字符终端上的网页浏览器 1) Links
2) Lynx
3) Xemacs + w3.
1) Links
2) ELinks
3) Lynx
4) w3m
5) Xemacs + w3
Email 客户端 Outlook Express, Netscape / Mozilla , The Bat,Eudora, Becky, Datula, Sylpheed/ Sylpheed-claws,Opera 1) Evolution
2) Netscape / Mozilla 传呼
3) Sylpheed / Sylpheed-claws.
4) Kmail.
5) Gnus.
6) Balsa
7) Bynari Insight GroupWare Suite[私有]
8) Arrow.
9) Gnumail.
10) Althea.
11) Liamail.
12) Aethera.
13) MailWarrior.
14) Opera.
Email 客户端 / 微软 Outlook 风格的个人信息管理器 Outlook 1) Evolution
2) Bynari Insight GroupWare Suite.[私有]
3) Aethera.
4) Sylpheed.
5) Sylpheed-claws
Email 客户端(The Bat 风格) The Bat 1) Sylpheed.
2) Sylpheed-claws.
3) Kmail.
4) Gnus.
5) Balsa
字符终端上的 Email 客户端 Mutt [de],Pine, Pegasus, Emacs 1) Pine[非免费]
2) Mutt
3) Gnus.
4) Elm
5) Emacs
新闻阅读器 1) Agent[私有]
2) Free Agent
3) Xnews
4) Outlook
5) Netscape / Mozilla
6) Opera [私有]
7) Sylpheed / Sylpheed-claws
8) Dialog
9) Gravity
1) Knode.
2) Pan.
3) NewsReader
4) Netscape / Mozilla
5) Opera[私有]
6) Sylpheed / Sylpheed-claws.
――用于字符终端的有:
7) Pine. [非免费]
8) Mutt
9) Gnus
10) tin
11) slrn
12) Xemacs
地址簿 Outlook 1) Rubrica
文件下载工具 Flashget, Go!zilla, Reget, Getright, DAP, Wget, WackGet, MassDownloader, … 1) Downloader for X.
2) Caitoo(旧称 Kget)
3) Prozilla
4) Wget (用于字符终端,标准的)
5) Wget 图形用户界面:Kmago, Gnome Transfer Manager, QTget, Xget, …
6) Aria.
7) Axel
8) Download Accelerator Plus.
9) GetLeft
10) Lftp
网站下载工具 Teleport Pro, Httrack,Wget,… 1) Httrack.
2) WWW Offline Explorer.
3) Wget(用于字符终端,标准的),图形用户界面的有: Kmago, QTget, Xget, …
4) Downloader for X.
5) Pavuk.
6) XSiteCopy.
7) GetLeft
8) Curl(用于字符终端)
9) Khttrack
FTP 客户程序 Bullet Proof FTP, CuteFTP, WSFTP, SmartFTP, … 1) Gftp.
2) Konqueror.
3) KBear.
4) IglooFTP[私有]
5) Nftp
6) Wxftp
7) AxyFTP
8) mc(cd ftp://…)
9) tkFTP
10) Yafc
11) Dpsftp.(dead project)
字符终端上的 FTP 客户程序 FTP in Far, ftp.exe, Ncftp 1) Ncftp.
2) Lftp.
3) Avfs.(从任意程序可用:/#ftp:… 访问站点资源)
IRC 客户端 Mirc, Klient, VIRC, Xircon, Pirch, XChat 1) Xchat.
2) KVirc.
3) Irssi
4) BitchX.
5) Ksirc.
6) Epic
7) Sirc
8) PJIRC.
不用服务器的局域网聊天客户程序 1) QuickChat
2) Akeni
3) PonyChat
4) iChat
1) talk(用于字符终端),ktalk
2) Akeni
3) Echat
4) write, wall(同一台机器的用户之间进行聊天)
用 Windows 机器在局域网进行传呼 WinPopUp smbclient(用于字符终端),图形用户界面的有:
1) LinPopUp 2
2) Kpopup
3) Kopete
即时传呼客户程序 ICQ Lite, ICQ Corp, MSN, AIM, Yahoo,…
Trillian ICQ(自由软件,可以替代所有通常的即时传呼客户程序),Miranda, Gaim
1) Licq (ICQ)
2) Centericq(包括近乎所有的即时传呼协议,用于字符终端)
3) Alicq (ICQ).
4) Micq (ICQ).
5) GnomeICU (ICQ).
6) Gaim.(包括近乎所有的即时传呼协议)
7) Ayttm.(包括近乎所有的即时传呼协议)
8) Kopete
9) Everybuddy
10) Simple Instant Messenger.
11) ImiciMessenger
12) Ickle (ICQ).
13) aMSN (MSN).
14) Kmerlin (MSN).
15) Kicq (ICQ).
16) YSM(ICQ,用于字符终端)
17) kxicq.
18) 雅虎寻呼 Unix 版
19) Kmess (MSN).
20) AIM
21) MSNre(用于字符终端)
Jabber 即时传呼客户程序 JAJC,Tkabber(+activestate tcl), Psi,Exodus, WinJab, myJabber, RhymBox,Rival, Skabber, TipicIM, Vista, Yabber, Miranda, Gaim, Akeni 寻呼 Jabber 版 1) Tkabber
2) Gabber
3) Psi
4) Gaim
5) Centericq(用于字符终端)
6) Ayttm.
7) Akeni 寻呼 Jabber 版
监控网站和邮箱、显示新闻主题或整篇文章的工具 WatzNew 1) Web Secretary
2) Knewsticker& korn.
3) Mozilla (???).
4) watch -n seconds lynx -dump
视频、音频会议 NetMeeting 1) GnomeMeeting
2) vat/vic/wb
3) rat/wbd/nte
4) NeVoT
5) IVS
语音通讯(声讯、通话工具) Speak Freely 1) Speak Freely for Unix
2) TeamSpeak
防火墙(包过滤工具) BlackICE, ATGuard, ZoneAlarm, Agnitum OutpostFirewall, WinRoute Pro, NortonInternet Security, Sygate PersonalFirewall PRO,Kerio Personal Firewall, … iptables 或比较过时的 ipchains (用于字符终端,标准的)。前端程序有:
1) Kmyfirewall.
2) Easy Firewall Generator
3) Firewall Builder
4) Shorewall
5) Guarddog
6) FireStarter
7) Smoothwall[私有]
8) IPCop.
9) Zorp.
IDS(入侵检测系统) 1) BlackICE
2) Agnitum Outpost Firewall
3) Tripwire [私有]
4) Kerio Personal Firewall
1) Snort
2) Portsentry / Hostsentry /Logsentry
3) Tripwire [GPL].
4) Tripwall.
5) AIDE.
6) ViperDB.
7) Integrit.
8) CerberusIntrusion Detection System
9) MIDASNMS
端口扫描探测工具 ??? 1) Pkdump
更加安全地制作系统的工具 ??? 1) Bastille
2) Linux Security Auditing Tool
可视化路由(Visual route) VisualRoute [私有] 1) Xtraceroute.
2) VisualRoute.[私有]
3) Mtr.
4) Geotrace.
信文(广告、弹出窗口)过滤工具 Proxomitron, ATGuard, Agnitum Outpost Firewall, Privoxy, MS ISA server, Guidescope, … 1) DansGuardian.
2) Squid.
3) Squidguard
4) Privoxy
5) JunkBuster
6) Zorp.
7) Fork
8) Redirector
网络流量调整、控制工具 WinRoute Pro,… 1) IPRelay
2) CBQ (来自 iproute2 软件包)
3) tc (来自 iproute2 软件包)
4) LARTC
网络流量结算工具 Netstat, Tmeter,… 1) Tcp4me
2) Getstatd
3) Ipacct
4) Ipac-ng
5) Ipaudit
6) Lanbilling
7) SARG (fullSquid traffic).
8) Talinux
9) NetUP UserTrafManager.
10) MRTG
11) NetTop
对等网络客户机/服务器、文件共享工具(p2p) Morpheus (Gnutella), WinMX, Napster, KaZaA(Fasttrack), eDonkey [私有], eMule, TheCircle, Bittorrent, SoulSeek, Direct Connect 1) Mldonkey(eDonkey, Soulseek, Fasttrack, Gnutella, Open Napster, Direct Connect, BitTorrent)
2) LimeWire. (Gnutella)
3) Lopster. (OpenNAP)
4) Gnapster.(OpenNAP)
5) eDonkey.(eDonkey) [私有]
6) cDonkey. (eDonkey)
7) Gift client / server / fasttrackplugin (Fasttrack)
8) ed2k_gui.
9) Gtk-Gnutella.(Gnutella)
10) Qtella. (Gnutella)
11) Mutella. (Gnutella,console)
12) TheCircle
13) Freenet(完全匿名的 p2p)
14) GNUnet
15) Lmule. (eDonkey)
16) Xmule. (eDonkey)
17) Bittorrent.
18) PySoulSeek(Soulseek).
19) Loophole. (WinMX)[私有]
20) Direct Connect(直接连接)
21) QuickDC(快速直接连接)
22) OverNet
23) Apollon
24) GrapeWine(完全匿名的 p2p)
25) Snark.(Bittorrent)
"Hotline" p2p 协议客户机/服务器工具 ??? 客户程序:
1) Gtkhx
2) Fidelio
3) GHX[私有]
服务器程序:
1) Synapse
2) HSX
与具有很多功能的语音调制解调器一起工作的程序,这些功能包括从应答机(answerback)和AON 到传真设备等一系列功能 Venta Fax, PrimaFax 1) Gfax.(???)
2) PrimaFax.[私有] 99$]
3) mgetty + voice + sendfax.
4) vgetty.
收发传真 WinFax 1) HylaFax
2) Fax2Send. [私有]
3) Efax
4) VSI-FAX.[私有]
拨号上网 Vdialer, etc 1) Kppp
2) X-isp
3) wvdial(前端:X-wvdial,kvdial, gtkdial)
4) Gppp
5) Kinternet.
6) Rp3.
7) pppconfig + pon + poff.
8) Modem Lights.
9) Netcount(用于字符终端)
FTN 编辑器 Golded 1) Golded.
2) Golded+.
3) Msged
4) Qded
FTN tosser(投手) FastEcho, hpt 1) hpt.
2) CrashEcho.
3) Qecho
4) CrashMailII
5) Fidogate – gate to news.
6) ifmail – gate tonews.
FTN mailer(邮寄者) SF-Mail, T-Mail 1) ifcico.
2) qico.
3) Bforce
4) Binkd
远程管理软件 1) VNC,(VirtualNetwork Computing,似乎应当是虚拟网络控制台Console)
2) Remote Administrator (Radmin)[私有]
3) Remote Assistance [私有]
4) Symantec pcAnywhere [私有]
5) Windows 终端服务器[私有]
6) Rdesktop [私有]
7)Radmin [私有]
8) PC-Duo [私有]
9) Huey PC Remote Control(只有Windows NT 版的) [私有]
10) Timbuktu Pro [私有]
11) LapLink [私有]
12) GoToMyPC [私有]
13) Bo2k and other trojans
1) VNC,虚拟网络控制台
2) ssh
3) 远程管理嵌于XFree86内部
4) 远程管理嵌于KDE3.1内部(“桌面共享”)
5) Rdesktop Client
6) rsh / rlogin.
7) telnet.
8) Gtelnet.
9) x0rfbserver
10) KDE 通用远程桌面.
用调制解调器传输文件 HyperTerminal, Terminate, etc 1) Minicom + lrzcz + Kermit.
2) Msterm.
3) Xtel
4) uucp.
5) lrzsz + cufrom uucp.
安全Shell登录(ssh) Putty, Irlex, cygwin + ssh 1) Kssh.
2) ssh / openssh
3) GTelnet.(Telnet, SSH, Rlogin)
网络监控工具 Dumeter, Netmedic 1) Gkrellm
2) Big Brother
3) Etherape
4) Nagios
5) Tkined
6) MRTG
7) Rrdtool.
8) PIKT
9) Autostatus
10) bcnu
11) mon
12) Sysmon
13) Spong
14) SNIPS
15) iptraf(用于字符终端)
16) Ksysguard.
17) OpenNMS
18) tcpdump.
网络维护工具 HP OpenView, MS SMS, Tivoli 1) HP OpenView agents[私有]
2) Big Brother
3) Cheops
4) Tkined
5) OpenNMS
网络协议分析、嗅探工具 Sniffer Pro,EtherPeek (TokenPeek, AiroPeek), Windump,Ethereal, MSNetwork Monitor, Iris, LanExplorer, NetSniffer,Snort, … 1) Ethereal
2) Tcpdump
3) Etherape
4) Ntop
5) ipxdump. (+ipxparse for parsing)
6) Snort.
安全性扫描器 ShadowScan, ISS, Retina, Internet Scanner 1) Nessus
2) Nmap
路由选择 MS RRAS 1) iproute2 + iptables.
2) GateD.[私有]
3) GNU Zebra
以太网、IP 测试用工具和库 lcrzo lcrzo
IP 电话 Buddyphone [私有], Cisco SoftPhone 1) GNU Bayonne
2) Openh323
3) OpenPhone
4) tkPhone
5) NauPhone
数据、文件共享工具 Windows 共享 1) NFS.
2) Samba
3) Samba-TNG
4) FTP.
??? Windows 域,活动目录 1) Samba.
2) Ldap
3) yp
察看 Windows 网络的工具 网络邻居 1) Samba
2) KDE Lan Browser, lisa
3) LinNeighborhood.
4) xSMBrowser
5) Komba2
6) Konqueror.
ADSL 1) RASPPPOE 1) rp-pppoe
2) Pptp client
分布式计算 Allprojects
1) United Devices
2) http://setiathome.ssl.berkeley.edu/
3) http://folding.stanford.edu/
4) http://genomeathome.stanford.edu/.
Allprojects
1) Distributed.net
2) http://setiathome.ssl.berkeley.edu/
3) http://folding.stanford.edu/
4) http://genomeathome.stanford.edu/
5) D2ol
* 有些 Linux 下的程序版本只运行于字符终端模式
IPSEC 协议 FreeSWAN
VRML 察看器和编辑器 ??? 1) WhiteDune
使用 Ebay ??? 1) Bidwatcher
2) 处理文件
FAR 和 NC 风格的文件管理器 FAR, Norton Commander, Disco Commander, VolcovCommander,etc 1) MidnightCommander.
2) X Northern Captain.
3) Deco (Demos Commander)
4) Portos Commander
5) Konqueror in MC style
6) Gentoo.
7) VFU
8) Ytree
Windows Commander 风格的文件管理器 Total Commander (旧称 Windows Commander) 1) Krusader.
2) Kcommander.
3) FileRunner (TCL/TK).
4) LinuxCommander
5) LinCommander.
6) Rox, Rox-Filer
7) Emelfm
8) Midnight Commander.
9) Worker
Windows 风格的文件管理器 Windows 资源管理器 / Internet Explorer 1) Konqueror.
2) Gnome-Commander.
3) Nautilus
4) Endeavour Mark II
5) XWC
可视化 Shell ??? 1) vshnu: the NewVisual Shell.
本地 HTML 文档轻快浏览工具 1) Internet Explorer
2) Microsoft Document Explorer
1) Dillo(俄语补丁——在此
2) Konqueror.
3) Nautilus
4) Lynx / Links
察看文件的全部行为 Filemon Filemon
处理 UDF Roxio(旧称 Adaptec)UDF Reader, Roxio Direct CD Linux-UDF.
处理多段(multi session)CD,以及从有故障的多段光盘上恢复信息 IsoBuster CDFS
处理压缩文件 1) WinZip
2) WinRar
3) 7-Zip
4) WinACE
5) UltimateZip
1) Ark (kdeutils).
2) Gnozip.
3) KArchiveur
4) Gnochive
5) FileRoller
6) Unace
7) LinZip.
8) TkZip.
字符终端上的归档器(Console archivers) arj, rar, zip, tar, gzip, bzip2, lha… 1) tar, gzip, bzip2.
2) Unarc
3) Lha.(日语网页)
4) Infozip
5) Arj
6) Avfs.(支持从任意程序中使用任意档案—— file.zip#/…).
7) Zoo.
8) RAR
9) CAB Extract
用于文件和目录比较的程序 1) BeyondCompare
2) Araxis Merge.
3) Minimalist GNU For Windows(diff.exe)
4) Unison
1) WinMerge
2) Mgdiff.
3) diff, patch.
4) Xemacs
5) Xdelta.(为二进制文件制作补丁)
6) Meld
7) Xxdiff
8) Unison.
3) 桌面、系统软件
文本编辑器 Notepad, WordPad, TextPad, Vim, Xemacs,… 1) Kedit (KDE).
2) Gedit (Gnome).
3) Gnotepad
4) Kate (KDE).
5) KWrite (KDE).
6) Nedit.
7) Vim
8) Xemacs
9) Xcoral
10) Nvi
11) Ozeditor.
字符终端上的文本编辑器 1) Vim
2) Emacs
3) Editor from FAR, editor from DN, …
1) Vim
2) Emacs
3) Nano.(这是 pico 的一种免费实现)
4) joe.
5) Fte.
6) Jed.
7) CoolEdit.
多重用途的文本(及源代码)编辑器 SciTE,UltraEdit,MultiEdit, Vim, Xemacs, … 1) Kate(KDE自带的工具)
2) Nedit.
3) CodeCommander
4) SciTE
5) Quanta Plus
6) Vim
7) Xemacs
8) Mcedit(随 mc 一起发布)
9) Jed.
10) Setedit(貌似 TurboVision 风格)
11) HTeditor.
支持西里尔语编码的文本编辑器 Bred, Rpad32, Aditor, Vim, Xemacs 1) Kate(KDE自带的工具)
2) Nedit.
3) Fte(用于字符终端)
4) 打过补丁的 Midnight Commander 版本
5) Vim
6) Xemacs.
察看 PostScript 文件 1) RoPS
2) GhostView
1) GhostView
2) Kghostview.
3) GV
4) GGV
察看 PDF 文件 1) Adobe Acrobat Distiller
2) GhostView
1) Acrobat Reader. [私有]
2) Xpdf
3) GV
4) GGV
5) GhostView
6) Kghostview.
创建 PDF 文件 1) Adobe Acrobat Distiller
2) GhostView
3) Ghostscript
1) 任意 Linux“所见即所得”程序 -> 打印到文件 ->ps2pdf.(这里有一篇相关的文章
2) AdobeAcrobat Distiller. [私有]
3) PStill[共享软件]
4) PDFLatex.
5) Xfig.
6) Ghostscript
7) Tex2Pdf.
8) Reportlab
9) GV
10) GGV
11) GhostView
12) Kghostview.
13) Panda PDF Generator
加密技术(Crypto) PGP, GnuPG + Windows Privacy Tools 1) GnuPG(用于字符终端)+ GPA,KGpg,以及其它 前端软件
2) PGP. [私有]
加密整个磁盘卷 EFS(标准的) PGP-Disk, BestCrypt, Private Disk Light 1) Loop-aes
2) CFS
3) TCFS.
4) BestCrypt.
5) CryptFS.
任务调度(日程安排)程序 mstask, nnCron cron, at(标准的,用于字符终端)。图形用户界面的有:Kcron
Outlook 日程安排 Outlook scheduler 1) KOrganizer.
虚拟光驱(Virtual CD) VirtualDrive, VirtualCD, Daemon Tools, … 1) 虚拟光驱内核模块
2) “cp /dev/cdrom mycd.iso”+“mount -o loop mycd.iso /mnt/cdrom/”
文本识别(OCR) Recognita, FineReader 1) ClaraOcr.
2) Gocr.
3) Kooka
翻译软件(西里尔语) Promt, Socrat Ksocrat(???)
英俄词典(西里尔语) 1) ABBYY Lingvo
2) Socrat
3) JaLingvo
4) phpMyLingvo
1) Mueller.
2) Ksocrat.
3) JaLingvo
4) phpMyLingvo
5) dict+Kdict.
6) DictX
7) Groan.
8) Mova.
9) Slowo.
10) Stardict
处理扫描仪 扫描仪所附带光盘上的程序,VueScan 1) Xsane.
2) Kooka
3) Xvscan[私有]
4) VueScan[私有]
反病毒 AVG AntiVirus, NAV, Dr. Web, TrendMicro, F-Prot, Kaspersky, … 1) Dr. Web[私有]
2) Trend ServerProtect[私有]
3) RAV Antivirus[私有] (Bought byMicrosoft?)
4) OpenAntivirus + AMaViS/ VirusHammer
5) F-Prot[私有]
6) Sophie / Trophie
7) Clam Antivirus
8) Kaspersky[私有]
9) YAVR
系统配置 控制面板,微软配置程序,注册表编辑器,WinBoost, TweakXP, CustomizerXP, X-Setup, PowerToys, Config NT, … 1) setup (Red Hat).
2) chkconfig (Red Hat).
3) redhat-config- (Red Hat 8.0).
4) xf86config, xf86cfg.
5) Linuxconf.
6) Drakeconf.
7) Webmin.
8) yast and yast2 (SuSE).
9) sysinstall (FreeBSD).
10) /dev/hands :).
引导启动管理器 System Commander, PowerQuest Boot Magic, GAG, … 1) Grub
2) Lilo.
3) ASPLoader.
4) Acronis OS Selector [私有].
5) RanishPartition Manager.
6) osbs.
7) Symon.
8) SmartBoot Manager.
9) Xosl
10) GAG
硬盘分区管理器 1) PowerQuest Partition Magic[私有]
2) Acronis PartitionExpert [私有]
3) ParagonPartition Manager [私有]
4) PartitionCommander [私有]
1) PartGUI(partimage 和 parted 的图形用户界面)
2) GNU Parted.(GUI – QTParted).
3) Partition Image
4) fips.
5) Diskdrake(Mandrake).
6) ParagonPartition Manager [私有].
7) Acronis PartitionExpert [私有].(review)
LVM + soft-RAID + parted + … EVMS.
备份软件 ntbackup (标准的), Legato Networker [私有] 1) Legato Networker.[私有]
2) Lonetar. [私有]
3) Disk Archive
4) Bacula
5) Taper
6) dump / restore.(标准的,用于字符终端)
7) Amanda(用于字符终端)
8) Mondo Rescue.(备份能引导并自动把自己恢复到硬盘上)
制作磁盘分区的映象 1) DriveImage
2) Ghostpe
1) PartitionImage(GUI – PartGUI).
2) dd(标准的,用于字符终端)
3) Mondo Rescue
跨网络镜像机器 1) ImageCast
2) Norton Ghost
1) UDP Cast
2) Techteam‘s UDP CastDisks.
3) Ghost for Unix (g4u).
任务管理器 TaskMan(标准的),TaskInfo, ProcessExplorer NT. 1) top(标准的,用于字符终端)
2) Gtop, Ktop.
3) Ksysguard.
4) “ps aux | more”,“kill”
打字时自动在英语和俄语之间切换 Punto Switcher,KeyboardNinja, Snoop 没有对应的类似物 🙁
鼠标光标形状图案(Mouse gestures) Sensiva 1) Kgesture.
2) wayV
3) Optimoz
TV 程序 ??? HomePortal.
文本朗读 MS text to speech 1) KDE 语音插件
2) Festival
3) Emacspeak
4) VoiceText
语音识别 ViaVoice, Dragon Naturally Speaking 是的,没有能用的语音识别软件包,但是:
1) Sphinx
2) ViaVoice.(处于几近荒废状态)
处理文本流 1) Minimalist GNU For Windows (sed.exe)
2) perl
1) sed, awk.
2) perl
PIM(个人信息管理)/ DB(每日公报)/ hierarchical notebook with tree view(树形视图层次结构笔记本) TreePad[私有], Leo, CueCards 1) TreePad Lite. [私有]
2) Yank
3) TreeLine
4) Gjots
5) Leo
6) Hnb – hierarchical notebook
7) TuxCards
在不同的分辨率和刷新率之间快速切换的程序 集成在系统中,来源于视频显示卡光盘(上的驱动程序) 1) Multires
2) Ctrl+Alt+"-", Ctrl+Alt+"+".
3) Fbset. (当使用framebuffer 时)
在文件中查找和替换文本 1) 集成在操作系统之中
2) Indexing service(索引服务)
3) HTMLChanger
4) 任何一个文件管理器
1) find(标准的,用于字符终端)
2) slocate(标准的,用于字符终端)
图形用户界面:
1) Gsearchtool.
2) Kfind.
3) 任何一个文件管理器
本机SGBD索引搜索引擎 1) Indexing service (???)
2) mnoGoSearch[在 Windows 上是专利软件]
1) mnoGoSearch
2) ASPSeek.
系统监视 系统监视器(系统内置) 1) top(标准的,用于字符终端)
2) Gkrellm
3) Ksysguard.
4) Survivor
5) "Hot-babe". (假如裸体都不能打动你,那你不要用:)
日志察看程序 事件观察器(系统内置) 1) Xlogmaster
2) Analog
3) Fwlogview.(firewall)
数据恢复工具 R-Studio(支持 Linux 分区) 1) e2undel
2) myrescue
3) TestDisk
4) unrm
5) Channel 16
能自动探测字符集的文本文件编码器 ??? 1) Enca.
2) Jconv
3) Xcode. (西里尔语)
4) Asrecod.(西里尔语)
闹钟 MindIt! 1) KAlarm.
使用 Palm Palm Desktop 1) Kpilot
2) Jpilot
允许处理 Palm .html 文件 iSilo 1) iSilo.
2) Plucker
低级优化
(芯片组,PCI 总线)
Powertweak 1) Powertweak-Linux.
经典著述 On-Line Bible, The SWORD 1) BibleTime(KDE)
2)Gnomesword (Gnome)
便捷的鼠标滚动 Mouse Imp ???
自动改变桌面背景 ??? 1) Background Buddy
方便切换键盘的语言 ??? 1) GSwitchIt.
Windows 注册表编辑器 RegEdit Kregedit:).
4.1) 多媒体(音频、CD)
有用的链接: Linux MIDI& Sound Applications——有很多链接和资源。
Sound Software– lots of it.
音乐、mp3、ogg 播放器 1) Winamp
2) Zinf
3) SnackAmp
4) Soritong
5) Apollo
6) K-jofol 2000
7) Sonique
8) C-4
9) Media Box Audio / Video Workstation 5
10) Blaze Media Pro
11) NEX 3
12) Real Jukebox
13) Windows 媒体播放器
1) XMMS(X 多媒体系统)
2) Noatun.
3) Zinf. (former Freeamp)
4) Winamp
5) Xamp.
6) GQmpeg
7) SnackAmp
8) Mplayer. (Frontend: Kplayer).
9) Xine. (Frontends: Sinek, Totem)
字符终端上的音乐、MP3、ogg 播放器 mpg123, dosamp, Mplayer 1) Cplayer.
2) mpg123
3) ogg123
4) mpg321
5)Orpheus
6) Mp3blaster
7) Madplay
8) xmms 的字符终端工具
9) Mplayer.
图形用户界面的 CD 烧录程序 Nero, Roxio Easy CD Creator, … 1) K3b.(KDE)
2) XCDRoast
3) KOnCd.
4) Eclipt Roaster
5) Gnome Toaster
6) CD Bake Oven.
7) KreateCD.
8) SimpleCDR-X
9) GCombust
10) WebCDWriter.(CD 烧录服务器,可从任何一款具有 Java 支持的远程浏览器访问)
11) CDR Toaster.
12) Arson.
13) CD-Me(可创建音频 CD)
CD 播放器 CD player, Winamp, Windows Media Player, … 1) KsCD
2) Gtcd (Gnome) + tcd (用于字符终端)
3) Orpheus.(用于字符终端)
4) Sadp
5) WorkMan
6) Xmcd
7) Grip
8) XPlayCD.
9) ccd / cccd(用于字符终端)
10) cdp(用于字符终端)
11) BeboCD
减缓 CD 转速的程序 Slowcd, Cdslow 1) mount -o speed=
2) hdparm -E
3) eject -x
4) cdspeed.
CD ripping / grabbing(CD 抓轨、剽窃工具) 1) Cdex
2) MusicMatch
3) StreamboxRipper
4) Audiocatalyst
5) WinDac
6) Audiograbber
7) Media Box Audio / VideoWorkstation
8) CD-Copy
9) Blaze Media Pro
10) Real Jukebox
11) Windows 媒体播放器
12) Nero
13) VirtualDrive
14) VirtualCD
15) Audacity
1) Grip.
2) Audacity
3) RipperX.
4) tkcOggRipper.
5) A Better CD Encoder.
6) cdda2wav
7) Gnome Toaster.
8) Cdparanoia.
9) Cd2mp3.
10) Dagrab.
11) SimpleCDR-X
12) RatRip
13) AutoRip.
14) SoundJuicer
CD 音轨播放器 Winamp, Windows Media Player, … 1) xmms + MikMod-plugin.随 xmms 一起发布
2) xmms + xmp-plugin. 用 xmp播放
3) MikMod.(用于字符终端)
4) xmp。能用 Midi 设备播放 CD 音轨
5) TiMidity++.只有模块文件(Only mod files)
Midi 播放器 Winamp, Windows 媒体播放器,…… 1) xmms + midi-plugin(用TiMidity 播放)
2) xmms +awemidi-plugin.(用 drvmidi 播放)
3) xmms +playmidi-plugin(用 playmidi 播放)
4) TiMidity++.Supports gus pathes and sf2 banks, backend to another software.
4) timidity-eawpatches.Gus-patches for TiMidity++.
5) Kmid
6) drvmidi/ awemidi.
7) pmidi(用于字符终端,for ALSA)
8) playmidi.
9) atmidi.
Midi + 卡拉 OK 播放器 VanBasco 1) Kmid
2) Gkaraoke.
3) TiMidity++
Mp3 编码器 1) Lame
2) Cdex
3) MusicMatch
4) StreamboxRipper
5) Audiocatalyst
6) Blaze Media Pro
7) Media Box Audio / VideoWorkstation
8) AudioSlimmer
9) Real Jukebox
1) Lame
2) Bladeenc.
3) NotLame
4) L3enc. [私有]
5) gogo.
OGG 编码器 oggenc oggenc.
使用实时播放协议 1) RealPlayer.[私有]
2) Mplayer + libraries.
1) RealPlayer.[私有]
2) Mplayer + 库.
3) ReMedial
广播 VC Radio, FMRadio, Digband Radio 1) xradio
2) cRadio
3) Xmradio.
4) RDJ.
5) RadioActive.
6) XMMS-FMRadio
7) Gqradio.
8) Qtradio
音频编辑器 SoundForge, Cooledit, Audacity, … 1) Glame
2) Rezound.
3) Sweep
4) WaveForge
5) Sox.
6) Audacity
7) GNUSound
8) Ecasound.
9) SoundStudio.
10) mhWaveEdit
多轨音频处理器 Cubase 1) Ecasound.
2) Ardour.
Sound tracker(声音追踪者,声音制轨) Fasttracker, ImpulseTracker 1) Soundtracker
2) Insotracker
3) CheeseTracker
Sound mixer(声频混合器,音量调节器) sndvol32 1) Opmixer
2) aumix.
3) mix2000.
4) KMix.
5) Alsamixer
6) GMix
7) wmix(for WindowMaker)
8) Mixer_app (for WindowMaker)
9) Many applets for AfterStep / WindowMaker / FluxBox
Software for music notation(标注音符的软件) Finale,Sibelius,SmartScore 1) LilyPond.
2) Noteedit
3) MuX2d
Midi序列发生器(Midi-sequencer) Cakewalk 1) RoseGarden
2) Brahms
3) Anthem
4) Melys
5) MuSE
6) MidiMountain(KDE)
More infrormation: Midi-Howto
音乐创作 Cakewalk, FruityLoops 1) RoseGarden
2) Ardour
Synthesizer([电子]合成器) Virtual waves, Csound 1) Csound
2) FluidSynth
3) Arts Builder (???).
ID3-Tag 编辑器 Mp3tag 1) EasyTAG
2) Cantus
3) id3tool(用于字符终端)
4) id3ed(用于字符终端)
5) id3edit(用于字符终端)
吉他、仪器调节软件 1) In-TuneMulti-Instrument Tuner
2) Digital Guitar Tuner
???
将音频流录入 .MP3 文件 TwinsStream Ripper StreamRipper.
4.2) 多媒体(图形)
图形文件阅览器 1) ACDSee
2) IrfanView
3)Xnview
4) CompuPic[私有]
5) Windows Fax and Image viewer
5) Any web browser
1) Xnview.
2) GQview
3) Qiv
4) CompuPic [私有]
5) Kuickshow.
6) Kview.
7) GTKSee
8) xv. [私有]
9) pornview.
10) imgv
11) Gwenview.
12) Gliv
13) Showimg
14) Fbi.
15) Gthumb.
16) PixiePlus.
17) Electric Eyes (Gnome).
18) Eye of Gnome
19) GImageView
20) Hugues ImageViewer
21) 任何一款网页浏览器
在字符终端察看图形文件 QPEG 1) zgv.
2) aalib.
简单的图形编辑器 Paint 1) Kpaint
2) Tuxpaint.
3) Xpaint.
4) Gpaint
5) Killustrator
6) Graphtool
PhotoShop 风格的功能强大的图形编辑器 1) Adobe Photoshop [私有]
2) Gimp
3) Paint Shop Pro [私有]
4) Pixel32 [私有]
5) Corel PhotoPaint [私有]
6) Macromedia Fireworks
1) Gimp
2) ImageMagick
3) Pixel32. [私有]
4) CinePaint
5) RubyMagick
6) CorelPhotoPaint 9. [私有]
处理向量图形的程序 Adobe Illustrator, Corel Draw, Freehand,AutoSketch, OpenOffice Draw 1) Sodipodi.
2) xfig.
3) Sketch.
4) Karbon14 and Kontour.
5) OpenOffice Draw.
6) Dia.
7) Tgif.
8) Gestalter
9) ImPress
10) Tkpaint
11) Tgif
12) Corel Draw 9. [私有]
SVG 编辑器 WebDraw [私有] 1) Sodipodi.
2) Dia.
3) Sketch.
SVG 察看器 1) Squiggle
2) X-Smiles
3) Mozilla 中的 SVG 支持
1) Squiggle.
2) X-Smiles.
3) Mozilla 中的 SVG 支持
4) Konqueror 中的 SVG 支持.
文本粉饰程序(对文字进行艺术加工的程序) Wordart, OpenOffice Draw OpenOffice Draw
用 ASCII 字符绘图的程序 ANSI DRAW, Mazaika 1) CanvASCII
2) Jave
3) ANSI Draw.
4) EDASCII
转换伪图中的图形文件(Converting the graphic files in pseudographics) ??? aalib.
播放 Flash Flash Player 1) SWF Macromedia Flash Player
2) FlashPlayer[私有]
3) Netscape/Mozilla 插件(下载 herehere
创建 Flash Macromedia Flash 1) DrawSWF
2)Ming(从程序设计语言中创建 flash swf输出)
三维图像 3D Studio MAX, Maya[私有], Povray, … 1) Blender.
2) Maya[私有]
3) KPovModeler
4) K3Studio
5) Moonlight
6) GIG3DGO
7) Povray
8) MegaPov
9) K3D
10) Wings 3D
11) Softimage XSI[私有]
12) Kludge3d
制作照片质量的景物(基于 ArchiCAD 3D 模型) ArtLantis Render ???
图标编辑器 Microangelo 1) Gnome-iconedit.
2) Kiconedit.
制作屏幕截图的小程序 集成在操作系统中(打印屏幕),Snag it, … 1) Ksnapshot.
2) Xwpick.
3) Xwd, xgrabsc.
4) Motv (xawtv)
5) Streamer(视频)
6) 集成于窗口管理器(有各种热键)
绘制数据库结构图表 Access 1) Dia
2) 概念制作模型工具包.
用艺术剪辑软件,创建印制日历、贺卡(明信片)等 Broderbund Print Shop ???
从数字相机下载图片 Polaroid Drivers 1) Camera Tool (gtkam)
2) Gphoto2.
4.3) 多媒体(视频和其它)
视频、mpeg4 播放器 1) BSplayer
2) Zoomplayer
3) Windows 媒体播放器
4) VideoLAN
5) Winamp3
6) Mplayer
7) RealPlayer
8) Xing
9)Simplayer
1) Mplayer.(前端:Kplayer
(LiveCD distribution of Mplayer——MoviX)
2) Xine.(前端:SinekTotem
3) VideoLAN
4) Aviplay
5) Winamp3.
6) Noatun
7) KDE 媒体播放器
8) XMovie.
9) Kaboodle.
10) MpegTV
11) Avifile
12) Xmps
13) Ogg Tarkin. (???)
14) Theora. (???)
字符终端上的视频、mpeg4 播放器 QuickView 1) Mplayer
2) QuickView
DVD 播放器 PowerDVD, WinDVD, MicroDVD, Windows 媒体播放器,VideoLAN 1) Ogle.
2) Mplayer
3) Xine
4) Aviplay
5) VideoLAN
6) OMS
DVD 破解、编码工具 Gordian Knot, Mencoder(from Mplayer) 1) Drip
2) Transcode
3) Mencoder. (from Mplayer)
4) Ffmpeg
5) DVD::Rip.
简单的视频创建和编辑工具 Windows Movie Maker 1) iMira Editing.[私有]
2) MainActor.[私有]
3) Broadcast 2000.
4) Avidemux
专业的视频创建和编辑工具 Adobe Premiere, Media Studio Pro 1) iMira Editing
2) Cinelerra
3) MainActor.
4) Broadcast 2000.
5) Lives
6) CinePaint
截获视频的工具(Cutting video) Virtual Dub 1) Avidemux.
2) Kino.
视频转换(Converting video) Virtual Dub, Mencoder(from Mplayer) 1) Transcode
2) Mencoder(from Mplayer)
3) Ffmpeg.
处理 TV 信号接收、看电视 AVerTV, PowerVCR 3.0, CinePlayer DVR, Mplayer, … 1) Tvtime
2) Kwintv.
3) Xawtv
4) Zapping
5) GnomeTV.
6) Mplayer
7) Xawdecode
字符终端下处理电视信号接收 1) Mplayer
2) fbtv.
3) aatv.
处理 QuickTime 格式 QuickTime 播放器 1) QuickTime
2) Mplayer + Sorenson codec.
3) OpenQuicktime
4) Xanim
产生二维和三维立体效果 Adobe After Effects 1) Shake.[Proprietary, $129.95]
2) Plugins for Gimp.
动画制作 Animation Shop, … 1) CinePaint
2) Gimp 插件
生成山水、地形 Bryce Terraform
世界构建 World Construction Set, Animatek
World Builder
???
开发视频应用程序的框架 ??? 1) Gstreamer
2) Live.
5) 办公室、商业应用
办公套件 MS Office, StarOffice / OpenOffice, 602Software 1) OpenOffice
2) StarOffice[私有]
3) Koffice.
4) HancomOffice.[私有]
5) Gnome Office
6) Applixware Office. [私有]
7) Siag Office
8) TeX, LaTeX, …
办公套件 WordPerfect Office 2000 WordPerfect Office 2000 for Linux. (从 Corel网站不再能够得到了。这是以前的 Windows 版本,运行在 Wine之下 🙂
字处理 Word, StarOffice / OpenOffice Writer, 602Text, Abiword 1) Abiword.
2) TextMaker[私有]
3) WordPerfect
4) Ted
5) StarOffice / OpenOffice Writer.
6) Kword.
7) LyX
8) Kile(KDE 集成 LaTeX 环境,KDE Integrated LaTeX Environment)
电子表格 Excel, StarOffice / OpenOffice Calc, 602Tab 1) Gnumeric
2) Abacus
3) StarOffice / OpenOffice Calc.
4) Kspread
用已有的数据绘制曲线、图表 Excel, … 1) Kivio.
2) Dia.
3) KChart.
4) xfig
5) Gnuplot
6) GtkGraph.
7) GNU Plotutils
8) Ploticus.
创建幻灯片(演示文档) MS PowerPoint, StarOfficePresentation, OpenOfficeImpress 1) StarOfficePresentation
2) OpenOffice Impress
3) Kpresenter
4) MagicPoint
5) Kuickshow & gimp 🙂
本机数据库(Local database) MS Access, InterBase6, OpenOffice + MySQL 1) KNoda.
2) Gnome DB Manager
3) OpenOffice + MySQL
4) InterBase7[私有]
5) InterBase6
6) Berkley DB
7) Rekall[私有]
8) StarOffice Adabase
接收引文、消息,构造曲线图,分析金融市场 Omega Research Trade Station 2000 1) The Market Analysis System(市场分析系统,MAS)
电子商务和网上交易软件 1) Weblogic [私有]
2) IBM WebSphere Application Server [私有]
3) iPlanet
4)osCommerce
5) JOnAS
6) COCOON
1) Weblogic[私有]
2) JBoss
3) IBMWebSphere Application Server[私有]
4) osCommerce
5) JOnAS
6) COCOON
个人财务管理 1) MS Money
2) Quicken
3) Moneydance [私有]
1) GNUcash.
2) GnoFin
3) Kmymoney
4) Grisbi
5) Moneydance. [私有]
项目管理 MS Project, Project Expert 7 1) MrProject
2) Outreach
金融记帐软件包(全球)Financial accounting package (global) ??? 1)HansaBusiness Solutions. [私有]
2) Quickbooks.
金融记帐软件包(俄罗斯)Financial accounting package (russian) "1C: Accounting" 1)HansaBusiness Solutions. [私有]
2) IceB.
3) 《无忧财政》"Finances withoutproblems".
4) Ananas.
5) E/AS.
6) 1L: Project.
金融记帐软件包(印度和亚洲)Financial accounting package (India& Asia) ??? Kalculate.[私有]
企业自动化(俄罗斯)(russian) "1C: Enterprise" 1) Keeper.[私有]
2) Oblik. [私有]
3) IceB.
4) Compiere
ERPCRM (英语) ??? 1) Dolibarr
ERPCRM (俄语) "BOSS-Corporation" 1) NauRP
2) Compiere
3) Dolibarr
公司档案流系统(俄语) 1) "Boss-Referent"
2) Documentum
3) "Delo"
4) Lanit:LanDoc
1) NauDoc
2) Documentum.
3) 《老板参考》"Boss-Referent"(没有客户部分)
6) 游戏
从何处获得 你想去的任何地方 🙂 The LinuxGame Tome (happypenguin.org) | LinuxGames.com| Kde Games | Linux Game Publishing
Linux 游戏列表 http://www.icculus.org/lgfaq/gamelist.php
能在 WineX 下运行的 Windows 游戏 这里是一个搜索页面,这里是一个完整游戏列表 (very big).
Tetris 1) LTris
2) XWelltris
3) Emacs + "Meta-X tetris".
4) Ksirtet
Standard Windows games 1) Kdegames.
2) Gnome-games.
Mines 1) KMines.
2) Perlmines.
3) Dmines
Civilization FreeCiv.
Civilization: Call to Power Civilization: Call to Power.
Sid Meyer Alpha Centauri Sid Meyer Alpha Centauri.
Sim City 3000 Sim City 3000.
Command&Conquer FreeCNC.
Warcraft 2, Starcraft (?) FreeCraft.
(Win)Digger 1) Digger.
2) XDigger.
Arkanoid, Zball, … Lbreakout2
Quake 1, 2, 3 1) Quake 1,2, 3
2) QuakeForge
3) DarkPlaces
1) Quake 1,2, 3
2) QuakeForge
3) DarkPlaces
CounterStrike CounterStrike under WineX
Urban Terror Urban Terror.
DOOM 1) jDoom /Doomsday
2) Zdoom
3) DOOM Legacy.
4) LxDOOM.
5) PrBoom.
6) EDGE
7) Vavoom
8) Original Doom
1) jDoom /Doomsday
2) Zdoom
3) DOOM Legacy.
4) LxDOOM.
5) PrBoom.
6) EDGE
7) Vavoom
8) OriginalLinux Doom (X11/svgalib)
Heretic 1) DOOMLegacy.
2) jHeretic / Doomsday
3) Vavoom
4) Original Heretic
1) DOOMLegacy.
2) Vavoom
3) Heretic, GL Heretic
Hexen 1) jHexen /Doomsday
2) Vavoom
3) Original Hexen
1) Hexen/SDL
2) Vavoom
Heretic 2 Heretic 2
Return to Castle Wolfenstein Return to CastleWolfenstein. [私有]
Descent Descent.
Never Winter Nights Never Winter Nights.
Unreal Tournament / Unreal Tournament 2003 Unreal Tournament / Unreal Tournament 2003.
Soldier Of Fortune Soldier Of Fortune.
Tribes 2 Tribes 2.
Blood 1 Qblood
Worms Nil
Lines 1) GtkBalls.
2) gLines.
MS Flight Simulator FlightGear
Lemmings Pingus
竞赛(Racing) Need For Speed 1) Tux Racer :).
2) KartlingRace
国际象棋 ChessMaster, … 1) Glchess.
2) Xboard.
3) Eboard.
7) 编程和开发
集成开发环境(IDE) 1) Microsoft VisualStudio .net
2) Emacs, XEmacs
3) Vim + ctags + scripts from vim.sf.net
4) Boa Constructor
5) PythonCard
1) CodeForge.
2) Kdevelop + Qt3 Designer.
3) Eclipse
4) Glade + Motor or + Xwpe or + any texteditor.
5) Emacs, XEmacs
6) Vim + ctags + scripts from vim.sf.net
7) Boa Constructor
8) PythonCard
Visual C++ IDE Borland C++ Builder, MS Visual C 1) Anjuta +Glade + Devhelp.
2) KDE Studio Gold[私有]
3) Dev-C++
4) Kylix. [私有](Kylix个人版是免费的)
5) vtkBuilder.
6) foxBuilder.
7) wxDesigner.
8) Arriba.[私有]
9) Code Crusader.[私有]
10) CodeWarrior.[私有]
11) Gbuilder
12) Source Navigator
13) TimeStorm[私有]
14) Understand for C++[私有]
15) SlickEdit[私有]
16) Vide.
C++ IDE Borland Turbo C++ 3.0 for DOS, , Minimalist GNU For Windows(mingw32-gcc.exe) 1) GCC (+ Motor or + Xwpe).
2) LinEdit
3) Rhide
4) Wxstudio
5) Eclipse.
Object Pascal IDE Delphi 1) Kylix[私有] (Kylix 个人版是免费的)
2) Lazarus + FPC.
Pascal Pascal, BP 1) Freepascal.
2) GNU Pascal
3) RShell(是 Borland Pascal 7.0 风格的)
Basic 语言 Basic 1) Hbasic.
2) X-basic.
3) Yabasic.
4) SmallBASIC
Prolog 语言 VisualProlog, Mercury, SICStus Prolog[私有] 1) GNU Prolog.
2) Mercury
3) SWI-Prolog
4) SICStus Prolog[私有]
5) CIAO Prolog.
汇编器(Assembler) TASM, MASM, NASM 1) NASM(Intel语法)
2) FLAT Assembler.
3) gas(AT&T 语法,是 binutils 的组成部分)
反汇编,逆向工程 SoftIce 源代码是公开的 🙂
1) ldasm
调试器(Debugger) 1) WinDbg
2) Minimalist GNU For Windows (gdb.exe)
gdb前端:
1) ddd
2) xxgdb, mxgdb
3) CGDB
4) Vim scripts
5) [X]Emacs C-mode.
6) KMD
7) NANA(库)
所见即所得(WYSIWYG)html 编辑器 1) Macromedia Dreamweaver
2) MSFrontpage
3) Netscape / Mozilla Composer
4) Openoffice HTML 编辑器
1) Netscape/ Mozilla Composer.
2) Openoffice HTML 编辑器
3) Amaya
4) GINF(Ginf Is Not Frontpage)
5) IBM WebSphere 主页建造者. [私有]
6) JXHTMLEDIT(Java).
可创建网站的功能强大的编辑器,包括一套样板,并可用各种插件来补充 Dreamweaver Ultradev ???
HTML / DHTML 编辑器 HomeSite, Coffeecup 1) QuantaPlus.
2) Bluefish.
3) WebMaker.
4) Screem
5) Toppage
6) WebDesigner
7) ScriptEditor
8) August
9) Coffeecup / Linux
10) FCKeditor
HTML / DHTML 编辑器 Arachnofilia Arachnofilia[私有]
XML 编辑器 XML Spy [私有] 1) XMLMind XML 编辑器
2) Vim
3) Emacs
Perl/Python/Tcl 集成开发环境 1) Komodo. [私有]
2) Perl DevKit.
Java 集成开发环境 JBuilder, IDEA 链接地址:Linux 下的 Java 工具
1) Jbuilder
2) NetBeans.
3) Eclipse.
4) Sun ONE Studio. [旧称 Forte]
5) Vide.
Oracle 数据库集成开发环境 T.O.A.D., SQL Navigator,PL/SQL Developer Tora.
CASE-facility for UML ArgoUML, Together ControlCenter [私有] 1) UmbrelloUML Modeller.
2) Dia+Dia2Code
3) PoceidonCE (community edition)
4) ArgoUML.
5) Together ControlCenter[私有]
Top-level CASE system Rational Rose. Rational Rose[私有]
十六进制编辑器 Hiew 1) Biew.
2) KHexEdit.
3) hexedit(用于字符终端)
4) GHex
Clipper 编译器和预处理器 CA-Clipper, The Harbour Project 1) Clip
2) The Harbour Project
3) xHarbour.
微软 .Net 风格的平台 M$ .Net 1) Mono
2) DotGNU/Portable.NET
使用 CVS WinCVS, TortoiseCVS, cvs for Windows, BitKeeper [私有] 1) cvs(用于字符终端)
2) Cervisia (KDE)
3) Lincvs(CVS 的前端)
4) BitKeeper[私有]
5) SubVersion(强化了的类似 CVS的平台 + WebDAV -> SCM)
Interbase/Firebird 集成开发环境 IBExpert 1) IBAccess
2) IBAdmin[私有]
3) IBWebAdmin (apache/ php)
Visual Basic 语言 Visual Basic Phoenix.
图形库 1) WinAPI, MFC, VCL (C, C++)
2) Tk (Tcl, C)
3) Tkinter (overTk for Python, Perl, etc)
4) wxWindows (C++) (overwinapi)
5) wxPython (Python) (overwxWindows)
6) GTK+ (link #2) (C, C++)
7) Qt (C++)
8) FLTK (C++)
9) AWT, Swing (Java)
10) Xaw – part of X-server (C)
如果工具包是面向 C 语言的,通常从其它语言中也可以使用它。其中有些语言和 C++以及其它面向对象的语言一起使用对象绑定。一开始就面向 C++ 的工具包是不可能被 C 语言使用的,而且通常——也不能被其它语言使用。

1) X11/Xext(C语言)——低级库,由其它语言使用。
2) Xt – X 工具包(C语言)——引用 X11 工具包
3) Xaw – MIT Athena (C)——引用 X11 工具包
4) Xaw3d – MIT Athena3D(C语言)——带三维视图的 Athena
5) LessTif ——Motif 1 的开源类似物(C语言)
6) OpenMotif(C语言)
7) Tk(Tcl、C语言)
8) Tkinter (over Tk for Python, Perl, etc)
9) wxWindows (C++) (over GTK+ – wxGtk or Motif – wxMotif)
10) wxPython (Python) (over wxWindows)
11) Qt (C++)
12) GTK+ (C, C++)
13) PyQt (over Qt for Python)
14) PyGTK(over GTK+ for Python)
15) Gtk::Perl (over GTK+ forPerl)
16) Qt for Perl (over Qt for Perl)
17) GtkAda (over GTK+ for Ada95)
18) FLTK (C++)
19) XView(C)
20) FOX (C++)
21) AWT, Swing (Java)
22) 经由 wine 来运行的 Windows API 和 MFC(C)

源代码文档管理系统 ??? 1) Doxygen
2) CWEB
内存泄漏追踪 1) Numega Bounds Checker
2) Rational Purify
1) MallocDebug
2) Valgrind
3) Kcachegrind
4) ElectricFence.
5) dmalloc
6) ccmalloc
7) LeakTracer
8) memprof
9) BoundsChecker.[prop]
10) mprof.
11) Insure.[prop]
12) dbx. (for Sparc)
13) YAMD
14) Njamd
15) Mpatrol
应用程序开发轮廓(测试代码的性能) ??? 1) gProf.
2) JUnit.(Java)
软件工程、软件规划 1) Rational Rose
2) Enterprise Architec
3) Visio
???
游戏编程 1) DirectX
2) libSDL
3) ClanLib
1) libSDL
2) ClanLib
处理 XML 格式、DTD、XSL/XSLT、SOAP、WSDL(编辑、调试、校验等等)所需要的一切 1) Altova XMLSpy Suite ???
源代码 -> 具有高亮度显示语法的 HTML 文档 ??? 1) Webcpp
Bug 跟踪系统 ??? 1) Bugzilla
Object Request Broker (ORB) 1) ORBIT 1) ORBIT
可移植性 ??? 1) Autoconf, Automake & Libtool
源代码索引器和交叉引用器 ??? 1) GNUGLOBAL
2) LXR
动态跟踪系统调用 ??? 1) Syscalltrack
XML C 语言语法剖析器 1) libxml (???) 1) Libxml2
8) 服务器软件
Web 服务器 1) Apache
2) IIS
3) Roxen
4) wn
5) cern-httpd
6) dhttpd
7) caudium
8) aolserver
9) Boa
1) Apache
2) Xitami
3) Thttp
4) TUX (RedHat Content Accelerator)
5) PublicFile
6) Boa
7) Caudium
8) Roxen
9) Zeus. [私有]
10) Thy
FTP 服务器 Internet Information Server, ServU, War FTP, BulletProof FTPserver 1) pure-ftpd
2) vsftpd.
3) wu-ftpd
4) proftpd
5) gl-ftpd
6) ftp.
7) PublicFile
8) Teepeedee
用于 Web 开发的语言 PHP PHP
用于 Web 开发的语言 Perl Perl
用于 Web 开发的语言 ASP ASP 的 Apache 模块
数据库引擎 MS SQL, MySQL 1) SybaseAdaptive Server Enterprise. [私有]
2) PostgreSQL, 是最先进的开放源码数据库
3) MySQL,是最流行的开放源码数据库
4) mSQL.
5) SAP DB
数据库引擎 IBM DB2 IBM DB2[私有]
数据库引擎 Oracle 1) Oracle.[私有]
2) PostgreSQL.
3) Linter(西里尔语)
数据库引擎 Informix [私有] Informix[私有]
数据库引擎 Borland Interbase, FireBird FireBird
Email 服务器 MDaemon,Hamster 1) Sendmail
2) Qmail.
3) Postfix
4) Exim
Email、PIM、群件服务器 Microsoft Exchange 1) CommuniGatePro. [私有]
2) Bynari‘s Insight GroupWare Suite(洞察力群件套件).[私有]
3) Samsung Contact.[私有]
4) Teamware Office. [私有]
5) Novell Netmail.[私有]
6) Amphora. 基于 zope 和 qmail
7) Tutos. 基于 Linux / Apache / PHP / Mysql / Sendmail.
8) Kroupware——来自 KDE PIM 开发者的项目,现正由德国政府资助
9) SuSe Linux Openexchange Server.[私有]
10) PHPGroupware
11) SCOofficeMail Server. [私有](SCO – m.d. :).
12) LinuXchangE
13) OpenOffice.org GroupwareProject. (New!)
Mail 过滤器 / spam 杀手 cygwin+Exim port 1) SpamAssassin
2) Procmail
3) Mailfilter.
4) яyrus-imap
5) Exim.
Mail 下载程序 MDaemon Fetchmail
??? Lotus Domino Lotus Domino.[私有]
一张软盘上的服务器、路由器 不可能有 想要多少就有多少 🙂
1) muLinux
2) Dachstein(firewall / dhcp).
3) Serverdisk (http /ftp).
4) Fli4l
代理服务器 MS Proxy Server, WinGate 1) Squid
2) Paco
3)Privoxy
4) Wwwoffle
5) OOPS
Server for supporting Java Servlets and JSP, canwork with Apache Tomcat Tomcat
高级服务器统计 1) AWStats 1) AWStats.(All web-, ftp-, proxy-, mail-, wap- and streaming-servers).
2) ANALOG(Web服务器)
服务器集群 ??? 1) LVS- The Linux Virtual Server(Linux 虚拟服务器)
Web Mail ??? 1) IMP
2) CAMAS.(for Caudiumweb-server).
9) 科学程序和特殊程序
有用的链接: Linux上的科学应用程序——有许多链接(既有开源软件也有专利软件)
MathCad 风格的数学系统 Mathcad Gap.
Matlab 风格的数学系统 Matlab 1) Matlab.[FTP]
2) Octave. (+ Gnuplot)
3) Scilab.
4) R.
5) Yorick
6) rlab.
7) Yacas
8) Euler.
Mathematica 风格的数学系统 Mathematica 1) Mathematica.[私有]
2) Maxima.
3) MuPad.
4) NumExp.
5) Mathomatic
Maple 风格的数学系统 Maple 1) Maple.[私有]
2) Maxima
3) MuPad
方程、数学编辑器 Mathtype, MS Equation Editor, OpenOffice Math 1) OpenOfficeMath.
2) MathMLed
3) Kformula (Koffice)
4) LyX
5) Texmacs.
三维建模程序 SolidWorks, … ProEngineer Linux.[私有]
三维建模程序 CATIA CATIA. 该软件是在 Unix 下设计的,从 2000 年的版本 4 开始,被移植到 Windows(不太成功)。
三维建模程序 SolidEdge SolidEdge(是一个更加强大的软件包 Unigraphics 的一个【组成】部分)
工程软件 ANSYS ANSYS
CAD/CAM/CAE AutoCAD, Microstation, ArchiCAD 1) Varkon
2) Linuxcad. [商业,约 100 美元]
3) Varicad. [私有]
4) Cycas. [私有]
5) Tomcad
6) Thancad
7) Fandango
8) Lignumcad
9) Giram
10) Jcad
11) QSCad
12) FreeEngineer
13) Ocadis
14) PythonCAD.
15) OpenCascade
CAD/CAM/CAE, simplified AutoCAD Lite Qcad
桌面出版系统 Adobe PageMaker, QuarkXPress Adobe Framemaker[专利软件,已被取消]
小型桌面出版系统 MS Publisher 1) Scribus——Linux桌面出版系统
2) KWord.
直方图和图表设计软件 Microsoft Visio 1) Kivio(属于 Koffice)
2) Dia.
3) KChart.
4) xfig.
5) Tgif + dotty.
6) Tulip.
7) Poseidon for UML.[有商业版和免费版]
地理图像处理软件 Erdas Imagine, ERMapper, ENVI ENVI.
GIS(地理信息系统,Geographical information system) ArcView 所有的项目:FreeGISProject
1) Grass
2) Quantum GIS.
3) PostGIS.
4) FreeGIS
5) MapQuest.
6) MapBlast.
交互式的地理数据观察器 1) Thuban 1) Thuban
位图的向量化 MapEdit, Easy Trace 1) Autotrace
Software CNC, controlling machine tools OpenCNC [私有] EMC.
TeX 风格的高级文本处理系统 MikTex, emTeX(用于DOS) 1) TeX.
2)TeTeX / LaTeX
3) LyX(所见即所想,WYSIWYM)
4) Kile
方便、功能多、用户友好的 TeX 文件、dvi 文件编辑器 WinEdt 1) Kile(KDE 集成化LaTeX 环境)
2) Ktexmaker2.
3) Tk LaTeX 编辑器
统计计算语言和环境 S-PLUS R
统计分析 SPSS, Statistica, SalStat 许多链接——这里
1) PSPP
2) OpenStat2
3) 《Linux用户可移植性工具和统计工具》
4) SalStat
经济计量学软件 Eviews, Gretl 1) Gretl.
电路模拟 1) Electronic Workbench
2) Altera MaxPlus+
1) Geda
2) Oregano
3) Xcircuit
4) Gnome Assisted Electronics
5) SPICE
6) SPICE OPUS
7) NG-SPICE
画化学结构图的程序 Chemdraw,Isisdraw Xdrawchem
下载和播放 Olympus 录音电话机 Olympus DSS 播放器 ???
市场分析软件 MetaStock ???
电子学图解方案设计 1) PCAD
2) OrCad
3) Visio
1) Eagle
2) Geda.
示波器仿真 Winoscillo Xoscope
测量主板温度和电压 MBMonitor, PCAlert, Speedfan 1) KSensors.
2) KHealthCare(KDE).
3) Gkrellm+ plugins + blackbox addons.
硬盘的 S.M.A.R.T 属性和温度 来自主板所附带的光盘,Active SMART 1) smartctl.
2) Hddtemp-0.3.
3) IDEload-0.2.
4) Smartsuite-2.1.
5) Smartmontools.
6) Ide-smart.
7) Smartsuite
内存测试 SiSoft SANDRA Memtest86
观察温度、风扇转速等等的程序 SiSoft SANDRA, SiSoft SAMANTHA 1) Ksensors
2) Lm_sensors
3) xsensors.
4) wmsensormon 和 AfterStep、WindowMaker、FluxBox 上的其它小程序
HDD(硬盘驱动器)测试、基准标定 SiSoft SANDRA, SiSoft SAMANTHA, IOzone 1) hdparm.
2) Bonnie++.
3) IOzone
4) Dbench
5) Bonnie
6) IO Bench
7) Nhfsstone
8) SPEC SFS[私有]
视频测试、基准标定 Final Reality(最终现实) 1) X11perf.
2) Viewperf.
实时控制 SHA - Sybera Hardware Access DIAPM RTAI – Realtime Application Interface(实时应用程序接口)
Simulator of nets(网状物模拟器) ??? 1) NS
神经网络模拟 ??? 1) Xnbc
2) Stuttgart(斯图加特【德国城市】)Neural(神经中枢)网络模拟器 (SNNS)
“LCD 传感器” ??? 1) Sensors-lcd
心电图观察器 ??? 1) ecg2png
把 x86 计算机变成一个全功能的类似PLC的过程控制控制器的一种软件技术 SoftPLC 1) MatPLC
翻译软件清单 Linux for translators(翻译人员用 Linux)
译码存贮器(Translation memory) 1) Trados Translators Workbench
2) Deja Vu
3) Star Transit
4) SDLX
5) OmegaT
1) OmegaT
教育软件清单 1) SchoolForge
2) Seul / EDU
设计和察看 DTDs NearFar Designer [私有] ???
有限元分析 1) FELT(有限元分析)
10) 仿真器
虚拟机仿真器 1) VMWare[私有]
2) Connectix Virtual PC [私有]
1) VMWare.[私有]
2) Win4Lin. [$89].
3) Bochs.
4) Plex86
5) User Mode Linux.
Linux 仿真器 1) CygWin
2) MKS Toolkit.
3) Bash for Windows.
3) Minimalist GNU For Windows.
1) User Mode Linux.
X Window System(XFree) 仿真器 XFree underCygWin
Windows 仿真器 1) Wine(图形用户界面有:gwine,tkwine
2) Transgaming WineX(图形用户界面有:tqgui)[非免费]
3) Crossover Office
Sony 游戏站仿真器 ePSXe, … 1) ePSXe
2) Pcsx.
ZX 频谱仿真器 X128, Speccyal, SpecX, SpecEmu, UnrealSpeccy, 1) Xzx.
2) Glukalka.
3) Fuse.
4) ZXSP-X.
5) FBZX.
6) SpectEmu
娱乐厅(Arcade)机器仿真器 ??? 1) MAME
2) Xmame / Xmess
3) Advancemame
前端:
advancemenu.ckmame.flynn. gmame. gnomame. grok. grustibus. gxmame. it. it‘s quit. fancy. kmamerun. kmamu. qmamecat. startxmame.setcleaner.tkmame
ST 仿真器 1) Steem. 1) StonX.
2) Steem.
C64 仿真器 ??? 1) Vice.
2) Frodo
Amiga 仿真器 ??? 1) UAE.
2) WinUAE
Mac 68k 仿真器 ??? 1) Basilisk II.
Game boy 仿真器 1) Visual BoyAdvance 1) Visual BoyAdvance.
2) VGBA(图形用户界面有:vgb-gui
Atari 2600 视频计算机系统仿真器 1) Stella 1) Stella
2) Saint
NES / SNES 仿真器 1) Zsnes.
2) Snes9x
1) Zsnes.
2) Snes9x
3) FWNes.
4) GTuxNes
M680x0 Arcade(娱乐厅)仿真器 1) Rainemu. 1) Rainemu
多重仿真器、其它仿真器 ??? 1) M.E.S.S
2) Zinc
11) 其它、幽默 🙂
太空模拟 1) Openuniverse
2) Celestia
3) Zetadeck
1) Openuniverse
2) Celestia
3) Kstars
4) Zetadeck
电视卡驱动程序(TV driver) RivaTV
不用安装、从 CD 运行的系统(Live CD,活现 CD) 1) WindowsPE
2) PE Builder
1) Knoppix
2) Cool Linux
3) Blin
4) DemoLinux
5) DyneBolic
6) Gentoo (live CD)
7) Lonix
8) Virtual Linux
9) Bootable Business Card (LNX-BBC).
10) ByzantineOS.
11) FreeLoader Linux.
12) MoviX.
13) FreeducCD.
14) SuSE live-eval CD.
15) Freedom Linux
16) Eagle Linux.
17) Kurumin(只有巴西葡萄牙语)
引导启动急救、工具软盘 Windows 系统软盘 1) Linux 系统软盘
2) Tomsrtbt
3) BanShee Linux
4) RIP
创建 LiveCD 用于系统恢复 ??? 1) Make CD-ROMRecovery
本机文件系统挂接 ext2fs(驱动程序),explore2fs(程序)——Windows 下访问 ext2/3 分区的程序 Linux-NTFS(NTFS分区挂接驱动程序)
安装软件和卸载软件的工具 InstallShield,WISE,GhostInstaller,微软安装器——rpm 的类似物 1) Rpm.
2) Urpmi
3) GnoRpm
4) NautilusRPM.
5) Apt-get 和前端(synaptic,aptitude, …)
6) Apt-rpm. (for RedHat,SuSE, ALT Linux, etc)
7) yum (YellowdogUpdater Modified)
8) yumenhanced by ASPLinux
9) GentooPortage
从源代码安装和卸载软件 Minimalist GNUFor Windows 1) make install, make uninstall
2) CheckInstall
3) Sinstall
4) Emerge (Gentoo)
5) Apt-get & frontends(synaptic, aptitude, …).
系统更新 Windows Update 1) Ximian Red Carpet
2) Red Hat Network
3) MandrakeOnline
4) SuSE YaST Online Update
5) CalderaVolution Online
6) Apt
7) Gentoo ebuilds (portage).
8) Debian GNU/Linux packagesearch
9) Yum
认证 MCSD, MCT, MCSE 1) RedHat Certification.
2) Sair Linux and GNUCertification.
3) Linux 专业协会(Institute)认证(LPIC)
4) Linux+
5) Prometric
6) VUE
桌面图标 资源管理器 1) 桌面文件管理器
2) Idesk
调用屏幕保护程序 桌面属性 1) xset.
2) xlockmore
3) xscreensaver
4) kscreensaver.
保存“已删除”文件的地方 回收站(Trash) 1) 废品罐(Trash Can)
2) Libtrash
校验硬盘(检查坏块) Scandisk “fsck -check”或“reiserfsck -check”
日志文件系统(reiserfs,ext3,jfs,xfs)不需要校验
磁盘碎片整理 defrag 无需整理
系统的图形用户界面 资源管理器(在旧版本 Windows 中似乎叫做程序管理器) Kde, Gnome, IceWM, Windowmaker, Blackbox, Fluxbox,
Windows XP 图形用户界面 Windows XP XPde
多重工作空间 有!!! 🙂
快速用户切换、桌面切换 Windows XP 此特性用于不连网的电脑 1) Ctrl+Alt+F1, 在命令行界面上以新用户登录,通过键入命令“startx – -:1”来启动图形用户界面。用Ctrl+Alt+F7(或Ctrl+Alt+F8,因用户的不同而不同)在屏幕之间切换。
2) 命令“gdmflexiserver -n”
3) 内建于 KDE3.1
系统的不同风味(变种) 9x, NT, XP RedHat
Mandrake
Knoppix
Debian
SuSE
ALT
ASP
Gentoo
Slackware
Linux From Scratch
战术手段 FUD(散布 Fear【恐怖】、Uncertainty【不确定】、Doubt【怀疑】的谣言) 开放源代码!
“起初他们不理睬你,然后他们嘲笑你,然后他们跟你战斗,然后你赢了。”
内核源代码能否自由获得 No Of course 🙂
命令行和脚本编程 1) command.com 🙂
2) cmd.exe
3) Windows Scripting Host
4)4DOS / 4NT
5) Minimalist GNU For Windows
6)Windows 下的 Unix 工具(AT&T)
7) KiXtart
8) ScriptLogic[私有]
1) Bash
2) Csh.
3) Zsh
4) Ash.
5) Tcsh
操作系统的免费获得 Microsoft Windows。(想想你自己。在俄罗斯有 95% 的用户使用盗版的 Windows 拷贝。) Linux——免费的操作系统!!
Nimda(尼姆达病毒) Slapper.
Wincih(系统毁灭者 CIH 病毒), klez, etc 没有类似物
后门和隐钥 你自己找吧(Decide it yourself) 🙂
彩蛋,不公开的一些玩意 展示 Windows 开发者,Excel 95 中的 Doom 游戏,Excel 2000 中的三维竞赛游戏,等等……
杂志 Windows Magazine 1) LinuxJournal
2) Linux Gazette
3) Linux magazine
4) Linux pratico (Italy).
5) Australian Linux
死于蓝屏(Blue Screen Of Death,BSOD) 1) Kernel panic(内核起不来)
2) 屏幕保护程序“死于蓝屏” 🙂
谁需要为系统的毛病和缺陷负责 微软,比而.该次 个人(帐单.守门) 1) 发行版的开发者们
2) 所有的 Linux民,Linus Torvalds 本人 🙂
3) 你自己以及你拥有的设备:双手 :))
M$.com GNU.org, FSF.org
Windows.com Linux.org
Billionare(亿万富翁)Gates(鬼门关),“Road ahead”前面的路;【引申】一刻不停地加紧赚钱 Linus Torvalds,“Just for fun”【激情使然】玩玩而已 🙂
Bill(生财)Gates(之道),“Business @ the speed of thought”《以思维的速度经商》 Richard M. Stallman,“The right to read”《阅读的权力》
The book: “Free Software,Free Society: Selected Essays of Richard M. Stallman”RMS选集:《自由软件,自由社会》

Linux中文件查找技术大全 作者:佚名

  每一种操作系统都是由成千上万个不同种类的文件所组成的。其中有系统本身自带的文件,用户自己的文件,还有共享文件等等。我们有时候经常忘记某份文件放在硬盘中的哪个地方。在微软的WINDOWS操作系统中要查找一份文件是相当简单的事情,只要在桌面上点击“开始”-“搜索”中就能按照各种方式在本地硬盘上,局域网络,甚至在INTERNET上查找各种文件,文档。

  可是使用Linux的用户就没有那么幸运了,在Linux上查找某个文件确实是一件比较麻烦的事情。毕竟在Linux中需要我们使用专用的“查找”命令来寻找在硬盘上的文件。Linux下的文件表达格式非常复杂,不象WINDOWS,DOS下都是统一的AAAAAAA.BBB格式那么方便查找,在WINDOWS中,只要知道要查找的文件的文件名或者后缀就非常容易查找到。Linux中查找文件的命令通常为“find”命令,“find”命令能帮助我们在使用,管理Linux的日常事务中方便的查找出我们需要的文件。对于Linux新手来说,“find”命令也是了解和学习Linux文件特点的方法。因为Linux发行版本繁多,版本升级很快,在Linux书籍上往往写明某个配置文件的所在位置,往往Linux新手按图索骥还是不能找到。比如说REDHAT Linux 7.O和REDHAT Linux 7.1中有些重要的配置文件所在的硬盘位置和文件目录就有了很大的改变,如果不学会使用“find”命令,那么在成千上万的Linux文件中要找到其中的一个配置文件是相当困难的,笔者在没有精通“find”命令之前就吃过这样的苦头。好,下面就详细为大家介绍强大的“find”命令的全部使用方法和用途。

  通过文件名查找法:

  这个方法说起来就和在WINDOWS下查找文件一样容易理解了。如果你把这个文件放在单个的文件夹里面,只要使用常见的“ls"命令就能方便的查找出来,那么使用“find”命令来查找它就不能给你留下深刻的印象,毕竟“find”命令的强大功能不止这个。如果知道了某个文件的文件名,而不知道这个文件放到哪个文件夹,甚至是层层套嵌的文件夹里。举例说明,假设你忘记了httpd.conf这个文件在系统的哪个目录下,甚至在系统的某个地方也不知道,则这是可以使用如下命令:

  find / -name httpd.conf   这个命令语法看起来很容易就明白了,就是直接在find后面写上 -name,表明要求系统按照文件名查找,最后写上httpd.conf这个目标文件名即可。稍等一会系统会在计算机屏幕上显示出查找结果列表:
etc/httpd/conf/httpd.conf   这就是httpd.conf这个文件在Linux系统中的完整路径。查找成功。
  如果输入以上查找命令后系统并没有显示出结果,那么不要以为系统没有执行find/ -name httpd.conf命令,而可能是你的系统中没有安装Apache服务器,这时只要你安装了Apache Web服务器,然后再使用find / -name httpd.conf就能找到这个配置文件了。

  无错误查找技巧:

  在Linux系统中“find”命令是大多数系统用户都可以使用的命令,并不是ROOT系统管理员的专利。但是普通用户使用“find”命令时也有可能遇到这样的问题,那就是Linux系统中系统管理员ROOT可以把某些文件目录设置成禁止访问模式。这样普通用户就没有权限用“find”命令来查询这些目录或者文件。当普通用户使用“find”命令来查询这些文件目录是,往往会出现"Permissiondenied."(禁止访问)字样。系统将无法查询到你想要的文件。为了避免这样的错误,我们可是使用转移错误提示的方法尝试着查找文件,输入
find / -name access_log 2>/dev/null   这个方法是把查找错误提示转移到特定的目录中去。系统执行这个命令后,遇到错误的信息就直接输送到stderrstream 2 中,access_log 2就是表明系统将把错误信息输送到stderrstream 2中,/dev/null是一个特殊的文件,表明空的或者错误的信息,这样查询到的错误信息将被转移了,不会再显示了。

  在Linux系统查找文件也会遇到这样一个实际问题。如果我们在整个硬盘,这个系统中查找某个文件就要花费相当长的一段时间,特别是大型Linux系统和容量较大的硬盘,文件放在套嵌很深的目录中的时候。如果我们知道了这个文件存放在某个大的目录中,那么只要在这个目录中往下找就能节省很多时间了。使用find /etc -name httpd.conf 就可以解决这个问题。上面的命令就是表示在etc目录中查询httpd.conf这个文件。这里再说明一下“/ ”这个函数符号的含义,如果输入 “find/ ”就是表示要求Linux系统在整个ROOT目录下查找文件,也就是在整个硬盘上查找文件,而“find/etc”就是只在 etc目录下查找文件。因为“find/etc”表示只在etc目录下查找文件,所以查找的速度就相应要快很多了。

  根据部分文件名查找方法:
  这个方法和在WINDOWS中查找已知的文件名方法是一样的。不过在Linux中根据部分文件名查找文件的方法要比在WINDOWS中的同类查找方法要强大得多。例如我们知道某个文件包含有srm这3个字母,那么要找到系统中所有包含有这3个字母的文件是可以实现的,输入:

  find /etc -name ‘*srm*‘   这个命令表明了Linux系统将在/etc整个目录中查找所有的包含有srm这3个字母的文件,比如 absrmyz, tibc.srm等等符合条件的文件都能显示出来。如果你还知道这个文件是由srm 这3个字母打头的,那么我们还可以省略最前面的星号,命令如下:

  find/etc -name ‘srm*‘   这是只有像srmyz 这样的文件才被查找出来,象absrmyz或者 absrm这样的文件都不符合要求,不被显示,这样查找文件的效率和可靠性就大大增强了。

  根据文件的特征查询方法:

  如果只知道某个文件的大小,修改日期等特征也可以使用“find”命令查找出来,这和WINDOWS系统中的"搜索"功能是基本相同的。在微软的"搜索"中WINDOWS中的"搜索助理"使得搜索文件和文件夹、打印机、用户以及网络中的其他计算机更加容易。它甚至使在Internet 上搜索更加容易。"搜索助理"还包括一个索引服务,该服务维护了计算机中所有文件的索引,使得搜索速度更快。使用"搜索助理"时,用户可以指定多个搜索标准。例如,用户可以按名称、类型及大小搜索文件和文件夹。用户甚至可以搜索包含特定文本的文件。如果用户正使用 Active Directory,这时还可以搜索带有特定名称或位置的打印机。

  例如我们知道一个Linux文件大小为1,500 bytes,那么我们可是使用如下命令来查询find / -size 1500c,字符 c 表明这个要查找的文件的大小是以bytes为单位。如果我们连这个文件的具体大小都不知道,那么在Linux中还可以进行模糊查找方式来解决。例如我们输入find/ -size +10000000c 这个命令,则标明我们指定系统在根目录中查找出大于10000000字节的文件并显示出来。命令中的“+”是表示要求系统只列出大于指定大小的文件,而使用“-”则表示要求系统列出小于指定大小的文件。下面的列表就是在Linux使用不同“ find"命令后系统所要作出的查找动作,从中我们很容易看出在Linux中使用“find"命令的方式是很多的,“ find"命令查找文件只要灵活应用,丝毫不必在WINDOWS中查找能力差。

  find / -amin -10 # 查找在系统中最后10分钟访问的文件
  find / -atime -2 # 查找在系统中最后48小时访问的文件
  find / -empty # 查找在系统中为空的文件或者文件夹
  find / -group cat # 查找在系统中属于 groupcat的文件
  find / -mmin -5 # 查找在系统中最后5分钟里修改过的文件
  find / -mtime -1 #查找在系统中最后24小时里修改过的文件
  find / -nouser #查找在系统中属于作废用户的文件
  find / -user fred #查找在系统中属于FRED这个用户的文件

  下面的列表就是对find命令所可以指定文件的特征进行查找的部分条件。在这里并没有列举所有的查找条件,参考有关Linux有关书籍可以知道所有find命令的查找函数。
  -amin n
  查找系统中最后N分钟访问的文件
  -atime n
  查找系统中最后n*24小时访问的文件
  -cmin n
  查找系统中最后N分钟被改变状态的文件
  -ctime n
  查找系统中最后n*24小时被改变状态的文件
  -empty
  查找系统中空白的文件,或空白的文件目录,或目录中没有子目录的文件夹
  -false
  查找系统中总是错误的文件
  -fstype type
  查找系统中存在于指定文件系统的文件,例如:ext2 .
  -gid n
  查找系统中文件数字组 ID 为 n的文件
  -group gname
  查找系统中文件属于gnam文件组,并且指定组和ID的文件

  Find命令的控制选项说明:
  Find命令也提供给用户一些特有的选项来控制查找操作。下表就是我们总结出的最基本,最常用的find命令的控制选项及其用法。   选项
  用途描述
  -daystart
  .测试系统从今天开始24小时以内的文件,用法类似-amin
  -depth
  使用深度级别的查找过程方式,在某层指定目录中优先查找文件内容
  -follow
  遵循通配符链接方式查找; 另外,也可忽略通配符链接方式查询
  -help
  显示命令摘要
  -maxdepth levels
  在某个层次的目录中按照递减方法查找
  -mount
  不在文件系统目录中查找, 用法类似 -xdev.
  -noleaf
  禁止在非UNUX文件系统,MS-DOS系统,CD-ROM文件系统中进行最优化查找
  -version
  打印版本数字
  

  使用-follow选项后,find命令则遵循通配符链接方式进行查找,除非你指定这个选项,否则一般情况下find命令将忽略通配符链接方式进行文件查找。

  -maxdepth选项的作用就是限制find命令在目录中按照递减方式查找文件的时候搜索文件超过某个级别或者搜索过多的目录,这样导致查找速度变慢,查找花费的时间过多。例如,我们要在当前(.)目录技巧子目录中查找一个名叫fred的文件,我们可以使用如下命令

  find . -maxdepth 2 -name fred   假如这个fred文件在./sub1/fred目录中,那么这个命令就会直接定位这个文件,查找很容易成功。假如,这个文件在./sub1/sub2/fred目录中,那么这个命令就无法查找到。因为前面已经给find命令在目录中最大的查询目录级别为2,只能查找2层目录下的文件。这样做的目的就是为了让find命令更加精确的定位文件,如果你已经知道了某个文件大概所在的文件目录级数,那么加入-maxdepth n 就很快的能在指定目录中查找成功。

  使用混合查找方式查找文件
  find命令可以使用混合查找的方法,例如我们想在/tmp目录中查找大于100000000字节并且在48小时内修改的某个文件,我们可以使用-and 来把两个查找选项链接起来组合成一个混合的查找方式。
  find /tmp -size +10000000c -and -mtime +2   学习过计算机语言的朋友都知道,在计算机语言里,使用and ,or 分别表示“与”和“或”的关系。在Linux系统的查找命令中一样通用。
  还有这样的例子,
  find / -user fred -or -user george   我们可以解释为在/tmp目录中查找属于fred或者george这两个用户的文件。
  在find命令中还可以使用“非”的关系来查找文件,如果我们要在/tmp目录中查找所有不属于panda的文件,使用一个简单的
  find /tmp ! -user panda   命令就可以解决了。很简单。

  查找并显示文件的方法
  查找到某个文件是我们的目的,我们更想知道查找到的文件的详细信息和属性,如果我们采取现查找文件,在使用LS命令来查看文件信息是相当繁琐的,现在我们也可以把这两个命令结合起来使用。

  find / -name "httpd.conf" -ls   系统查找到httpd.conf文件后立即在屏幕上显示httpd.conf文件信息。
  12063 34 -rw-r–r– 1 root root 33545 Dec 30 15:36 /etc/httpd/conf/httpd.conf

  下面的表格就是一些常用的查找文件并显示文件信息的参数和使用方法
  选项
  用途描述
  -exec command;
  查找并执行命令
  -fprint file
  打印文件完整文件名
  -fprint0 file
  打印文件完整文件名包括空的文件
  -fprintf file format
  打印文件格式
  -ok command;
  给用户命令执行操作,根据用户的Y 确认输入执行
  -printf format
  打印文件格式
  -ls
  打印同种文件格式的文件.

  总结:到这里为止我们已经学习了这名多关于find命令的使用方法,也列出了很多常用的find命令的选项,如果我们能熟练掌握在Linux中find命令的使用方法,那么在Linux中查找文件也不是一件困难的事情。

    在Linux下如何使用vsftpd构建FTP服务器,构建后的FTP服务器有哪些特点?本文将作详细介绍。

    vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开发源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。

    本文以RedHat Linux 9.0为例介绍一下如何安装和配置vsftpd服务器。

    安装服务器程序

    程序下载地址:ftp://vsftpd.beasts.org/users/cevans/,目前最新版本为2.0.3,源程序文件名为vsftpd-2.0.3.tar.gz。

    1.安装之前的准备:

    安装之前我们应该看看用户“nobody”和目录“/usr/share/empty”是否存在,如果不存在需要新建这个用户和目录。

  [root@localhost root]# useradd nobody

  [root@localhost root]# mkdir /usr/share/empty

    如果要允许匿名访问,还需要创建ftp用户,并将其主目录设置为/var/ftp。在RedHat Linux 9.0中这些都已默认设置好了,只需要创建一个/var/ftp目录即可。

    [root@localhost root]# mkdir /var/ftp

    为了安全,目录“/var/ftp”不应该属于用户“ftp”,也不应该有写权限。在此,我们做如下设置:

    [root@localhost root]# chown root.root /var/ftp

    [root@localhost root]# chmod 755 /var/ftp

    2.开始安装:

    以管理员身份登录Linux系统,将vsftpd-2.0.3.tar.gz复制到/root目录下。

    [root@localhost root]# tar xzvf vsftpd-2.0.3.tar.gz

    [root@localhost root]# cd vsftpd-2.0.3

    [root@localhost vsftpd-2.0.3]# make

    [root@localhost vsftpd-2.0.3]# make install

    3.安装后续工作

    由于采用源代码方式安装,很多必要的配置文件没有复制到系统中,需要手动复制。

    复制配置文件:

    [root@localhost vsftpd-2.0.3]# cp vsftpd.conf /etc
    复制pam验证文件:(多数使用vsftpd的用户在用源代码安装后都会遇到这样的问题:匿名用户可以登录,而本地用户无论怎样设置都无法登录,原因就在于vsftpd采用了PAM验证的方式,需要复制一个验证文件本地用户才能访问。)

    [root@localhost vsftpd-2.0.3]# cp RedHat/vsftpd.pam /etc/pam.d/ftp
vsftpd的配置

    vsftpd服务器的配置文件为/etc/vsftpd.conf,其配置选项比较多,在此我只选择几个常用的配置选项介绍。

    1.禁止匿名用户访问。

    anonymous_enable=NO

    2.允许本地用户登录并允许其上传文件。

    local_enable=YES

    write_enable=YES

    要使上述选项生效,必须复制一个pam验证文件到/etc/pam.d,并改名为ftp。当然也可以改为其他名称,但必须修改pam_service_name的值,默认为ftp。

    3.将本地用户锁定在主目录中,不允许切换到上一级目录中。

    chroot_local_user=YES

    4.禁止某些用户通过ftp登录服务器。

  如果设置了local_enable=YES,那么所有的用户包括root也能通过ftp登录服务器,出于安全考虑,需要对某些用户进行限制。

    在vsftpd.conf中有三个选项控制:

    userlist_deny=YES/NO

    userlist_enalbe=YES

    userlist_file=/etc/vsftpd.user_list

    如果userlist_deny=YES,/etc/vsftpd.user_list中列出的用户名就不允许登录ftp服务器;如果userlist_deny=NO,/etc/vsftpd.user_list中列出的用户名允许登录ftp服务器。

    我们只要在/etc目录下创建vsftpd.user_list文件,文件内容为允许登录或禁止登录的用户名,每个用户占一行。

    5.禁止用户通过FTP修改文件或文件夹的权限。

    chmod_enable=NO(默认值为YES)

    6.设置本地用户上传的文件或文件夹的umask值。

    local_umask=022(默认值为077)

    umask的值设为022表示,上传的如果是文件将权限改为644,如果是文件夹将权限改为755。在上传网页时,如果设置为077,就会出现用户没有权限(Permission denied)访问网页的问题,所以建议将umask的值设为022。

    7.添加一个只能从ftp登录服务器,而不能从本地登录的用户。以下创建一个用户ftpuser,不允许从本地登录,并创建该用户的密码。

    [root@localhost root]# useradd –g ftp –s /sbin/nologin ftpuser

    [root@localhost root]# passwd ftpuser

    Changing password for user ftpuser.

    New password:

    Retype new password:

    passwd: all authentication tokens updated successfully.

    8.让vsftp服务器限制总的连接数以及每个IP最大的连接数。

    #最多同时允许100个客户连接

  max_clients=100

    #每个ip地址最多允许开3个线程

  max_per_ip=3

  vsftpd的配置文件中有很多选项,但个人认为,如果是架设一个简单的ftp服务器,以上选项就足够了。

How can I configure Sendmail to use SMTP auth

Issue:
How can I configure Sendmail to use SMTP authentication when sending email? Resolution:To enable SMTP authentication, uncomment the following in /etc/mail/sendmail.mc by removing the dnl at the beginning of the line:

define(`confAUTH_OPTIONS‘, `A p‘)dnl

TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN‘)dnl
define(`confAUTH_MECHANISMS‘, `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN‘)dnl

DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea‘)dnl

Restart Sendmail with the command:

# service sendmail restart

When setting up the email client, make sure the option "SMTP server requires authentication" is enabled in the Send section of the mail server configuration.

Note: SMTP authentication requires that SSL encryption is already configured. When Sendmail is restarted with these options uncommented, it assumes that secure SMTP (smtps) is running on port 465 instead of the insecure SMTP on port 25. All SMTP authentication is done over port 587.

refer: www.redhat.com

Red Hat Enterprise Linux ES release 3 (Taroon) Kernel 2.4.21-4.EL ON on i6868
Oracle9i Release 9.2.0.4

首先除了LINUX和ORACLE安装盘之外,还要准备一些补丁包:
p3095277_9204_LINUX.zip
下载地址:http://www.sh.nu/download/oracle/p305277_9204_LINUX.zip
p2617419_210_GENERIC.zip 、 p3006854_9204_LINUX.zip、
p3119415_9204_LINUX.zip、 P3238244_9204_LINUX.zip
下载地址:http://www.cnoug.org/viewthread.php?tid=30405&highlight=&page=2 http://www.itpub.net/showthread.php?s=&postid=1583482#post1583482
http://www.opennet.ru/soft/ora_inst/

(一) Oracle公司声称在Linux下安装Oracle9i数据库至少要有512MB的内存和至少1GB或者两倍 内存大小的交换空间,哈哈!恰好我的机器刚好满足它的最低要求,不过我听说256M也能安装ORACLE,本人对此深信不疑,当系统内存大于2GB的服务器,交换空间可以介于2GB—4GB之间。
要检查内存空间,在命令行方式(bash环境)下执行如下命令:
grep MemTotal /proc/meminfo

要检查交换空间,在命令行下执行如下命令:
grep SwapTotal /proc/meminfo

第二点是主机名和IP地址最好要手动设置
(二) 检查系统下是否有以下软件包
compat-libstdc++-7.3-2.96.122
compat-gcc-c++-7.3-2.96.122
compat-libstdc++-devel-7.3-2.96.122
compat-db-4.0.14-5
compat-gcc-7.3-2.96.122
tcl-devel-8.3.5-92.i386.ipm
openmotif21-2.1.30-8
setarch-1.3-1
如果没有可以采用#rpm –ivh ……rpm 来安装,具体大多数在第三张盘上,还有,这些包有一定的依赖性,这就需要你来动手试了。
(三) 添加安装过程中需要用到的用户和组,这当中会用到二个用户一个是root,一个是oracle
#groupadd oinstall
#groupadd dba
#useradd –g oinstall –G dba oracle
#passwd oracle
(四) 新建安装目录
#mkdir –p /opt/oracle/product/9.2.0
#chown –R oracle.oinstall /opt/oracle
#mkdir /var/opt/oracle
#chown oracle.dba /var/opt/oracle
#chmod 755 /var/opt/oracle
(五) 设置内核参数,调节信号灯及共享内存
(1)设置内核参数,调节信号灯及共享内存:
[root@sun root]# echo 250 32000 100 128 > /proc/sys/kernel/sem
[root@sun root]# echo 536870912 > /proc/sys/kernel/shmmax
[root@sun root]# echo 4096 > /proc/sys/kernel/shmmni
[root@sun root]# echo 2097152 > /proc/sys/kernel/shmall
[root@sun root]# echo 65536 > /proc/sys/fs/file-max
[root@sun root]# echo 1024 65000 > /proc/sys/net/ipv4/ip_local_port_range
当然为了一开机系统就能自动帮你设好这些参数,也可改动 /etc/sysctl.conf 这个文件,加入以下的语句:
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
注意:如果你的共享内存不够大的话,在安装的过程中会提示ORA-27123错误,到时候你只要把/proc/sys/kernel/shmmax的值调大就可以了到于多大就看你的了
(六) oracle对文件的要求:
编辑文件:/etc/security/limits.conf 加入以下语句:
oracle    soft    nofile    65536
oracle    hard    nofile   65536
oracle    soft    nproc    16384
oracle    hard    nproc    16384
(七) 设置oracle的环境
#su – oracle
$ vi ~/.bash_profile
export LD_ASSUME_KERNEL=2.4.1
export DISPLAY=”192.168.9.205:0.0” (127.0.0.1:0.0)
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/product/9.2.0
export ORACLE_SID=ora9i (数据库全局变量名)
export ORACLE_TERM=xterm (xterm窗口模式 vt100 终端调试模式)
export NLS_LANG=AMERICAN (设置语言AMERICAN英文)
export ORACLE_OWNER=oracle
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export THREADS_FLAG=native
export LD_LIBRARY_PATH=/opt/oracle/product/9.2.0/lib:/lib:/usr
/lib:/usr/local/lib
export PATH=/opt/ora9/product/9.2/bin:$PATH
export PATH=$PATH:$ORACLE_HOME/bin
然后注销再重新登录就可以,oracle 的环境就应该生效了
(八) #xhost +192.168.0.2 (本地IP地址)
(xhost disable访问控制,客户端可以从任何主机进行连接)
这个命令用来保证oracle用户调用X11,否则无法安装
(九) 安装
在安装之前需要打一个补丁
为了应用这个补丁,可以运行:
$su – root
#unzip p3006854_9204_LINUX.zip
Archive:p3006854_9204_LINUX.zip
creating:3006854/
inflating:3006854/rhel3_pre_install.sh
inflating:3006854/README.txt

#cd 3006854
#sh rhel_pre_install.sh
Applying patch…
Patch successfully applied
新开一个窗口#su – oracle
在登录终端中切换到oracle用户:
在oracle主目录里运行:#/mnt/cdrom/install/linux/runinstaller

*********************************************************
安装过程中的注意事项:
1.在安装中让你输入 UNIX group name:oinstall (#groupadd oinstall)
如果提示orainstRoot.sh权限问题,在root终端下执行:
#sh /tmp/orainstRoot.sh 然后继续
2.在安装中选择 software only 不要建数据库
3. 安装过程中提示/opt/oracle/product/9.2 权限问题,可另开窗口修改权限为oracle-dba
在结束的时候还会提示权限问题,另开窗口修改权限为root-root
注意的是以下几点:
Relink阶段,会出两个错误:ins_oemagent.mk 和 ins_ctx.mk. 点 Ignore 忽略. 不过在我安装的过程中还有一个错误会出现二次ins_rdbms.mk我选择了忽略,如果有人知道这个错误怎么修复请发信件告诉我

再安装过程中,系统会提醒你用root身份去执行两个sh文件,再root的登录终端中按提示操作就可以了
(十) 升级oracle
# su – oracle
安装结束后,HTTPD会自动运行.在升级之前,需要将它停下来.
$ cd $ORACLE_HOME/Apache/Apache/bin
$ ./apachectl stop
./apachectl stop: httpd stopped
LISTENER也需要停下来.
$ lsnrctl stop
LSNRCTL for Linux: Version 9.2.0.1.0 – Production on 07-NOV-2003 16:25:41
Copyright ? 1991, 2002, Oracle Corporation. All rights reserved.
Connecting to (ADDRESS=(PROTOCOL=tcp)(PORT=1521))
The command completed successfully
注意: 如果不停的话,oracle会提示不能覆盖文件.这个时候再去将服务停下来也可以,点Retry就可以了.
(十一) 打补丁
开始打补丁升级.
解包:
# unzip /home/oracle/p3095277_9204_LINUX.zip
Archive: p3095277_9204_LINUX.zip
inflating: 9204_lnx32_release.cpio
inflating: README.html
inflating: patchnote.css
# cpio –idmv < /home/ora9/Disk1/9204_lnx32_release.cpio
做完这个后,再切换到oracle用户控制台, 再次运行/home/oracle/Disk1/runInstaller升级,注意必须先选择最下面的安装选项,安装OUI
要不然没有办法打那个最上面的升级补丁。
升级完OUI后,要退出
$ cd $ORACLE_HOME/bin
$ ./runInstaller
选择第一个选项,将Oracle升级到9.2.0.4。
这时候还是会有一个错误出现ins_oemagent.mk,再次选择忽略它,这个错误会在9.0.2.4补丁包被应用后由3119415_9204_LINUX.zip这个补丁修正。

为了安装 opatch,可以运行:
#su – oracle
$cp p2617419_210_GENERIC.zip /tmp
$cd /tmp
$unzip p2617419_210_GENERIC.zip

在应用补丁 3119415 之前,请确信 oracle 用户可以访问fuser。否则,补丁不能被应用,因为 opatch 要使用 fuser。

为了应用补丁 3119415,可以运行:
#su – oracle
$unzip p3119415_9204_LINUX.zip
$ cd 3119415
$export PATH=$PATH:/tmp/Opatch
$export PATH=$PATH:/sbin # the patch needs “fuser” which is located in /sbin
$which opatch
/tmp/Opatch/opatch
$opatch apply

(十二)创建数据库
现在你可以使用 dbca 创建数据库:
$su – oracle
#dbca

启动和停止 Oracle 9i 数据库 (Startup and Shutdown of the Oracle 9i Database)
1.Sqlplus:
Oracle 9i (9.0.1 & 9.2.0) 不再使用 svrmgrl,而改用 sqlplus。

例如,启动数据库,可以运行下面的命令:
#su – oracle
$sqlplus /nolog
SQL>connect / as sysdba
SQL>startup

斜杠 (/ — slash) 使用 SYS 连接到方案 (schema)。本例中,将使用 SYS 数据库用户以 SYSDBA 身份连接到方案。SYSDBA 赋予用户如下特权:
– sysoper privileges WITH ADMIN OPTION
– create database
– recover database until

立即停止数据库,可以运行下面的命令:
#su – oracle
$sqlplus /nolog
SQL>connect / as sysdba
SQL>shutdown –immediate

2.$ORACLE_HOME/bin/dbstart 和 $ORACLE_HOME/bin/dbshut
也可以使用 $ORACLE_HOME/bin/dbstart 启动数据库,使用 $ORACLE_HOME
/bin/dbshut 停止数据库。甚至可以将 $ORACLE_HOME/bin/dbstart 写入 /etc/rc.d/rc. Local 启动脚本,当系统启动时,自动启动数据库。为了使 $ORACLE_HOME/bin/dbstart 和 $ORACLE_HOME/bin/dbshut 正常工作,需要将 /etc/oratab 文件中第 3 个字段的值由 N 改为 Y。

Oracle RAC 数据库创建过程中的注意事项
· ORA-29807 错误
在数据库创建过程的“创建数据字典视图”阶段中,您将接收到一个 ORA-29807 错误。如果您搜索日志文件,您将看到以下内容:
drop operator XMLSequence
*
ERROR at line 1:
ORA-29807:specified operator does not exist
这是一个已知的问题 (Bug:2686156),并且可被忽略。要继续数据库创建过程,请单击 "Ignore" 按钮:

· ORA-01430 错误
在数据库创建过程的“增加 Oracle Spatial”阶段中,您将接收到一个 ORA-01430 错误。如果您搜索日志文件,您将看到以下内容:
(SDO_ROOT_MBR mdsys.sdo_geometry)
*
ERROR at line 2:
ORA-01430:column being added already exists in table
这是一个已知的问题,并可被忽略。要继续数据库创建过程,请单击 "Ignore"


linux下oracle9i安装:

Oracle公司宣称在Linux下安装Oracle9i数据库至少要有512MB的内存和至少1GB或者两倍    
内存大小的交换空间,对于系统内存大于2GB的服务器,交换空间可以介于2GB—4GB之间。    

如果是为了在一台仅有256M内存的普通PC机上试用Oracle9i,在分配了1GB左右的交换空间的情况下,也可以正常运行Oracle数    
据库。    
要检查内存空间,登录进入Linux,在命令行方式(bash环境)下执行如下命令:    
grep MemTotal /proc/meminfo    
要检查交换空间,在命令行下执行如下命令:    
grep SwapTotal /proc/meminfo

 

1.解压.cpio文件
  #cpio -idvm < lnx_920_disk1.cpio
  #cpio -idvm < lnx_920_disk2.cpio
  #cpio -idvm < lnx_920_disk3.cpio
  在当前目录下生成Disk1和Disk2,Disk3三个目录.
  chmod -R 777 Disk1 Disk2 Disk3
  
2.打补丁
  unzip oraclerpm.zip
  #rpm -ivh *.i586.rpm --nodeps --force

 

3.建立用户和组
  #groupadd dba
  #mkdir /opt/OracleHome
  #adduser -u 499 -d /opt/OracleHome/ -g dba oracle
  注:-u 后可以是1-500(系统用户) -g 添加到私有组dba中
  #chown oracle.dba /opt/OracleHome/
  #mkdir /opt/OracleHome/Ora9i
  #chown oracle.dba /opt/OracleHome/Ora9i
  #touch /etc/rac_on
  #mkdir /opt/tmp
  #chmod 1777 /opt/tmp
  #cp oracle.bashrc /opt/OraclHome/.bashrc
  .basrc中的内容
 export ORACLE_BASE=/opt/OracleHome/
 export ORACLE_HOME=$ORACLE_BASE/Ora9i
 export ORACLE_TERM=xterm
 export ORACLE_SID=fwh
 export ORACLE_LEBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
 export PATH=$PATH:$ORACLE_HOME/bin
 export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/JLIB:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib:$ORACLE_HOME/jre
 export LC_LANG=en_US
 unset LANG
 检测环境变量
 #su -oracle
 $echo $ORACLE_SID

 

4.linux系统优化
  #dd if=/dev/zero of=/opt/tmpswap bs=1k count=1024000
  #chmod 600 /opt/tmpswap
  #mkswap /opt/tmpswap
  #swapon -v /opt/tmpswap
  #sysctl -w kernel.sem="250 32000 100 128"
  #sysctl -w kernel.shmmax=`expr 512 * 1024 * 1024`
 
  #echo "kernel.sem=250 32000 100 128" >> /etc/sysctl.conf
  #echo "kernel.shmmax=`expr 512 * 1024 * 1024`" >> /etc/sysctl.conf
  注:上两行命令执行后请查看/etc/sysctl.conf的变化.

  #echo 65536 >/proc/sys/fs/file-max
  #ulimit -n 65536
  #ulimit -u 16384
  注:上三行命令是系统优化,建议也添加到/etc/rc.local文件中,每次启动系统自动优化

 

5.安装
  #xhost localhost
  #su - oracle
  #cd /opt/source/Disk1
  #./runInstaller
  指定组
 UNIX GROUP Name:dba
 #cd /tmp
 #./orainstRoot.sh
  指定oracle目录
 Name:ORACLE_HOME
 PATH:同 .basrc中的内容
  选择Database
  选择Enterprise
  选择software Only

 

以下是几点注意事项

然后用命令dbca创建数据库

1.安装时字体问题的解决:
   #unset LANG 
   如果执行上述指令不行的话再修改/root/.i18n和/etc/sysconfig/i18n
   #vi /root/.i18n  
     注:root用户的语言环境,注释掉所有项后添加一行LANG="en_US"
   #vi /etc/sysconfig/i18n  
     注:系统中新增加用户的语言环境(每增加一个用户把它拷贝到其宿主目录生成.i18n)

2.安装过程中的报错:
   前几个按报错信息的指示做,
   只有最后一个/opt/OraclHome/Oracle9i/ctx/lib/下某一文件错,应修改
   /opt/OraclHome/Oracle9i/ctx/lib/env_ctx.mk文件
   在INSO_LINK= 这一行添加一条记录 $(LDLIBFLAG)dl

3.oracle用户SHELL有问题
  #userdel oracle
  #adduser -u 499 -d /opt/OracleHome/ -g dba oracle

小秘籍:

 #hdparm -t /dev/hda 查看硬盘读写速度,如只有2M左右,则执行
 #hdparm -d 1 /dev/hda 开启DMA功能,可把它添加到/etc/rc.local文件中.
 
linux下oracle9i删除:
1.shutdown immediate //停止数据库
2.rm -rf ORACLE_HOME //删除oracle目录
3.rm /etc/ora*  //删除系统中与oracle相关的文件

http://blog.chinaunix.com/opera/showart.php?blogid=11456&id=76912