导航:首页 > 源码编译 > ash源码

ash源码

发布时间:2022-12-06 22:37:25

① 求linux命令的源代码,

1.ash
(1)简介
ash --a shell
这是由Kenneth Almquist在1989年编写的,ash是Linux下的许多命令解释器中的一个,它的许多特性接近于SYSTEM V的shell。
(2)部分参数说明
ash [ -efIijnsxz ] [ +efIijnsxz ] [ -c命令] [ 参数 ]
-c 命令:若用-c参数,则ash从标准输入中读入命令(在执行完-c带的命令之后)。
-s:若用-s参数,则ash从标准输入中读入命令(在执行完-c带的命令之后)。
如果不跟-c -s参数则ash以所跟的第一个参数为文件名,从此文件中读入命令。如无参数则ash缺省设定-s参数,从标准输入中读入命令,直到输入exit。
如果参数0的第一个字母是"-"则ash确定为login shell,ash将从/etc/profile或用户的根目录中的.profile读入相应的设置和环境变量。
-e:若用-e参数,则ash执行命令后返回值为非零值时则退出ash。
-f:若用-f参数,则ash关闭自动产生文件名功能。
-j:打开伯克利UNIX风格的工作控制。
-n:读入命令但是并不执行。
(3)范例
ash -c ls
ash执行ls这个命令后退回原先的目录和shell。
ash -s
ash执行一个新的shell,现在可以在这个shell中工作,按(Ctrl-D)或输入exit后,则退回原先的目录和shell,所设定的环境变量返回原先的值。
2.at
(1)简介
at,batch,atq,atrm:安排、检查、删除队列中的工作。
由Thomas Koenig编写。
(2)部分参数说明
at [-V] [-q队列] [-f文件名] [-mldbv] 时间
at -c 作业 [作业…]
atq [-V] [-q队列] [-v]
atrm [-V] 作业 [作业…]
batch [-V] [-q队列] [-f文件名] [-mv] [时间]
at在设定的时间执行作业。
atq列出用户排在队列中的作业,如果是超级用户,则列出队列中的所有工作。
atrm删除队列中的作业。
batch用低优先级运行作业,只要系统的loadavg(系统平均负载)<1.5(或者在atrun中设定的值)它就开始执行作业。
-V:若用-V参数,则显示版本号到标准错误输出。
-q队列:若用-q参数,则指定可选队列名称,队列名称可以是a到z或A到Z之间的任意字母。at的缺省队列名是c,batch的缺省队列名是E,队列的字母顺序越高,则队列的优先级越低。如果是大写字母的话则提交给batch,如果atq使用-q参数,则只显示这个队列中的作业。
-m:执行完作业后即使此作业并没有输也给提交作业的用户发送提示mail。
-f文件名:从文件中读取作业。
-l:等于atq。
-d:等于atrm。
-b:等于batch。
时间:这是用户设定的作业开始执行的时间。时间的格式分成三个部分:时间、日期、偏移量。可接受的时间形式是HHMM或HH:MM,在一天中指定的时间运行,如果时间过去了就在第二天执行。可以在时间后加入AM或PM使其在上午或下午运行,也可以指定在哪一天执行,给出日期的格式应为MMDDYY或MM/DD/YY或MM.DD.YY,也可以给出偏移量:
时间+计数时间间隔
时间间隔可以是minutes,hours,days,weeks。
也可以指定today让作业在今天执行,指定tommorow让作业在明天执行。
(3)注意事项
如果没有指定-f选项,是at从标准输入读入所有的命令,所以可以通过管道、重定向或交互输入来输入命令。
超级用户可以在任何情况下使用at系列的命令。一般用户使用at系列命令的权利由文件/etc/at.allow,/etc/at.deny控制。如果/etc/at.allow存在,则只有列在这个文件中的用户才能使用at系列的命令。如果/etc/at.allow文件不存在,则检查/etc/at.deny这个文件。只要不列在这个文件中的用户都可以使用at系列的命令。缺省的配置是/etc/at.deny,是一个空文件,这表明所有的用户都可以使用at系列的命令。
(4)范例
at -f work 4pm + 3 days
在三天后下午4点执行文件work中的作业。
at -f work 10am Jul 31
在七月31日上午10点执行文件work中的作业。
3.banner
banner:打印大标题。
banner在标准输出上打印高质量的标题,如果没有输入要打印的文字,则其等待从标准输入输入一行文字。其标题由"*"组成。由Mark Horton编写。
(2)部分参数说明
/usr/bin/banner [ -wn ]信息
-w宽度 输出宽度从131到n,n缺省为80列。
(3)注意事项
不能打印字符:< ,>,[,],\,^,_,{,},|,-。信息长度为10个英文字符,如果用空格分开字符串,还是连续打印字符串,两个字符串可以被括在引号(")中。这命名banner把这些字任串置于同一行中。
4.bash
(1)简介
bash:GNU Bourne-Again Shell
自由软件基金会(Free Software Foundation Inc)拥有bash版权。
bash是Linux下的许多命令解释器中的一个,同sh兼容,并且包含了ksh和csh中一些有用的特性。遵从IEEE Posix Shell and Tools specification(IEEE Working Group 1003.2)。

② 电影《普罗米修斯》讲的什么

该片是《异形》的前传电影,讲述了一个团队在地球上发现了人类起源的线索,并踏上了太空之旅后,必须血战到底以保护人类在未来不被毁灭的故事 。

剧情简介

21世纪末,人类的科技水平已高度发达,克隆人技术和宇宙航行早已实现,不再是梦想。与此同时,许多科学家仍孜孜不倦追索着人类起源的秘密与真相。通过对许多古老文明的考察与对比,科学家伊丽莎白·肖(劳米·拉佩斯饰)和查理·赫洛维(罗根·马歇尔-格林饰)发现,人类可能是来自一个遥远星系的外星人创造的。

在Weyland公司资助下,他们乘坐维克丝(查理兹·塞隆饰)所掌管的宇宙飞船普罗米修斯号前往那颗未知的星球。经过对当地的考察,地球人的设想成功得到印证。可是他们贸然探查“神的秘密”的行为,也将自己引入万劫不复的深渊。







角色介绍

1、伊丽莎白·肖演员劳米·拉佩斯

伊丽莎白·肖是一名不仅具备科学知识,还具有信念的科学家。她在很年轻时丧父,也是“普罗米修斯号”探险的主角。她和男友奉太空船企业老板彼得·威兰之命,远赴外太空探索人类起源的秘密。

2、大卫演员迈克尔·法斯宾德

大卫是一个有着性格缺陷的雌雄同体机器人,他是资助“普罗米修斯号”任务的“Weyland”企业所派遣的耳目,也是船上的太空管家。他在途中表面上负责照顾所有人的生活,暗地里却在执行一项秘密行动。

③ 知道网站后台和用户名,如何破解进入后台

用户名知道了还要知道密码网站不是你自己的密码你不知道无法进入就要找漏洞,如果是你自己的数据里面找到加密码的代码直接修改成你自己的就可以了

希望能帮到您!

④ 我下载火狐浏览器的源代码 怎么把他变回可以执行的程序呢

源代码编译安装Firefox(linux下)http://forums.mozine.cn/index.php?showtopic=601

Windows下如何编译Mozilla源代码http://www.firefox.net.cn/newforum/viewtopic.php?p=12810

如何在window环境下编译mozilla/firefox
zz from lotusroots.bokee.com

mozilla/firefox这个浏览器(现在的最高版本是firefox 2.0 rc3,稳定版本是firefox1.5.0.7)已经很有名气了,这次,我因为需要使用里面的某些部分,不得不从源代码开始编译它。当然了,自己不太可能使用linux来编译,所以我使用的环境是win2003系统。
1,首先到网上找信息,发现编译它并不是那么容易的事情,许多人都出现了许多问题。值得一看得有如下几个网页:官方关于编译的页面:http://developer.mozilla.org/en/docs/Build_Documentation;使用vs2005编译mozilla(firefox)的页面:http://cs.senecac.on.ca/~david.humphrey/writing/firefox-win32-build.html;更清楚的讲解vs2005编译的页面:http://zenit.senecac.on.ca/wiki/index.php/Assignment_1_(pstdenis);
2,准备编译工具。要准备的工具实在是很多哦,包括:vs2005、cygwin、nsis、moztools共4项。第一项好说,去任何一个站点下载免费版的vs2005,第二项的下载地址为:http://www.cygwin.com/,第三项需要到如下地址去下载:http://nsis.sourceforge.net/Download,第四项的下载地址为:http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/moztools-static.zip。
3,安装编译工具。vs2005的安装(主要安装的是vc++)没有什么可说的,唯一的一点就是:为了以后配置的方便,推荐使用默认目录安装。nsis的安装也容易,注意使用full安装选项,不要漏掉什么东西了。moztools只是一个压缩包,解压缩后放到一个目录就行了。cygwin的安装是一个比较麻烦的事情,因为你下载的只是一个客户端,你需要运行它,然后在线升级(安装)你需要的功能,一定要选择一个快速的服务器(如果你的网络很慢的话,我建议你就不要编译mozilla了)。安装的时候,你需要选择如下几个包:
* ash
* diffutils
* fileutils
* fintils
* gawk
* grep
* sed
* sh-utils
* textutils
这几个都是默认安装的。你还需要额外的安装如下几个包:
* coreutils
* cvs
* cygutils
* libiconv
* make
* patch
* patchutils
* perl
* unzip
* zip
版本随便都可以。当然了,这个只是奢望,目前的mozilla的源代码仅仅支持3.80版本的make程序,而现在从cygwin里面是无法安装上make 3.80版本的,因为最低都是3.81版本。所以,你还需要到下面去下载一个make 3.80版本回来:http://ftp.gnu.org/pub/gnu/make/,然后把那个里面的bin\make.exe拷贝到cygwin目录下的bin\make.exe位置,覆盖原来的那个make.exe即可。
4,配置。总共有2个部分需要配置,一个是各种工具的路径,一个是编译必需的mozconfig文件。为了开始配置,我们需要设定一个目录,用来保存 mozilla的源文件。推荐的方式是这样的:a) 建立目录:c:\proj;b) 建立目录:c:\proj\mozilla;c)把moztools工具保存到c:\proj\moztools下;d) 把cygwin安装到c:\proj\cygwin目录下。当然,这不是必需的。于是,第一部分配置可以使用如下的一个配置文件实现:
@echo off

rem --- CVS Setup
SET CVSROOT=:pserver:[email protected]:/cvsroot
SET CVS_RSH=ssh

rem --- paths of moztools
set MOZ_TOOLS=c:\proj\moztools
set GLIB_PREFIX=%MOZ_TOOLS%
set LIBIDL_PREFIX=%MOZ_TOOLS%

rem --- path of window
SET INCLUDE=
SET LIB=
SET PATH=c:\;c:\windows\system32;c:\windows\system32\wbem

rem --- path of cygwin
SET PATH=c:\proj\cygwin\bin;%PATH%

rem --- path of vc8(vs 2005)
CALL "c:\Program Files\Microsoft Visual Studio 8\VC\vcvarsall.bat" x86

rem --- path of moztools/glib and /libidl
SET PATH=%PATH%;%GLIB_PREFIX%;%GLIB_PREFIX%\bin
SET INCLUDE=%GLIB_PREFIX%\include;%INCLUDE%
SET LIB=%GLIB_PREFIX%\lib;%LIB%

rem --- moztools comes last after glib/libIDL
SET PATH=%PATH%;%MOZ_TOOLS%\bin

rem --- path of NSIS
SET NSIS=c:\NSIS
SET PATH=%PATH%;%NSIS%
把这些文本保存为一个bat文件,比如:buildsetup.bat,推荐保存到c:\proj目录下。
第二部分的处理有点特点,现在我们需要建立一个如下内容的名字叫做:“.mozconfig”的文件,不要试图直接建立这个文件,因为window会告诉你说必须键入文件名!你使用记事本,输入如下内容,然后保存为“.mozconfig”即可:
# Building Firefox Trunk with Debugging
. $topsrcdir/browser/config/mozconfig

# Put all obj files in one place, not in src tree
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/firefox-objdir
ac_add_options --disable-static
ac_add_options --enable-shared

# Debug Build Setup Options
ac_add_options --disable-optimize
ac_add_options --enable-debug

# I'm using Canvas for my work
ac_add_options --enable-canvas

# I disabled the installer
ac_add_options --disable-installer
这个文件必须保存到刚才建好的c:\proj\mozilla目录下。
5,开始下载源文件。你可以不下载源文件,你可以到ftp.mozilla.org去下载最新的代码,然后保存到mozilla,再进行第6步操作。但是,需要提醒你的是:我下载了4份源代码(seamonkey,mozilla,firefox),却没有一个能够编译的,不是说少了文件就是说哪个代码编译错误。反正我建议你是用下面的这种直接通过cvs到mozilla上下载源代码的办法(因为它没有压缩,所以,这些代码的大小在240M左右,压缩后的代码一般在30M左右)。
a)首先进入c:\proj目录,并执行buildsetup.bat,下面是屏幕的操作过程:
C:\Documents and Settings\Administrator>C:
C:\>cd proj
C:\proj>buildsetup.bat
Setting environment for using Microsoft Visual Studio 2005 x86 tools.
C:\proj>
b)然后下载cvs的配置文件,下面是屏幕显示:
C:\proj>cvs login
Logging in to :pserver:[email protected]:2401/cvsroot
CVS password:
C:\proj>cvs co mozilla/browser/config mozilla/client.mk
cvs checkout: Updating mozilla/browser/config
C:\proj>
这里,注意输入的password为:anonymous。
c)接着进入mozilla目录,然后就开始了漫长的源文件下载了,一个字:等待:

C:\proj\mozilla>make -f client.mk checkout
6,一切准备妥当了,现在该开始编译程序了:
c:\proj\mozilla>make -f client.mk build

其他说明:
1,下载的源文件大概有240M,所以,下载是一个漫长的过程,我用了30多分钟;
2, 编译是一个更加漫长的过程,我使用了3个小时才搞定,我的配置是:1.8G + 512M;
3,因为我们在“.mozconfig”文件里面使用了debug模式,编译出来的是一个debug模式下的名字叫做firefox.exe 的文件,如果你是用它进行网络连接的话,你会发现常常跳出错误窗口,这个是用来测试的(你需要每次点忽略才能继续执行)。会十分的麻烦的,所以,你可以把 “ac_add_options --enable-debug”这一行去掉,免得麻烦。换上:“ac_add_options --disable-debug”,记住,这样处理后能够加快编译的速度!加快速度的另外一个办法是加上:“ac_add_options --disable-tests”,这样就不会生成许多测试程序了。推荐的,编译firefox时,最好的“.mozconfig”是这样的:
. $topsrcdir/browser/config/mozconfig
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/ff-opt-static
ac_add_options --enable-optimize
ac_add_options --disable-debug
ac_add_options --disable-static
ac_add_options --enable-shared
ac_add_options --disable-tests
mk_add_options MOZ_CO_PROJECT=browser
4, 编译好了的文件在c:\proj\mozilla\firefox-objdir\dist\bin 目录下(如果你使用的是非debug的模式,那么,文件在目录c:\proj\mozilla\ff-opt-static\dist\bin下),名字叫:firefox.exe,可是,当你执行它了之后,你到帮助下面查看它的版本,会发现它叫:MineField 3.0a1(以前不是着名字)的。赫赫。
5, 如果你想编译成一个安装的版本,你可以删除:“ac_add_options --disable-installer”。其他更多的编译选项可以参考:http: //developer.mozilla.org/en/docs/Configuring_Build_Options。

如果大家有什么问题可以随时发送上来。

⑤ 什么是liunx

一、历史及版本
Liunx的前身源于unix,由芬兰的helsinki大学技术科学系学生lins torvalds开发,1991年发生了linux0.11版。
其它版本:由于linux标榜自由开放,致使其发行趋于多样化,最常见有以下版本:
1、Redhat linux 2、debian
3、slackware linux 4、turbo linux
5、open linux 6、linux mandrake
7、informagic 8、suse linux

二、linux优势
Linux是一种非常优秀的操作系统,支持多用户,多进程,实时性好,功能强大而且稳定。同时具有良好的兼容性和可移植性。
Redhat作为目前众多发行版本中的一种,一方面它已经是行业的标准,有大量为其开发的软件;另一方面redhat是自由软件,获得途径很多,可以自由使用;redhat系统的稳定性及安全性非常出色。
Redaht具备unix最基本的命令、排版、文本处理、各种服务器管理、程序设计开发、网络联机与管理甚至还可以使用windows98,具体表现如下:
1、多任务管理
Linux是抢占式多任务,多用户操作系统,具有优秀的内存和多任务管理能力,不仅可以让用户可以同时执行数十程序,还允许用户远程登陆,对用户帐号等各方面都极其出色。
2、多重机开机管理
Linux自带开机管理程序:lilo及GRUB来对多操作系统进行配置。
3、图形集面界面
Linux配有特殊的用户界面即x windows system,这是unix系统的标准图形界面。
4、网络功能
Linux使用tcp/ip协议作为主要的网络通信协议,内建ftp、telnet、mail、apache等各种功能,另外也提供拨号方式连接网络。而且稳定性高。Windows能够做得,linux都能做,而且稳定性及安全性都要比windows好得多多。
5、程序开发工具
Linux当中包含大量的开发工具,例如:gcc、cc、c++、perl等。
6、便捷的升级程序获得
因为linux是免费的,自由的开放的操作系统,所以很多软件可以容易在互联网上找到其升级包。无须任何费用。

四、linux作为服务器操作系统的原因
1、广泛的协议支持
1)、TCP/IP通信协议 2)、IPX/SPX通信协议
3)、Apple talk通信协议 4)、ISDN通信协议
5)、PPP、SLID、PLIP等通信协议 6)、ATM通信协议
2、文件系统下良好的兼容性
可与当前主要的网络操作系统保持良好的兼容性,‘文件与打印共享’,可兼容的环境有apple环境、windows、novell、unix环境。
3、支持多种网络互联:
1)、支持路由器、桥接器、IP伪装、IP记帐、IP别名及网络流量控制。
2)、支持防火墙、端口传递、负载均衡、代理服务器、通信协议隧道和虚拟专用网络等。
4、完善的网络支持:
1)web服务器及客户端 2)支持FTP服务器
3)支持电子邮件服务及客户端 4)支持dns及dhcp服务器
5)支持网络信息服务NIS 6)支持认证服务
5、远程执行任务
1)、telnet远程终端服务 2)、远程命令方式
3)、X windows方式
6、多种应用系统的支持
1)语言编程环境:c、c++、java
2)图形环境:gnome、kde、gimp、windows maker等
3)编辑器:xemacs、vim、gedit、pico等
4)shell:bash、tcsh、ash、csh等
5)文字处理软件:open office、kwork、abivord
6)数据库:mysql、postgresql、oracle8I等。

android 怎么样实现ashmem 详细�0�3

anonymous/named mmap,其好处是提供了辅助内核内存回收算法的pin/unpin 机制。
ashmme 的典型用法是先打开设备文件,然后做mmap 映射。
第一步通过调用ashmem_create_region 函数,这个函数完成这几件事:
java 代码:
1. fd = open(“/dev/ashmem”, O_RDWR);
2. ioctl(fd, ASHMEM_SET_NAME, region_name); // 这一步可选
3. ioctl(fd, ASHMEM_SET_SIZE, region_size);复制代码
第二步,应用程序一般会调用mmap 来把ashmem分配的空间映射到进程空间:
mapAddr = mmap(NULL, pHdr->mapLength, PROT_READ | PROT_WRITE, MAP_PRIVATE, fd, 0);
可以说ashmem以较小的代价(用户需进行额外的ioctl 调用来设置名字,大小,pin 和unpin),获得了一些内存使用的智能性。
ashmem本身实现也很小巧,只有不到700 行。原因是借助了内核已经有的工具,例如shmem_file_setup(支撑文件),cache_shrinker(slab 分配
算法的页面回收的回调函数)等。
如果ashmem不使用内核驱动实现,则pin/unpin 的语义比较难以实现,或者即使实现,效率也不会很高。但查询android 源码,使用pin
/unpin 很少,看来ashmem还是没有很好地用起来。
如果不使用ashmem驱动,并且舍弃pin/unpin 语义,那么模拟ashmem的语义还是很简单的。首先,ashmem_create_region 可以为进程创建一
个唯一的文件(如进程名+时戳),打开,然后返回这个文件的fd;接着应用程序可以进性一般的mmap 操作了。如果不使用
ashmem_create_region 接口函数,那么使用anonymous 的mmap 就可以了,但这种方式属于正在 被丢弃的方式,而且并不是所有的系统都支
持,比如Macos 就不支持。

阅读全文

与ash源码相关的资料

热点内容
堵车如何缓解压力 浏览:15
喜鹊快贷app怎么了 浏览:263
海龟编辑器积木编程怎么安装 浏览:185
程序员理发店生意怎么样 浏览:603
程序员罗技 浏览:180
软考初级程序员课程2021下载 浏览:491
杭州程序员奶奶 浏览:880
不听命令造成错误 浏览:981
kool系统源码 浏览:610
流氓app在哪里看 浏览:98
域名购买了怎么指向服务器 浏览:121
安卓手机如何让照片颜色反转 浏览:859
怎么下载卓睿安手机版 浏览:514
h3crange命令 浏览:468
php前景和python 浏览:338
php压缩图片内存大小 浏览:495
在哪里可以查看云服务器的信息 浏览:70
python读取非txt文件 浏览:799
艾莫迅用什么编程软件好 浏览:227
android文件存储读取 浏览:214