- 我不懂运营
-
就是公司的新闻动态吧,推荐用这个:
active news of the company
或active news of us
- 豆豆staR
-
Company"s trends
- 贝贝
-
The company"s dynamically
高级英语课文Hiroshima为什么说广岛是"最具活力的"城市 英文解释
不是啊,这篇文章主要修辞手法是讽刺,众所周知,第一颗原子弹在哪儿爆发后,它就成了死亡之城,正话反说,属于反讽。2023-07-07 17:21:473
动态类型语言 动态语言
动态语言有三个名词容易混淆:Dynamic Programming Language (动态语言或动态编程语言)Dynamically Typed Language (动态类型语言)Statically Typed Language (静态类型语言)定义所谓的动态类型语言,意思就是类型的检查是在运行时做的,比如如下代码是不是合法的要到运行时才判断(注意是运行时的类型判断):def sum(a, b):return a + b静态类型而静态类型语言的类型判断是在运行前判断(如编译阶段),比如C#、java就是静态类型语言,静态类型语言为了达到多态会采取一些类型鉴别手段,如继承、接口,而动态类型语言却不需要,所以一般动态语言都会采用dynamic typing,常出现于脚本语言中.需要明确说明一点,那就是,是不是动态类型语言与这门语言是不是类型安全的完全不相干的,不要将它们联系在一起!优缺点静态类型语言的主要优点在于其结构非常规范,便于调试,方便类型安全;缺点是为此需要写更多的类型相关代码,导致不便于阅读、不清晰明了。动态类型语言的优点在于方便阅读,不需要写非常多的类型相关的代码;缺点自然就是不方便调试,命名不规范时会造成读不懂,不利于理解等。顺便说一下,现在有这样一种趋势,那就是合并动态类型与静态类型在一种语言中,这样可以在必要的时候取长补短,Boo就是一个很好的试验性例子.总体评价最后说一下Boo,Boo是一个静态类型语言,虽然用duck typing可以模拟dynamic typing,但是duck并不支持所有类型的操作替代,所以即使完全使用duck typing也不能达到dynamic typing。就像FantasySoft所述,Type Inference不是动态类型语言的特性,所以支持Type Inference不代表这门语言就是dynamically typed。未来发展在今天这个信息泛滥的时代,身为开发者,眼光比技术更重要。缺乏眼光的人,着眼于小,为细枝末节的所谓“创新”不惜肝脑涂地,赴汤蹈火,而面临真正变革时,或坐井观天,守旧拒新,或畏畏缩缩,裹足不前。具备眼光的人,着眼于大,平时稳扎稳打,不为世间纷扰所扰,一旦时机出现,则能抛却门户之见,枝节之争,以过人气概投身变革,成就自己的事业。这前后两者的差距之大,其实全在于对大趋势的把握上。回顾IT技术不长的历史,我们会发现,每当重大变革发生的时候,在技术圈子里总是存在激烈的争论,总有那些着眼于小的人站在细枝末节上对技术变革本身表示质疑甚至否定。当关系数据库和SQL语言把数据管理的繁琐工作从开发者和操作者身上解放出来的时候,有人抨击关系数据库性能低下;当微软开始用C语言开发PC应用程序时,汇编语言的拥护者轻蔑的说,只有汇编语言才能发挥PC机的全部能力;当Web进军企业计算时,一大批专家跑出来抨击HTML界面的呆板和HTTP协议的缓慢和幼稚。然而,所有这一切抱怨、质疑和信誓旦旦的否定,都被技术发展的大潮无情的吞噬,消失得无影无踪。原因很简单,所有这些声音,都是着眼于小,着眼于私,一叶障目,而不见IT技术发展的大势。IT技术发展的大趋势永远都是要更快,更简单。从这个角度来看待动态语言,结论就异常的清晰。在今天这个时代、动态语言代表着更快更简单的技术大趋势,因此它将必然成为未来构建软件和互联网技术的主角。回顾2006年国内外动态语言的发展历程,也恰恰能够印证这一点。By rainsEgo:不否认动态语言的各种好处,但是到了2011年,还请大家考虑一下scala这样的静态语言对动态语言造成的冲击。2023-07-07 17:22:071
iOS的.framework,如何区分是动态库还是静态库?
1.cd到xxx.framework目录之下 2.file xxx 3.列出支持的CPU架构,带有dynamically标识的是动态库, 否则是静态库2023-07-07 17:22:131
我需要做些什么吗? 翻译成英文!
What should I do?2023-07-07 17:22:314
哪个英文单词里面有m,y,c,这3个英文字母?
machinery机械,机器2023-07-07 17:23:005
区分framework文件是动态库还是静态库
1、打开终端APP 2、输入:cd 输入framework文件所在目录(包含framework文件)/也可以直接拖入framework文件之后回车 3、输入:file framework文件夹内二进制文件 如果输出结果包含dynamically linked shared library则是动态库,反之则为静态库。 1、终端输入lipo -info 输入framework文件下二进制文件路径(包含framework文件)/也可以直接拖入framework二进制文件之后回车 1、终端输入:cd 输入framework文件所在目录(包含framework文件)/也可以直接拖入framework文件之后回车 2、终端输入:lipo -remove 指令集(x86_64/i386/armv7/arm64) xxx -o xxx xxx为framework文件夹下二进制文件名2023-07-07 17:23:141
云计算中的“云”是什么意思?
云计算大火,如果你到现在还不知道云计算是什么意思,那你可就太low了!今天,就来跟大家说说,云计算是什么意思。云计算(cloud computing)是一种基于因特网的超级计算模式,在远程的数据中心里,成千上万台电脑和服务器连接成一片电脑云。因此,云计算甚至可以让你体验每秒10万亿次的运算能力,拥有这么强大的计算能力可以模拟核爆炸、预测气候变化和市场发展趋势。用户经由电脑、笔记本、手机等方式接入数据中心,按自己的需求进行运算。IBM的创立者托马斯·沃森曾表示,全世界只需要5台电脑就足够了。比尔·盖茨则在一次演讲中称,个人用户的内存只需640K足矣。李开复打了一个很形象的比喻:钱庄。早先人们只是把钱放在枕头底下,后来有了钱庄,很安全,不过兑现起来比较麻烦。现在发展到银行可以到任何一个网点取钱,甚至用ATM,或者国外的渠道。就像用电不需要家家装备发电机,直接从电力公司购买一样。云计算就是这样一种变革——由谷歌、IBM这样的专业网络公司来搭建计算机存储、运算中心,用户用一根网线借助浏览器就可以很方便的访问,把“云”做为资料存储以及应用服务的中心。云计算是什么意思?狭义的云计算是指IT基础设施的交付和使用模式,指在网络中,以按需、易扩展的方式获得所需的资源(硬件、平台、软件)。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。这种特性经常被称为像水电一样使用IT基础设施。广义的云计算是指服务的交付和使用模式,指依靠网络以按需、易扩展的方式获得所需的服务。这种服务可以是IT和软件、互联网相关的,也可以是任意其他的服务。经过这次讲解,你现在明白云计算是什么意思了吗?2023-07-07 17:23:365
Linux内核中进程0的主要任务是什么?
总结一下有如下几个要点:1.进程0是所有其他进程的祖先,也称作idle进程或swapper进程.2.进程0是在系统初始化时由kernel自身从无到有创建.3.进程0的数据成员大部分是静态定义的,即由预先定义好的INIT_TASK,INIT_MM等宏初始化.进程0的描述符init_task定义在arch/arm/kernel/init_task.c,由INIT_TASK宏初始化。init_mm等结构体定义在include/linux/init_task.h内,为init_task成员的初始值,分别由对应的初始化宏如INIT_MM等初始化Process1进程0最终会通过调用kernel_thread创建一个内核线程去执行init函数,这个新创建的内核线程即Process1(这时还是共享着内核线程0的资源属性如地址空间等)。init函数继续完成剩余的内核初始化,并在函数的最后调用execve系统调用装入用户空间的可执行程序/sbin/init,这时进程1就拥有了自己的属性资源,成为一个普通进程(init进程)。至此,内核初始化和启动过程结束。下面就进入了用户空间的初始化,最后运行shell登陆界面。(注:Init进程一直存活,因为它创建和监控在操作系统外层执行的所有进程的活动。)——————这段对进程0的描述引用自《UnderstandingTheLinuxKernel-ThirdEdtion》Theancestorofallprocesses,calledprocess0,theidleprocess,or,forhistoricalreasons,theswapperprocess,isakernelthreadcreatedfromscratchduringtheinitializationphaseofLinux.Thisancestorprocessusesthefollowingstaticallyallocateddatastructures(datastructuresforallotherprocessesaredynamicallyallocated)2023-07-07 17:23:591
出现形成的英语短语?
她瞥见天边出现了一个模糊的痕迹, 慢慢形成可以辨认的形状.下面是我给大家整理的,供大家参阅! 篇1 1. His presence should fill the power vacuum which has been developing over the past few days. 他的出现将填补过去这几天形成的权力真空。 2. She saw a faint mark on the horizon, and gradually it took shape. 她瞥见天边出现了一个模糊的痕迹, 慢慢形成可以辨认的形状. 3. During the 12 - month follow - up , no stent thromboses, MIs, or deaths were obsered. 在12个月的随 访 期里, 未出现支架内血栓形成 、 心肌梗死或者是死亡. 4. This event marks the birth of the Double Bottom. 而这种情况的出现就是一个双底的形成. 5. The rally breakout in 2008 May set a new point. 2008年5月出现的反弹突破形成一个新的高点. 6. Because soliton lattice should be emerged in trans polyacetylene whe. 反式聚乙炔在重掺杂时会出现孤子晶格,在能隙中央形成孤子能带. 7. Our samples were prepared by thermal oxidizing bi *** uth films. 热氧化不够或低速率蒸发形成薄膜富铋,出现无定型或其它相结构,光学吸收限变宽,移向低能处. 8. Laughter may even have evolved long before primates. 笑甚至可能在灵长类出现很久以前就已经演化形成. 9. Eventually, photosynthesis arrived in the form ofcyanobacteria. 起初, 陆地上大多是岩石和冰,后来,随着植被的出现,才形成了今天的地球. 10. Lakes appeared and then dried out, leaving a flat expanse of salty residue. 湖泊出现,又干涸, 留下由富含盐份残留物形成的平坦区域. 11. The advent of LOFs and ETFs adds new members to the fund family. 上市开放式基金***LOFs***与交易所交易基金***ETFs***的出现打破了长期以来所形成的“封闭式基金”与“开放式基金”的二元结构. 12. Acute cystitis, usually Bacterial, causes swelling, Bleeding, *** all ulcers and cysts, and sometimes abscesses. 常为细菌性, 导致膀胱黏膜红肿 、 出血 、 表层脱落,可出现小溃疡和囊肿, 有时亦形成脓肿. 13. Phenol and aniline plexed with 4 - AAP to form a dye , its absorption spectrum overlapped greatly. 苯酚、苯胺与4-AAP络合后所形成的吸收光谱出现严重重叠. 14. According to research by Lanc? me , for instance, men"s wrinkles appear later but develop more rapidly. 比如,根据兰 蔻 的研究, 男性的皱纹出现的较晚,形成的速度却更快. 15. A handful of bourgeois elements may appear, but they will not form a class. 个别资产阶级分子可能会出现, 但不会形成一个资产阶级. 篇2 部落与氏族的出现,形成了人类社会,也就出现了德治与法治。 With the appearance of tribes and clans, human society took shape, followed by rule of virtueand rule of law respectively. 早期感病树中出现的形成层状分生组织的活动导致晚期病树树皮的变形。 The activities of the cambium-like meristem present in the early affected trees lead to formation of the deformed bark of the trees in the late stage of the disease. 注1:本标准出现“形成档案的程式”之处,即要求建立该程式,形成档案,并加以实施和保持。 NOTE 1 Where the term "documented procedure" appears within this International Standard, this means that the procedure is established, documented, implemented and maintained. 墙的意象在美国文学的作品中反复出现,形成了一个重要的传统。 The image of walls has emerged repeatedly in the works of American writers, thus it has bee an important tradition in American literature. 在强振区首部和末端,拱圈底板块锁定和解锁交替出现,形成瞬时拱; In the beginning area and the terminal of the latter, The lock condition and unlock one of slabsis produced alternately to form an instantaneous arch in the ring. 随着我国经济的发展与繁荣,在我国对外贸易中出现并形成了外贸代理制。 With the development of Chinese economy, the foreign trade agent system has appeared andgrown in China. 这些改进机会的通讯是以变更波的形式出现,它形成了转换路标,如图8 所示。 The munication of these improvement opportunities is in the form of waves of change,which form a transformation roadmap, as shown in Figure 8. 这些小事情在日常生活中反复出现,并形成习惯,它们不仅能给我们带来双倍的好处,也同时让倡导者们受益匪浅。 And when these little things are repeated daily, and formed into habits, their benefits increasenot just by multiples but by exponents. 选举制度是伴随着近代民主制度的形成出现的,在国家的整个民主制度中居于基础性的地位。 Electoral system appeared with the form of modem democratic system, and it is the basic of the whole democratic system in the nation. 建筑物倒塌。建筑物地基被水破坏,空地形成出现在种子能够固定的地方。 Buildings collapse, their foundations undermined by the water, and clearings are formed whereseeds can take hold. 大约半个月后,在靠近表面的愈伤组织中出现木栓形成层。 And about a half month phellogen will begin to appear in the callus near the surface. 结果出现呈梭形成纤维细胞样生长的细胞,细胞增殖旺盛。 Results: The cell spread fusiform shape, and proliferation with rapid rate. 到了汉代,“门神”一词正式出现,并形成具体的艺术形象。 The word "door-god" appeared in Han Dynasty and formed the unified artistic image. 许多主题,如《缓山》,《心中的河》等开始反复的出现,并形成了系列作品。 Many subjects, such as Smooth Mountain, River In the Heart, appeared for more than onceand formed a series of works. 许多主题,如《缓山》,《心中的河》等开始反复的出现,并形成了系列作品。 Many subjects, such as Smooth Mountain, River In the Heart, appeared for more than onceand formed a series of works. 篇3 随着他们的出现形成了一种新的声景,可以由使用者动态地策划。 With their appearance there arises a new soundscape, which can be dynamically orchestratedby the user. 大脑里潜意识的部分从普通压抑中被释放出来,并且他们可能会戏剧性地出现形成一个新“人”。 The subconscious parts of the mind are released from ordinary inhibitions and they may thenpresent in dramatic form a new “personality.” 经济上,分期付款买卖方式的出现形成了买方与卖方的“双赢”局面, *** 了工商业的繁荣发展; Economically speaking, payment by installments makes a double-win between the buyer andthe seller, and it stimulates industry and business to be prosperous. 几颗星星在图片右上角黑暗的太空中出现,形成明亮的针点。 Several stars appear as bright pinpoints against the blackness of space at image top right. Morozov乐于嘲弄并摧毁那些天生的伴随着每一种新通讯技术的出现而形成的乐观观念,特别是在美国。 Morozov has fun deriding and demolishing the naively optimistic visions which, particularly inthe United States, seem to acpany the emergence of every new municationstechnology. “所有的问题一起出现就形成了抑郁,”斯特里格尔说道。 "The problem is they travel together as an expression of distress, " said Striegel. 随着原始信仰的出现而形成了图腾舞蹈、巫术舞蹈、祭祀舞蹈。 With the appearance of primitive belief came the dances of totem, sorcery, and sacrificial ceremony. 大型的、放式的、水的绿地大量在市中心区出现,形成一种新的城市园林形态。 Large-size and open green lands with water views have multiplied in downtown areas, enlivening the city with new form of green scenes. 下岗失业问题的出现,形成了一批低收入阶层和弱势群体,导致收入差距拉大,引起社会的不稳定。 The appearance of unemployment question and people who e off sentry duty formed a group of people of low ine and weakness. This caused social unstable and enlargedine disparity. 就在这个过程中,原始人群开始向氏族社会过渡,首先是母系氏族社会出现和形成。 In this process, the original crowd began to transition to the clan society, above all, theemergence and formation of matriarchal society. 而纯粹的视觉这样的词汇跟二十世纪初开始在西方哲学界出现并形成很大影响的现象学是密不可分的。 Such word about pure vision is so close to the phenomenology appeared in beginning of 20century and made a great influence that time. 其他成分,包括在肿瘤*** 发生***前的硬变肝内出现新形成的异时肿瘤。 The other ponent includes metachronous tumors that arise denovo in a preneoplasticcirrhotic liver. 澳门问题的出现和形成是西方殖民者侵略的结果。 The Macao issue arose from the aggression by the Western colonists. 结果发现在冲击面附近的射流横截面上,伴随着两个反向旋转涡对的出现,形成了主流速度的两个偏心峰值。 It has been found that at the jet flow cross-section near the impingement surface acpanied by the appearance of two counter-rotating vortex pairs there emerge two eccentric peak values.2023-07-07 17:24:061
2021-04-16 全局特征和局部特征简介
全局特征和局部特征: 全局特征:指一张行人图片的全局信息进行一个特征抽取,这个全局特征没有任何的空间信息 缺陷:1.噪声区域会对全局特征造成极大的干扰; 局部特征:指对图像中的某一个区域进行特征提取,最后将多个特征融合起来作为最终特征 水平切块: Gate Siamese 每一块图像经过CNN网络得到特征,局部特征按顺序输入到LSTM网络,自动表达为图像最终的特征。 利用对比损失训练网络,目前很少使用。 那么水平姿态对不齐的情况怎么解决? 采用AlignedReID Dynamically Matching Local Information(DMLI) 联合全局分支和局部分支一起训练; 全局分支是一个正常的ReID网络; 局部分支引入DMLI对齐思想 归一化:计算局部特征两两之间的距离,并归一化 难样本挖掘: 全局分支计算一个表征学习损失和一个度量学习损失 局部分支计算一个度量学习损失 全局分支计算距离速度更快、梯度方向一致 序列重识别:也被称为视频重识别,利用一段连续的行人图片序列进行行人重识别任务,或者说是个序列搜索序列的问题。 特别:姿态变化丰富;2023-07-07 17:24:131
引导的英语短语
引导,是指通过行为帮人走出困境,或是带着人向某个目标集体行动,通过行为的帮人走出困境。下面就由我为大家带来关于引导的英语短语集锦,希望大家能有所收获。 关于引导的相关短语 引导操作 pilot operation; 引导程序 boot (strap) program; {计} bootstrap; 引导传播 {讯} guided propagation; trapping; 引导词 introducer; 引导存储器 {自} bootstrap memory; 引导法则 steering law; 引导高度 steering level; 引导格栅 guide grid; 引导跟踪方式 lead pursuit; 引导机车 pilot engine; 引导记录 leader record; 引导截击 guided attack; 引导进场和着陆设备 aids to final approach and landing; 引导进场设备 aid to final approach; 关于引导的相关单词 guide; lead; 关于引导的相关短句或解释 guide sb. in [out]; 引导某人进入[出去] give correct guidance to young people as to sexual matters; 在性方面对青年人进行正确引导 guide the reader to right reading; 引导读者正确读书 The pilot guided us through the dangerous reefs. 这位引航员引导我们通过了危险的暗礁区。 He has led up to his favourite topic. 他把谈话逐渐引导到自己最热衷的话题上。 关于引导的相关例句 1. He was put into a trance by a police hypnotist. 他在一位警方催眠师的引导下进入了催眠状态。 2. Kitzi was an adept at getting people to talk confidentially to him. 基齐很善于引导别人与其谈心。 3. The cross - references refer you to information in other parts of the dictionary. 互见引导你在词典的其他部分寻找信息. 4. The chairman was able to steer the committee towards a decision. 主席能引导委员会作出决定. 5. My father introduced me to the game of football. 我父亲引导我参加足球比赛. 6. With great skill, he piloted the boat into the little harbor. 凭借高超的技术, 他引导这艘船驶进这窄小的港口. 7. She piloted the old man through the crowd to his seat. 她引导老人通过人群来到他的座位. 8. He marshaled them into the presence of the Queen. 他引导他们觐见女王. 9. They"re channelling the natural resources of youthful idealism into political action. 他们正在把青年固有的那种充满理想的热情引导到政治活动中去. 10. The foreign visitors were marshaled into the presence of the king. 外宾被引导觐见国王. 11. This book guides us in using English words and idioms. 这本书引导我们如何使用英语单词和习语. 12. A wood cutter piloted our fighters over the mountains. 一个伐木人引导我们的战士翻山越岭. 13. Try to orientate your students towards the science subjects. 把学生的兴趣尽力引导到理科方面. 14. Children need discipline, but they need guidance even more. 孩子要管, 但更要引导. 15. The passengers were shepherded across the tarmac to the airliner. 旅客们被引导走过跑道去上飞机. 关于引导的双语例句 把学生的兴趣尽力引导到理科方面。 Try to orientate your students towards the science subjects. 海底(实验室)工作人,深水操作人员训练能在水下装置物中生活并引导、辅助或作为科学研究的对象 A person trained to live in underwater installations and conduct, assist in, or be a subject of scientific research. 导游,向导引导游览者游览博物馆等地并对所到的旅游点进行介绍的人 A person employed to conduct others, as through a museum, and give information about points of interest encountered. 通常将分区引导记录称为分区引导超级块。 A partition boot record is usually referred to as the partition root superblock. 插入并穿过所述引导槽并沿着引导槽滑动的导引销; Guide pins are inserted through the guide slots to slide along the guide slots. 催眠引导法认为与动物性磁力有关的人工引导催眠方法 Hypnotic induction believed to involve animal magnetism. 仲裁引导,仲裁施行:由仲裁人或裁判员引导或施行的法律行为。 Legal actions conducted before or by a referee. 指定要引导的动态可引导模块名。 Specify the name of a dynamically loadable module to load. 引导程序,引导指令用来建立全部路径或另一路径的辅助程序 A subroutine used to establish the full routine or another routine. 以上是我整理所得,欢迎大家阅读和收藏。2023-07-07 17:24:201
立即响应的英文
They responded at once and rose as one man in defense of their motherland 他们 立即响应 ,团结得象一个人,起来保卫祖国。 Cpent script running in the browser can respond immediately to user actions 在浏览器中运行的客户端脚本可以 立即响应 用户的操作。 Instantly , all the rest fell to dancing , and the court - yard overflowed with the carmagnole 有几个人开始跳起舞来,有的人便 立即响应 。 If you want to respond immediately when users cpck a check box cell , you can handle the 如果要在用户单击复选框单元格时 立即响应 ,可处理 In puter graphics , the immediate notification of the current values provided by an input device to the operator at the display console 在计算机图形学中,由输入设备在显示控制台上提供给操作员的一种关于当前值的 立即响应 。 So don " t expect instant responses to all your questions , and don " t assume that all readers will agree with - - or care about - - your passionate arguments 所以不要期待对你所有问题都能 立即响应 ,不要奢望所有人都同意或关心你的热切探讨。 Of course , when your work is under attack , you want to be able to respond immediately , and being forced to hack away at your master firewall setup script in a panicked state is not only stressful , but also very inefficient 当然,当网络受到攻击时,您希望能够 立即响应 ,在紧急状态下被迫修改主防火墻设置脚本不仅在时间上很紧迫,而且效率非常低。 Device to music inside the send letter the follow behinding of number the abipty . the respond toes the good device to should is a signal on e and then immediately respond toing , the signal is on stopping however , will never drag along the mire to take the water 十二瞬态响应器材对音乐中突发信号的跟随能力。瞬态响应好的器材应当是信号一来就 立即响应 ,信号一停就嘎然而止,决不拖泥带水。 Similarly , you can use cpent script to check keyboard entry in a text box character by character , change the appearance of the page dynamically , or perform any other task that is primarily oriented to the user interface and that requires immediate response 同样,可以使用客户端脚本执行以下三项操作:一是逐字符检查文本框中的键盤输入;二是动态更改页面外观;三是执行主要面向用户界面( ui )的任何其他任务和要求 立即响应 的任务。2023-07-07 17:24:261
急急急!!!英文翻译
劝君更进一杯酒,西出阳关无故人。2023-07-07 17:24:496
StartUp(启动选项)-Boot选项怎么选啊?我看不懂,什么顺序才是对的?原本的顺序让我弄乱了
1:IDE HDD1: IDE硬盘12:USB FDD: USB启动3:Legacy Floppy Drives 软盘驱动器4:ATAPI CDO: ATAPI CD驱动器5:IDE HDD0:IC25N040ATCS04-0-(PM) IDE硬盘06:USB CD: USB CD驱动器7:PCI LAN:IBA GE SLOT 0208V1217 PCI卡8:-USB HDD USB硬盘Excluded from boot order: :IDE HDD2 :ATAPI CD1个人建议 选择顺序 5 ,4 优先启动2023-07-07 17:25:042
CISCO 三层 交换机 运行no switchport后如何恢复二层功能
直接在接口下打switchport即可Switch(config)# inter g0/1Switch(config-if)#switchportSwitch(config-if)#switchport mode ?access Set trunking mode to ACCESS unconditionallydynamic Set trunking mode to dynamically negotiate access or trunk modetrunk Set trunking mode to TRUNK unconditionally2023-07-07 17:25:443
[Economist] 商业化自动驾驶:缓步而行(上)
Commercialising autonomous vehicles:Gently does it A six-month trial in Texas focuses on what self-driving technology can do now 在得克萨斯州一项为期六个月的试验将检验自动驾驶技术能做到什么 NOBODY likes it when a taxi takes longer than expected to arrive. But that is what is happening with self-driving cars. Building a vehicle that can handle a busy street, with cyclists, pedestrians, roadworks and emergency vehicles, is a tall order. In March a pedestrian was killed in Tempe, Arizona when a self-driving Uber vehicle failed to spot her as she wheeled her bicycle across an empty road at night, and the vehicle"s safety driver failed to hit the brakes. There is a growing sense that the technology has, so far, over promised and under delivered. So a trial of self-driving vans that began in Frisco, Texas on July 30th is notable for its realistic approach to what the technology can do today. Drive.ai, a startup, has deployed seven minivans to transport people within a limited area of the city that includes an oufb03ce park and a retail area. “We are identifying a valuable use case that we can deploy with today"s technology,” says Andrew Ng, a board member and a pioneer of “deep learning”, the technique that underpins the current boom in artifcial intelligence. As the technology evolves, he says, so will autonomous-vehicle services. For now, though, Drive.ai is keeping things simple. All pick-ups and drop-oufb00s happen at designated stops, to minimise disruption as passengers get on and oufb00. Riders hail the vans using an app and go to the nearest stop; a vehicle then appears to pick them up. (The vehicles do not circulate continuously like shuttle buses, but wait to be called, and plan their routes dynamically.) Use of the service is free of charge for now. The vans are painted a garish orange and clearly labelled as self-driving vehicles. “We weren"t going for pretty, we were going for distinctive,” says Mr Ng, who draws an analogy with yellow school buses: people understand that some kinds of vehicles behave in particular ways, and accommodate them accordingly. Screens mounted on the vans" exteriors let them communicate with pedestrians and other road users, for example to tell a pedestrian that it is safe to cross a road. Rather than trying to build a vehicle that mimics a human-piloted one, Drive.ai is making the self-driving nature of its vehicles explicit.2023-07-07 17:25:511
linux怎么查看oracle版本
[oracle@ceglnx01 bin]$ sqlplus -vSQL*Plus: Release 10.2.0.4.0 - Production1:使用file命令查看32位还是64位客户端。Oracle Client 32 bit[oracle@db-server-01 ~]$ which sqlplus/u01/app/oracle/product/10.2.0/db_1/bin/sqlplus[oracle@db-server-01 ~]$ file /u01/app/oracle/product/10.2.0/db_1/bin/sqlplus/u01/app/oracle/product/10.2.0/db_1/bin/sqlplus: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), not strippedOracle Client 64 bit[oracle@db-server-02 ~]$ which sqlplus/u01/app/oracle/product/10.2.0/db_1/bin/sqlplus[oracle@db-server-02 ~]$ file /u01/app/oracle/product/10.2.0/db_1/bin/sqlplus/u01/app/oracle/product/10.2.0/db_1/bin/sqlplus: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped或者Oracle Client 32 bit[oracle@db-server-01 logs]$ cd /u01/app/oracle/product/10.2.0/db_1/bin[oracle@db-server-01 bin]$ file oracleoracle: setuid setgid ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), not strippedOracle Client 64 bit[oracle@db-server-02 ~]$ cd /u01/app/oracle/product/10.2.0/db_1/bin[oracle@db-server-02 bin]$ file oracleoracle: setuid setgid ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped2: 通过查看$ORACLE_HOME下的lib或lib32目录,如果两个目录都存成,则为64位,如果只有lib目录.则为32位客户端。[oracle@db-server-01 db_1]$ ls -d liblib[oracle@db-server-01 db_1]$ ls -d lib*lib lib32输入数据库任意用户的用户名和密码,进行登陆。登陆成功后,就可以看到Oracle的版本信息了关于更多Linux的学习,请查阅书籍《linux就该这么学》。2023-07-07 17:26:001
字符设备中的几个函数分析
1.在内核中, dev_t 类型(在 <linux/types.h>中定义)用来持有设备编号 — 主次部分都包括.其中dev_t 是 32 位的量, 12 位用作主编号, 20 位用作次编号1 #ifndef _LINUX_TYPES_H2 #define _LINUX_TYPES_H34 #include <asm/types.h>56 #ifndef __ASSEMBLY__7 #ifdef __KERNEL__89 #define DECLARE_BITMAP(name,bits) /10 unsigned long name[BITS_TO_LONGS(bits)]1112 #endif1314 #include <linux/posix_types.h>1516 #ifdef __KERNEL__1718 typedef __u32 __kernel_dev_t;1920 typedef __kernel_fd_set fd_set;21 typedef __kernel_dev_t dev_t; //用来持有设备编号的主次部分22 typedef __kernel_ino_t ino_t;23 typedef __kernel_mode_t mode_t;...2.在 <linux/kdev_t.h>中的一套宏定义. 为获得一个 dev_t 的主或者次编号, 使用:2.1设备编号的内部表示MAJOR(dev_t dev);MINOR(dev_t dev);2.在有主次编号时, 需要将其转换为一个 dev_t, 可使用:MKDEV(int major, int minor);在linux/kdev_t.h中有下了内容...4 #define MINORBITS 205 #define MINORMASK ((1U << MINORBITS) - 1)6 7 #define MAJOR(dev) ((unsigned int) ((dev) >> MINORBITS))8 #define MINOR(dev) ((unsigned int) ((dev) & MINORMASK))9 #define MKDEV(ma,mi) (((ma) << MINORBITS) | (mi))//高12为表示主设备号,低20位表示次设备号...3.分配和释放设备编号register_chrdev_region函数下面摘自文件fs/char_dev.c内核源代码184 /**185 * register_chrdev_region() - register a range of device numbers186 * @from: the first in the desired range of device numbers; must include187 * the major number.188 * @count: the number of consecutive device numbers required189 * @name: the name of the device or driver.190 *191 * Return value is zero on success, a negative error code on failure.192 */193 int register_chrdev_region(dev_t from, unsigned count, const char *name)194 {195 struct char_device_struct *cd;196 dev_t to = from + count; //计算分配号范围中的最大值1280+400=1680197 dev_t n, next;198 199 for (n = from; n < to; n = next) {/*每次申请256个设备号*/200 next = MKDEV(MAJOR(n)+1, 0);/*主设备号加一得到的设备号,次设备号为0*/201 if (next > to)202 next = to;203 cd = __register_chrdev_region(MAJOR(n), MINOR(n),204 next - n, name);205 if (IS_ERR(cd))206 goto fail;207 }208 return 0;209 fail:/*当一次分配失败的时候,释放所有已经分配到地设备号*/210 to = n;211 for (n = from; n < to; n = next) {212 next = MKDEV(MAJOR(n)+1, 0);213 kfree(__unregister_chrdev_region(MAJOR(n), MINOR(n), next - n));214 }215 return PTR_ERR(cd);216 }这里, from是要分配的起始设备编号. from 的次编号部分常常是 0, 但是没有要求是那个效果. count是你请求的连续设备编号的总数. 注意, 如果count 太大, 要求的范围可能溢出到下一个次编号;但是只要要求的编号范围可用, 一切都仍然会正确工作. 最后, name 是应当连接到这个编号范围的设备的名子; 它会出现在 /proc/devices 和 sysfs 中.如同大部分内核函数, 如果分配成功进行, register_chrdev_region 的返回值是 0. 出错的情况下, 返回一个负的错误码, 不能存取请求的区域.4.下面是char_device_struct结构体的信息fs/char_dev.cstatic struct char_device_struct {struct char_device_struct *next; // 指向散列冲突链表中的下一个元素的指针unsigned int major; // 主设备号unsigned int baseminor; // 起始次设备号int minorct; // 设备编号的范围大小const char *name; // 处理该设备编号范围内的设备驱动的名称struct file_operations *fops; // 没有使用struct cdev *cdev; /* will die指向字符设备驱动程序描述符的指针*/} *chrdevs[MAX_PROBE_HASH];80 /*81 * Register a single major with a specified minor range.82 *83 * If major == 0 this functions will dynamically allocate a major and return84 * its number.85 *86 * If major > 0 this function will attempt to reserve the passed range of87 * minors and will return zero on success.88 *89 * Returns a -ve errno on failure.90 *//*** 该函数主要是注册注册注册主设备号和次设备号* major == 0此函数动态分配主设备号* major > 0 则是申请分配指定的主设备号* 返回0表示申请成功,返 回负数说明申请失败*/91 static struct char_device_struct *92 __register_chrdev_region(unsigned int major, unsigned int baseminor,93 int minorct, const char *name)94 {/*以下处理char_device_struct变量的初始化和注册*/95 struct char_device_struct *cd, **cp;96 int ret = 0;97 int i;98 //kzalloc()分配内存并且全部初始化为0,99 cd = kzalloc(sizeof(struct char_device_struct), GFP_KERNEL);100 if (cd == NULL)//ENOMEM定义在include/asm-generic/error-base.h中,//15 #define ENOMEM 12 /* Out of memory */ 101 return ERR_PTR(-ENOMEM);102 103 mutex_lock(&chrdevs_lock);104 105 /* temporary */ 106 if (major == 0) {//下面动态申请主设备号107 for (i = ARRAY_SIZE(chrdevs)-1; i > 0; i—) {//ARRAY_SIZE是定义为ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0])) //#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))108if (chrdevs[i] == NULL)//chrdevs是内核中已经注册了的设备好设备的一个数组109 break;110 }111 112 if (i == 0) {113 ret = -EBUSY;114 goto out;115 }116 major = i;117 ret = major;//这里得到一个位使用的设备号118 }119 //下面四句是对已经申请到的设备数据结构进行填充 120 cd->major = major;121 cd->baseminor = baseminor;122 cd->minorct = minorct;/*申请设备号的个数*/123 strlcpy(cd->name, name, sizeof(cd->name));124/*以下部分将char_device_struct变量注册到内核*/ 125 i = major_to_index(major);126 127 for (cp = &chrdevs[i]; *cp; cp = &(*cp)->next)128 if ((*cp)->major > major || //chardevs[i]设备号大于主设备号129 ((*cp)->major == major &&130 (((*cp)->baseminor >= baseminor) || //chardevs[i]主设备号等于主设备号,并且此设备号大于baseminor131 ((*cp)->baseminor + (*cp)->minorct > baseminor))))132 break;133 //在字符设备数组中找到现在注册的设备134 /* Check for overlapping minor ranges. */135 if (*cp && (*cp)->major == major) {136 int old_min = (*cp)->baseminor;137 int old_max = (*cp)->baseminor + (*cp)->minorct - 1;138 int new_min = baseminor;139 int new_max = baseminor + minorct - 1;140 141 /* New driver overlaps from the left. */142 if (new_max >= old_min && new_max <= old_max) {143 ret = -EBUSY;144 goto out;145 }146 147 /* New driver overlaps from the right. */148 if (new_min <= old_max && new_min >= old_min) {149 ret = -EBUSY;150 goto out;151 }152 }153 /*所申请的设备好号能够满足*/154 cd->next = *cp;/*按照主设备号从小到大顺序排列*/155 *cp = cd;156 mutex_unlock(&chrdevs_lock);157 return cd;158 out:159 mutex_unlock(&chrdevs_lock);160 kfree(cd);161 return ERR_PTR(ret);162 }以上程序大体上分为两个步骤:1.char_device_struct类型变量的分配以及初始化94~123行2.将char_device_struct变量注册到内核,12行页到162行1.char_device_struct类型变量的分配以及初始化(1)首先,调用 kmalloc 分配一个 char_device_struct 变量cd。检查返回值,进行错误处理。(2)将分配的char_device_struct变量的内存区清零memset。(3)获取chrdevs_lock读写锁,并且关闭中断,禁止内核抢占,write_lock_irq。(4)如果传入的主设备号major不为0,跳转到第(7)步。(5)这时,major为0,首先需要分配一个合适的主设备号。将 i 赋值成 ARRAY_SIZE(chrdevs)-1,其中的 chrdevs 是包含有256个char_device_struct *类型的数组,然后递减 i 的值,直到在chrdevs数组中出现 NULL。当chrdevs数组中不存在空值的时候,ret = -EBUSY; goto out;(6)到达这里,就表明主设备号major已经有合法的值了,接着进行char_device_struct变量的初始化。设置major, baseminor, minorct以及name。2.将char_device_struct变量注册到内核(7)将 i 赋值成 major_to_index(major)将major对256取余数,得到可以存放char_device_struct在chrdevs中的索引(8)进入循环,在chrdevs[i]的链表中找到一个合适位置。退出循环的条件:(1)chrdevs[i]为空。(2)chrdevs[i]的主设备号大于major。(3)chrdevs[i]的主设备号等于major,但是次设备号大于等于baseminor。注意:cp = &(*cp)->next,cp是char_device_struct **类型,(*cp)->next是一个char_device_struct *类型,所以&(*cp)->next,就得到一个char_device_struct **,并且这时候由于是指针,所以对cp赋值,就相当于对链表中的元素的next字段进行操作。(9)进行冲突检查,因为退出循环的情况可能造成设备号冲突(产生交集)。如果*cp不空,并且*cp的major与要申请的major相同,此时,如果(*cp)->baseminor < baseminor + minorct,就会发生冲突,因为和已经分配了的设备号冲突了。出错就跳转到ret = -EBUSY; goto out;(10)到这里,内核可以满足设备号的申请,将cd链接到链表中。(11)释放chrdevs_lock读写锁,开中断,开内核抢占。(12)返回加入链表的char_device_struct变量cd。(13)out出错退出a.释放chrdevs_lock读写锁,开中断,开内核抢占。b.释放char_device_struct变量cd,kfree。c.返回错误信息 下面程序出自fs/char_dev.c动态申请设备号...218 /**219 * alloc_chrdev_region() - register a range of char device numbers220 * @dev: output parameter for first assigned number221 * @baseminor: first of the requested range of minor numbers222 * @count: the number of minor numbers required223 * @name: the name of the associated device or driver224 *225 * Allocates a range of char device numbers. The major number will be226 * chosen dynamically, and returned (along with the first minor number)227 * in @dev. Returns zero or a negative error code.228 */229 int alloc_chrdev_region(dev_t *dev, unsigned baseminor, unsigned count,230 const char *name)231 {/* dev:仅仅作为输出参数,成功分配后将保存已分配的第一个设备编号。baseminor:被请求的第一个次设备号,通常是0。count:所要分配的设备号的个数。name:和所分配的设备号范围相对应的设备名称。b.返回值:成功返回0,失败返回负的错误编码*/232 struct char_device_struct *cd;233 cd = __register_chrdev_region(0, baseminor, count, name);234 if (IS_ERR(cd))235 return PTR_ERR(cd);236 *dev = MKDEV(cd->major, cd->baseminor);237 return 0;238 }239 ...2023-07-07 17:26:071
10X单细胞和空间联合分析的方法---cell2location
组织中细胞类型的空间位置从根本上塑造了细胞之间的相互作用和功能,but the high-throughput spatial mapping of complex tissues remains a challenge。We present сell2location , a principled and versatile Bayesian model(贝叶斯模型) that integrates single-cell and spatial transcriptomics to map cell types in situ in a comprehensive manner。在准确性和全面性的方面,cell2location的表现优异,In the mouse brain, we use a new paired single nucleus and spatial RNA-sequencing dataset to map dozens of cell types and identify tissue regions in an automated manner。We discover novel regional astrocyte subtypes including fine subpopulations in the thalamus and hypothalamus(新的发现)。In the human lymph node, we resolve spatially interlaced immune cell states and identify co-located groups of cells underlying tissue organisation.(细胞共定位)。我们在空间上绘制罕见的萌发前中心B细胞种群,并预测与干扰素反应相关的推定细胞相互作用。总之方法很好用。 这里我们需要注意的一点就是, 贝叶斯模型 ,这个模型在建模的时候很常用,这里就不多介绍了,推荐大家看一本书《机器学习原理、算法与应用》,书中讲述了很多有关机器学习的算法和基础知识,有利于我们加深生信分析的算法原理。 The cellular architecture of tissues, where distinct cell types are organized in space, underlies cell-cell communication, organ function and pathology.(组织是一个复杂的统一体)。Emerging spatial genomics technologies hold considerable promise for characterising tissue architecture, providing key opportunities to map resident cell types and cell signalling in situ, thereby helping guide in vitro tissue engineering efforts.(空间转录组的主要应用价值)。但是空间转录组仍然存在挑战,One reason is the enormous variation in tissue architecture across organs, ranging from the brain with hundreds of cell types found across discrete anatomical regions to immune organs with continuous cellular gradients and dynamically modified microenvironments。To create and map comprehensive tissue atlases, experimental and computational methods need to be aligned to cope with this variation and in particular, enable mapping numerous resident cell types across diverse and complex tissues in situ.(技术挑战)。 coupled single-cell and spatially resolved transcriptomics offer a scalable approach to address these challenges(单细胞和空间转录组的技术互补)。首先第一步要从解离的组织中识别各种细胞类型(单细胞转录组),然后匹配各个细胞类型的空间位置分布。目前的挑战是First, spatial RNA-seq measurements (i.e. locations) combine multiple cell types as array-based mRNA capture currently do not match cellular boundaries in tissues. Thus, each spatial position corresponds to either several cell types (Visium, Tomo-Seq) or fractions of multiple cell types (Slide-Seq, HDST). Second, spatial RNA-seq measurements are confounded by different sources of variation as 1) cell numbers vary across tissue positions, 2) different cells and cell types differ in total mRNA content, and 3) thin tissue sectioning captures variable fractions of each cell"s volume. Computational approaches need to appropriately model and account for all of these factors。 Here, we present cell2location, a principled and versatile Bayesian model for comprehensive mapping of cell types in spatial transcriptomic data.(我们关注的重点)Cell2location uses reference gene expression signatures of cell types derived from scRNA-seq to decompose multi-cell spatial transcriptomic data into cell type abundance maps(简单的原理与其他方法相同,算法有差异)。The model accurately maps complex tissues, including rare cell types and fine subtypes, and it identifies tissue regions and co-located cell types downstream in an automated manner(能够识别共定位的细胞类型,这个很重要)。下面是两个应用案例,证明这个方法好。 Cell2location maps the spatial distribution of cell types by integrating single-cell RNAseq (scRNA-seq) and multi-cell spatial transcriptomic data from a given tissue。 我们首先解决一下J-S散度和PR曲线。 KL散度又称为相对熵,信息散度,信息增益。KL散度是是两个概率分布P和Q 差别的非对称性的度量。 KL 散度是用来 度量使用基于Q的编码来编码来自P的样本平均所需的额外的位元数。 典型情况下,P表示数据的真实分布,Q表示数据的理论分布,模型分布,或P的近似分布。 定义如下: 因为对数函数是凸函数,所以 KL散度的值为非负数。 相对于PR曲线,ROC曲线了解的更多一些,大家可以参考我关于ROC曲线的讲解 深入理解R包AUcell对于分析单细胞的作用 . 而PR曲线 模型的简单介绍 For a complete derivation of the cell2location model, please see supplementary computational methods. Briefly, cell2location is a Bayesian model, which estimates absolute cell density of cell types by decomposing mRNA counts U0001d451 s,g of each gene U0001d454 = {1, . . , U0001d43a} at locations U0001d460 = {1, . . , U0001d446} into a set of predefined reference signatures of cell types g f g .For 10X Visium data, this matrix can be directly obtained from the 10X SpaceRanger software and imported into data format used in a popular python package Scanpy(利用scanpy来读取10X分析数据,也可以联合Suerat进行分析)。d s,g should be fltered to a set of genes expressed in the single cell reference g f g .这个地方的处理在于单细胞与空间转录组映射的时候,表达基因的相同。cell2location的图表模型如下图:2023-07-07 17:26:141
看不懂英文
单词不会,你不懂,单词会了,语法你不知道,你就不知道从那里翻译开始,我给你来个句子,你看看tremendouly conspicuous is that how to protect our environment from contamination didn"t capture people attention in the past decades when science and technology was under-developed,while at present the situation has been turning around我是一个高考的过来人。首先我想请阁下明白一个道理冰冻三尺非一日之寒,所以坚持很重要,英语是一门很看重积累的科目。 虽然我高考已经好多年了,而且今年即将大学毕业,踏入社会。但英语一直没有丢,英语一直是我的排头兵!我对英语的自信还有,我觉得学好英语不难,重要的是你要有恒心,急躁冒进,三天打渔两天晒网都是不行的。在这里我就毛遂自荐一下我的学习方法吧: 首先先你要端正心态,不要急躁,,你做你自己的事,这样才能静下心来学习。要成为英语高手就必须比别人走更多的路,做更多的事。你应该明白一个事实,英语是单词和语法的综合,所以单词和语法都要拿下。 其次,对于单词,有如下几种方法,第一个,是加强记忆的频度,也就是说,早上记了几个,隔几个小时又看一次,总之一天之内,记忆的间隔不要太长,否则你辛苦积累的记忆会随着时间的延长而淡化,第二个,是可以根据自己的理解编顺口溜,比如good morning 是狗摸你…(见笑了)…,第三个,最重要的是,记单词的时候,不要忘了阅读,一边记单词,一边看文章,这样可以把孤立的单词串联起来,记忆的效果会加倍,第四个。我建议你记单词要分门别类记忆,要形成一个意群,比如,重要性用magnitude magnificence ,表示非常,大大地有exceedingly,tremendously,extremely……这样做在你写作时,是十分有好处的,写作时不要尽写一些低级词汇,你要写高级词汇,比如重要性写magnitude,许多写a multitude of 或者handsome。再次,是语法。学习语法,首先要明白什么是主谓宾定状补,什么是系动词,什么是直接宾语,间接宾语,这些是学习语法的基础,语法是房子,主谓宾定状补等是沙石砖瓦 此外,对于完形填空以及阅读理解,那就只能靠平时的练习了,在这个过程中,你要时时总结,纵深对比,千万不要陷入题海战术只做题,不总结的误区当中。在做题的过程中,你把各种体型都总结了一遍,积累了丰富的经验,而且你还提升了自己的阅读速度,一举两得,所以做题是很重要的!其实,完形填空无非就是单项选择加语境分析,也就是说,做完形填空你的语法要好,而且你要积累比较多的固定搭配,短语,特殊用法等,完形填空的语法还是很重要的!对于阅读,我个人感觉是,纯粹是个人经验积累多少的问题,只有保证一定的练习量,你才能用质的提高!最后,我建议你,平时读报,或者做题的时候,发现有好的句子好的词汇,你要抄下来,长期下来,你的作文会有提高的,需要说明的是,这个提高过程可能很缓慢,但是最后能收到很好的效果,以前25分的作文我都能保证在21-23这个级别,靠的就是对语法的熟练掌握和积累了许多较高级的词汇,句型,句子。我个人的理解是,在你的语法达到基本不会出错的程度上,作文便应该以词汇取胜,因为在这个层次上,大家的语法都差不多,没什么变化,唯一有变化的就是你的词汇!给你打个比方吧,很多想到“许多”就用many,但是你别忘了many a ;handsome;massive,innumerable;很多人想到“专家”就写expert,但很少人会想到specialist,很多人在想到“擅长”这词,就写be good at ,却不知还有更高级的表达法:be expert at 或者excel in ……高手和庸才,就体现在这些细微的差别上 !!2023-07-07 17:26:353
翻译 不要机器翻译
2.2 embedded real-time operating system operation managementTo realize the flexible complete scheduling mechanism, improve system performance, it is embedded scheduling operating system to manage system. Mu C/OS - II is a free open source, structure compact, can be deprived of the real-time kernel real-time operating system, its core task scheduling and management, provide time management, synchronization and communication between tasks, memory management and interrupt service etc. Function. It is suitable for small control system, a high efficiency, occupancy space, good real-time performance and extensible, etc. Can be compiled to minimum kernel 2K around.Maximum tire-road friction coefficient C/OS - II real-time kernel by hand, not support scheduling strategy of time round, core is always scheduling operation under the condition of the readiness of the highest priority task. In the concrete implementation can according to the characteristics of the wireless scheduling system will be divided into multiple tasks, each task gives a clear and other tasks of different priority, according to each task priority, dynamically switched each task, so as to ensure the requirement of real-time. If you want a task priority according to the condition of change and change, can be called the change task priority function.3 scheduling task division and designMore than 31,000 task partitioningThe main task and interrupt divided according to the functions of the equipment to perform operation platform, each task to differentiate between tasks and responsibilities clear information exchange and synchronous mutexes should be short and concise, task priority clearly defined.Wireless equipment tasks scheduling platform can be divided into four mission statement: equipment, information distribution task, task, receiving task token round task. The main mission statement equipment, equipment, equipment identity authentication in network is the statement from equipment, equipment or if the equipment is in operation platform, from the star network equipment directly to join the new network. Information distribution function is the task, equipment and network information data sending specified in the equipment. Information on serial interrupt receiving task is to trigger the role is to receive the network, the data and main equipment of sending back from equipment or token. Token round the main task for the equipment is established, when completed, the scheduling network nodes in the network equipment according to information stored separately open storage area (the node number) distribute tokens information, the general situation is according to the node number, from big to small token of nodes is the current network activity node. For from equipment, token round task finished only token return functions.2023-07-07 17:26:542
更改db configuration后需要重启db2吗
DB2数据库静态参数修改(归档模式和日志组数,都需要重启db)DB2(21) 版权声明:本文为博主原创文章,未经博主允许不得转载。1、修改日志组数目[db2inst1@DB2test183 ~]$ db2 update db cfg using LOGPRIMARY 5DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully.SQL1363W One or more of the parameters submitted for immediate modificationwere not changed dynamically. For these configuration parameters, the databasemust be shutdown and reactivated before the configuration parameter changesbecome effective.[db2inst1@DB2test183 ~]$ ls -l /home/db2inst1/db2inst1/NODE0000/SQL00002/LOGSTREAM0000/total 12312-rw-------. 1 db2inst1 db2iadm1 4202496 Jan 16 06:45 S0000000.LOG-rw-------. 1 db2inst1 db2iadm1 4202496 Jan 16 06:45 S0000001.LOG-rw-------. 1 db2inst1 db2iadm1 4202496 Jan 16 06:45 S0000002.LOG[db2inst1@DB2test183 ~]$ db2 restart db aaaDB20000I The RESTART DATABASE command completed successfully.[db2inst1@DB2test183 ~]$[db2inst1@DB2test183 ~]$[db2inst1@DB2test183 ~]$ ls -l /home/db2inst1/db2inst1/NODE0000/SQL00002/LOGSTREAM0000/total 20532-rw-------. 1 db2inst1 db2iadm1 4202496 Jan 16 06:45 S0000000.LOG-rw-------. 1 db2inst1 db2iadm1 4202496 Jan 16 06:45 S0000001.LOG-rw-------. 1 db2inst1 db2iadm1 4202496 Jan 16 06:45 S0000002.LOG-rw-------. 1 db2inst1 db2iadm1 4202496 Jan 16 06:45 S0000003.LOG-rw-------. 1 db2inst1 db2iadm1 4202496 Jan 16 06:45 S0000004.LOG[db2inst1@DB2test183 ~]$小知识:get db/dbm cfg 中的 show detail 选项可以看出参数值是否已经生效[db2inst1@DB2test183 ~]$ db2 update db cfg using LOGPRIMARY 6DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully.SQL1363W One or more of the parameters submitted for immediate modificationwere not changed dynamically. For these configuration parameters, the databasemust be shutdown and reactivated before the configuration parameter changesbecome effective.[db2inst1@DB2test183 ~]$ db2 get db cfg for aaa show detail|grep -i primaryNumber of primary log files (LOGPRIMARY) = 5 6 (前面的是修改之前的原始值,后面的数字是修改之后的值,目前还未生效。简言之,前后数值不一致即说明参数更改未生效)Percent max primary log space by transaction (MAX_LOG) = 0 0[db2inst1@DB2test183 ~]$ db2 get db cfg for aaa |grep -i primaryNumber of primary log files (LOGPRIMARY) = 6Percent max primary log space by transaction (MAX_LOG) = 0[db2inst1@DB2test183 ~]$[db2inst1@DB2test183 ~]$[db2inst1@DB2test183 ~]$ db2 restart db aaaDB20000I The RESTART DATABASE command completed successfully.[db2inst1@DB2test183 ~]$[db2inst1@DB2test183 ~]$[db2inst1@DB2test183 ~]$ db2 get db cfg for aaa |grep -i primaryNumber of primary log files (LOGPRIMARY) = 6Percent max primary log space by transaction (MAX_LOG) = 0 2、修改数据库归档模式[db2inst1@DB2test183 aaa]$ db2 get db cfg for aaa |grep -i logarchmeth1First log archive method (LOGARCHMETH1) = OFFArchive compression for logarchmeth1 (LOGARCHCOMPR1) = OFFOptions for logarchmeth1 (LOGARCHOPT1) =[db2inst1@DB2test183 aaa]$[db2inst1@DB2test183 aaa]$[db2inst1@DB2test183 aaa]$ db2 update db cfg using LOGARCHMETH1 disk:/home/db2inst1/archivelog/aaSQL5099N The value "/home/db2inst1/archivelog/aa" indicated by the databaseconfiguration parameter "LOGARCHMETH1" is not valid, reason code "2".SQLSTATE=08004[db2inst1@DB2test183 aaa]$ db2 update db cfg for aaa using LOGARCHMETH1 disk:/home/db2inst1/archivelog/aaaDB20000I The UPDATE DATABASE CONFIGURATION command completed successfully.SQL1363W One or more of the parameters submitted for immediate modificationwere not changed dynamically. For these configuration parameters, the databasemust be shutdown and reactivated before the configuration parameter changesbecome effective.[db2inst1@DB2test183 aaa]$ db2 get db cfg for aaa |grep -i logarchmeth1First log archive method (LOGARCHMETH1) = DISK:/home/db2inst1/archivelog/aaa/Archive compression for logarchmeth1 (LOGARCHCOMPR1) = OFFOptions for logarchmeth1 (LOGARCHOPT1) =[db2inst1@DB2test183 aaa]$ db2 get db cfg for aaa show detail |grep -i logarchmeth1First log archive method (LOGARCHMETH1) = OFF DISK:/home/db2inst1/archivelog/aaa/Archive compression for logarchmeth1 (LOGARCHCOMPR1) = OFF OFFOptions for logarchmeth1 (LOGARCHOPT1) =[db2inst1@DB2test183 aaa]$[db2inst1@DB2test183 aaa]$ db2 archive log for aaaSQL0104N An unexpected token "aaa" was found following "FOR". Expectedtokens may include: "DATABASE". SQLSTATE=42601[db2inst1@DB2test183 aaa]$ db2 archive log databae aaaSQL0104N An unexpected token "databae" was found following "LOG". Expectedtokens may include: "FOR". SQLSTATE=42601[db2inst1@DB2test183 aaa]$ db2 archive log databae for aaaSQL0104N An unexpected token "databae" was found following "LOG". Expectedtokens may include: "FOR". SQLSTATE=42601[db2inst1@DB2test183 aaa]$[db2inst1@DB2test183 aaa]$[db2inst1@DB2test183 aaa]$[db2inst1@DB2test183 aaa]$ db2 restart db aaaSQL1116N A connection to or activation of database "AAA" failed because thedatabase is in BACKUP PENDING state. SQLSTATE=57019[db2inst1@DB2test183 aaa]$[db2inst1@DB2test183 aaa]$[db2inst1@DB2test183 aaa]$ db2 get db cfg for aaa show detail |grep -i logarchmeth1[db2inst1@DB2test183 aaa]$[db2inst1@DB2test183 aaa]$[db2inst1@DB2test183 aaa]$ db2 get db cfg for aaa show detail |grep -i logarchmeth1[db2inst1@DB2test183 aaa]$[db2inst1@DB2test183 aaa]$ db2 get db cfg for aaa |grep -i logarchmeth1First log archive method (LOGARCHMETH1) = DISK:/home/db2inst1/archivelog/aaa/Archive compression for logarchmeth1 (LOGARCHCOMPR1) = OFFOptions for logarchmeth1 (LOGARCHOPT1) =[db2inst1@DB2test183 aaa]$ db2 get db cfg for aaa show detail |grep -i logarchmeth1[db2inst1@DB2test183 aaa]$ db2 get db cfg for aaa show detail |grep -i pri[db2inst1@DB2test183 aaa]$ db2 get db cfg for aaa show detail |grep -i log[db2inst1@DB2test183 aaa]$ db2 get db cfg for aaa show detail|grep -i primary[db2inst1@DB2test183 aaa]$ db2 get db cfg for aaa |grep -i logLog retain for recovery status = NOUser exit for logging status = YESCatalog cache size (4KB) (CATALOGCACHE_SZ) = 300Log buffer size (4KB) (LOGBUFSZ) = 2149Log file size (4KB) (LOGFILSIZ) = 1024Number of primary log files (LOGPRIMARY) = 6Number of secondary log files (LOGSECOND) = 3Changed path to log files (NEWLOGPATH) =Path to log files = /home/db2inst1/db2inst1/NODE0000/SQL00002/LOGSTREAM0000/Overflow log path (OVERFLOWLOGPATH) =Mirror log path (MIRRORLOGPATH) =First active log file = S0000000.LOGBlock log on disk full (BLK_LOG_DSK_FUL) = NOBlock non logged operations (BLOCKNONLOGGED) = NOPercent max primary log space by transaction (MAX_LOG) = 0Num. of active log files for 1 active UOW(NUM_LOG_SPAN) = 0Percent log file reclaimed before soft chckpt (SOFTMAX) = 0HADR log write synchronization mode (HADR_SYNCMODE) = NEARSYNCHADR spool log data limit (4KB) (HADR_SPOOL_LIMIT) = AUTOMATIC(0)HADR log replay delay (seconds) (HADR_REPLAY_DELAY) = 0First log archive method (LOGARCHMETH1) = DISK:/home/db2inst1/archivelog/aaa/Archive compression for logarchmeth1 (LOGARCHCOMPR1) = OFFOptions for logarchmeth1 (LOGARCHOPT1) =Second log archive method (LOGARCHMETH2) = OFFArchive compression for logarchmeth2 (LOGARCHCOMPR2) = OFFOptions for logarchmeth2 (LOGARCHOPT2) =Failover log archive path (FAILARCHPATH) =Number of log archive retries on error (NUMARCHRETRY) = 5Log archive retry Delay (secs) (ARCHRETRYDELAY) = 20Log pages during index build (LOGINDEXBUILD) = OFFLog DDL Statements (LOG_DDL_STMTS) = NOLog Application Information (LOG_APPL_INFO) = NO[db2inst1@DB2test183 aaa]$ db2 get db cfg for aaa show detail |grep -i log[db2inst1@DB2test183 aaa]$[db2inst1@DB2test183 aaa]$ ls -l /home/db2inst1/db2inst1/NODE0000/SQL00002/LOGSTREAM0000/total 24628-rw-------. 1 db2inst1 db2iadm1 4202496 Jan 16 08:26 S0000000.LOG-rw-------. 1 db2inst1 db2iadm1 4202496 Jan 16 08:26 S0000001.LOG-rw-------. 1 db2inst1 db2iadm1 4202496 Jan 16 08:13 S0000002.LOG-rw-------. 1 db2inst1 db2iadm1 4202496 Jan 16 08:13 S0000003.LOG-rw-------. 1 db2inst1 db2iadm1 4202496 Jan 16 08:13 S0000004.LOG-rw-------. 1 db2inst1 db2iadm1 4202496 Jan 16 08:13 S0000005.LOG[db2inst1@DB2test183 aaa]$ ls -l /home/db2inst1/archivelog/aaatotal 4drwxr-x---. 3 db2inst1 db2iadm1 4096 Jan 16 08:26 db2inst12023-07-07 17:27:021
C++中静态局部变量的生存期是什么?是贯穿整个程序还是从调用该函数开始到整个程序结束?
在程序结束前,他一直存在!在函数的多次调用中,静态的局部对象会持续存在并保存他的值!例如:int fun(){ static int coutnt = 0; return ++count;}int main(){ fun(); fun(); cout << fun() << endl;结果会输出3}2023-07-07 17:27:093
。NET 内容转换为EXCEL表 谁能帮我注释一下,每行是什么意思,干嘛用的,谢谢啊!
string style = @"<style> .text { mso-number-format:@; } </script> "; Response.ClearContent();下面这两句输出excel指定文件类型,文件名 Response.AddHeader("content-disposition", "attachment; filename=MyExcelFile.xls"); Response.ContentType = "application/excel";创建一个StringWriter实例 StringWriter sw = new StringWriter(); HtmlTextWriter htw = new HtmlTextWriter(sw); gvUsers.RenderControl(htw);// Style is added dynamically//你从下面这段代码开始看,就明白这一堆代码是干什么的了 Response.Write(style); Response.Write(sw.ToString()); Response.End();2023-07-07 17:27:171
外文文献 国外学位论文求助
自己去sciencedirect,springerlink等外文数据库下载啊或者到知网,维普等中文数据库下载很多的,校园网内免费获取校园网外可以利用google学术搜索,有部分能免费下载2023-07-07 17:27:241
SQL Server执行动态SQL正确方式
SQL Server执行动态SQL的话 应该如何实现呢?下面就为您介绍SQL Server执行动态SQL两种正确方式 希望可以让您对SQL Server执行动态SQL有更深的了解 动态SQL:code that is executed dynamically 它一般是根据用户输入或外部条件动态组合的SQL语句块 动态SQL能灵活的发挥SQL强大的功能 方便的解决一些其它方法难以解决的问题 相信使用过动态SQL的人都能体会到它带来的便利 然而动态SQL有时候在执行性能(效率)上面不如静态SQL 而且使用不恰当 往往会在安全方面存在隐患(SQL 注入式攻击) 动态SQL可以通过EXECUTE 或SP_EXECUTESQL这两种方式来执行 EXECUTE 执行 Transact SQL 批中的命令字符串 字符串或执行下列模块之一:系统存储过程 用户定义存储过程 标量值用户定义函数或扩展存储过程 SQL Server 扩展了 EXECUTE 语句 以使其可用于向链接服务器发送传递命令 此外 还可以显式设置执行字符串或命令的上下文 SP_EXECUTESQL 执行可以多次重复使用或动态生成的 Transact SQL 语句或批处理 Transact SQL 语句或批处理可以包含嵌入参数 在批处理 名称作用域和数据库上下文方面 SP_EXECUTESQL 与 EXECUTE 的行为相同 SP_EXECUTESQL stmt 参数中的 Transact SQL 语句或批处理在执行 SP_EXECUTESQL 语句时才编译 随后 将编译 stmt 中的内容 并将其作为执行计划运行 该执行计划独立于名为 SP_EXECUTESQL 的批处理的执行计划 SP_EXECUTESQL 批处理不能引用调用 SP_EXECUTESQL 的批处理中声明的变量 SP_EXECUTESQL 批处理中的本地游标或变量对调用 SP_EXECUTESQL 的批处理是不可见的 对数据库上下文所作的更改只在 SP_EXECUTESQL 语句结束前有效 如果只更改了语句中的参数值 则 sp_executesql 可用来代替存储过程多次执行 Transact SQL 语句 因为 Transact SQL 语句本身保持不变 仅参数值发生变化 所以 SQL Server 查询优化器可能重复使用首次执行时所生成的执行计划 一般来说 我们推荐 优先使用SP_EXECUTESQL来执行动态SQL 一方面它更加灵活 可以有输入输出参数 另外一方面 查询优化器更有可能重复使用执行计划 提高执行效率 还有就是使用SP_EXECUTESQL能提高安全性;当然也不是说要完全摈弃EXECUTE 在特定场合下 EXECUTE比SP_EXECUTESQL更方便些 比如动态SQL字符串是VARCHAR类型 不是NVARCHAR类型 SP_EXECUTESQL 只能执行是Unicode的字符串或是可以隐式转换为ntext的常量或变量 而EXECUTE则两种类型的字符串都能执行 下面我们来对比看看EXECUTE 和SP_EXECUTESQL的一些细节地方 EXECUTE(N SELECT * FROM Groups ) 执行成功 EXECUTE( SELECT * FROM Groups ) 执行成功 SP_EXECUTESQL N SELECT * FROM Groups ; 执行成功 SP_EXECUTESQL SELECT * FROM Groups 执行出错 Summary:EXECUTE 可以执行非Unicode或Unicode类型的字符串常量 变量 而SP_EXECUTESQL只能执行Unicode或可以隐式转换为ntext的字符串常量 变量 DECLARE @GroupName VARCHAR( );SET@GroupName = SuperAdmin ; EXECUTE( SELECT * FROM Groups WHERE GroupName= + SUBSTRING(@GroupName ) + ); SUBSTRING 附近有语法错误 DECLARE @Sql VARCHAR( ); DECLARE @GroupName VARCHAR( );SET@GroupName = SuperAdmin ; SET@Sql= SELECT * FROM Groups WHERE GroupName= + SUBSTRING(@GroupName ) + PRINT @Sql;EXECUTE(@Sql); Summary:EXECUTE 括号里面只能是字符串变量 字符串常量 或它们的连接组合 不能调用其它一些函数 存储过程等 如果要使用 则使用变量组合 如上所示 DECLARE @Sql VARCHAR( ); DECLARE @GroupName VARCHAR( );SET@GroupName = SuperAdmin ; SET@Sql= SELECT * FROM Groups WHEREGroupName=@GroupName PRINT @Sql;EXECUTE(@Sql); 出错:必须声明标量变量 “@GroupName” SET@Sql= SELECT * FROM Groups WHERE GroupName= + QUOTENAME(@GroupName ) EXECUTE(@Sql); 正确: DECLARE @Sql NVARCHAR( ); DECLARE @GroupName NVARCHAR( );SET@GroupName = SuperAdmin ; SET@Sql= SELECT * FROM Groups WHEREGroupName=@GroupName PRINT @Sql; EXEC SP_EXECUTESQL @Sql N @GroupNameNVARCHAR @GroupName 查询出来没有结果 没有声明参数长度 DECLARE @Sql NVARCHAR( ); DECLARE @GroupName NVARCHAR( );SET@GroupName = SuperAdmin ; SET@Sql = SELECT * FROM Groups WHERE GroupName=@GroupName PRINT @Sql; EXEC SP_EXECUTESQL @Sql N @GroupName NVARCHAR( ) @GroupName Summary:动态批处理不能访问定义在批处理里的局部变量 SP_EXECUTESQL 可以有输入输出参数 比EXECUTE灵活 下面我们来看看EXECUTE SP_EXECUTESQL的执行效率 首先把缓存清除执行计划 然后改变用@GroupName值SuperAdmin CommonUser CommonAdmin分别执行三次 然后看看其使用缓存的信息 DBCC FREEPROCCACHE; DECLARE @Sql VARCHAR( ); DECLARE @GroupName VARCHAR( );SET@GroupName = SuperAdmin ; CommonUser CommonAdmin SET@Sql = SELECT * FROM Groups WHERE GroupName= + QUOTENAME(@GroupName ) EXECUTE(@Sql); SELECTcacheobjtype objtype usecounts sql FROM sys syscacheobjects WHERE sql NOTLIKE %cache% ANDsql NOTLIKE %sys % ; 依葫芦画瓢 接着我们看看SP_EXECUTESQL的执行效率 DBCC FREEPROCCACHE; DECLARE @Sql NVARCHAR( ); DECLARE @GroupName NVARCHAR( );SET@GroupName = SuperAdmin ; CommonUser CommonAdmin SET@Sql = SELECT * FROM Groups WHERE GroupName=@GroupName EXECUTESP_EXECUTESQL @Sql N @GroupName NVARCHAR( ) @GroupName; SELECTcacheobjtype objtype usecounts sql FROM sys syscacheobjects WHERE sql NOTLIKE %cache% ANDsql NOTLIKE %sys % ; lishixinzhi/Article/program/SQLServer/201311/222792023-07-07 17:27:311
Cisco VLAN里,dynamic和TRUNK的区别是什么啊?
Switch(config-if)#switch mode ? access Set trunking mode to ACCESS unconditionally dynamic Set trunking mode to dynamically negotiate access or trunk mode //动态协商 trunk Set trunking mode to TRUNK unconditionally //无条件地Switch(config-if)#switch mode dynamic ? auto Set trunking mode dynamic negotiation parameter to AUTO desirable Set trunking mode dynamic negotiation parameter to DESIRABLE动态协商还有两种模式,一种是自动的,既不主动也不被动;一种是期望,也就是主动的。一般来说,dynamic用得很少。2023-07-07 17:27:401
高分求下面已经有英文重点关键词的摘要翻译~机器翻译勿入!好翻译追加100分。
HH ,好长啊2023-07-07 17:27:504
Linux内核中进程0的主要任务是什么?
总结一下有如下几个要点:1.进程0是所有其他进程的祖先,也称作idle进程或swapper进程.2.进程0是在系统初始化时由kernel自身从无到有创建.3.进程0的数据成员大部分是静态定义的,即由预先定义好的INIT_TASK,INIT_MM等宏初始化.进程0的描述符init_task定义在arch/arm/kernel/init_task.c,由INIT_TASK宏初始化。init_mm等结构体定义在include/linux/init_task.h内,为init_task成员的初始值,分别由对应的初始化宏如INIT_MM等初始化Process1进程0最终会通过调用kernel_thread创建一个内核线程去执行init函数,这个新创建的内核线程即Process1(这时还是共享着内核线程0的资源属性如地址空间等)。init函数继续完成剩余的内核初始化,并在函数的最后调用execve系统调用装入用户空间的可执行程序/sbin/init,这时进程1就拥有了自己的属性资源,成为一个普通进程(init进程)。至此,内核初始化和启动过程结束。下面就进入了用户空间的初始化,最后运行shell登陆界面。(注:Init进程一直存活,因为它创建和监控在操作系统外层执行的所有进程的活动。)——————这段对进程0的描述引用自《UnderstandingTheLinuxKernel-ThirdEdtion》Theancestorofallprocesses,calledprocess0,theidleprocess,or,forhistoricalreasons,theswapperprocess,isakernelthreadcreatedfromscratchduringtheinitializationphaseofLinux.Thisancestorprocessusesthefollowingstaticallyallocateddatastructures(datastructuresforallotherprocessesaredynamicallyallocated)2023-07-07 17:28:111
如何查看 Linux是32位还是64位?
查看linux机器是32位还是64位的方法:file /sbin/init 或者 file /bin/ls/sbin/init: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped如果显示 64-bit 则为64位;file /sbin/init/sbin/init: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), stripped如果显示为32 bit 则为32bit;uname -a:uname -aLinux pmx002**.**.** 2.6.32-71.el6.x86_64 #1 SMP Wed Sep 1 01:33:01 EDT 2010 x86_64 x86_64 x86_64 GNU/Linuxx86_64表示64位机器uname -aLinux pmx0**.**.** 2.6.9-5.ELsmp #1 SMP Wed Jan 5 19:30:39 EST 2005 i686 i686 i386 GNU/Linuxi686表示32位机器i686 只是i386的一个子集,支持的cpu从Pentium 2 (686)开始,之前的型号不支持.2023-07-07 17:28:191
java中dto,dco,bo里面分别存放什么?
dco 是 Dynamically configurable object的全称存放:外部调用的对象和函数等一般是用来被外部系统调用的对象2023-07-07 17:28:551
使徒行者里面卓sir说的我是你的黑兜乐(上司兼联络员)这个黑兜乐的英文怎么写。
handle2023-07-07 17:29:033
构造函数、析构函数、虚函数可否内联,有何意义
在语法上没有错误首先要掌握一点,构造函数、析构函数、虚函数可以声明为内联函数,这在语法上是正确的。 When the object is referenced via a pointer or a reference, a call to a virtual function cannot be inlined, since the call must be resolved dynamically. Reason: the compiler can"t know which actual code to call until run-time (i.e., dynamically), since the code may be from a derived class that was created after the caller was compiled. Therefore the only time an inlinevirtual call can be inlined is when the compiler knows the "exact class" of the object which is the target of the virtual function call. This can happen only when the compiler has an actual object rather than a pointer or reference to an object. I.e., either with a local object, a global/static object, or a fully contained object inside a composite.2023-07-07 17:29:221
东芝笔记本CMOS设置,高手进!!!
boot------first boot device 选择USB-HDD2023-07-07 17:29:312
查看linux进程是32位还是64位的
查看linux机器是32位还是64位的方法:file /sbin/init 或者file /bin/ls/sbin/init: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped如果显示 64-bit 则为64位;file /sbin/init/sbin/init: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), stripped如果显示为32 bit 则为32bit;uname -a:uname -aLinux pmx002**.**.** 2.6.32-71.el6.x86_64 #1 SMP Wed Sep 1 01:33:01 EDT 2010 x86_64 x86_64 x86_64 GNU/Linuxx86_64表示64位机器uname -aLinux pmx0**.**.** 2.6.9-5.ELsmp #1 SMP Wed Jan 5 19:30:39 EST 2005i686 i686 i386 GNU/Linuxi686表示32位机器i686 只是i386的一个子集,支持的cpu从Pentium 2 (686)开始,之前的型号不支持.Linux命令需求可查看“Linux命令大全”。2023-07-07 17:29:393
linux怎么查看oracle版本
输入数据库任意用户的用户名和密码,进行登陆。登陆成功后,就可以看到Oracle的版本信息了2023-07-07 17:29:493
求翻译一些句子
1,“多媒体”这个术语描述了许多不同的技术,它使得视听媒体可以以交流为目的用新的方式结合起来。2.多媒体技术在商业领域的另一个重要实践是视频会议,就是在不同地方的两个或多个人通过使用计算机网络来传输音频和视频数据,从而进行会议。3.多媒体使得游戏的创新性,互动性体验得到了极大的提高,这是只有在有引人入胜的声音和耀眼的图形时才会有的感受。4,嵌入式系统是一种专用系统,在这种系统下计算机完全被它所控制的设备封装。5.一些嵌入式系统由于安全性和可用性的原因被要求必须满足实时性能。其它的一些可能有很低 的或者没有这样的性能要求,由此可以简化系统硬件以减少成本。6,万维网的崛起使嵌入式系统的设计师有了另一个很不同的选择,因为它是通过一个网络连接提供一个网页界面。7,一个设计良好的数据库,没有需要用户或使用者必须在同一时间内更新的重复数据。8.当运行数据库中的数据时,你必须使用由数据库软件定义的一套命令和声明(语言)9,通用的数据库应用程序可以使用目录为用户动态地提供不同的数据库的数据,而不会被绑在一个特定的数据格式。10,电子商务这个系统不仅包括着重于货物买卖的交易和直接产生利润的服务,还包括支持产生收入的交易11,电子商务是建立在传统商务的优点和结构上,再加上电子网络提供的灵活性。12,另外一个例子,安培公司,向客户提供机会直接从其网络目录购买电子接插件、relater组件,通过传达对EDI-based采购订单及确认的需要13,电讯通信常包括信息的发送者和一个或多个被连接的接受者,例如电话系统,是把信息从一个地方传递到另一个地方。14,此外,算法分解的广泛使用促成了不可扩展和不可复用的软件的设计和实现15,现有的面向对象的元件和框架主要集中在少数地区(e.g.GUIs),并且现有的行业标准还缺少在整个通信软件领域中真正有效的语义、特点、和互用性 纯手工翻译啊 。。。。累死我了。。。2023-07-07 17:30:155
如何在unity3d中实现动态环境光的效果
在unity3d中实现动态环境光的效果,似乎可以用此方法来做出一天中不同时间的光线效果。下面是原文:I"ve been working on getting dynamic ambient lighting workingwithin Unity. Based off Valve"s 6-colour pre-baked ambient lighting(detailed here, pg 5, ch 8.4.1), but it grabs the 6 coloursdynamically.There"s probably lots more you could do to optimise it further(e.g. use replacement shaders when rendering the cubemap that dosimpler lighting calcs). But you could do that yourself asrequired.I"d also advise against using it on anything other than yourmain character, as it"s likely too expensive to run on multipleobjects.cubemap camera scriptCreate a new camera and turn off the GUI, Flare and Audiocomponents.Set up it"s Culling Layers to not render non-essential thingslike particles or incidental detail. Also move your character toit"s own layer and set the camera not to render it (we don"t wantbits of the character rendered into the cubemap).Attach this javascript to it and set the target to be yourcharacter and set up the offset from your character"s position sothat it"s in the centre of your character (i.e. a 2m tall characterwants to be offset 0, 1, 0 so that the camera renders from thecharacters centre.下面为摄像机脚本:@script ExecuteInEditModepublic var target : Transform;public var cubemapSize : int = 128;public var oneFacePerFrame : boolean = true;public var offset : Vector3 = Vector3.zero;private var cam : Camera;private var rtex : RenderTexture;function Start () {cam = camera;cam.enabled = false;// render all six faces at startupUpdateCubemap( 63 );transform.rotation = Quaternion.identity;}function LateUpdate () { if (oneFacePerFrame ) {var faceToRender = Time.frameCount % 6;var faceMask = 1 << faceToRender;UpdateCubemap ( faceMask ); } else{UpdateCubemap ( 63 ); // all six faces }}function UpdateCubemap ( faceMask : int ) {if ( !rtex ) {rtex = new RenderTexture ( cubemapSize, cubemapSize, 16 );rtex.isPowerOfTwo = true;rtex.isCubemap = true;rtex.useMipMap = true;rtex.hideFlags = HideFlags.HideAndDontSave;rtex.SetGlobalShaderProperty ( " _ WorldCube" );}transform.position = target.position + offset;cam.RenderToCubemap ( rtex, faceMask );}function OnDisable () {DestroyImmediate ( rtex );}dynamic ambient shader环境光shaderThis is the shader that generates and applies the ambientlighting from the cubemap rendered by the camera above.Create a new shader, paste this code into it and save it. We"llintegrate it into our shaders next.下面是shader代码:Shader "DynamicAmbient" {Properties {_ MainTex ("Diffuse (RGB) Alpha (A)", 2D) = "white" {}_ BumpMap ("Normal (Normal)", 2D) = "bump" {}}SubShader{Pass {Name "DynamicAmbient"Tags {"LightMode" = "Always"}CGPROGRAM#pragma vertex vert#pragma fragment frag#pragma fragmentoption ARB _ precision _ hint _ fastest#include "UnityCG.cginc"struct v2f{float4 pos : SV _ POSITION;float2 uv : TEXCOORD0;float3 normal : TEXCOORD2;float3 tangent : TEXCOORD3;float3 binormal : TEXCOORD4;}; v2f vert (appdata _ tan v){v2f o;o.pos = mul(UNITY _ MATRIX _ MVP, v.vertex);o.uv = v.texcoord.xy;o.normal = mul( _ Object2World, float4(v.normal, 0)).xyz;o.tangent = v.tangent.xyz;o.binormal = cross(o.normal, o.tangent) * v.tangent.w;return o;}sampler2D _ MainTex;sampler2D _ BumpMap;samplerCUBE _ WorldCube;float4 frag(v2f i) : COLOR{fixed4 albedo = tex2D( _ MainTex, i.uv);float3 normal = UnpackNormal(tex2D( _ BumpMap, i.uv));float3 worldNormal = normalize((i.tangent * normal.x) +(i.binormal * normal.y) + (i.normal * normal.z));float3 nSquared = worldNormal * worldNormal;fixed3 linearColor;linearColor = nSquared.x * texCUBEbias( _ WorldCube,float4(worldNormal.x, 0.00001, 0.00001, 999)).rgb; // For unknownreasons, giving an absolute vector ignores the mips....linearColor += nSquared.y * texCUBEbias( _ WorldCube,float4(0.00001, worldNormal.y, 0.00001, 999)).rgb; // ...so unusedcomponents must have a tiny, non-zero value in.linearColor += nSquared.z * texCUBEbias( _ WorldCube,float4(0.00001, 0.00001, worldNormal.z, 999)).rgb;float4 c;c.rgb = linearColor * albedo.rgb;c.a = albedo.a;return c;}ENDCG}}FallBack Off}integrating the ambient shader into surface shaders将环境光shader与物体表面的shader发生互相影响Now, we can use the above shader wherever we want it via theUsePass command, and blending everything else on top.The key here is to ensure your surface shader"s blend mode isset to additive (One One) otherwise it"ll just write clean over thelovely ambient light that"s been applied.So, before your surfaceshader"s CGPROGRAM block, add the lines;添加shader代码:UsePass "DynamicAmbient/DYNAMICAMBIENT"Blend One OneWe"ve also got to ensure that our surface shader doesn"t use theambient light value that"s set in the editor, otherwise it"ll addthe two together and defeat the purpose. So when you define thesurface shader to use, ensure you add the noambient argument.e.g;#pragma surf BlinnPhong noambientYour new surface shader with dynamic ambient lighting shouldlook something like this;Shader "Bumped Specular" {Properties {_ Color ("Main Color", Color) = (1,1,1,1)_ SpecColor ("Specular Color", Color) = (0.5, 0.5, 0.5, 1)_ Shininess ("Shininess", Range (0.03, 1)) = 0.078125_ MainTex ("Base (RGB) Gloss (A)", 2D) = "white" {}_ BumpMap ("Normalmap", 2D) = "bump" {}}SubShader {Tags { "RenderType"="Opaque" }LOD 400UsePass "DynamicAmbient/DYNAMICAMBIENT"Blend One OneCGPROGRAM#pragma surface surf BlinnPhong noambientsampler2D _ MainTex;sampler2D _ BumpMap;fixed4 _ Color;half _ Shininess;struct Input {float2 uv _ MainTex;float2 uv _ BumpMap;};void surf (Input IN, inout SurfaceOutput o) {fixed4 tex = tex2D( _ MainTex, IN.uv _ MainTex);o.Albedo = tex.rgb * _ Color.rgb;o.Gloss = tex.a;o.Alpha = tex.a * _ Color.a;o.Specular = _ Shininess;o.Normal = UnpackNormal(tex2D( _ BumpMap, IN.uv _ BumpMap));}ENDCG}FallBack "Specular"}Now apply your new shader to your character"s material and we"redone2023-07-07 17:30:361
在Visual C++中Create具体功能是什么,有应该怎样使用
功能太多了 virtual BOOL Create ( LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL ); Example // Dynamically create static control using CWnd::Create, // instead of with CStatic::Create, which does not // need the, STATIC, class name. void CMyDlg::OnCreateStatic() { CWnd* pWnd = new CWnd; pWnd->Create(_T("STATIC"), "Hi", WS_CHILD | WS_VISIBLE, CRect(0, 0, 20, 20), this, 1234); }2023-07-07 17:30:451
include file能否包含变量?
include里是不能有变量的,否则会报错。IIS5.0以上可以尝试用server.Execute来解决动态引用的问题<%Dimpp=session("二级目录")Server.Execute("一级目录/"&p&"/check.asp")%>参见这个页面:http://classicasp.aspfaq.com/files/directories-fso/how-do-i-dynamically-include-files.html2023-07-07 17:30:522
请教诸位高人,关于disp+work进程的问题
试着修改你的profile文件,找到rdisp/wp_no_dia=7 <----------------对话进程的个数,最少2个rdisp/wp_no_vb=2 <----------------更新进程的个数,最少1个rdisp/wp_no_vb2=1 <----------------更新2的个数,最小1个rdisp/wp_no_enq=1 <----------------排打进程的个数,最少1个rdisp/wp_no_btc=3 <----------------批处理的个数,最少1个rdisp/wp_no_spo=1 <----------------打印进程的个数,最少1个.2023-07-07 17:31:112
关于MSFlexgrid控件(注册)的一个小问题
未安装VC使用activeX控件- -Tag: 串口控件 注册 在使用串口控件时,在没有装VC的机器上碰到问题regsvr32 注册成功,但仍然不能使用,经查找是LicenseKey的问题只需在创建控件时增加下列几行即可WCHAR pwchLicenseKey[] = { 0x0043, 0x006F, 0x0070, 0x0079, 0x0072, 0x0069, 0x0067, 0x0068, 0x0074, 0x0020, 0x0028, 0x0063, 0x0029, 0x0020, 0x0031, 0x0039, 0x0039, 0x0034, 0x0020 }; BSTR bstrLicense = ::SysAllocStringLen(pwchLicenseKey, sizeof(pwchLicenseKey)/sizeof(WCHAR)); if(!m_ComPort.Create(NULL,0,CRect(0,0,0,0),AfxGetMainWnd(), IDC_MSCOMM1,NULL,FALSE,bstrLicense)) { AfxMessageBox("Failed to create OLE Communications Control "); return -1; //fail to create }......::SysFreeString(bstrLicense);具体参考原文见下:-----------------------------------------------------------------------------------------------------This article was previously published under Q151771 SUMMARYThe LicReqst sample illustrates how to use the IClassFactory2 interface to request an object"s License key. The following file is available for download from the Microsoft Download Center:Licreqst.exeFor additional information about how to download Microsoft Support files, click the following article number to view the article in the Microsoft Knowledge Base: 119591 How to Obtain Microsoft Support Files from Online Services Microsoft scanned this file for viruses. Microsoft used the most current virus-detection software that was available on the date that the file was posted. The file is stored on security-enhanced servers that help to prevent any unauthorized changes to the file. NOTE: Use the -d option when running Licrqst.exe to decompress the file and recreate the proper directory structure. MORE INFORMATIONThe LicReqst sample is a dialog-based MFC application that illustrates how to use the IClassFactory2 interface to request an object"s License key. LicReqst displays the ProgID of each of the currently registered ActiveX controls in a Listbox. When one of the displayed ProgID"s is selected, an instance of the corresponding control is created and then asked for it"s License key. If a valid key is returned, LicReqst displays the key and enables the "Copy to Clipboard" button that allows the License key to be copied to the Clipboard. The License key can then easily be pasted into code that uses the CWnd::CreateControl method to dynamically create an instance of the Control. LicReqst creates a textual version of the License key data in the form of a declaration of an array of WCHAR when copying the key to the Clipboard. This is done because the License key data could contain non-printable characters. A human-readable version of the License key data is also provided for reference and is included inside a Comment block in the final string that is copied to the Clipboard. For example, if an object uses the string "Copyright (c) 1994" (without the quotes) for its License key, LicReqst would generate the following block of text that could be copied to and pasted from the Clipboard: /* Copyright (c) 1994 */ WCHAR pwchLicenseKey[] = { 0x0043, 0x006F, 0x0070, 0x0079, 0x0072, 0x0069, 0x0067, 0x0068, 0x0074, 0x0020, 0x0028, 0x0063, 0x0029, 0x0020, 0x0031, 0x0039, 0x0039, 0x0034, 0x0020 }; You can use the previous block of text in code that creates an instance of the Licensed object, and you can use the pwchLicenseKey variable to specify the object"s License key. For example, if MFC code is dynamically creating an instance of a Licensed ActiveX Control using the Create method of a Visual C++ Component Gallery generated wrapper class, the pwchLicenseKey variable can be used in the Create call like this: BSTR bstrLicense = ::SysAllocStringLen(pwchLicenseKey, sizeof(pwchLicenseKey)/sizeof(WCHAR)); m_MyControl.Create(NULL, WS_VISIBLE, CRect(10,10,10,10), this, 2, NULL, FALSE, bstrLicense); ::SysFreeString(bstrLicense); Note how a BSTR is created from the pwchLicenseKey variable and how the BSTR is then used for the License key parameter in the Create call. NOTE: The code in this sample that generates the text copied to the Clipboard makes the assumption that it is being executed on a little endian system (Intel x86-class processors). Because of this, it will not work correctly on big endian system. For these systems, it is still possible to use the Helper function used internally by the sample to request the License key from an object. The sample uses a Helper function called RequestLicenseKey() to get the License key from an object based on its ProgID. The source code for the RequestLicenseKey() function is shown later in the Sample Code section. To find other locations of interest in the sample source code, use the Find in Files feature of the Visual C++ Developer Studio to search for the string named SAMPLE CODE. This string has been used to tag each of the modified sections in the source code. NOTE: Running the LicReqst sample on a licensed machine to obtain an object"s License key, and then distributing that key to allow applications to be developed on other non-licensed machines, may be a violation of established copyrights. For more information and to determine if an object"s License key can be legally redistributed, refer to the License Agreement provided with the object or contact the creator of the object. Sample Code// Compile options needed: none/////////////////////////////////////////////////////////////////////// // SAMPLE CODE - Implementation of the RequestLicenseKey function// // The RequestLicenseKey function uses the IClassFactory2 interface// to request a License key from an object specified by its ProgID.// // Parameters:// // [out] BSTR& bstrLicenseKey// Upon return, this BSTR will contain either a valid// License key or an error message. It is the caller"s// responsibility to call ::SysFreeString on this BSTR.// // [in] CString strProgID// Specifies the ProgID of the object from which to request the// License key.// // // Return Value:// // A BOOL specifying success or failure. If TRUE is returned,// the License key was retrieved successfully and the// bstrLicenseKey parameter contains a valid License key. If// FALSE is returned, the License key was not retrieved// successfully and the bstrLicenseKey parameter contains a// descriptive error string.// // Regardless of the return value, it is the responsibility of// the caller to call ::SysFreeString on the returned bstrLicenseKey// parameter.// BOOL RequestLicenseKey(BSTR& bstrLicenseKey, CString strProgID) { USES_CONVERSION; LPCLASSFACTORY2 pClassFactory; CLSID clsid; BOOL bValidKeyReturned = FALSE; // Get the CLSID of the specified ProgID. if (SUCCEEDED(CLSIDFromProgID(T2OLE(strProgID), &clsid))) { // Create an instance of the object and query it for // the IClassFactory2 interface. if (SUCCEEDED(CoGetClassObject(clsid, CLSCTX_INPROC_SERVER, NULL, IID_IClassFactory2, (LPVOID *)(&pClassFactory)))) { LICINFO licinfo; // Check to see if this object has a runtime License key. if (SUCCEEDED(pClassFactory->GetLicInfo(&licinfo))) { if (licinfo.fRuntimeKeyAvail) { HRESULT hr; // The object has a runtime License key, so request it. hr = pClassFactory->RequestLicKey(0, &bstrLicenseKey); if (SUCCEEDED(hr)) { if(bstrLicenseKey == NULL) bstrLicenseKey = ::SysAllocString( L""); else // You have the license key. bValidKeyReturned = TRUE; } else // Requesting the License key failed. switch(hr) { case E_NOTIMPL: bstrLicenseKey = ::SysAllocString( L""); break; case E_UNEXPECTED: bstrLicenseKey = ::SysAllocString( L""); break; case E_OUTOFMEMORY: bstrLicenseKey = ::SysAllocString( L""); break; case CLASS_E_NOTLICENSED: bstrLicenseKey = ::SysAllocString( L""); break; default: bstrLicenseKey = ::SysAllocString( L""); } } else bstrLicenseKey = ::SysAllocString( L""); } else bstrLicenseKey = ::SysAllocString( L""); // Make sure you release the reference to the class factory. pClassFactory->Release(); } else bstrLicenseKey = ::SysAllocString( L""); } else bstrLicenseKey = ::SysAllocString( L""); // Return a BOOL specifying whether or not you were able to get a // valid license key. return bValidKeyReturned; }2023-07-07 17:31:181
求大神英语翻译
船员培训公司应确保符合安全配员证书的要求,建立uprecruiting程序和规范的大师,船员(资格和医疗条件)。公司应offercrew培训课程和熟悉船舶/短信操作相关的(培训和考勤登记),提供关键业务proceduresas:桥梁运行程序,机舱操作程序,LSA /ffeoperation /程序使用,污染预防程序货物手续,健康和卫生程序,与安全相关的操作(系泊操作,药物/放了预防,船舶的安全,。....)。公司建立程序以确保新的人员和人员转移到新的任务涉及安全和环境保护是givenproper熟悉其职责。这是必不可少的要提供航行前应明确指示,记录并给予公司应建立程序以确保新的人员和personneltransferred对环境的保护和安全相关的新的分配适当熟悉他们的职责。instructionswhich要航行前应确定提供必要的,记录了。公司应确保每一艘船舶配备合格,持证并fitseafarers与国家和国际要求。以后可以用百度翻译器 很好用哦 望采纳请采纳。2023-07-07 17:31:273
文献翻译 ——通信类(2)
I don"t know2023-07-07 17:31:343
希望英语好的人帮忙翻译一下下面的文字 感激不尽
Adaptation is the evolution of a concept, it is as a point of view quotation with study, there is a language adaptation. Embarks from the adaptation, language use is seen as a caller and the constant process of choice. D Saul Aaron in his book Understanding of Pragmatic emphasis on all language use and language comprehension is to comply with the constant process of choice. Choose both occur in the structure of language level, also at the strategy level. Selection is the process of context and language selection both the dynamic process of mutual adaptation in the process, the language user"s consciousness in the communication process is highlighted by language choice.The whole selection process by the communicator"s subjective consciousness, language is the restriction of internal factors, sometimes is a kind of since ?2023-07-07 17:31:423
求英语高手翻译,谢谢了。
定时齿轮驱动齿轮与螺旋大会由圆柱齿轮切齿。注入泵,凸轮轴是由曲轴驱动通过一个中间齿轮。该发动机的润滑油泵由曲轴驱动也通过中间传动齿轮。除了凸轮轴,凸轮轴齿轮也推动海水泵驱动齿轮(船用发动机),以及空气压缩机,如安装(可选设备)也由凸轮轴驱动齿轮。曲柄机构曲轴曲轴是在七日记主轴承。轴向轴承由该中心位于主轴承推力垫圈。曲轴是静态和动态的平衡。在曲轴的前端有一个多边形轮廓和尾部都有一个其中飞轮螺栓法兰。曲轴是硝基化油器。只要轴不需要被拉直,然后磨,磨到最大。第二尺寸不足时无需重新硝基渗碳希望你能满意2023-07-07 17:31:492
空调专业英语翻译(高手请进)
空调风机设置应该有种简单的网络图,应该被双倍设计2023-07-07 17:31:585
请达人帮忙翻译翻译吧
由于每个类型的飞机展示了其特定的空气动力学和操控特性,所以改变这些对不同类型的飞机模拟的特性是可取的。一种解决方案是把飞机的稳定系数,惯性系数,机身规格的空气动力模型为基础——这些在大多数气动稳定性和控制的教科书中都是可行的。但是,为新一代战斗机建模型时必须注意。为了提高可操作性,这些飞机设计了空气动力学的空档中性已达到不稳定。其稳定系数反映了这一不稳定性。2023-07-07 17:32:134
怎么查看linux下程序是32位还是64位
方法一:getconf LONG_BIT在linux终端输入getconf LONG_BIT命令如果是32位机器,则结果为32Linux代码 [root@localhost ~]# getconf LONG_BIT 32 如果是64位机器,则结果为64Linux代码 [root@localhost ~]# getconf LONG_BIT 64 方法二:uname -a如果是64位机器,会输出x86_64Linux代码 [chenzhou@testweb01 ~]$ uname -a Linux testweb01 2.6.18-308.4.1.el5 #1 SMP Tue Apr 17 17:08:00 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux 可以看到,uname-a执行后的结果中输出了x86_64,说明该机器是64位的,否则代表该机器是32位的Linux代码 [root@localhost ~]# uname -a Linux localhost.localdomain 2.6.18-164.el5 #1 SMP Tue Aug 18 15:51:54 EDT 2009 i686 i686 i386 GNU/Linux 方法三:file /sbin/init 或者 file /bin/ls示例:32位机器file /sbin/initLinux代码 [root@localhost ~]# file /sbin/init /sbin/init: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped file /bin/lsLinux代码 [root@localhost ~]# file /bin/ls /bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped 示例:64位机器file /sbin/initLinux代码 [~]$ file /sbin/init /sbin/init: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped file /bin/lsLinux代码 [~]$ file /bin/ls /bin/ls: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped 可以通过命令结果中的64-bit或者32-bit来判断该机器是64位还是32位2023-07-07 17:32:221
The hardened runtime
In the previous article, I looked at the requirements and features of notarization, drawing attention to the apps which were notarized under legacy rules and therefore don"t meet the same standards. Here I move on to consider one of those requirements in detail: the hardened runtime. Apple doesn"t appear to have fully explained how the runtime environment of notarised apps is ‘hardened". The best description it gives to developers is that it “protects the runtime integrity of your software by preventing certain classes of exploits, like code injection, dynamically linked library (DLL) hijacking, and process memory space tampering.” Those types of exploit could be used by an attacker trying to use third-party software for malicious purposes, or as techniques within their own malicious code, of course. Among the behaviours which are prohibited in a hardened environment are: So the perfect app only runs its own signed code, which is never changed in memory, and all that code has been checked for malicious software. Nothing else should be able to alter that model behaviour. For many apps, behaving perfectly isn"t a problem, so they can adopt the hardened runtime without any ill-effect on their function. For a small minority, though, its restrictions would kill that app completely. For example, an app featuring its own JIT JavaScript compilation couldn"t do anything without being able to create writeable and executable memory. To address these needs, Apple provides six different opt-outs to features of the hardened runtime. These are expressed in specific entitlements, which are then embedded with the app signature. These entitlements are: There"s another important entitlement in the context of notarized apps: you should never come across com.apple.security.get-task-allow, which enables that app to be run in Xcode"s debug environment. You should also be aware that the entitlement indicating that an app runs in a sandbox is com.apple.security.app-sandbox. Apps which are both notarized and sandboxed are becoming increasingly common, as they can be distributed through the App Store and in direct sales. Apps which use the full hardened environment have none of those entitlements. All hardened apps, even those which claim all six opt-outs, show a CodeDirectory flag in their signature of 0x10000(runtime), which is the mark of the hardened app. When hardening is disabled, the flags given for the CodeDirectory are often 0x0(none), but can always include others such as ‘kill". Currently, the only method provided by macOS to discover whether an app uses the hardened runtime, and which entitlements it takes, is the codesign command tool, as: codesign --display --entitlements :- appPath where appPath gives the app"s full pathname. Thus there is no convenient method to discover what opt-outs a notarized app uses. Some third-party tools do list them: my own Taccy does, together with a detailed account of the other half of the hardened environment, its privacy settings. I"ll look at those in detail in the next article.2023-07-07 17:32:401