嵌入式web服务器火腿骑士

Boa设计主要出于速度和安全,是指不被恶意用户暗中破坏,而不是指它有很好的访问控制和通信加密。可以添加SSL来保证数据传输中的保密和安全。

2.操作系统

3.版本

从0.90到现在的最新发布版本0.94。最新发布版本0.94:boa-0.94.13.tar大小为120k,解压后为436k,编译之后的可执行代码在60k左右。最近开发版本:boa-0.94.14rc21

4.可执行程序的大小、内存需求情况

Boa有最少的资源需求。非常少的内存需求,能耗很小。特别适合于嵌入式市场。含有gcc2.95.3和GNUlibc2.2.5的boa的二进制文件大小为61K(495Kstaticallylinked)。使用库uClibc,boa变得更小(92Kstaticallylinked)。

有人曾做过测试:所用环境AMDDuron700,384MBRAM,RealTek8139,SiS900chipset-basedNICs,LinkSys10/100hub,Linux2.4,结果是:Boa的虚拟内存(VmSize)大小是1696kB,85%是库文件。虚拟内存数据(VmDatasize)大小是108kB。Boa每次连个并发连接消耗掉20kB的内存。

参考比较表:

Server

StrippedBinarySize

VmSize

ExternalLibraries

Boa0.94.13

61kB

1700kB

0

Apache1.3.26

277kB

11,000kB

9

64kB

1800kB

5.功能、特点

l支持HTTP/1.0(实验性的、有条件的支持HTTP/1.1)

l支持CGI/1.1,编程语言除了C语言外,还支持Python,Perl,PHP,但对PHP没有直接支持,没有mod_perl,mod_snake/mod_python等。

lBoa支持HTTP认证,但不支持多用户认证。

l它可以配置成SSL/HTTPS和IPv6。

l支持虚拟主机功能。

Boa服务器与其它服务器的不同:

为了追求速度和简单性,boa服务器在一些方面不同于一些流行的web服务器。

CGI程序的REMOTE_HOST环境变量没有设置

TheREMOTE_HOSTenvironmentvariableisnotsetforCGIprograms,forreasonsalreadydescribed.ThisiseasilyworkedaroundbecausetheIPaddressisprovidedintheREMOTE_ADDRvariable,so(iftheCGIprogramactuallycares)gethostbyaddroravariantcanbeused.

Boa不具有ssi(serversideincludes)。

Wedon'tlikethem,andtheyaretooslowtoparse.Wewillconsidermoreefficientalternatives.

Boa不具有访问控制。

Boawillfollowsymboliclinks,andserveanyfilethatitcanread.TheexpectationisthatyouwillconfigureBoatorunasuser"nobody",andonlyfilesconfiguredworldreadablewillcomeout.

没有chroot选项。

Thereisnooptiontorunchrooted.Ifanybodywantsthis,andiswillingtotryoutexperimentalcode,contactthemaintainers.

编译后的可执行的二进制文件为60kB左右,与boa差不多。版本已从1.90a发展到2.25b,

使用内存很少,没查到具体的数据。

5.特点、功能

特点:

的分配内存

便携:它能够在大部分的类Unix系统上运行,包括FreeBSD,SunOS4,Solaris2,BSD/OS,Linux,OSF等等快速:它的速度要超过主流的Web服务器(Apache,NCSA,Netscape),在高负载情况下,它要快的多。安全:它努力的保护主机不受到攻击,不中断服务器

功能:

l支持CGI1.1。

l支持基本的认证功能。

l支持Chroot功能

l支持Throttling。

l支持IPv6。

l支持多虚拟主机功能。

l支持自定义错误页。

l支持标准日志记录。

l通过扩展它也可以支持HTTPS、SSL和TLS安全协议。

·Software–哪种web服务器

oName

oVersion

oReleased–什么时候发布的

oActivedevel-是否当前还在开发中。

·Features–一些关键服务器的特点

oModel-whatkindofserveritis.Themodelsare:

§fork-startanewprocessforeachrequest.

§pre-fork-pre-startapoolofprocesseswhicheachhandlemultiplerequests.

§threads-usethreadsinsteadofprocesses.

§Javathreads-thisversionoftheJavaruntimeuses"Greenthreads"insteadofnativethreads,soitactsmoreliketheselect-basedservers.

§select-usenon-blockingI/Oandtheselect()systemcalltohandlemultiplerequestsinasingleprocess,singlethread.

oAuto-conf(自动配置)-whetherthere'sascripttoautomaticallyconfigurethebuildprocessforyourOS.

oBasicauth(基本认证)-whethertheserversupportsBasicAuthentication,forpassword-protectedwebpages.

oChroot-whethertheserverletsyouusethechroot()systemcalltoenhancesecurity.

oThrottling-theabilitytosetbandwidthlimitsoncertainpages,sotheydon'tusemorethantheirfairshareoftheserver'sresources.

·Size–各种服务器的大小

oTarbytes-theuncompressedsourcetarchivesize.

oSourcefiles-howmanysourceandheaderfiles.

oSourcelines-howmanylinesinthesourceandheaderfiles.

oExe-theexecutablesize.Forthecompiledprogramthisissizeofthemainexecutablefile,stripped.FortheJavaserversit'sthetotalsizeofthe.classfilesor.zipfiles.ForRoxenit'sthesizeofthePikeinterpreter.

·基础测试系统。Thebenchmarktestsystemisa297MHzUltraSparcwith256MBRAM/512MBswaprunningSolaris2.6,otherwisetotallyquiescent.RLIMIT_NOFILEis256soft/1024hard,andv.v_maxupis3941.

·RPS–每秒响应请求次数。maximumrequestspersecond.Thisisdeterminedbyrunningthetestloadatvariousparallel-requestratesandfindingthemaximumresponserate.Seethegraphbelowforthefulldata.

oSmallfiles-thesmall-filetestloadconsistsof1000files,each1KBlong,requestedrandomly.

·Maxusers–最大处理的用户数。Thisisdeterminedbyrunningthetestloadatvariousparallel-requestratesandseeingwhenitstartsscrewingup.Typicalscrewupsarerunningoutofmemoryorprocesses,sothatrequestsstarttimingoutorgettingrefused.

oLargefiles-thelarge-filetestloadconsistsof100files,each1MBlong,requestedrandomly.Also,eachconnectionisthrottledtosimulatea33.6Kbpsmodem.Notethat100033.6Kbpsconnectionsis3/4ofaT3.

发布的版本从1.00到1.19。最新发布的版本是version1.19.tar41kB,解压后为140kB。

4.功能、特点

它实现了HTTP服务器的所有的基本功能,包括:

·支持CGI功能

·支持基本的验证功能

·支持安全..上级目录功能

·支持通用的MIME类型

·支持目录列表功能

·支持使用index.html,index.htm,index.cgi作为首页

·支持多个根目录的虚拟主机

·支持标准日志记录

·支持自定义错误页

·Trailing-slashredirection

·它可以配置成SSL/HTTPS和IPv6.

5.可执行文件大小、内存使用情况

Windows,QNX,RTEMS,UNIX(*BSD,Solaris,Linux)。

l小巧、快速、不膨胀、无需安装、简单的40KB的exe文件,随意运行

l支持GET,POST,HEAD,PUT,DELETE等方法

l支持CGI,SSL,SSI,MD5验证,resumeddownload,aliases,inetd模式运行

l标准日志格式

l非常简单整洁的嵌入式API

l对库dietlibc支持友好,对uClibc(*)不友好。

l容易定制运行在任意平台:Windows,QNX,RTEMS,UNIX(*BSD,Solaris,Linux)

不具有的功能:

virtualhosts,userhomedirectorires,ACL(accesscontrollists),trafficshaping,keep-aliveconnections,FCGI(FastCGI)support.

编译后的可执行的二进制文件为40kB左右.

Unix、linux、Solaris、FreeBSD

lvirtualhosts

lvirtualdirectorylistings

lURL-Rewriting,HTTP-Redirects

lautomaticexpirationoffiles

lLargeFileSupport(64bitfileoffsets)

lRanges(start-end,start-,-end,multipleranges)

lon-the-flyoutput-compressionwithtransparentcaching

ldeflate,gzip,bzip2

lauthentication

lbasic,digest

lbackends:plainfiles,htpasswd,htdigest,ldap

lfastandsecureapplicationcontrolleddownloads

lServerSideIncludes

lUserTracking

lFastCGI,CGI,SSI

lPHP-Support:

lsamespeedasorfasterthanapache+mod_php4

lincludesautilitytospawnFastCGIprocesses(neccesaryforPHP4.3.x)

lviaFastCGIandCGIinterface

lsupportCodeCacheslikeTurckmm,APCoreaccelarator

lload-balancedFastCGI

l(onewebserverdistibutesrequesttomultiplePHP-serversviaFastCGI)

lSecurityfeatures:

lchroot(),setUID,setGID

lprotectingdocroot

lstrictHTTP-headerparsing

没有查到具体数据。

GoAheadWebserver是为嵌入式实时操作系统(RTOS)量身定制的Web服务器。它的目标也许不在于目前的WEB服务器市场,而是面向当嵌入式系统深入我们的工作与生活的明天,那时,它也许会成为使用最广泛的WEB服务器。GoAheadWebserver构建在设备管理框架(DeviceManagementFramework)之上,用户可以像标准的WebServices一样来部署自己的应用,不需要额外的编程。GoAheadWebserver支持SOAP客户端(SimpleObjectAccessProtocol,简单对象访问协议),XML-RPC客户端,各种Web浏览器和单独的Flash客户端。GoAheadWebserver支持一种类ASP的服务器端脚本语言,其语法形式和微软的ASP语法基本相同(ActiveServerPage)。GoAheadWebserver是跨平台的服务器软件,可以稳定地运行在Windows,Linux和MacOSX操作系统之上。GoAheadWebserver是开放源代码的,这意味着你可以随意修改Web服务器的功能。这款WEB服务器非常小巧,它的WINCE版本编译后的大小还不到60k,它的输出通常也是面向一些小屏幕设备。在性能方面,使用一颗24MHz的68040处理器,它的响应速度为20次/秒,使用266MHz的Pentium处理器可以达到50次/秒的响应速度。

WindowsCE,WindRiverVxWorks,Linux,Lynx,QNX,与Windows95/98/NT

3版本

Goahead从2003年开始发布,最新的版本:webs218.tar,827kB,解压后为2.28MB4.功能、特点

·很小的内存消耗

·支持认证功能DigestAccessAuthentication(DAA)

·支持安全的通信,例如SSL(安全的套接字层)

·支持动态Web页面,如ASP页面

·可以使用传统的C语言编程定制Web页面里的HTML标签

·支持CGI(公共网关编程接口)

·嵌入式的JavaScript脚本翻译器

·独特的URL分析器

·它基本上属于一个HTTP1.0标准的WEB服务器,对一些HTTP1.1的特性如(持久连接)也提供了支持。每秒65次connections

内存需求60K,它的WINCE版本编译后的大小还不到60k。

Linux,Windows,MacOSX,Solaris

Appweb最新版本是appweb-src-2.2.2,大小1.195MB,解压后6.22MB

AppWeb提供的一些关键好处:

l低开发成本。支持cgi/1.1、javastript、esp、php(4and5),加快开发进度。

l最小的资源需求。一秒能响应3500个请求,非常迅速,并且紧凑(110KB)。

l灵活的开发环境。Appweb高度模块化,可以根据需要取舍。

l可靠性

具有的功能:

·支持嵌入式JavaScript,esp,egi,cgi和php。.

·容易使用。大量的例子文档可用。

·安全。支持SSL、认证。SecureSocketLayer(SSL)includingbothclientandservercertificates.DigestandBasicAuthentication.Sandboxdirectivestolimitdenialofserviceattacks.

·模块化.Selectonlythefeaturesyouneedviadynamicallyloadablemodules.Alsosupportsgranularsourcecodecompilationdirectives.

·性能突出。.Fastestperformanceinitsclass.Over3500requestspersecondonaPCclassdevice.Memoryfootprintfrom110K.CodeandwebpagesarefullyROMable.

·符合标准.AppWebsupportsHTTP/1.0,HTTP/1.1,CGI/1.1,SSLRFC2246,HTTPRFC2617

·方便.AppWebhasbeenportedtoLinux,Windows,MacOSXandSolarisandsupportthefollowingCPUarchitectures:ARM7,MIPS32,i386/X86,PowerPCandSparc

FeatureOverview

DynamicContent

·PHP(4and5)

EmbeddedServerPages

·Server-sideJavaScripting

·Integratedsessionstatemanagement

·ScriptedgenerationofHTML

·Extensiblevianewfunctions

·Manageclientstate-dataviasessions

·Post-backparadigm.Samepageforformandpostlogic

Security

·SecureSocketsLayer(SSL)

·BasicandDigestAuthentication

·DirectoryandURLlocationbasedauthorization

·Sandboxlimits

·Accessandaccessviolationlogging

Modularity

·Dynamicloadingofmodules

·ExtensibleURLhandlers

·Extensible/replaceableauthorization,SSLandscript

EaseofUse

·Apache-styleconfigurationfile

·Debuggingandtracelogging

·PackagedinstallationsforLinuxandWindows

·Runasaservice/daemon

OtherFeatures

·HTTPserverandclientaccessprogram

·NamedandIPbasedvirtualhosts

·Listenonmultipleports

·CompilewebpagesandfilesintoCcodeforexecutionfromROM

Standards

·HTTP/1.1

·CGI/1.1

·Apacheconfigurationfilecompatibility

Performance

·Multithreadedwithhighperformancethreadpool

·Requestthroughput(>3,500requestspersecond)

·Scalesonmulti-cpusystems

·Smallmemoryfootprintevenunderheavyload(from400K)

DeveloperFeatures

·HTTPserverandclientlibraries

·Sharedandstaticlibrariessupplied

·CandC++APIs

·Operatesingle-threadedormultithreaded(Compileorrun-timeselectable)

·Easy,intuitiveprogrammingmodel

·Integratewithcommoneventmechanism:WindowsMessages,Unixselect,dedicatedthread

·Codingminimizedasmostfeaturescanbespecifiedviatheconfigurationfile

·Cookbookofsamples(cutandpastetogetgoing)

·SMPsafe

·Extensivedebugtracelogging

内存使用110KB,Smallmemoryfootprintevenunderheavyload(from400K)。

现在的嵌入式linux中CGI程序主要使用C语言。对于编写C语言的CGI程序,可以编写好程序之后,在linux操作系统下编译,用针对硬件平台的linux的交叉编译工具编译就可以,写的html网页界面在记事本写即可。我以前写的CGI程序就是在此环境下写的。这也是最普遍的开发方法。

对于用C语言编写CGI程序还可以使用CSP/eybuild提供的平台库及其开发套件,它可以将CGI程序嵌入式到网页中,可以提高开发效率。传统用C做CGI的方法是直接使用printf()等标准I/O函数输出HTML代码,这样不但使得C程序和HTML程序交织的混乱不堪,还使得页面输出的流程控制变得非常复杂。CSP与之不同,它充分吸取了ASP/JSP/PHP等以HTML/XML为模板嵌入脚本语言优点,并充分融合C语言的语言特性。使得CSP的开发更快速、更高效,同时还大大提了最终代码的可读性和维护性。CSP设计的最原始的初衷,就是要为嵌入式开发定制的一套类似ASP/JSP/PHP的C语言开发工具。针对设备WEB开发CSP提供了丰富的平台库和开发工具,它们为设备系统的WEB交叉开发和移植提供了有力的支持。通过交叉开发,可以在其它硬功件平台完全未准完毕的情况下进行高层软件的开发。这不仅能为产品开发有效地节约软硬件资源,还为WEB程序提供简单有效地调试工具。

用C语言编写CGI与其它语言编写CGI的比较:

C语言简洁紧凑,使用方便、灵活,对程序的语法结构要求不是很严,这就使得编程

人员在编程时具有很大的灵活性,可以设计出自己风格的程序。不像UNIXSHELL、Perl和TCL,C语言是一种编译语言,源程序代码要被系统的续译器翻译成机器能直接执行的二进制代码,因此用C语言编写的CGI程序的运行速度要比用解释性语言编写的程序快。使用编泽语言的另一个好处是即使CGI执行程序陷入黑客之手,他们也无法像分析用解释性语言编写的CGI程序那样找到程序中的漏洞。由于C语言最初是针对系统设计的,这使得C语言的字符串处理能力比较差,如果CGI程序需要对字符串进行一些复杂的操作,用C诺言实现起来将比较麻烦,代码量也较多。现在网上用C语言编写的CGI程序仅次于Perl(Perl编写程序简单方便)。

CGI与JSP的比较:

Servlet是Java技术对CGI编程的回答。Servlet程序在服务器端运行,动态地生成Web页面。与传统的CGI和许多其他类似CGI的技术相比,JavaServlet具有更高的效率,更容易使用,功能更强大,具有更好的可移植性,更节省投资。详细内容见备注。JSP是强于CGI,这也是现在CGI技术的使用没有JSP使用多的原因。但现在嵌入式web服务器端程序开发,还是CGI较多。由于使用JSP技术,在嵌入式web服务器开发中很少使用,在网上没有查到关于在嵌入式web服务器上应用的有关内容。

要实现阅读器的lmt,所需的CGI代码量估计不会很多,关键在于调试。

一个网友的个人意见:

CGI,mod_perl,PHP,JSP性能比较

测试结果很大程度上依赖于机器的硬件/软件配置,并随配置变化而产生差异,因此:本测试结果*仅供参考*测试用硬件:CPU:IntelPII300(66x4.5)RAM:192MHD:IBM20G(2Mcache)测试用软件:OS:Slackware7(自行编译的2.2.14核心)Web:Apache1.3.12(标准模块按缺省配置,所有模块静态编译)PHP4.0RC1(加入了MySQL支持)mod_perl1.23(缺省配置,未加EVERYTHING=1)ApacheJServ1.1(缺省配置)JDK:JDK1.2.2JSDK:JSDK2JSP:GNUJSP1.0.0JSP:GNUJSP1.0.0本测试是用Apache自带的ApacheBench(ab)进行的,命令为:/www/bin/ab-c20-n1000CGI/脚本URL此命令表示使用20个并发连接,进行1000次请求。所有测试均在本机进行,各种测试均反复进行5次,去掉最大最小值后取平均值。我分别测试了C写的CGI、Perl写的CGI、用mod_perl执行的PerlCGI、PHP和JSP。各种CGI/脚本均输出内容相似的简单页面,内容如下:htmlbodyh1ThexxxxHelloProgram/h1pHelloxxxxWorld!/body/html测试结果(只取了最具代表性的Requestspersecond即每秒处理请求数这一项)CGI/脚本类型每秒处理请求数CCGI128PerlCGI69mod_perl223PHP237JSP21测试结论:

JavaServlet和JSP的技术概述以及比较

JavaServlet及其特点

Servlet是Java技术对CGI编程的回答。Servlet程序在服务器端运行,动态地生成Web页面。与传统的CGI和许多其他类似CGI的技术相比,JavaServlet具有更高的效率,更容易使用,功能更强大,具有更好的可移植性,更节省投资(更重要的是,Servlet程序员收入要比Perl程序员高:-):

高效:

在传统CGI中,如果有N个并发的对同一CGI程序的请求,则该CGI程序的代码在内存中重复装载了N次;而对于Servlet,处理请求的是N个线程,只需要一份Servlet类代码。在性能优化方面,Servlet也比CGI有着更多的选择,比如缓冲以前的计算结果,保持数据库连接的活动,等等。

方便:

Servlet提供了大量的实用工具例程,例如自动地解析和解码HTML表单数据、读取和设置HTTP头、处理Cookie、跟踪会话状态等。

功能强大:

在Servlet中,许多使用传统CGI程序很难完成的任务都可以轻松地完成。例如,Servlet能够直接和Web服务器交互,而普通的CGI程序不能。Servlet还能够在各个程序之间共享数据,使得数据库连接池之类的功能很容易实现。

可移植性好:

Servlet用Java编写,ServletAPI具有完善的标准。因此,为I-PlanetEnterpriseServer写的Servlet无需任何实质上的改动即可移植到Apache、MicrosoftIIS或者WebStar。几乎所有的主流服务器都直接或通过插件支持Servlet。

节省投资:

不仅有许多廉价甚至免费的Web服务器可供个人或小规模网站使用,而且对于现有的服务器,如果它不支持Servlet的话,要加上这部分功能也往往是免费的(或只需要极少的投资)。

JSP及其特点

JavaServerPages(JSP)是一种实现普通静态HTML和动态HTML混合编码的技术,有关JSP基础概念的说明请参见《JSP技术简介》。

许多由CGI程序生成的页面大部分仍旧是静态HTML,动态内容只在页面中有限的几个部分出现。但是包括Servlet在内的大多数CGI技术及其变种,总是通过程序生成整个页面。JSP使得我们可以分别创建这两个部分。例如,下面就是一个简单的JSP页面:

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">

<HTML>

<HEAD><TITLE>欢迎访问网上商店</TITLE></HEAD>

<BODY>

<H1>欢迎</H1>

<SMALL>欢迎,

<!--首次访问的用户名字为"NewUser"-->

<%out.println(Utils.getUserNameFromCookie(request));%>

要设置帐号信息,请点击

<P>

页面的其余内容。.

</BODY></HTML>

JSP和ActiveServerPages(ASP)相比

Microsoft的ASP是一种和JSP类似的技术。JSP和ASP相比具有两方面的优点。首先,动态部分用Java编写,而不是VBScript或其他Microsoft语言,不仅功能更强大而且更易于使用。第二,JSP应用可以移植到其他操作系统和非Microsoft的Web服务器上。

JSP和纯Servlet相比

JSP并没有增加任何本质上不能用Servlet实现的功能。但是,在JSP中编写静态HTML更加方便,不必再用println语句来输出每一行HTML代码。更重要的是,借助内容和外观的分离,页面制作中不同性质的任务可以方便地分开:比如,由页面设计专家进行HTML设计,同时留出供Servlet程序员插入动态内容的空间。

JSP和服务器端包含(Server-SideInclude,SSI)相比

SSI是一种受到广泛支持的在静态HTML中引入外部代码的技术。JSP在这方面的支持更为完善,因为它可以用Servlet而不是独立的程序来生成动态内容。另外,SSI实际上只用于简单的包含,而不是面向那些能够处理表单数据、访问数据库的“真正的”程序。

JSP和JavaScript相比

JavaScript能够在客户端动态地生成HTML。虽然JavaScript很有用,但它只能处理以客户端环境为基础的动态信息。除了Cookie之外,HTTP状态和表单提交数据对JavaScript来说都是不可用的。另外,由于是在客户端运行,JavaScript不能访问服务器端资源,比如数据库、目录信息等等。

Java很占内存吗?

使用Java平台进行嵌入式设备开发时,其对内在的使用量,会不会比使用原始语言如C/C++更大些呢?这取决于软件的复杂性。Java由于虚拟机和内库的原因,有可能会导致内存开销的增大。下面比较一下Java平台内存的占用情况(基于Sun的实现):

CLDC(ConnectedLimitedDeviceConfiguration,运算功能有限、电力有限的嵌入式装置,如PDA、手机等):可工作于100K(RAM),JIT(JustInTime,即时编译技术)需要最大些。典型的部署要求500K-16M(RAM)。

CDC(ConnectedDeviceConfiguration,运算能力相对较佳、并请在电力供应上相对比较充足的嵌入式装置,如冷气机、电冰箱等):VM约为250K,JIT小于300K,VM+JIT+基础类库约占2-2.5M。典型的部署要求:4M-32M。

当然,内存的占用量还取决于应用的大小及内在的使用情况。可以看出,其实Java平台不会占用太大的内存。但是,这只是问题的一半。另一半是,Java代码最后部署时是以类文件来部署的,它主要是包括字节码和元数据。通过对CVM数据的分析,可以看出,字节码占据着大概30%的数据量。而采用JIT编译的代码相对于字节码而言,可以发现,内存的占有量增加了,并有一个7-8倍的ARM指令集。由于,可以估计:

Java类转成字节码的速度≈1/30%≈3.3x;

原始语言转成字节码的速度≈7x。

这意味着,Java代码的内存使用量约为原始语言代码的一半。当然这只是非常粗略的估算,但却是合理的估算。

使用Java的JIT后,只有那些使用频率高的代码才会被编译。而在系统中只是偶然被执行的代码则采用解释来编译。同时,JIT尽量使被编译的代码其内存占有量保持在一较小的范围内。对CVM(CDC所使用虚拟机),默认值为512K。而在一些较优秀的程序中,可以发现,其值为100K-300K。

这也就是说,使用Java编写的程序,只有使用频率比较高的代码才导致内存占用的增加。相反,使用C/C++编写的程序,整个代码都需要进行编译。因此,不能说使用Java语言编写的程序占用的内存就会比使用C/C++编写的程序大。这决定于软件相对于平台代码的复杂度及大小。如果软件规模比较大,Java平台所消耗的内存远小于Java类文件简洁性节约的内存,这种情况下,使用Java平台将有利于节约内存。如果软件的规模比较小,则Java平台消耗的内存就比较明显了,可以考虑使用C/C++来开发,以节约内存。

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

一:移植Boa(web服务器)到嵌入式Linux系统

一、Boa程序的移植

注意:若从boa上下载的是boa-0.94.13.tar.tar,解压方式一样解压:

2、生成Makefile文件进入boa-0.94.13,直接运行src/configure文件

[tekkamanninja@Tekkaman-Ninjasrc]$./configure

3、修改Makefile文件(注意:必须用cross-2.95.3,如使用3.4.1、4.1.1等等会出错)4、交叉编译

[tekkamanninja@Tekkaman-Ninjasrc]$make

5、去除调试信息,减小体积。(可选)

[tekkamanninja@Tekkaman-Ninjasrc]$/home/tekkamanninja/working/source/2.95.3/bin/arm-linux-stripboa

6、将编译好的程序放入根文件系统的/bin目录下。

[tekkamanninja@Tekkaman-Ninjasrc]$cpboa/home/tekkamanninja/working/nfs/rootfs/bin/

二、配置Boa

Boa需要在/etc目录下建立一个boa目录,里面放入Boa的主要配置文件boa.conf。在Boa源码目录下已有一个示例boa.conf,可以在其基础上进行修改。

1、Group的修改

[root@~]#adduser-guserboaChangingpasswordforboaEnterthenewpassword(minimumof5,maximumof8characters)Pleaseuseacombinationofupperandlowercaselettersandnumbers.Enternewpassword:Badpassword:tooshort.Warning:weakpassword(continuing).Re-enternewpassword:passwd[820]:passwordfor`boa'changedbyuser`root'Passwordchanged.[root@~]#

2、ScriptAlias的修改

修改ScriptAlias/cgi-bin//usr/lib/cgi-bin/为ScriptAlias/cgi-bin//var/www/cgi-bin/

这是在设置CGI的目录,你也可以设置成别的目录。比如用户文件夹下的某个目录。

3、ServerName的设置

注意:该项默认为未打开,执行Boa会异常退出,提示“gethostbyname::Nosuchfileordirectory”,所以必须打开。其它默认设置即可。你也可以设置为你自己想要的名字。比如我设置为:ServerNametekkaman2440

此外,还需要:

将mime.types文件复制/etc目录下,通常可以从linux主机的/etc目录下直接复制即可。

(以下配置和boa.conf的配置有关)

创建日志文件所在目录/var/log/boa

创建HTML文档的主目录/var/www

创建CGI脚本所在录/var/www/cgi-bin

[tekkamanninja@Tekkaman-Ninjalog]$mkdir-m777boa[tekkamanninja@Tekkaman-Ninjalog]$cd..[tekkamanninja@Tekkaman-Ninjavar]$mkdir-m777www[tekkamanninja@Tekkaman-Ninjavar]$mkdir-m777www/cgi-bin[tekkamanninja@Tekkaman-Ninjavar]$cd..[tekkamanninja@Tekkaman-Ninjarootfs]$cp/etc/mime.typesetc/

三、运行Boa

开发板操作:

[root@~]#boa

如果发现boa没有运行,则可以在开发板的/var/log/boa/error_log文件中找原因。

比如端口已被其他程序占用:

[root@~]#cat/var/log/boa/error_log[20/Feb/2008:21:21:57+0000]boa.c:194-unabletobind:Addressalreadyinuse

或是用户设置错误等等,都可以查到。

四、功能测试

静态网页测试

将静态网页存入根文件系统的/var/www目录下(可以将主机/usr/share/doc/HTML/目录下的index.html、homepage.css和img、stylesheet-images目录复制到/var/www目录下)

我参考《嵌入式Web服务器移植》的做法如下:

在根文件系统的/var目录下

[tekkamanninja@Tekkaman-Ninjavar]$cp/usr/share/doc/HTML/index.htmlwww/[tekkamanninja@Tekkaman-Ninjavar]$cp-r/usr/share/doc/HTML/imgwww/[tekkamanninja@Tekkaman-Ninjavar]$cp/usr/share/doc/HTML/homepage.csswww/[tekkamanninja@Tekkaman-Ninjavar]$cp-r/usr/share/doc/HTML/stylesheet-imageswww/

CGI功能测试

1、编写HelloworldCGI.c程序

[tekkamanninja@Tekkaman-Ninjasource]$vihelloworldCGI.c

(主程序的程序开头一定要用Tab,而不是空格,不然编译可能不通过)

#include#includeintmain(void){printf("Content-type:text/html\n\n");printf("\n");printf("CGIOutput\n");printf("\n");printf("

Hello,world.

\n");printf("\n");printf("\n");exit(0);}

[tekkamanninja@Tekkaman-Ninjasource]$/home/tekkamanninja/working/gcc4.1.1/gcc-4.1.1-glibc-2.3.2/arm-9tdmi-linux-gnu/bin/arm-9tdmi-linux-gnu-gcc-ohelloworldCGIhelloworldCGI.c

将helloworldCGI拷贝至根文件系统的/var/www/cgi-bin/下

[tekkamanninja@Tekkaman-Ninjasource]$cphelloworldCGI../nfs/rootfs/var/www/cgi-bin/

3.测试

网页出现Hello,world.调试成功!

[tekkamanninja@Tekkaman-Ninjasrc]$cd../..[tekkamanninja@Tekkaman-Ninjasource]$cd../nfs/rootfs/etc/[tekkamanninja@Tekkaman-Ninjaetc]$mkdirboa[tekkamanninja@Tekkaman-Ninjaetc]$chmod777boa/[tekkamanninja@Tekkaman-Ninjaetc]$cdboa[tekkamanninja@Tekkaman-Ninjaboa]$kwriteboa.conf

CC=/home/tekkamanninja/working/source/2.95.3/bin/arm-linux-gccCPP=/home/tekkamanninja/working/source/2.95.3/bin/arm-linux-gcc-E

[tekkamanninja@Tekkaman-Ninjasource]$tarxzfboa-0.94.13.tar.gz

--disable-FEUTARE-disable-ipv6-disable-lfs可以不加。

必需修改的地方有:

你可以自己定义,这里就是设置web服务的根目录。

屏蔽一下语句,不然嵌入式这样的小系统下可能无法启动#$HTTP["url"]=~"\.pdf$"{#server.range-requests="disable"#}

Dynamicsectionatoffset0x20790contains21entries:TagTypeName/Value0x00000001(NEEDED)Sharedlibrary:[libdl.so.2]0x00000001(NEEDED)Sharedlibrary:[libc.so.6]0x0000000c(INIT)0xc2000x0000000d(FINI)0x231c00x00000004(HASH)0x81280x00000005(STRTAB)0xa3380x00000006(SYMTAB)0x8b480x0000000a(STRSZ)5946(bytes)0x0000000b(SYMENT)16(bytes)0x00000015(DEBUG)0x00x00000003(PLTGOT)0x308600x00000002(PLTRELSZ)960(bytes)0x00000014(PLTREL)REL0x00000017(JMPREL)0xbe400x00000011(REL)0xbe000x00000012(RELSZ)64(bytes)0x00000013(RELENT)8(bytes)0x6ffffffe(VERNEED)0xbd700x6fffffff(VERNEEDNUM)20x6ffffff0(VERSYM)0xba720x00000000(NULL)0x0

在开发板为此程序新建一个用户及存储网页的根目录以及一个log目录:

THE END
1.AzureDevOpsServer:集成奇安信代码卫士(CodeSafe)本文主要介绍集成Azure DevOps Server和奇安信代码卫士的方法,并在持续集成的实践中应用这个产品。 2. 实现方法 2.1 安装插件 为了实现Azure DevOps Server和奇安信开源卫士的集成,奇安信公司开发了一款Azure DevOps Server扩展插件,名称为“QAX Code Safe” https://blog.csdn.net/dev66/article/details/145435484
2.快速开发新境界,低代码平台解锁项目高效编程服务器工作流应用低代码(Low-code)是指一种应用程序开发方法,它通过图形化的用户界面让开发者可以通过拖拽组件、配置参数等操作来创建应用,而不是编写大量底层代码。这种方式大大降低了编程难度,提高了开发效率,使得即使是不具备深厚编程背景的人也能参与到应用开发中来。低代码平台通常包含预构建的功能模块、模板和API接口,支持多端部https://www.163.com/dy/article/JM2AVQ3K0518CPJB.html
3.低代码开发平台唛盟lcode:低代码开发平台 简介唛盟低代码开发平台mdp-lcode 唛盟低代码开发平台简称唛盟或者mdp. 唛盟-总体介绍 唛盟旨在为企业开发业务系统提供一整套解决方案,唛盟具有高效率、低代码、支持0代码、功能丰富等特点。企业可以在唛盟工程之上,加入更多其它业务功能;也可以以唛盟作为模板,创建新的工程,用于开发其它业务。使用唛盟构建https://gitee.com/maimengcloud/mdp-lcode-ui-web
4.OneCode一路走来OneCode 开源范围及功能: OneCode 第一个版本,以V5版本的引擎为核心,将平台全部600余组件的2/3贡献到社区版本,同时为方便大家构建自身的工程体系,还会同步开源 OneCode V3版本的支持环境VFS(JAVA开发)虚拟存储系统,以及配合V3 部署使用的 OneCode Server 和相关的部署管理插件。 https://developer.aliyun.com/article/1198565
5.IBMServer市场价格走势报告与分析:究竟多少钱?(ibmservice分区有IBMServer作为市场上的知名品牌,其价格走势及功能特点一直是广大用户关注的焦点。 本报告旨在分析IBMServer的市场价格走势,探讨其价格背后的原因,并简要介绍IBMService分区的功能。 二、IBMServer市场价格走势分析 1. 价格概况 IBMServer的价格根据型号、配置、市场供需等因素而有所差异。 https://www.ulidc.com/2025/02/01/ibmserver%E5%B8%82%E5%9C%BA%E4%BB%B7%E6%A0%BC%E8%B5%B0%E5%8A%BF%E6%8A%A5%E5%91%8A%E4%B8%8E%E5%88%86%E6%9E%90%EF%BC%9A%E7%A9%B6%E7%AB%9F%E5%A4%9A%E5%B0%91%E9%92%B1%EF%BC%9F-ibmservice%E5%88%86/
6.深入理解Electron(二)VSCode架构探索背景说起建立在Electron之上以上是VS Code源码的核心组织架构。通过code和server作为入口,workbench作为主框架,而editor、platform和base则成为这个庞大应用的基石。 由于VSCode本身同时提供面向浏览器的版本和客户端的版本,所以在二级目录下整体的目录结构又是跟所支持的目标平台环境有关: https://article.juejin.cn/post/7205044806275743801
7.定制返回JSON的数据和结构RealTimecoding特点功能 对于后端 提供万能通用接口,大部分 HTTP API 不用再写 零代码增删改查、各种跨库连表、JOIN 嵌套子查询等 自动生成文档,不用再编写和维护,且自动静态检查 自动校验权限、自动管理版本、自动防 SQL 注入 开放HTTP API 无需划分版本,始终保持兼容 https://github.com/Tencent/APIJSON
8.IBMAIX常见问题处理:《转载》mdl96304, 查看node_down和node_down_complete事件时,需要查看 /usr/es/adm/cluster.log和/tmp/hacmp.out 5, 在一个活动的HACMP v5.1集群中,下列服务是必须的 topsvcs grpsvcs emaixos emsvcs clstmgrES 6, HACMPv5.x 中的enhanced concurrent VG 能够被定义成一个共享的文件系统(无所谓是否是裸设备或者jfs,jfs2)http://blog.chinaunix.net/uid-23280800-id-4278673.html
9.在浏览器上运行VSCode——GitHub热点速览v.21.22这个项目竟然一直没被我发现过!Code-server 是一个让你能在浏览器中运行 VS Code 的工具。特性: 可在具有一致开发环境的任何设备上写代码 用云服务来加速测试、编译、下载等等功能 除此之外,code-server 还支持丰富的 VS Code 插件。 GitHub 地址→https://github.com/cdr/code-server https://cloud.tencent.com/developer/article/1838804
10.centos搭建codeserver配置HTTPS登录页自定义实现步骤其它综合功能预览 一、Code-Server Code-Server是一款网页版的IDE,相当于VSCode网页版(vscode.dev/),搭建完成后可以随时随地访问自己的代码 主要用途是让用户可以在任意设备和平台上使用基于web的IDE来进行编程工作。通过Code-Server可以使用浏览器访问远程服务器上的IDE,而无需在本地安装软件和配置开发环境。这对于不方便或不https://www.jb51.net/article/283544.htm
11.windowsVScode配置dockers环境vscodeserverdockercode-server 是一个基于 Visual Studio Code 的开源项目,它允许你通过 Web 浏览器来使用 Visual Studio Code 的编辑功能。这意味着你可以在任何设备上,只要有浏览器和网络连接,就可以访问和使用 Visual Studio Code,而无需在本地安装开发环境。 以下是 code-server 的一些特点和功能介绍: https://blog.51cto.com/u_16099165/11751541
12.code中文翻译:关闭遥测相关功能,使其不再收集和发送相关数据信息。 --disable-update-check: 说明:禁用更新检查。若不添加此标志,code-server会每隔 6 小时对照最新的GitHub版本进行检查,并每周通知一次有新版本可用。 中文翻译:禁止进行版本更新检查操作。若未使用该标识,code-server软件将会每间隔 6 个小时去比对查看是https://www.emchaye.cn/docs/tutorial-debian/20241217-02/
13..NETFramework中的新增功能.NET Framework 4.7.2 的持续关注是改进辅助功能的可访问性,这样应用程序就可以为辅助技术的用户提供适当的体验。 有关 .NET Framework 4.7.2 中的辅助功能改进的信息,请参阅 .NET Framework 中辅助功能的新特点。基类.NET Framework 4.7.2 具有大量加密增强功能、对 ZIP 存档的更好的解压缩支持和其他收集 APIhttps://docs.microsoft.com/zh-cn/dotnet/framework/whats-new/
14.AAA和用户管理原理描述ME60V800R023C10SPC500特性描述对RADIUS服务器状态探测功能:收到AAA的认证或计费消息后,如果当前服务器的状态为Down,启动服务器探测处理,将消息转换为报文后向当前服务器发送,该报文作为服务器的探测报文,如果收到RADIUS服务器的回应,则认为该服务器重新可用。 RADIUS服务器的自动切换功能:如果当前发送的服务器的状态为不可发送,或者发送次数超过当前https://support.huawei.com/enterprise/zh/doc/EDOC1100366534/efa34814
15.code但是其属于一款客户端软件,在远程服务器上使用不如 code-server,code-server 是一款能够在网页上使用的 vscode,极大的方便程序开发人员快速访问与编码。本篇介绍如何在 ubuntu 18.04 上安装和配置,使其适用于 python 开发。 安装 bash 1 2 3 4 5 6https://xujinzh.github.io/2024/04/10/install-code-server/
16.光学成像设计软件我们的客户支持团队由CODE V专家、经验丰富的光学工程师组成。如果您需要帮助,可随时联系我们,我们将与您分享视频、文档、教程、示例模型等。 主要特点 设计优化(包括全局优化功能)加速产品投入市场 快速,精准的公差分析对产品制造提供卓越支持 具有突破性创新的精准光束传播分析 https://www.synopsys.com/zh-cn/optical-solutions/codev.html
17.vscode下载vscode中文版手机版下载v1.0.0vscode是一款可以在手机客户端进行的免费代码编辑软件,采用Linux Arm64 启动一个 code-server,和本地内容资源的加载,结合现有的元素和功能系统进行打造,让众多的玩家们可以在手机上的实现自动编辑和代码转换的操作,感兴趣的小伙伴可以一起来免费下载试试哦。 软件功能 功能特点远程仓库 : 加载 git 代码 ,就像本地打https://app.ali213.net/android/485549.html