当前位置:Linux教程 - Linux - Linux下的软件开发

Linux下的软件开发



        


      1、如何升级、编译内核?

      如果你不想改变内核的版本,直接转到以下第四步。

      1)在任何一个子目录下(但通常是在/usr/src/下)untar解开新的内核源程序:

      tar xvfz linux-x.x.xx.tar.gz (例如linux-2.0.35.tar.gz)

      或者是打补丁(patch): gzip -cd patch-2.0.35.gz | patch -p0

      打完补丁直接跳到第四步

      2)rm /usr/src/linux 这通常是一个符号连接。

      3)在 /usr/src/ 下建立一个符号连接到你的新内核目录。

      ln -s /usr/src/linux.2.x.xx /usr/src/linux

      老版本的内核可能还要做一下工作:

      cd /usr/include

      rm -rf asm linux scsi

      ln -s /usr/src/linux/include/asm-i386 asm

      ln -s /usr/src/linux/include/linux linux

      ln -s /usr/src/linux/include/scsi scsi

      4)将当前目录变成 /usr/src/linux

      cd /usr/src/linux

      5)变成超级用户 su

      6)配置内核

      如果你在X window下并且希望有图形界面,就用: make xconfig

      (注: 需要安装Tk/Tcl包并且X Server的分辨率在800x600以上)

      如果你不在X Window下或不想使用图形界面,就用:

      make config 或 make menuconfig(推荐),逐个回答完问题后稍等片刻,等提示符出现或图形界面消失,就配置好了系统。

      7)生成新内核,用:

      make dep ; make clean

      make zImage (或用make bzImage进一步压缩内核)

      (注意有大小写区分)

      还有make zlilo/make install等可选择。

      8)如果你用了模块,你还需要生成和安装模块

      make modules

      make modules-install

      depmod -a

      9)检查/etc/lilo.conf,把用的那个目录、那个文件作为 image。例如:image = /boot/vmlinuz (slackware版是/vmlinuz)

      将 /usr/src/linux/System.map 复制到 /boot 目录中,

      将 /usr/src/linux/arch/i386/boot/zImage 复制到 /boot 目录中并改名为 vmlinuz

      用一个新文件名将新内核拷贝到相应的目录下,如

      cp /usr/src/linux/arch/i386/boot/zImage /boot/zImage2

      然后编辑/etc/lilo.conf文件,把原内核有关的那一段复制一份,如

      image = /boot/vmlinuz

      root = /dev/hda1

      label = linux

      复制后把image改成/boot/zImage2 把label改成newlinux.

      这样新内核与旧内核可以共存,当新内核不能启动时,还有备份在那儿。注意复制后放置的位置,如果没有设置default,则谁是第一项谁就是缺省启动项。

      10)安装新内核并重新起动。

      lilo

      shutdown -r now

      (提示:开机启动LILO、出现"LILO:"提示时,按TAB键显示所有可启动的项(由label定义)

    2、Linux下除了EMACS,有那些写程序用的编辑软件?

      字符方式下有wpe(Window programming environment),非常类似于Borland C++3.1 for DOS。在X Windows下有xwpe,如果用RedHat,CDROM上该有这个东西,还有code-crusader也可以试试,joe,jed/xjed,nedit,kde带的kedit,kbuilder带的ksrcedit等可供参考。其中xjed, ksrcedit是彩色文本编辑,joe/jstar的热键与turbo c基本相同。还可以到166.111.68.98下载C-forge,SourceNavigator,SN是商业软件。

      3、介绍一下Linux中shell提供的叙述语言?

      在DOS下,我们可以把一长串命令写进.BAT文件中,以便自动执行一连串动作,Linux中可以由在profile或.profile中设定alias来完成,当.BAT太过复杂时,可用shell提供的叙述语言(Scripting language)来写:它强大而易用,可以使用变量,有while,for,case if.. then .. else,的语法结构;还可以作为程序设计语言的替代品。

      要撰写一个script,就像在DOS下写.BAT一样,只要编写一个ASCII的文件,内含你想要的指令,然后保存。系统内定的编辑器叫作vi,使用不太方便,也可以使用其它的编辑器如joe或是X下的emacs。以下是vi常用操作法:

      1)加入一段文字到文章中:按下‘ i ’;

      2)离开 vi 但不储存文章:按ESC,再键q!

      3)离开且保存:按ESC,再键wq

      以下是一些shell script范例:

      EXAMPLE 1: first_script

      #!/bin/sh

      # I am a comment

      # don change the first line - its got to be there

      echo "Today is `date`"

      echo "My name is "$0

      echo "You gave me the following "$#" parameters: "$*

      echo "First parameter is "$1

      echo "Have you grasped the trick?"

      EXAMPLE 2: 2exe

      #!/bin/sh

      echo "making "$1" executable... "

      chmod u+x $1

      EXAMPLE 3: backup

      #!/bin/sh

      echo "Copying files in ~/bak... "

      for name in $*

      do

      cp ${name} ~/bak

      done

      使用这个命令:$ chgmod u+x 来执行script,在要执行时,键入它的文件名即可。

      4、哪里有Linux下C语言库函数手册?

      用xman命令看第三章,或到http://www.xa.col.com.cn/~isc/gcc/library_toc.html看看。

      5、Linux有没有数据库管理软件?(例如象informix那样)

      Linux有好几个DBMS,其中Ingres可能最接近INFORMIX,但是需要自己进行编译,另外它的维护和进一步开发好象不太活跃。目前看来postgreSQL比较好,Redhat-5.0带这个DBMS和它的开发系统。mSQL和MySQL也不错。Informix和Sybase的for Linux版本已出来了,可去他们的站点看看。

      OPEN LINK :http://www.openlinksw.com/ (提供大量的ODBC JDBC,收费的)

      postodbc :http://logical.thought.net/postodbc/ 这个免费的;

      PERL :http://www.perl.com/

      PHP :http://www.php.net/ 成熟的数据库接口提供商 perl.module

      6、如何调试CGI脚本?

      对于一些简单的perl-cgi,可把要求输入的变量都在程序中预定好,然后su nobody运行调试,运行结果正确了,再把预定的变量去掉,放入http服务器,一般即可。

      7、Linux下有MOTIF编程的软件包吗?

      MOTIF由于不是免费的、运行速度慢,不推荐使用,现在有KDE。如果真想开发MOTIF界面,最好采用TCL/TK来进行,这样可大大节省开发时间、而且开发出来的程序运行效率也好。只需用TCL、也可以用PERL语言编写脚本,然后利用TK工具包进行粘接。无论是TCL还是PERL,它们都有与C/C++程序协同工作的能力。这样,对速度要求高的程序部分用C/C++编写,然后嵌入到TCL或者PERL脚本中。


    发布人:netbull 来自:非常Linux