Linux下的软件开发[1]

[入库:2005年9月19日] [更新:2007年3月24日]

本文简介:

    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't change the first line - it's 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

本文关键:Linux下的软件开发
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top