当前位置: 首页 > news >正文

小程序可以做网站吗wordpress 活动插件

小程序可以做网站吗,wordpress 活动插件,推广app平台,网页首页代码转自#xff1a;tftp命令详解 - 张大猛 - 博客园 介绍一个 FTP客户端-IIS7服务器管理工具 作为FTP客户端#xff0c;它支持批量管理ftp站点。定时上传和定时下载#xff0c;定时备份#xff0c;且操作简洁。同时iis7服务器管理工具还是vnc客户端。并且支持批量管理管理…转自tftp命令详解 - 张大猛 - 博客园 介绍一个     FTP客户端-IIS7服务器管理工具 作为FTP客户端它支持批量管理ftp站点。定时上传和定时下载定时备份且操作简洁。同时iis7服务器管理工具还是vnc客户端。并且支持批量管理管理windows及linux服务器、vps。让服务器真正实现了一站式管理真的是非常方便。 官网地址ftp工具 - ftp软件 - ftp下载- ftp客户端 - FTP上传下载工具 : IIS7服务器管理工具 使用截图如下 TFTP协议简介 TFTP是用来下载远程文件的最简单网络协议它其于UDP协议而实现。嵌入式linux的tftp开发环境包括两个方面 一是linux服务器端的tftp-server支持二是嵌入式目标系统的tftp-client支持。 因为u-boot本身内置支持tftp-client所以嵌入式目标系统端就不用配置了。 下面就详细介绍一下linux服务器端tftp-server的配置。本文来自成都明诚科技 详细信息请访问http://www.embedexpert.com/article/linuxkernel/2010/1020/tftpserverset.html 1、查看tftp服务是否开启 netstat -a | grep tftp 显示结果为 udp 0 0 *:tftp *:* 表明服务已经开启就表明tftp配置成功了。 2、tftp使用 复制一个文件到tftp服务器目录然后在主机启动tftp软件进行简单测试。 tftp 192.168.1.2 tftpget download filetftpput upload file tftpq 6、tftp命令用法如下 tftp your-ip-address 【TFTP相关操作命令】 connect连接到远程tftp服务器 mode文件传输模式 put上传文件 get下载文件 quit退出 verbose显示详细的处理信息 tarce显示包路径 status显示当前状态信息 binary二进制传输模式 asciiascii传送模式 rexmt设置包传输的超时时间 timeout设置重传的超时时间 help帮助信息 ?帮助信息 3、如果老是出现“AVC Denial, click icon to view”的错误并不能传输文件需要作如下修改 修改/etc/sysconfig/selinux,将SELINUX设定为disable 使用命令setenforce 0让selinux配置文件生效 4、Busybox中tftp命令的用法 命令格式为 tftp [option] ... host [port] 如果要下载或上传文件的话是一定要用这些option的。成都明诚科技。 -g表示下载文件(get) -p表示上传文件(put) -l表示本地文件名(local file) -r表示远程主机的文件名(remote file) 例1要从远程主机192.168.1.2上下载embedexpert则应输入以下命令 tftp -g -r embedexpert 192.168.1.2 例2 tftp 0x80600000 u-boot-with-spl.bin 把文件u-boot-with-spl.bin通过tftp加载到内存的0x80600000处 例3 tftp 193.169.3.42 tftpconnect tftpget demon.txt tftpstatus tftpquit 这就是从共享出通过tftp下载文件。 busybox详解 转载:根文件系统及Busybox简介 1.根文件系统简介 所谓制作根文件系统就是创建各种目录并且在目录里创建相应的文件。例如在/bin目录下放置可执行程序在/lib下放置各种库等等。通常配合chroot命令使用。 2.Busybox简介 2.1Busybox简介 Busybox是一个开源项目遵循GPL v2协议。Busybox将众多的UNIX命令集合进一个很小的可执行程序中可以用来替代GNU fileutils、shellutils等工具集。Busybox中各种命令与相应的GNU工具相比所能提供的选项比较少但是也足够一般的应用了。Busybox主要用于嵌入式系统。 Busybox在编写过程中对文件大小进行了优化并考虑了系统资源有限(比如内存等)的情况。与一般的GNU工具集动辄几M的体积相比动态链接的Busybox只有几百K即使是采用静态链接也只有1M左右。Busybox按模块设计可以很容易地加入、去除某些命令或增减命令的某些选项。 在创建根文件系统的时候如果使用Busybox的话只需要在/dev目录下创建必要的设备节点在/etc目录下增加一些配置文件即可当然如果Busybox使用动态链接那么还需要再/lib目录下包含库文件。 2.2Busybox目录结构简介 下面是Busybox源码目录结构图接下来说说各个目录的作用方便以后对Busybox做裁剪的时候参考。 2.3init进程简介 Busybox中最重要的程序自然是init。 大家都知道init进程是由内核启动的第一个(也是唯一一个)用户进程(进程ID为1)init进程根据配置文件决定启动哪些程序例如执行某些脚本、启动shell或运行用户程序等等。Init是后续所有进程的发起者例如init进程启动/bin/sh程序后我们才能够在控制台上输入各种命令。 Init进程的执行程序通常都是/sbin/init上述讲到的init进程的作用只不过是/sbin/init这个程序的功能。如果我们想让init执行自己想要的功能那么有两种途径 一使用自己的init程序这包括使用自己的init替换/sbin/下的init程序或者修改传递给内核的参数指定”initxxx”这个参数让init环境变量指向自己的init程序 二就是修改init的配置文件因为init程序的很大一部分的功能都是按照其配置文件执行的。 一般而言在Linux系统中有两种init程序BSD init和System V init。BSD和 System V是两种版本的UNIX系统。这两种init程序各有优缺点现在大多数Linux发行版本使用的都是System V init。但在嵌入式系统中常使用的是Busybox集成的init程序下面基于它进行介绍。 2.3.1内核如何启动init进程 内核启动的最后一步就是启动init进程代码在init/main.c文件中如下所示 代码并不复杂与init启动最强相关的就是run_init_process这个函数了它运行指定的init程序注意一旦run_init_process运行创建进程成功它将不会返回而是通过操作内核栈进入用户空间。所以上面并不是运行了四个init进程而是根据优先级一旦某一个运行成功就不往下继续执行了。 下面详细描述一下该函数的执行过程 (1)打开标准输入、标准输出和标准错误设备 Linux中最先打开的3个文件分别称作标准输入(stdin)、标准输出(stdout)和标准错误(stderr)它们对应的文件描述符分别是0、1、2.。 如下代码就是执行这个操作先打开文件/dev/console作为保准输入然后将文件描述符复制给文件描述符1、2这样使得标准输入、标准输出以及标准错误都使用/dev/console这个文件。注意代码上面的注释”该函数不能失败也就是说至少/dev/console必须存在”。 (2)如果变量ramdisk_execute_command为空则将其指向/init程序如果该程序存在则运行该程序并且进程不会返回如果该程序不存在则置变量ramdisk_execute_command为NULL代码片段为 (3)如果变量execute_command指定了要运行的程序则运行它并且不会返回 (4)依次尝试几个常见的init一旦某一个成功则不返回 (5)如果以上执行都失败那么内核就挂了 至于init执行失败可能的原因详见内核文档Documentation\init.txt。 2.3.2init的执行流程 Busybox init程序对应的源代码在init/init.c文件中下面先介绍其启动过程。 内核启动init进程的时候已经打开了”/dev/console”设备作为控制台一般情况下Busybox init程序就是要/dev/console。但是如果内核启动init进程的时候同时指定了环境变量CONSOLE或者console则init使用环境变量所指定的设备。在Busybox中还会检查这个指定的设备是否可以打开如果不能打开则使用/dev/null。 Busybox init进程只是作为其它进程的发起者和控制着并不需要控制台与用户交互所以init进程会把它关掉系统启动后运行命令”ls /proc/l/fd/”可以看到该目录为空。Init进程创建其它子进程的时候如果没有指名该进程的控制台则该进程也是有前面确定的控制台至于怎么为进程指定控制台就通过init的配置文件实现。 2.3.3init的配置文件 Init可以创建子进程然而究竟应该创建哪些进程呢这个是可以通过其配置文件定制的init的配置文件为/etc/inittab文件。 Inittab文件的相关文档和示例代码都在Busybox的examples/inittab文件中内容如下 上图中标有下划线的一行就是inittab文件中每一行内容的格式。Inittab文件中的每个条目用来定义一个子进程并确定它的启动方法。每一行都分为四个字段分别用”:”隔开每个字段的意义如下 (1)表示该子进程使用的控制台如果该字段省略则使用与init进程一样的控制台。 (2)该进程的运行级别Busybox 的init程序不支持运行级别这个概念因此该字段无意义如果要支持runlevel意义则建议使用System V Init程序。 (3)表示init如何控制该进程是一个枚举量可能的取值及相应的意义如下表 (4)要执行的程序可以为可执行程序也可以是脚本如果字段前面有”-”字符代表这个程序是可交互的例如/bin/sh程序。 最后给出一个inittab文件的内容 3.构建自己的根文件系统 3.1编译Busybox 现在我们开始构建自己的根文件系统主要工作就是编译Busybox首先到官网下载最新的源代码加压缩到自己的工作目录我这里不列出目录下面的截图中都包含了完整的路径请大家看仔细。 首先解压缩后看看Busybox源代码的目录结构如下图 在源代码目录下有几个文件使我们必须关注的(很多开源代码都有这几个文件建议在开展实际的工作之前仔细阅读一下这几个文件)主要是INSTALL、README以及examples目录和docs目录下的文件。 Busybox可裁剪而且支持像Linux内核那样的图形化配置界面运行如下命令即可 这个时候可能回报如下错误 这个时候不必着急之所以回报这个错误是因为我们采用的配置界面需要终端的一些特殊配置而这些配置是需要ncurses库的支持所以当出现这个错误的时候说明你的编译环境中没有安装此库使用如下命令安装好这些库即可。 在这些库安装好了之后在运行之前的”make menuconfig”命令即可出现如下的配置界面 在这个界面中我们就可以进行裁剪也就是选中自己需要的功能其它的就不选择。这里有几个配置选项比较重要在这单独拿出来说一下至于完整的选项说明请见附录。 (1)指定编译后安装的路径 编译完了Busybox后我们需要安装安装可以指定安装路径在这个界面修改(当然也可以在Makefile或者编译命令指定) 从上图我们可以看出Busybox默认的安装路径是源代码目录的_install目录(该目录不存在安装的时候自动创建)。 (2) 静态/动态编译 我们可以静态或者动态编译BusyboxBusybox支持Glibc和Uclibc。选择动态编译使得Busybox可执行文件更小选项开关在下图 经过上诉步骤之后相比裁剪的工作已近完成了这个时候选择配置界面的Exit退出这个时候会弹出对话框询问是否保存刚刚的配置这里选择”保存”之后就可以看到在源代码目录下多了一个.config文件如下图 .config配置文件里面的内容记录了我们刚刚选中了哪些功能内容如下 每一个都是名值对的形式名称是一个环境变量后面的值如果为”Y”就代表选中注释行代表裁减掉的功能。 好了现在配置阶段的事情就做完了接下来就是编译Busybox了相信大家对编译开源代码不会陌生直接执行如下命令即可 编译之后看看源代码目录都生成了一些啥 从上图可以很清楚的看到生成了两个可执行文件也就是我们需要的Busybox可执行文件编译阶段的工作也做完了。 接下来我们安装Busybox使用如下命令 接下来到安装目录_install下看看都安装了些啥 从最下面的一个”ls”命令可以看出虽然在/bin目录下有很多命令但是其实只有一个真正的可执行文件也就是我们前面的生成的Busybox文件其它文件都是到Busybox的软链接(可以在配置界面设置为硬链接这对于系统对inode数量有限制的情况下特别有用)。 至于软链接这个从”make install”安装命令的执行过程中也可以看出来如下图 好了至此我们的Busybox也就完成了。 虽说Busybox编译成功了需要的文件也生成了但是不是意味着我们学习Busybox的过程也结束了呢显然不是我们刚刚简单执行了一个”make”命令就编译成功了但是我们必须要知道”make”命令背后执行了哪些操作这个可以从编译过程终端的输出看到执行流程如下图 这里编译输出非常多我们主要关注其中标注1和2的两条分别给出解释 (1) 解析.config文件 这里就是上图标注1的那句话主要的功能就是解析.config文件之前可以看到.config文件中都是一些宏这里做的就是将整个文件中的宏分别解析出来存放到一个.h文件中文件的存放的路径为 注意config目录是编译过程中生成的。 文件内容如下 (2) 生成最终的配置文件 通过上面config目录下的文件生成一个完整的.h文件里面是最终的一个配置文件内容如下 文件内容比较多而且分为几个独立的部分我们首先来看看最前面的部分 从内容可以看出这就是我们最终要生成的命令的名字将它们所有都放在一个数组中。 接下来看看该文件最后部分的内容 从文件内容可以看出这是上面每个命令的入口函数命令很有特点一眼就看出来了哦。从这里可以看出这里是一个函数指针数组根据传入的下标选择运行不同的函数这就是为什么在Busybox中命令”ls”的运行效果等同于”busybox ls”如下图 好了最后再让我们看看编译完Busybox后的安装目录吧 3.2向Busybox中添加新命令 接下来我们就介绍一下怎么想Busybox中添加自己的命令这个也就是搞清楚Busybox的组织框架。之前如果有在内核中添加驱动的同学相信在Busybox中添加新的命令难不倒大家哦。 (1) 首先选择命令存放的路径 Busybox目录下有非常多的子目录每个目录都放着一类命令例如net目录放着与网络相关的shell放置着与shell相关的命令我们这里只是为了举例说明添加一个命令的流程所以我将命令放置在如下目录 (2) 其次就是编写命令源文件 我们要运行自己的命令肯定就得编写自己的源代码这里主要为了说明流程所以使用如下简答源代码 这里编写源代码有一点一定要注意Busybox采用统一的命名风格这个从之前的函数指针数组也能看出所以我这里命令是”hello_busybox”那么我的函数名就一定是”hello_busybox_main”。 (3)修改相关的编译文件 我们将自己的源文件编译进去之后整个Busybox是不会理会这个文件的存在即使你这个时候使用”make”命令编译Busybox也会发现上面的.c源文件并没有被编译因为我们并没有将这个文件告诉Busybox的编译系统类似之前放置驱动程序需要修改内核的Kconfig文件一样我们也需要修改Busybox中类似的文件。 首先修改如下文件 添加自己的命令格式仿造其它已经存在的条目即可修改后内容如下 修改这里主要是使得执行”make menuconfig”命令的时候配置界面可以出现我们新增的命令让用户对该命令可以配置第一行是标示该命令的一个环境变量第二行是出现在配置界面上的文字是一个布尔量取值为”Y”或者”N”第三行是这个选项的默认值这里默认是选中的第四行和第五行是该命令在配置界面的帮助信息。 修改上面的文件只是让配置界面出现我们这个命令以及根据是否选择置环境变量”HELLO_BUSY_BOX”为”Y”或”N”但是它还不能影响Busybox的编译系统是否编译我们的源文件Busybox到现在甚至不知道我们的源文件叫啥名字。 接下来我们还需要修改如下文件 修改后的内容如下 到这里读者应该明白前面修改那个文件最主要的最用了根据环境变量”HELLO_BUSYBOX”的取值决定是否编译我们的源文件。 到这主要的工作已经完成了但是还有部分工作必须得做首先想想我们的命令(也就是一个名为hello_busybox的指向busybox的软链接文件)生成了放在哪里呢系统中存放命令的地方很多例如“/bin”、“/sbin”、“/usr/bin”和“/usr/sbin”等这就需要修改下面的文件 修改后的内容如下 这里我们主要关注括号里面的三个参数第一个是命令的名字第二个是命令存放的路径第三个是命令的权限。 接下来我们还要做一件非做不可的事情就是每个命令都有帮助信息我们这里也需要为新添加的命令增加帮助信息修改如下文件 修改后的文件如下图 好了至此在Busybox中添加一条新的命令该做的修改该做都做完了剩下的就是测试添加的命令是否生效是否可用。 (4) 编译、测试 首先是执行配置操作”make menuconfig”命令出现顶层的配置界面选中下图的那一条按下回车键 进入子条目后就很容易看到我们添加的那条命令了如下图中选中的那条 做好了配置工作之后我们就可以执行编译操作了在看编译过程之前先让我们看看有没有生成我们的配置文件如下图 文件内容如下 这里有个很奇怪的问题我们新加的命令的名字是”hello_busybox”那么生成的配置文件应该是”hello_busybox.h”但是各位看官仔细看看上面出现了什么情况竟然在config目录下生成了hello子目录然后在里面放置”busybox.h”文件相信大家也猜到了规律那就是Busybox会将名字做拆分以”_”为分割字符最后一个才是文件名前面的都是子目录这个我没有再去验证但我认为应该是这样的。 好了接下来我们就执行”make”命令截图如下 从上图中可以看到我们新加的命令成功生成也安装的目录也正确。 接下来我们就去执行一下我们的命令如下图 从上面图中三条命令的执行情况来看我们添加命令成功。 4.附录 4.1Busybox实现的简单分析 在这里我们来简要的分析一下Busybox的实现过程在前面的第3点中已经提及了一部分这方面的内容。 在前面也分析了Busybox的目录结构那种分法是比较僵硬的因为完全是按照目录来划分的其实如果要更好的理解Busybox的实现那么我们应该将它划分为两个部分第一这部分主要是各个命令(applets)的实现其实大家也发现了很多目录都属于这部分只不过它们按照功能细分了例如网络命令(networking目录)、编辑命令(editors目录)等这部分也可以理解为是Busybox(各个命令)的启动代码部分第二部分则是libbb目录下的内容也就是Busybox(各个命令)的共享代码部分。 下面我们分别来介绍这两部分的主要内容 4.1.1applets的实现 目录”applets”包含了Busybox的启动代码(applets.c和Busybox.c)以及几个包含独立命令的子目录。 Busybox从applets/busybox.c文件中的main()函数开始执行该main函数将变量applet_name赋值为argv[0]然后调用applets/applets.c文件中的run_applet_and_exit()函数继续执行。run_applet_and_exit()函数使用applets[]数组(定义在include/busybox.h中在include/applets.h中填充内容)将程序的控制权传递给APPLET_main()函数(例如cat_main()或sed_main())。独立的applet命令从这里开始接管执行。 这就是为什么Busybox下的不同名称的命令调用不同的功能main()函数使用argv[0]作为参数在applets[]数组中查找合适的指向APPLET_main()函数的函数指针。 Busybox中的applets同样可以通过复用器”busybox”applet(查看libbb/appletlib.c文件中的函数Busybox_main())调用以及通过单独的shell在shell/*.c中使用grep命令查找SH_STANDALONE。关于使用这两种机制调用命令更多的信息可以查看官网信息其实它们只是通过不同的路径调用APPLET_main()函数。 命令(applet)子目录(archival,console-tools, coreutils, debianutils, e2fsprogs, editors, findutils, init, loginutils,miscutils, modutils, networking, procps, shell, sysklogd, and util-linux)对应着menuconfig中的子菜单的配置项。每一个子目录都包含实现相应子菜单命令的代码每一个子目录下有一个Config.src文件用于产生menuconfig菜单有一个Kbuild.src文件用于生产类似Makefile功能的文件。 运行时的—help信息是保存在usage_message[]数组中的该数组通过从usage.h中获取帮助信息在applets/applets.c中初始化该数组。在编译的过程中这些帮助信息同样被用于在docs目录下产生Busybox的文档(html,txt和man页面格式) 4.1.2libbb的实现 绝大多数非启动且在各个Busybox命令(applets)中共享的代码都放在libbb目录下。该目录多年未清理比较杂乱。如果有人想寻找一个好的项目参加到Busybox的开发中那么将libbb进行文档结构化将会是十分有帮助的而且是个不错的锻炼机会。 在libbb的共同主题包括分配功能测试失败和中止程序的错误消息以便调用者不用测试返回值(xmalloc()xstrdup()等)经过封装的open()close()read()write()这些经过封装的函数可以测试自己的失败和/或自动重试也包含链表管理功能的函数(llist.c)命令行参数的解析(getopt32.c)和一大堆其它的内容。 4.2Busybox配置选项说明 下面说一下Busybox中主要的配置项及其含义主要是顶层的配置项顶层的配置项分为两类第一类是支持的命令这部分其实也就是各个子目录的配置在2.2Busybox目录结构简介一节已经提到了第二类就是Busybox自身相关的例如编译选项、安装路径等这部分在3.1编译Busybox一节已经提到了。
http://www.pierceye.com/news/178931/

相关文章:

  • 深圳网站建设流程图货代网站制作
  • 建设一个网站需要什么技术人员在线音乐网站开发
  • 做现货黄金看什么网站网络服务商怎么查询
  • 英语作文网站紫色个人网站模板
  • 视频直播网站开发 设计网站做的文字乱码
  • 江苏省建设执业中心网站wordpress婚礼模板下载
  • 互联网网站开发html5怎么做网站可以注册的
  • 公司网站建设前期方案经典设计产品
  • 南昌市公司网站建设品牌建设浅谈
  • 网站实现留言功能吗制作视频用什么app
  • 聊城企业网站建设公司网页版wordpress教程视频
  • 网上购物的网站开发背景wordpress more标签使用教程
  • 多语言网站建设方案新建网站的价格
  • 企业网站服务器的选择企业网站建设市场分析
  • 阜阳做网站的公司网页制作自学教程
  • 阿里巴巴吧网站怎么做网页设计师属于什么部门
  • 望京网站建设公司红酒专业网站建设
  • 兰州市城市建设设计院网站游戏网站搭建需要多少钱
  • 网站建设易客vi设计公司 深圳
  • 白银网站运行网站建设客户去哪里找
  • 建湖网站设计云浮网站设计
  • 招聘网站的简历可以做几份vue可以做pc网站吗
  • 高端个性化网站建设版面设计经历了哪几个阶段
  • wordpress本地图片一个网站完整详细的seo优化方案
  • 试玩网站怎么做5g影视
  • 宝宝投票网站怎么做网站首页添加代码
  • 网站开发分类网站建设的目标
  • 做旅游的网站有哪些专业做鞋子的网站
  • 深圳旅游网站开发新余网络推广
  • 平台网站建设ppt雪梨直播