网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > linux > 新手入门 > 软件使用 > 用busybox做一个迷你Linux  

用busybox做一个迷你Linux

2008-04-27  作者:bitsCN整理  来源:中国网管联盟  点评 投稿 收藏

    1、WHERE字句的LIKE条件中通配符。
    Oracle和mysql都支持%和_两个通配符,前者匹配任意个任意字符,后者匹配最多一个任意字符。但在处理本意字符%和_时,就很不相同了。mysql可以用转义字符\来处理;oracle也可以用转义字符来处理,但必须在LIKE表达式后用escape '\'来说明;其中\可以是任意一个字符(注意必须是一个字符)。

中国网管联盟bitsCN.com

    2、对象名的大小写敏感性
    处理诸如表,存储过程,函数,索引,数据库等对象时,Oracle对大小写不敏感;mysql则由操作系统来决定。如LINUX下是敏感的,WINDOWS是不敏感的。 网管联盟bitsCN@com

    3、查询表信息
    mysql: show tables;
    Oracle: select table_name from tabs;

网管联盟bitsCN_com

    4、自动增长类型的支持
    mysql: 每一个表可以有一列用auto_increment,但必须用于主关键字。其起始值可以用AUTO_INCREMENT=500000作为表属性来约束,不能设步长,不能循环使用。
    Oracle: 用 sequence对象来支持该类型。可以在触发器和SQL语句中用nextval,currval来取值;注意CURRVAL需要在同一SESSION里方能取值正确。
    查询语句如SELECT  seqid_main.nextval from dual。
    创建语句如CREATE SEQUENCE SEQID_MAIN INCREMENT BY 1 START WITH 1 NOCYCLE CACHE 20 NOORDER; 中国网管联盟bitsCN.com

    5、限制记录数的支持
    mysql: 用limit [start-index,]count子句来实现,非常简单,并且支持DELETE语法,应该对用户非常方便。
    Oracle: 没有直接的子句可以提供支持。但近似可以用row_number函数来实现。
    如  row_number() over (order by col1 desc,col2) as row,然后对row来进行过滤处理。如果没有排序子句则可以用更简单的rownum来实现。

网管下载dl.bitscn.com

    6、连接操作符的支持
    其实mysql和Oracle都支持左、右、内联操作。不过Oracle的语法如 a.id=b.id(+)来表示左联操作比较直观和容易构造。
     1.基础知识
        一个操作系统可以简单的抽象为,引导程序+内核+文件系统。
        vmlinuz是Linux 内核的镜像文件,可以被引导程序加载,从而启动Linux系统。
        initrd的全称是boot loader initialized RAM disk,它是系统启动时所使用的根文件系统映像文件,这个文件系统中包含几个驱动模块,用来装载实际的根文件系统,比如一个IDE或SCSI硬盘的驱动模块,内核装入这个模块之后用它来驱动硬盘,挂接硬盘到ramdisk的某个子目录,然后再用其中的pivot_root命令,将硬盘文件系统变成根文件系统,并开始执行init进程,此时init ram disk被umount,寿终正寝。
        由此可见,我们可以用vmlinuz+initrd.img做一个文件系同长驻内存的迷你Linux。

网管u家u.bitsCN.com

        现在进入正题了: 网管bitscn_com

    2.编译内核
    mcd /usr/src/....----进入内核源代码目录,没有的话去官方网站,随便下 中国网管论坛bbs.bitsCN.com

    make menuconfig-----配置编译选项请注意一定加入RAM disk support 和initial RAM disk
    (initrd) support 的支持(在block device中)。另外最好将ext3文件系统
    编入内核,不要编成模块。配置完毕后保存为.config(默认)
    make bzImage----编译
    在许多内核编译参考中还有
    make modules
    make modules_install两步
    但我们这里没有加入对modules的支持,所以不需要。
    生成的bzImage文件在usr/src/linux/arch/.../boot中,省略的根据你的机器架构决定,make过程中会有提示,比如我的是x86_64. 注意这个文件非常重要,其实就是我们最终的vmlinuz.

中国网管论坛bbs.bitsCN.com

    3.busybox
        busybox是一个集成了一百多个最常用linux命令和工具的软件,它甚至还集成了一个http服务器和一个telnet服务器,而所有这一切功能却只有区区1M左右的大小.我们平时用的那些linux命令就好比是分力式的电子元件,而busybox就好比是一个集成电路,把常用的工具和命令集成压缩在一个可执行文件里,功能基本不变,而大小却小很多倍,在嵌入式linux应用中,busybox有非常广的应用,另外,大多数linux发行版的安装程序中都有busybox的身影,安装linux的时候案ctrl+alt+F2就能得到一个控制台,而这个控制台中的所有命令都是指向busybox的链接.在我们的迷你Linux中,需要的也正是busybox的命令和工具。
    下载 http://busybox.net/downloads/
    使用过程中许多高版本都出现编译错误,所以用了一个最原始的版本busybox-1.00
    #cp busybox-1.00.tar.gz /tmp/bunny
    #cd /tmp/bunny
    #tar xvfz busybox-1.00.tar.gz
    #cd busybox-1.00
    #make menuconfig ----编译配置
    下面是需要编译进busybox的功能选项,其他的可以根据需要自选.

网管u家u.bitscn@com

    General Configuration应该选的选项
    Show verbose applet usage messages
    Runtime SUID/SGID configuration via /etc/busybox.conf
    Build Options
    Build BusyBox as a static binary (no shared libs)
    这个选项是一定要选择的,这样才能把busybox编译成静态链接的可执行文件,运行时才独立于其他函数库.否则必需要其他库文件才能运行,在单一个linux内核不能使他正常工作.
    Installation Options
    Don't use /usr
    这个选项也一定要选,否则make install 后busybox将安装在原系统的/usr下,这将覆盖掉系统原有的命令.选择这个选项后,make install后会在busybox目录下生成一个叫_install的目录,里面有busybox和指向它的链接.
    其他选项都是一些linux基本命令选项,自己需要哪些命令就编译进去,一般用默认的就可以了.
    配置好后退出并保存.config.
    make
    make install
    编译好后在busybox目录下生成子目录_install,里面的内容: 网管网www_bitscn_com
    bin
    linuxrc -> bin/busybox
    sbin
    其中可执行文件busybox在bin目录下,其他的都是指向他的符号链接.
网管u家u.bitscn@com

网管网www.bitscn.com


TAGs
 上一篇:LINUX支持哪些文件系统   下一篇:Linux系统下文件的压缩、打包与解压包
用busybox做一个迷你Linux 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: