• Java编程方法论响应式RxJava与代码设计实战电子版

    编辑点评:包含大量案例,案例按照功能迭代的方式响应式是未来的编程趋势,本书是讲解响应式技术RxJava2的书籍,在进行源码导读的同时,也引导读者对代码设计进行思考。Java编程方法论响应式RxJava与代码设计实战df电子版免费下载,需要的自己来点击下载吧。Java编程方法论df图片预览图书特色适读人群:本书适合有Java编程基础的中高级Java开发工程师、想要学习代码设计思路与技巧的读者、对响应式编程感兴趣的读者阅读。1.本书是作者知秋实践经验的总结,业内专家小马哥、梁桂钊、尹相宇、朱勇铭、芋艿、泥瓦匠等倾情力荐。2.知秋是国内为数不多的响应式和NIO方向的专家,本书是讲解响应式技术的书籍,在进行源码导读的同时,也引导读者对代码设计进行思考。3.响应式是未来的编程趋势,本书深入解读响应式RxJava2的源码,从设计到实现细节,帮助读者达到RxJava2源码库组件级别的拓展。4.本书包含大量案例,案例按照功能迭代的方式进行讲解,另外作者还录制了相关视频,可以配合学习。目录大全第1章响应式编程总览(ReactiveProgrammig)11.1异步编程模式11.1.1并发21.1.2并行开发初探31.2流(Stream)31.3响应式流(ReactiveStream)41.3.1响应式流的特性41.3.2响应式开发的设计原则51.3.3响应式开发的好处61.4响应式开发工具库61.4.1RxJava简介61.4.2Reactor简介71.4.3MogoDB简介81.4.4响应式项目用例81.5Java9中的响应式编程101.5.1响应式编程接口101.5.2Java9响应式编程入门Demo121.5.3SumiioPuliher类的源码解读181.5.4响应式编程整合Srig实战案例231.6小结29第2章在RxJava中创建Oervale302.1响应式编程所涉及的设计模式302.1.1观察者模式302.1.2迭代器模式302.2解读reactivex.Oervale312.2.1从Flow.Puliher到Oervale332.2.2ucrie的二三事332.2.3create方法的设计思想362.2.4各式各样的Oervale402.2.5Oervale.cache432.2.6无限流492.2.7在Oervale内处理错误542.2.8定时控制Oervale发送数据562.2.9Dioale延伸592.2.10CoectaleOervale解读672.2.11Oervale中的ulih.refCout解读762.2.12RxJava中的Suject解读792.3小结89第3章RxJava2中的操作903.1核心操作903.1.1使用filter进行条件过滤903.1.2使用ma进行元素转换963.1.3使用flatMa进行扁平化转换983.1.4使用ca累加器1123.1.5使用grouBy进行分组1143.2多个Oervale的合并操作1223.2.1使用merge对Oervale进行合并1223.2.2使用zi方法进行合并1243.2.3comieLatet操作1353.2.4withLatetFrom操作1413.2.5am操作1423.3高级操作1433.3.1再谈累加器ca1433.3.2聚合操作reduce1443.3.3收集操作collect1463.3.4使用ditict去重1483.3.5使用ditictUtilChaged过滤重复数据1523.3.6其他操作1523.3.7自定义操作1533.4小结159第4章对RxJava2的设计探索1604.1源的创建设计思路1604.2中间操作的转承1624.3小结166第5章Oervale实战1675.1初版架子实现1675.1.1DAO层面的处理工作1675.1.2控制层的响应式实现1725.2基于架子实现一个汇率查询的服务1755.3rxjava-we-rig-oot-tarter的抽取设计1795.4OervaleSeEmitter的设计实现1885.5小结196第6章RxJava2中的多线程操作1976.1初探RxJava并发编程1976.2ucrieO操作2116.3oerveO操作2166.4uucrieO操作2206.5调度器Scheduler2266.5.1Scheduler.ewThread方式2276.5.2Scheduler.io方式2276.5.3Scheduler.comutatio方式2286.5.4Scheduler.from(Executorexecutor)自定义方式2286.6小结230第7章Flowale与背压2317.1回顾背压2317.2引入Flowale2337.3探索Flowale.create2347.3.1BackreureStrategy.BUFFER策略2397.3.2BackreureStrategy.LATEST策略2467.3.3BackreureStrategy.DROP策略2497.4将一个Oervale转化为一个Flowale2517.5通过oBackreureXXX操作来实现背压策略2527.5.1oBackPreureBuffer操作2557.5.2oBackreureLatet与oBackreureDro操作2567.6Flowale.geerate操作2577.7小结262第8章Flowale实战2638.1使用Flowale封装JDBC2638.1.1封装部分查询逻辑2638.1.2封装udate逻辑2658.2结合SrigWe应用使用Flowale2688.2.1接口数据的获取2698.2.2响应式服务的源设计2718.3单元测试2748.3.1使用MockServiceServer进行测试2748.3.2使用@Mock来进行一些服务测试2778.4cotroller层的实现逻辑改造2798.5小结282内容简介本书对RxJava2的源码进行了深入解读,让读者可以从设计到实现细节上全面了解它,从而达到不仅会用而且可以进行RxJava2源码库组件级别的拓展的程度。本书的目的不仅是介绍RxJava2,而且更希望通过一个成熟、优秀的代码库来向读者展示阅读源码的思路及编程方面的技巧,其中包含了并发编程的实战技巧、数据结构的设计方法、设计模式的使用方法、函数式编程的各种技巧等,希望读者可以深入思考并获得属于自己的一套编程方法论。这也是“Java编程方法论系列丛书”的初衷,授之以鱼不如授之以渔。关于作者知秋,本名李飞,长期致力于基础代码库的研发工作,通过博客与视频平台iliili,结合自己的经验做了大量源码解读的分享。对JDK、Srig、RxJava、SrigReactor、Netty、Reactor-Netty等有很深刻的研究和独到的见解,并以此打造“Java编程方法论系列丛书”。基于开源精神,与志同道合的伙伴们一起创建了imvio开源分享团队,为开源社区服务。前言阅读前言本书是“Java编程方法论系列丛书”的第一本书,“Java编程方法论系列丛书”将我多年的代码经验通过讲述优秀的RxJava2、Reactor3、Reactor-Netty与SrigWeFlux等框架库的源码细节展现出来,目的是让大家可以学习一种读源码的方式。也就是说,看源码不仅要看懂它干了什么,而且更应该看相关源码的设计思路以及技巧。这就好比研读一篇好文章一样,要揣摩作者的行文方式。与理解代码相比,我更愿意带给大家的是一种生活态度。Java的第一个身份是语言,语言是用于描述我们的思想和生活的,所以带着生活中的理念来读源码,你就会发现情况大为不同:各种编程技巧和实现思路通通摆在了你的眼前。本系列丛书就是从这个角度出发的,所以针对的读者是那些想要提高自己对于基础代码掌控能力的中高级程序员。下面具体介绍一下本书内容。本书主要讲解了到底什么是响应式,从代码设计层面将JDK9+中的FlowAPI、RxJava2中关于源的创建,以及调度与背压等相关核心操作娓娓道来,并通过实战案例帮助大家更好地理解和使用相关的API。本书涉及了大量并发编程方面的技巧,以及从基础代码角度介绍了各种接口、设计模式和与之相关的基础知识点,并将它们融会贯通。这就好比我们上学的时候,老师向我们传授基础知识,然后通过习题让我们掌握这些基础知识的运用技巧。本书也遵循了这个思路,同时这也符合我写书的初衷。限于篇幅,有些内容没能完全在书中呈现,为了降低图书的阅读理解难度,我专门录制了相关的分享视频,可以更直观地带领大家走进源码世界。视频可以说是图书的有益补充,欢迎大家观看、学习。另外,希望读者通过学习本书了解响应式编程如何带来程序性能的提升以及其正确的使用方式。在录制本系列丛书的另一本书《Java编程方法论:响应式Reactor3、Reactor-Netty和SrigWeFlux》(后续出版)的相关视频时,使我感到很荣幸的是,视频得到了Srig官方的肯定,并在Srig官方推特和博客上进行了宣传、推广,这增加了我对本系列丛书的信心。最后,感谢尹相宇同学,没有你听我#xfffd#xfffd#xfffd#xfffd唆唆地讲代码,我估计自己的这份激情难以维持,当然,这本书的顺利出版也离不开你的审阅。另外,需要感谢的还有付睿编辑,她帮助我修正了很多表达细节上的错误。最后,感谢我的家人对我的理解和默默付出。知秋(李飞)2019年2月15日推荐序一在ArchitectureadDeigIfoQTredReort-Jauary2019(2019年1月的IfoQ架构和设计趋势报告)中,响应式编程(ReactiveProgrammig)和函数式编程(FuctioalProgrammig)编列在第一季度(Q1)的EarlyAdoter(早期采纳者)中。尽管这仅是一家之言,但是不少开发人员逐渐意识到响应式之风已然吹起。也许你的生产系统尚未出现响应式的身影,不过你可能听说过SrigWeFlux或NetflixHytrix等开源框架。笔者曾请教过Pivotal(Srig母公司)的布道师JohLog:“Srig技术栈未来的重心是否要布局在响应式上?”对方的答复是:“没错,响应式是未来的趋势。”同时,越来越多的开源项目开始签署响应式宣言(TheReactiveMaifeto)并喊出了“WeAreReactive”的口号。或许开源界的种种举动无法说服你向响应式的“港湾”中停靠,不过Java9中FlowAPI的引入,又给业界注入了一剂“强心针”。不难看出,无论是JavaAPI,还是Java框架,均走向了响应式编程模型的道路,这并非一种巧合。通常,人们谈到的响应式可与响应式编程画等号,以“非阻塞(No-Blockig)”和“异步(Aychroou)”的特性并述,以数据结构与操作相辅相成。响应式编程涉及函数式和并发两种编程模型,前者关注语法特性,后者强调执行效率。简言之,响应式编程的意图在于“LeCode,MoreEfficiet”。除此之外,笔者认为响应式更大的价值在于统一Java并发编程模型,使得同步和异步的实现代码无异,同时做到Java编程风格与其他编程语言更好地融合,或许你已经发现Java与JavaScrit在响应式方面并不存在本质区别。纵观Java在响应式编程上的发展,其特性更新真可谓步步为营、如履薄冰。尽管Java线程APIThread与Ruale已具备异步以及非阻塞的能力,然而其同步和异步编程的模式并不统一,并且理解ThreadAPI的细节和管理线程生命周期的成本均由开发人员承受。虽然在Java5引入J.U.C框架(Java并发框架)之后,ExecutorService的实现减轻了以上负担,但是开发人员仍须关注ExecutorService的实现细节。比如,怎样合理地设置线程池空间及阻塞队列又成为新挑战。为此,Java7引入了ForkJoiPoolAPI,不过此时的J.U.C框架与响应式理念仍存在距离,即使是线程安全的数据结构也并不具备并行计算的能力(如集合并行排序),同时操作集合的手段也相当贫乏,缺少类似Ma/Reduce等的操作。不过这些困难只是暂时的,终究会被Java8“救赎”。StreamAPI的出现不仅具备数据操作在串行和并行间自由切换的能力(如equetial()及arallel()方法),而且淡化了并发的特性(如orted()方法既可以进行传统排序,也可以进行并行排序)。相同的设计哲学也体现在Java响应式实现框架中,如本书中提及的RxJavaAPIio.reactivex.Oervale。统一编程模型只是流的设计目标之一,它结合Lamda语法特性,虽然提供了数量可观的操作方法,如flatMa()方法等,但是无论对比RxJava,还是Reactor,流操作方法却又相形见绌。值得一提的是,这些操作方法在响应式的术语中被称为操作符(Oerator)。当然框架内建操作符的多与少,并非判断其是否为响应式实现的依据。其中的决定性因素在于数据必须来自发布端(生产者)的“推送(Puh)”,而非消费端的“拉取(Pull)”。显然,流属于消费端已就绪(Ready)的数据集合,并不存在其他数据推送源。不过JVM语言早期的响应式定义处于模糊地带,如RxJavaAPI属于观察者模式(OerverPatter)的扩展,而非迭代器模式(IteratorPatter)的实现。而Reactor的实现则拥抱响应式流规范,该规范中消费端对于数据的操作是被动地处理,而非主动地索取。换言之,数据的到达存在着不确定性。当推送的数据无法得到消费端的及时响应时,响应式框架必须提供背压(BackPreure)实现,确保消费端拥有“拒绝的权力(cacel)”。在此理论基础上,响应式流规范定义了一套抽象的API,作为Java9中java.util.cocurret.FlowAPI的顶层设计。不过关于操作符的部分,该规范似乎不太关心,这也是RxJava和Reactor均称自身为响应式扩展框架的原因,同时两者在API级别提供了多种调度器(Scheduler)实现,可适配不同并发场景。尽管响应式定义在不同的阵营之间存在差异,但援引本人在《ReactiveProgrammig:一种技术,各自表述》一文中的总结:ReactiveProgrammig作为观察者(Oerver)模式的延伸,不同于传统的命令编程(ImerativeProgrammig)同步拉取数据的方式,如迭代器模式(Iterator),而是采用数据发布者同步或异步地推送到数据流(DataStream)的方案。当该数据流(DataStream)的订阅者监听到变化传播时,立即做出响应动作。在实现层面上,响应式编程可结合函数式编程简化面向对象语言语法的臃肿性,屏蔽并发实现的复杂细节,提供数据流的有序操作,从而达到提升代码的可读性以及减少Bug出现的目的。同时,响应式编程结合背压(BackPreure)的技术解决了发布端生成数据的速度高于订阅端消费数据的速度的问题。不难看出,响应式是一门综合的编程艺术,在实现框架的“加持”下,相同的代码逻辑可实现同步与异步非阻塞功能,从而达到提升应用整体性能的目的。不过现实的情况或许没有那么理想,Srig官方文档在“WeoReactiveStack”章节中提到,“响应式和非阻塞通常并不会让应用运行得更快”:Reactiveado-lockiggeerallydootmakealicatiorufater.为此,JHiter给出了一份Srig5WeFlux性能测试报告,其中一条结论是“响应式应用并没有表现出速度的提升(甚至其速度变得更慢)”:Noimrovemetieedwaoervedwithourreactivea(theGatligreultareevelightlywore).数月后,看似相反的结论却在DZoe的一篇名为RawPerformaceNumer-SrigBoot2Wefluxv.SrigBoot1的文章中出现,测试结果是SrigBoot2WeFlux在高并发下的响应时间更平稳。实际上,这个测试结果有些“关公战秦琼”的味道,毕竟SrigBoot2下的WeFlux和SrigBoot1下的Servlet容器所使用的线程模型是不同的,并且Servlet3.0的异步以及非阻塞特性默认是关闭的。不过以上两篇文章的结论并不矛盾,前者关注响应速度,后者则强调吞吐量,两者都是性能的核心指标。遗憾的是,这两篇文章均未对各自的测试用例做出调优,因此以上结论都存在一定的局限性,这也是笔者对响应式技术能否提升性能提出质疑的地方。如果说笔者是国内提出响应式问题的第一人的话,那么知秋就是国内第一个解决响应式问题的人。作为国内为数不多的响应式以及NIO方面的专家,在技术研究上,他追求格物致知,不轻易忽略技术细节;在知识分享上,他可谓知无不言,言无不尽,不仅在社交群中答疑解惑,而且录制免费视频,发布在B站以及YouTue频道上,并得到了JohLog等“大牛”的推文(Twitter)。或许以上方式还不足以完整地讨论Java响应式技术,因此,知秋选择了漫长而又艰苦的著书之路。尽管他是笔者的朋友,然而“内举不避亲”,笔者郑重地向读者朋友推荐本书。这是中国大陆地区(不含港澳台地区)第一本全面解读Java响应式技术的书籍,作者的技术积累雄厚,书中的知识脉络循序渐进。同时,这也是一本引人深思的书,在进行源码导读的同时,也引导读者对代码设计进行思考。另外,这又是一本知识苦旅的书,因为它的涉及面较广,读者不仅需要具备一定的Java并发以及面向对象设计的基础,而且需要花费较多的时间去反复推敲书中的有关内容。正所谓“夫夷以近,则游者众;险以远,则至者少”,笔者希望读者在购买本书后,不轻言放弃,当你面临挑战时,那才是成长的开始。同时,笔者也期盼读者将响应式技术付诸实践,提早“触碰”未来。小马哥(mercylitz)2019年3月5日推荐序二有幸与李飞兄相识多年,他严谨的治学态度和认真的工作作风让我敬佩不已。值得一提的是,李飞兄是一个非常乐于分享知识和帮助他人解惑的人。我经常在微信群中看到他热情地帮助他人分析问题并提供解答思路。此外,他晚上还经常开视频来分享自己对Java编程方法论的思考与心得。当然,这些视频是免费、公开的,其中很多内容涉及本书的知识点,可以认为是本书很好的补充。事实上,我也是他的忠实听众之一,所以非常推荐大家在购买本书的同时结合视频一起学习,如此则效果更佳。因此,我对他充沛的精力和满满的分享精神甚是佩服。写书殊为不易,分享精神更是难能可贵,因此,当我得知李飞兄要将他对Java编程和响应式编程的技术经验编写成书的时候,甚是欣喜,因为我相信这本书不仅会给读者带来响应式编程等核心知识的深入理解和技术成长,同时也会让读者对Java编程方法论有自己的思考。响应式编程是未来架构的一次升级。事实上,我们业务的主流模式会使用RPC和SrigMVC的同步等待机制,以及通过并行调用缩短平均响应时间,这种做法对性能的提升非常显著。但是,随着业务的复杂演变,可能会出现回调地狱,而且冗余的业务代码和大量的并行代码也会导致程序越来越难以维护。此时,一个新的编程思想――响应式编程――应运而生,它通过避免等待以缩短平均响应时间来保证系统的利用率。在这里,响应式编程的关键元素之一是能够异步执行任务。这种全异步方式的优势在于,可以充分地利用线程的时间片。另外,响应式编程是一种面向数据流和变化传播的编程范式。事实上,它是一种新思路,我们可以认为任何东西都是一个数据流,即“万物皆为流”,因此我们需要面向数据流编程。它并不陌生,可以通过观察者模式来构建。我们可以创建事件流和数据流,然后让观察者/消费者订阅任何需要关心的数据流并执行相关的业务操作。例如,我们经常提到的事件总线,其本质上就是通过异步事件流对监听的事件变化做出响应。响应式编程还有一个很重要的概念――变化传播。例如,输入一个数据流,经过一系列的操作转化成另一个数据流。为了更好地理解这个特性,我们可以把数据流类比成一条河流:它可以被观测、被加工或者被合并成一条新河流。因此,随着响应式编程的发展成熟,如果能把全异步流式的能力引入业务开发中,不仅可以使项目的性能得以提升,而且也可以给项目带来更多的灵活性。本书详细介绍了RxJava的源码细节和后端的实战使用方法,不论是刚接触响应式编程的入门读者,还是已经有响应式编程实战经验的进阶读者,阅读本书都会收获颇多。梁桂钊阿里巴巴Java高级开发工程师推荐序三响应式编程日益流行,如今Java语言正经历着快速迭代,然而很多Java开发者仍沉浸在Java7/Java8的世界。在Java9发布前飞哥已经开始着手编写本系列丛书的准备工作,目标是让广大开发者能够学习全新的Java语言。如今的Java已经提供了函数式编程支持、模块化的JDK和模块化开发支持、对流式编程友好的G1垃圾回收器、低延迟的ZGC等特性,包含的内容非常丰富。由于计划写的内容很多,飞哥后来索性将响应式编程的部分拆分出来,成为现在我们所看到的这本书。时过境迁,Java语言早已不是被人诟病的臃肿语言,在其之上大量的精妙设计得以实现,事实证明Java拥有独特的魅力和经久不衰的生命力。学习响应式编程最重要的是理解它的设计思想,我们不能只将RxJava、Reactor以及SrigWeFlux作为一个工具框架看待,会使用它们并不意味着能够驾驭它们。学习这本书会让你了解响应式编程如何带来程序性能的提升,以及什么是响应式编程的正确使用方式。如果说代码是躯体,那么什么才是灵魂?躯体和灵魂相比,谁又是永生的?本书所讲的不只是具体的使用方法,还会讲解其中的设计思想:从它的源码设计中学习如何设计,通过源码还原其本质。机会总是留给有准备的人,抓住Java的响应式编程趋势,追寻自己所向往的生活。在阅读本书的过程中,切忌不可囫囵吞枣。如果读者的基础尚未稳固,建议在阅读时谨慎对待书中的内容。很多小段落不可只理解字面上的描述,在你多次回味并细细揣摩后,便可发现其中的深层次视角。书中内容大多前后关联,因此不推荐跳跃式阅读。在阅读本书选取的源码时,切不可一眼过之,因为这些源码多为关键所在。本书拨开“浮云”,在大量的源码中直击要害,帮助读者了解程序的执行方式和设计思路。在阅读本书时,准备好对应的源码是一个聪明的选择。书中的案例均经过精心的设计,从简单使用开始,不断地增添和修改,让读者在学习的过程中不脱离实战,逐步掌握响应式编程。响应式编程作为未来编程的趋势,具有异步、非阻塞的特点,它能够支持更大的吞吐量,相较于传统的服务实现方式其占用较少的资源。在学习本书的内容前,希望读者能够对Lamda表达式和Steam(流)有一些了解,不了解也没有关系,本系列丛书中关于JDK的书会在本书之后出版,让大家认识全新的Java。另外,配套视频教程已经准备好,在B站或YouTue上搜索“Java编程方法论”就可以找到它们。尹相宇格力Java高级工程师...

    2022-04-10 响应式编程rxjava 响应式编程 rxjs

  • 张天飞《奔跑吧 Linux内核》pdf电子书下载

    书名:奔跑吧Liux内核作者:张天飞出版社:人民邮电出版社:出版年:2017-9-1页数:760类别:计算机网络格式:df/eu/moiISBN:9787115465023《奔跑吧Liux内核作者简介:笔名笨叔叔的张天飞。Liux从事内核爱好者Liux在多家芯片公司从事手机芯片底层软件开发和客户支持十多年的内核和驱动开发工作。《奔跑吧Liux内核内容简介:基于这本书的内容Liux4.x主要选择内核Liux内存管理、过程管理、并发与同步和中断管理是核心中比较基本和常用的四个核心模块。这本书分为六章,依次介绍ARM体系结构、Liux内存管理、过程调度管理、并发与同步、中断管理、核心调试技能等。这本书的每一节都是一个Liux读者可以根据每节前的问题来思考内核的主题或技术点,然后围绕问题分析核源代码。这本书内容丰富,解释清晰透彻,不仅适合一定的Liux相关基础人员,包括从事和Liux相关开发人员、操作系统研究人员、嵌入式开发人员和Adroid学习和使用底层开发人员,适合作为Liux感兴趣的程序员学习书籍也可作为高校相关专业师生的学习书籍和培训学校的教材。...

    2022-04-06

  • 嵌入式Linux驱动模板精讲与项目实践(txt+pdf+epub+mobi电子书下载)|百度网盘下载

  • 大话代码架构:项目实战版(txt+pdf+epub+mobi电子书下载)|百度网盘下载

  • 2022Python与seo实战课程(视频+课件+项目代码)2-4期,百度网盘,阿里云盘下载

    会员福利本课程出自布鲁斯rook的ytho与eo实战课程+Pytho+ELK打造eo数据分析监控系统官网售价3980元。通过对ytho与eo实战课程这门课对于eoer从业者或者是ytho爬虫开发方面的人群,通过ytho来开发、ytho爬虫开发以及eo工具等。课程都是从入门开始讲起的哪怕你零基础的小白也没有关系,从入门到进阶课程讲到非常清楚,摆脱你的手工发布项目的实战讲,dedecm发布、hcm和帝国cm发布教程、采集内容自动化、ytho实现AI伪原创功能等等......Pytho+ELK打造eo数据分析监控系统这套课程根据老师的五年多的eo经验和经理打造的eo日常工具,学完这门课程可以帮助你在短时间内分析网站流量下降数据分析各项监控对于网站为什么没有排名?抓取减少、收录差、只要做好监控系统分析数据提高eo工作人员提升技能效率。(完结)Pytho与eo实战课程3期(视频+课件+项目代码)一共615个视频41.9G(完结)Pytho与eo实战课程2期(视频+课件+项目代码)一共193个视频63.96G(完结)ytho与elk打造数据分析监控系统实战课程(视频+课件+项目代码)一共122个视频15G左右2022年2月5日更新了ythoe与eo四期cm开发,包括视频和课件资料、思维导图,课程目录和下载链接在文章底部。Pytho与eo实战课程视频随机截图Pytho与eo实战课程3.0目录截图Pytho与eo实战课程2.0目录截图Pytho+ELK打造eo数据分析监控系统目录截图课程目录:ytho与eo第四期cm├12月14日直播课(编程语言系统入门)├2022年1月17日Pytho直播├NavicatPremium、zi├代码day01、ziday02、ziday03、ziday04、ziday05、ziday06、ziday07、ziday08、ziday09、ziday10、ziday11、ziday12、ziday13、ziday14、ziday15、ziday16、ziday17、ziday18、ziday19、ziday20、ziday21、ziday22、ziday23、ziday24、zi解压密码、txt├视频day01-aic快速入门1-课程介绍2-aicwe框架介绍3-aic的安装和快速体验4-jija2模板引擎介绍5-aic集成jija2进行动态模板渲染6-aic静态文件的访问7-aic响应ico图标和jo信息day02-模板装饰器及aic请求内容获取10-使用装饰器封装模板渲染过程11-模板装饰器函数的高级用法12-请求不同类型内容的获取8-闭包和装饰器复习9-装饰器属性还原和传参问题day03-aic路由中间键和静态缓存(上)13-获取URL请求参数的方法14-安装和配置gix使用虚拟域名进行访问15-路由参数的配置和获取16-路由请求的补充17-aic事件监听器18-aichtt中间件和简单静态缓存的实现day04-aic静态缓存及基于类的视图和蓝图的实现19-aic简单静态缓存的完整实现20-静态缓存时间的控制21-静态缓存的完整实现代码22-aic基础杂项23-基于类的视图和代码优化24-蓝图的介绍和程序结构的变化25-cm蓝图的改造(上)26-cm蓝图改造(中)27-cm蓝图改造(下)28-ytho模块循环导入的问题及解决方法day05-aic蓝图、异常和装饰器29-蓝图的复习及简单架构30-aic应用异常介绍31-aic应用异常处理32-aic装饰器使用和密码校验33-aic日志杂谈day06-ymyql的CRUD及tortoie-orm简单入门34-MySQL介绍和数据库创建及表创建35-ymyql的安装和介绍36-ymyql的增删改查37-使用ymyql快速构建一个简单的aic应用38-ql注入问题和tortoieorm的介绍39-tortoie-orm的安装40-简单数据表模型的定义41-使用tortoie-orm自动生成数据表day07-tortoie生成数据表源码分析和新增自定义存储引擎功能42-tortoie生成数据表存储引擎是myiam的问题解决43-分析tortoie生成数据表的源码-上44-分析tortoie生成数据表源码-下45-修改tortoie源码实现自定义egie46-测试和验证自定义egieday08-orm模型和字段讲解和案例实操47-model限定生成的模型48-抽象模型的定义和使用49-元类和数据表关系50-orm相关数据字段的解析51-简单cm表模型的创建52-数据模型生成数据表day09-aic操作orm新增数据入门53-重构admiAPP的模型54-生成数据库表55-通过aic插入数据56-判断数据是否已经存在57-添加文章数据-上58-添加文章数据-中59-添加文章数据-下60-关于数据库事务和模型函数封装的介绍day10-orm模型封装自定义文章插入函数和MySQL事务61-在文章模型类中封装添加文章的逻辑函数62-类封装中的代码优化和ug修复63-tortoie的MySQL事务保证插入文章的完整性64-MySQL事务讲解和演示day11-orm简单查询和优化65-快速介绍orm查询相关的ai函数66-写个小爬虫批量插入内容-上67-写个小爬虫批量插入内容-中68-写个小爬虫批量插入内容-下69-orm查询相关过滤标识符和对应MySQL语法70-在视图中获取article相关的数据71-分析网页加载慢的原因和优化day12-获取指定分类和标签下的文章72-查询最新的整站文章和某个分类下的文章73-获取某个分类下文章的路由实现74-分类分页的实现75-ql语句实现获取某个tag下的所有文章76-orm实现获取某个tag下的所有文章和分页day13-orm删除文章及we程序架构解析和懒人cm程序架构77-orm删除文章78-we应用程序的组成和架构79-中间件和其它框架的对比80-后台模板选用和介绍81-layzercm程序主要目录结构82-数据库表和字段介绍83-数据表模型定义day14-用户模型的数据接口编写和测试84-用户模型的增删改85-用户模型的查询相关函数封装86-用户模型单元测试87-新增用户测试-188-新增用户测试-289-删除用户测试90-更新和查询用户测试day15-分类和标签模型的接口开发和测试91-分类模型的CRUD接口开发92-分类模型接口测试93-标签模型的CRUD接口开发94-标签模型接口测试day16-网站设置和蜘蛛、用户访问模型接口开发测试100-ider模型接口测试101-用户访问模型接口开发95-网站设置模型接口开发-196-网站设置模型接口开发-297-网站设置模型接口开发-398-网站设置模型接口测试99-ider模型接口开发day17-文章表插入数据和删除数据接口开发测试102-文章表插入文章接口开发103-文章表插入文章接口开发-2104-文章表插入文章接口开发-3105-文章表插入文章接口开发-4106-文章表删除文章接口开发107-文章表删除文章接口测试day18-文章表数据更新相关接口开发和测试108-文章表更新文章接口开发-1109-文章表更新文章接口开发-2110-文章表更新文章接口测试111-文章表文章浏览量更新接口开发112-文章表蜘蛛访问量及收录接口开发113-文章表访问数据相关接口测试day19-文章表查询相关接口开发114-获取整站最新文章接口开发115-获取某个分类下的最新文章接口开发116-获取某个标签下的最新文章接口开发117-获取具体某篇文章和相关文章118-获取某个爬虫访问量少于多少的文章119-获取某个爬虫访问量区间的文章接口开发120-获取热门文章和已抓取未收录的文章接口开发day20-新版本和用户登录121、环境迁移和新版tortoieorm的一些问题修复122、acce访问表测试123、前后台路由组集成124、后台登录简单实现125、通过orm交互实现用户登录校验126、使用cookie和eio进行登录校验day21-集成jija2模板day21127、退出登录代码实现128、集成jija2模板引擎129、后台登录模板制作和静态资源处理130、后台首页模板处理day22-后台分类模板相关逻辑实现-1day22131、新增文章模板和视图函数处理-1132、新增分类模板和路由处理133、改用redi进行eio管理134、新增分类业务逻辑实现-1135、分类列表视图和分类跳转136、分类列表读取数据到前端模板day23-分类相关功能实现补充day23137、分类列表中新增分类和编辑分类的制作138、编辑分类功能实现139、分类列表删除单个分类功能实现140、批量删除实现-1(后面j部分可以不看)141、批量删除分类功能实现-2142、批量删除功能实现-3143、分类批量删除功能ug修复day24-后台编辑文章模板和图片上传接口开发144、分类模板消息提示完善145、文章列表视图函数和添加文章模板中制作146、图片上传接口开发-1147、图片上传接口开发-2148、图片上传接口开发-3Pytho与eo实战训练营第三期【41.9G】1天:学习方法和ytho环境搭建2天:ytho语言规范和数字类型3天:字符串类型4天:列表类型5天:循环语句6天:元组类型7天:集合类型8天:字典类型9天:条件判断语句10天:基础数据类型总结11天:函数编程12天:高阶函数编程13天:文件读写14天:模块和包15天:正则表达式16天:批量修改文件名项目17天:面向对象编程入门18天:面向对象编程进阶19天:错误和异常处理20天:多进程编程入门21天:多进程编程进阶22天:多线程编程入门23天:多线程编程进阶24天:htt协议25天:requet模块讲解26天:某考网爬虫项目27天:某考网内容处理28天:xath语法29天:lxml模块讲解30天:某悦荟爬虫项目31天:mogod数据库入门32天:百度关键词过滤项目33天:ytho操作mogod34天:某柴网爬虫项目35天:dedecm内容发布36天:帝国cm内容发布37天:wordre内容发布38天:hcm内容发布39天:zlog内容发布40天:ycm内容发布41天:dicuz论坛内容发布42天:micm内容发布43天:关键词排名jo数据采集44天:链接收录查询和分析45天:某度下拉框挖词46天:某度搜索结果挖词47天:凤巢关键词挖掘-上48天:凤巢关键词挖掘-下49天:结巴中文分词50天:关键词去重51天:关键词去重处理252天:敏感词过滤55天:标题生成的第二种方式53天:关键词过滤和分类扯淡54天:字符串相似度算法及标题生成56天:elaticearch搜索引擎安装和使用57天:e内容搜索聚合初步实现58天:多线程内容聚合发布59天:如何处理采集内容中的垃圾信息60天:随机段落伪原创61天:随机句子伪原创及图片下载62天:根据关键词进行图片下载和处理63天:文章插入相关图片代码实现64天:有道翻译逆向65天:AI伪原创完整实现66天:ytho异步编程67天:异步网络编程68天:异步并发采集实战69天:motor模块的使用及爬虫中断重爬70天:redi数据库使用71天:ytho操作redi数据库72天:redi爬虫队列73天:JavaScrit基础入门74天:JavaScrit面向对象入门75天:JavaScrit面向对象继承和模块76天:JavaScrit浏览器环境77天:JavaScrit标准库78天:j逆向入门案例79天:ku我音乐歌曲播放参数逆向80天:某条异步请求签名参数逆向81天:NLP语言模型GPT-2的安装和使用(选学)82天:CPU和GPU训练模型的问题及结课第五次直播视频2020年12月26号直播ytho3_roject-mater.zi文件.zi课程目录:ytho与SEO实战课程[63.96G]┣━━课件[44.2M]┃┣━━1.Pytho3基础语法与数据结构.df[395.1K]┃┣━━2.Pytho3变量声明以及数字类型.df[364.8K]┃┣━━3.ytho3字符串讲解.df[208.6K]┃┣━━4.ytho3列表讲解.df[222.3K]┃┣━━5.ytho3元组讲解.df[148.7K]┃┣━━6.ytho3集合讲解.df[200.6K]┃┣━━7.ytho3字典讲解.df[212.6K]┃┣━━8.ytho3条件判断语句讲解.df[205K]┃┣━━9.ytho3循环语句讲解.df[226K]┃┣━━10.ytho3函数式编程.df[441.7K]┃┣━━11.ytho3文件操作讲解.df[348.2K]┃┣━━12.ytho3错误和异常处理.df[415.4K]┃┣━━13.ytho3模块和包讲解.df[372.8K]┃┣━━14.ytho3正则表达式讲解.df[362.3K]┃┣━━16.ytho3多进程编程.df[442.8K]┃┣━━17.ytho3多线程编程.df[178.5K]┃┣━━图解HTTP.df[31.4M]┃┣━━ceto7命令教程.html[208.7K]┃┣━━liux命令笔记.df[254.4K]┃┣━━myql笔记.txt[4.3K]┃┣━━MySQL必知必会.df[7.5M]┃┗━━vim编辑器及日志分析常用命令.df[153.4K]┣━━视频[83.4G]┃┣━━第八天:条件判断语句[391.8M]┃┃┣━━21.ytho字典课后作业.MP4[86.5M]┃┃┣━━22.ytho条件判断语句讲解-1.MP4[75.6M]┃┃┣━━23.ytho条件判断语句讲解-2.MP4[88.6M]┃┃┗━━24.ytho条件判断语句讲解-3.MP4[141.2M]┃┣━━第二十八天:dedecm发布教程[2.6G]┃┃┣━━108.开发环境搭建及dedecm安装.MP4[637.3M]┃┃┣━━109.dede发布抓包及用cookie发布文章.MP4[805.2M]┃┃┗━━110.通过dede接口从数据库读取和发布文章.MP4[1.2G]┃┣━━第二十二天:MySQL教程[4.2G]┃┃┣━━84.widow下myql的安装和配置.MP4[928.4M]┃┃┣━━85.myql客户端软件安装及增删改查体验.MP4[797.4M]┃┃┣━━86.myql数据库语法讲解-上.MP4[1.5G]┃┃┗━━87.myql数据库语法讲解-下.MP4[995M]┃┣━━第二十九天:hcm和帝国cm发布教程[3.1G]┃┃┣━━111.hcm安装及发布介绍.MP4[1.1G]┃┃┣━━112.利用hcmcookie发布文章.MP4[473.7M]┃┃┣━━113.利用hcm接口发布文章.MP4[661.1M]┃┃┣━━114.帝国cm安装及配置.MP4[348.2M]┃┃┗━━115.利用帝国cm接口发布文章.MP4[607.4M]┃┣━━第二十六天:神马关键词采集┃┣━━第二十七天:根据关键词批量采集文章[4G]┃┃┣━━103.关键词挖掘时加入词根过滤.MP4[273M]┃┃┣━━104.通用正文提取模块的安装和使用.MP4[918.6M]┃┃┣━━105.根据关键词批量获取文章-1.MP4[777.7M]┃┃┣━━106.根据关键词批量获取文章-2.MP4[1.3G]┃┃┗━━107.根据关键词批量获取文章-3.MP4[835.1M]┃┣━━第二十三天:Pytho操作myql[2.5G]┃┃┣━━88.ymyql的安装及测试.MP4[703M]┃┃┣━━89.ymyql对象方法讲解及建表.MP4[486.1M]┃┃┣━━90.ymyql的增删改查操作.MP4[671.4M]┃┃┗━━91.多线程爬虫采集内容存入数据库.MP4[685.7M]┃┣━━第二十四天:百度移动关键词挖掘[2.9G]┃┃┣━━92.百度移动关键词挖掘-1.MP4[798.6M]┃┃┣━━93.百度移动关键词挖掘-2.MP4[724.6M]┃┃┣━━94.百度移动关键词挖掘-3.MP4[828.6M]┃┃┗━━95.百度移动关键词挖掘-4.MP4[574.9M]┃┣━━第二十天:lxml之CSS选择器[5.3G]┃┃┣━━74.lxml的介绍及安装.MP4[467.8M]┃┃┣━━75.c选择器获取百度搜索热点关键词.MP4[760.9M]┃┃┣━━76.c选择器实现百度PC无限挖词.MP4[812.2M]┃┃┣━━77.c选择器批量采集文章-上.MP4[1.1G]┃┃┣━━78.c选择器批量采集文章-中.MP4[1004.8M]┃┃┗━━79.c选择器批量采集文章-下.MP4[1.2G]┃┣━━第二十五天:结巴分词[3.1G]┃┃┣━━96.过滤没有相关搜索的关键词.MP4[439.7M]┃┃┣━━97.结巴分词入门.MP4[943.9M]┃┃┣━━98.结巴分词进阶及关键词分类思路.MP4[886.4M]┃┃┗━━99.利用结巴分词对关键词快速分类.MP4[914M]┃┣━━第二十一天:lxml之xath┃┣━━第二天:基础语法与数据类型[397M]┃┃┣━━2.ytho基础语法和数据结构.MP4[211.2M]┃┃┗━━3.Pytho3中的变量声明以及数字类型.MP4[185.8M]┃┣━━第九天:循环语句[358.4M]┃┃┣━━25.条件判断语句复习及课后作业.MP4[74.7M]┃┃┣━━26.while循环语句的讲解.MP4[103M]┃┃┣━━27.for循环语句讲解.MP4[96.8M]┃┃┗━━28.for循环实现各种推导式.MP4[83.8M]┃┣━━第六天:集合讲解[316.5M]┃┃┣━━14.元组主要知识点复习.MP4[11.1M]┃┃┣━━15.集合的创建和成员判断以及集合的相关概念.MP4[142M]┃┃┗━━16.集合的内置方法及相关操作符的使用.MP4[163.4M]┃┣━━第七天:字典讲解[519.4M]┃┃┣━━17.集合数据类型课后作业讲解.MP4[137.4M]┃┃┣━━18.字典的相关概念以及创建和初始化.MP4[93.5M]┃┃┣━━19.字典的相关操作.MP4[123.8M]┃┃┗━━20.字典相关的函数和方法的使用以及字典相关特性的补充.MP4[164.6M]┃┣━━第三十八天:iev的使用和凤巢挖词[2G]┃┃┣━━144.iev的安装和简单实用介绍.MP4[723.3M]┃┃┣━━145.iev安装依赖包及ycharm环境配置和凤巢关键词采集.MP4[583.2M]┃┃┗━━146.凤巢关键词采集完善.MP4[754M]┃┣━━第三十二天:百度PC端排名查询[3.5G]┃┃┣━━126.百度PC端排名查询-1.MP4[1.8G]┃┃┗━━127.百度PC端排名查询-2.MP4[1.7G]┃┣━━第三十九天:百度PC端关键词覆盖率查询[6.1G]┃┃┣━━147.iev的补充介绍.MP4[1.2G]┃┃┣━━148.百度PC关键词覆盖率查询-1.MP4[1.5G]┃┃┣━━149.百度PC关键词覆盖率查询-2.MP4[744.9M]┃┃┣━━150.百度PC关键词覆盖率查询-3.MP4[1.3G]┃┃┣━━151.百度PC关键词覆盖率查询-4.MP4[501.1M]┃┃┗━━152.百度PC关键词覆盖率查询-5.MP4[888.5M]┃┣━━第三十六天:爬虫断点续爬[2.7G]┃┃┣━━139.ickle模块的使用.MP4[627.3M]┃┃┣━━140.ickle案例喜马拉雅链接抓取-1.MP4[1.1G]┃┃┗━━141.ickle案例喜马拉雅链接抓取-2.MP4[1014.6M]┃┣━━第三十七天:喜马拉雅断点续爬改进及链接提取[2G]┃┃┣━━142.喜马拉雅链接提取和保存.MP4[870.1M]┃┃┗━━143.喜马拉雅链接实现真正的断点续爬.MP4[1.1G]┃┣━━第三十三天:百度PC端收录查询[2.5G]┃┃┣━━128.百度PC端收录查询-1.MP4[685.7M]┃┃┣━━129.百度PC端收录查询-2.MP4[720.5M]┃┃┗━━130.百度PC端收录查询-3.MP4[1.1G]┃┣━━第三十四天:百度移动收录查询[2.9G]┃┃┣━━131.百度移动收录查询-1.MP4[816.3M]┃┃┣━━132.百度移动收录查询-2.MP4[1.4G]┃┃┗━━133.百度移动收录查询-3.MP4[765.4M]┃┣━━第三十天:WordPre发布教程[3G]┃┃┣━━116.WordPre的安装和简单配置.MP4[463.4M]┃┃┣━━117.wordre模块安装及发布测试.MP4[784.2M]┃┃┣━━118.wordre-xmlrc接口常用方法讲解-上.MP4[605.6M]┃┃┣━━119.wordre-xmlrc接口常用方法讲解-下.MP4[541.5M]┃┃┗━━120.ytho批量发布WordPre文章.MP4[658.4M]┃┣━━第三十五天:神马收录查询[3.5G]┃┃┣━━134.神马收录查询-1.MP4[685.1M]┃┃┣━━135.神马收录查询-2.MP4[567.4M]┃┃┣━━136.神马收录查询-3.MP4[820.5M]┃┃┣━━137.神马收录查询-4.MP4[1.2G]┃┃┗━━138.神马收录查询-5.MP4[258.7M]┃┣━━第三十一天:百度移动关键词排名查询[5.4G]┃┃┣━━121.百度移动关键词排名查询-1.MP4[1.3G]┃┃┣━━122.百度移动关键词排名查询-2.MP4[982.9M]┃┃┣━━123.百度移动关键词排名查询-3.MP4[1.3G]┃┃┣━━124.百度移动关键词排名查询-4.MP4[1004.4M]┃┃┗━━125.百度移动关键词排名查询-5.MP4[848M]┃┣━━第三天:字符串讲解[689.3M]┃┃┣━━4.Pytho3第二天复习和作业讲解.MP4[214.4M]┃┃┣━━5.字符串的创建以及注意事项.MP4[84.2M]┃┃┣━━6.获取字符串中的单个元素以及字符串切片.MP4[129.2M]┃┃┗━━7.字符串格式化以及内置函数的用法.MP4[261.5M]┃┣━━第十八天:多线程编程[5.1G]┃┃┣━━65.多线程的概念及创建.MP4[576.6M]┃┃┣━━66.多线程爬虫演示及守护线程.MP4[935.7M]┃┃┣━━67.继承方式实现多线程及线程同步问题.MP4[972M]┃┃┣━━68.线程死锁及生产者消费者模式.MP4[768.9M]┃┃┣━━69.消息队列实现生产者消费者模式.MP4[837.9M]┃┃┗━━70.多线程实现百度收录查询.MP4[1.1G]┃┣━━第十二天:错误和异常处理[344M]┃┃┣━━41.ytho3错误和异常处理-1.MP4[126.7M]┃┃┣━━42.ytho3错误和异常处理-2.MP4[123.9M]┃┃┗━━43.ytho异常处理课后作业-小爬虫.MP4[93.4M]┃┣━━第十九天:htt协议及requet模块使用[2.7G]┃┃┣━━71.htt协议相关知识点.MP4[1.2G]┃┃┣━━72.requet模块的使用-1.MP4[907.7M]┃┃┗━━73.requet模块的使用-2.MP4[631.4M]┃┣━━第十六天:面向对象入门[645.2M]┃┃┣━━54.面向对象入门-1.MP4[81.6M]┃┃┣━━55.类属性、实例属性和实例方法.MP4[129.9M]┃┃┣━━56.类方法、静态方法以及魔术方法.MP4[170.9M]┃┃┣━━57.类的继承.MP4[181.5M]┃┃┗━━58.类的私有化.MP4[81.2M]┃┣━━第十七天:多进程编程[1.1G]┃┃┣━━59.ytho3多进程的概念及入门.MP4[148.2M]┃┃┣━━60.多进程常用方法以及进程关系.MP4[120.7M]┃┃┣━━61.for循环创建多进程方法及其缺点(爬虫演示).MP4[215.3M]┃┃┣━━62.进程池的原理及使用.MP4[245.1M]┃┃┣━━63.使用消息队列实现进程间通信.MP4[187M]┃┃┗━━64.生产者消费者爬虫案例.MP4[189.1M]┃┣━━第十三天:模块和包[522.2M]┃┃┣━━44.ytho模块相关知识.MP4[144.7M]┃┃┣━━45.ytho包相关知识讲解.MP4[190.6M]┃┃┗━━46.将ytho2的日志分析脚本改造成ytho3的.MP4[186.9M]┃┣━━第十四天:正则表达式[536.2M]┃┃┣━━47.ytho正则表达式讲解-1.MP4[129.7M]┃┃┣━━48.ytho正则表达式讲解-2.MP4[127.3M]┃┃┗━━49.ytho正则表达式讲解-3.MP4[279.1M]┃┣━━第十天:函数式编程[755.7M]┃┃┣━━29.循环语句作业讲解.MP4[82.4M]┃┃┣━━30.ytho函数式编程-1.MP4[121.9M]┃┃┣━━31.ytho函数式编程-2.MP4[117.2M]┃┃┣━━32.ytho函数式编程-3.MP4[111.5M]┃┃┣━━33.ytho函数式编程-4.MP4[110.6M]┃┃┣━━34.ytho函数式编程-5.MP4[110.6M]┃┃┗━━35.ytho函数式编程-6.MP4[101.5M]┃┣━━第十五天:urlli库的使用[804.4M]┃┃┣━━50.urlli模块介绍.MP4[162.9M]┃┃┣━━51.urlli模块实战应用-1.MP4[179.6M]┃┃┣━━52.urlli模块实战应用-2.MP4[439.8M]┃┃┗━━53.urlli好段子爬虫复习.MP4[22.1M]┃┣━━第十一天:文件操作[522.8M]┃┃┣━━36.函数课后作业及爬虫演示.MP4[135.2M]┃┃┣━━37.ytho文件操作-1.MP4[106.9M]┃┃┣━━38.ytho文件操作-2.MP4[112.5M]┃┃┣━━39.ytho文件操作-3.MP4[145.8M]┃┃┗━━40.ytho3文件操作之上下文管理器.MP4[22.4M]┃┣━━第四十八天:有道翻译破解[269.4M]┃┃┣━━189.破解有道翻译提交参数介绍.MP4[41.5M]┃┃┣━━190.有道翻译j调试找出提交参数生成方式.MP4[67.2M]┃┃┣━━191.有道翻译代码实现.MP4[80.1M]┃┃┗━━192.整合有道翻译到AI伪原创中.MP4[80.7M]┃┣━━第四十二天:Liux操作系统的安装[152.4M]┃┃┣━━165.Widow上安装VMware虚拟机.MP4[37.3M]┃┃┣━━166.在VMware新建ceto操作系统.MP4[56.8M]┃┃┣━━167.在macOS上安装ceto操作系统.MP4[46.7M]┃┃┗━━168.fialhell连接服务器.MP4[11.7M]┃┣━━第四十六天:采集内容处理实战[443.6M]┃┃┣━━179.根据关键词采集内容脚本优化.MP4[65.8M]┃┃┣━━180.采集内容处理实战-1.MP4[47.4M]┃┃┣━━181.采集内容处理实战-2.MP4[80.3M]┃┃┣━━182.采集内容处理实战-3.MP4[126.9M]┃┃┗━━183.采集内容处理实战-4.MP4[123.1M]┃┣━━第四十七天:AI伪原创[263.6M]┃┃┣━━184.AI伪原创背后的原理.MP4[60.4M]┃┃┣━━185.AI伪原创函数接口编写.MP4[59.3M]┃┃┣━━186.AI伪原创接口封装及校验.MP4[48.1M]┃┃┣━━187.AI智能段落实现.MP4[79.3M]┃┃┗━━188.AI智能段落ug修复.MP4[16.6M]┃┣━━第四十三天:Liux常用命令讲解[181.2M]┃┃┣━━169.Liux常有命令讲解-1.MP4[40.2M]┃┃┣━━170.Liux常有命令讲解-2.MP4[28M]┃┃┣━━171.Liux常有命令讲解-3.MP4[48.4M]┃┃┣━━171.Liux常有命令讲解-4.MP4[40.8M]┃┃┗━━172.Liux常有命令讲解-5.MP4[23.8M]┃┣━━第四十四天:vim编辑器的使用[146.8M]┃┃┣━━173.vim编辑器的使用-1.MP4[51.9M]┃┃┣━━174.vim编辑器的使用-2.MP4[33.6M]┃┃┗━━175.vim编辑器的使用-3.MP4[61.3M]┃┣━━第四十天:cv和excel文件操作[2.4G]┃┃┣━━153.cv文件读写操作.MP4[655.4M]┃┃┣━━154.excel文件读写操作.MP4[655.2M]┃┃┣━━155.将关键词覆盖率结果写入到Excel(上).MP4[557.2M]┃┃┗━━156.将关键词覆盖率结果写入到Excel(下).MP4[584.3M]┃┣━━第四十五天:Liux日志分析讲解[1.1G]┃┃┣━━176.liux日志分析命令讲解-1.MP4[86.4M]┃┃┣━━177.liux日志分析命令讲解-2.MP4[50.6M]┃┃┣━━178.liux日志分析命令讲解-3.MP4[60.1M]┃┃┣━━m.xxx.com-acce.log[950.8M]┃┃┗━━vim编辑器及日志分析常用命令.df[170.3K]┃┣━━第四十一天:网站日志分析工具开发[773.9M]┃┃┣━━157.网站日志分析介绍.MP4[77.2M]┃┃┣━━158.kiaa日志分析演示及日志格式介绍.MP4[118.6M]┃┃┣━━159.Ngix日志补充及正则表达式高级用法.MP4[101.3M]┃┃┣━━160.正则表达式提取日志各部分信息.MP4[58.1M]┃┃┣━━161.正则表达式提取日志中的蜘蛛名称.MP4[99.3M]┃┃┣━━162.Pytho处理日志流程及日志存储说明.MP4[49.7M]┃┃┣━━163.Pytho处理日志代码实现-上.MP4[85.1M]┃┃┗━━164.Pytho处理日志代码实现-下.MP4[184.6M]┃┣━━第四天:列表讲解[408.9M]┃┃┣━━8.字符串复习及课后作业.MP4[92M]┃┃┣━━9.列表的创建和访问.MP4[104.5M]┃┃┗━━10.列表的相关操作及内置函数的用法.MP4[212.4M]┃┣━━第五天:元组讲解[169.6M]┃┃┣━━11.列表课后作业讲解.MP4[38.4M]┃┃┣━━12.元组的创建及相关操作.MP4[79M]┃┃┗━━13.元组的解包和打包操作.MP4[52.2M]┃┗━━第一天:环境搭建[315.7M]┃┗━━1.ytho3环境搭建.MP4[315.7M]┗━━项目代码[5.3G]┣━━day02[15.5K]┃┣━━.idea[13.4K]┃┃┣━━iectioProfile[443B]┃┃┃┗━━Project_Default.xml[443B]┃┃┣━━day01.iml[398B]┃┃┣━━ecodig.xml[260B]┃┃┣━━mic.xml[288B]┃┃┣━━module.xml[262B]┃┃┗━━workace.xml[11.8K]┃┣━━01_ae_ytax.y[1.5K]┃┣━━1.txt[16B]┃┣━━输出.txt[34B]┃┗━━hel_demo.y[669B]┣━━day03[7.2K]┃┣━━课堂笔记.txt[3K]┃┣━━trig_demo1.y[972B]┃┣━━trig_demo2.y[585B]┃┣━━trig_demo3.y[1.2K]┃┣━━trig_demo4.y[237B]┃┣━━trig_demo5.y[691B]┃┗━━trig_demo6.y[561B]┣━━day04[6.5K]┃┣━━课堂笔记.txt[1.8K]┃┣━━demo1.y[450B]┃┣━━demo5.y[368B]┃┣━━format_demo.y[369B]┃┣━━lit1.y[480B]┃┣━━lit2.y[636B]┃┣━━lit3.y[548B]┃┗━━lit4.y[1.9K]┣━━day05[2K]┃┣━━demo1.y[1K]┃┗━━demo2.y[1K]┣━━day06[4.2K]┃┣━━课堂笔记.txt[404B]┃┣━━demo1.y[805B]┃┣━━demo2.y[789B]┃┗━━demo3.y[2.2K]┣━━day07[7.9K]┃┣━━课堂笔记.txt[1K]┃┣━━demo1.y[347B]┃┣━━demo2.y[1.8K]┃┣━━demo3.y[1.1K]┃┣━━demo4.y[2K]┃┣━━demo5.y[1K]┃┣━━demo6.y[213B]┃┗━━demo7.y[428B]┣━━day08[6K]┃┣━━课堂笔记.txt[1.6K]┃┣━━demo1.y[285B]┃┣━━demo2.y[2.4K]┃┗━━demo3.y[1.7K]┣━━day09[4.6K]┃┣━━demo1.y[699B]┃┣━━demo2.y[1.4K]┃┣━━demo3.y[1.2K]┃┗━━demo4.y[1.3K]┣━━day10[11K]┃┣━━课堂笔记.txt[1.7K]┃┣━━demo1.y[1.6K]┃┣━━demo10.y[389B]┃┣━━demo11.y[474B]┃┣━━demo12.y[420B]┃┣━━demo13.y[395B]┃┣━━demo2.y[587B]┃┣━━demo3.y[733B]┃┣━━demo4.y[773B]┃┣━━demo5.y[442B]┃┣━━demo6.y[361B]┃┣━━demo7.y[663B]┃┣━━demo8.y[438B]┃┣━━demo9.y[675B]┃┣━━gue_umer_eta2.y[791B]┃┗━━gue_umer.y[757B]┣━━day11[109.1K]┃┣━━awe[12B]┃┃┗━━1.txt[12B]┃┣━━hige[421B]┃┃┗━━hige.txt[421B]┃┣━━课堂笔记.txt[742B]┃┣━━demo1.y[809B]┃┣━━demo1.y.ak[809B]┃┣━━demo2.y[352B]┃┣━━demo3.y[413B]┃┣━━demo4.y[440B]┃┣━━demo5.y[154B]┃┣━━demo6.y[725B]┃┣━━demo7.y[527B]┃┣━━demo8.y[229B]┃┣━━hao.y[408B]┃┣━━1.jg[51.3K]┃┣━━2.jg[51.3K]┃┣━━ider.y[401B]┃┣━━tet01.txt[146B]┃┗━━tet02.txt[15B]┣━━day12[3.1K]┃┣━━1.txt[13B]┃┣━━课堂笔记.txt[584B]┃┣━━cotext_demo.y[147B]┃┣━━demo1.y[369B]┃┣━━demo2.y[202B]┃┣━━demo3.y[331B]┃┣━━demo4.y[377B]┃┣━━demo5.y[400B]┃┣━━demo6.y[532B]┃┗━━demo7.y[183B]┣━━day13[5.3K]┃┣━━ycache[0B]┃┣━━eotool[3.1K]┃┃┣━━ycache[1.6K]┃┃┃┣━━iit.cytho-36.yc[242B]┃┃┃┣━━checkidex.cytho-36.yc[188B]┃┃┃┗━━titleider.cytho-36.yc[1.2K]┃┃┣━━iit.y[27B]┃┃┣━━checkidex.y[75B]┃┃┗━━titleider.y[1.4K]┃┣━━课堂笔记.txt[1008B]┃┣━━demo1.y[307B]┃┣━━demo2.y[295B]┃┣━━demo3.y[271B]┃┗━━demo4.y[366B]┣━━day14┣━━day15[4K]┃┣━━duazi[0B]┃┣━━课堂笔记.txt[1K]┃┗━━demo1.y[2.9K]┣━━day16[14.4K]┃┣━━ycache[576B]┃┃┗━━demo11.cytho-36.yc[576B]┃┣━━课堂笔记.txt[4.1K]┃┣━━demo1.y[999B]┃┣━━demo10.y[800B]┃┣━━demo11.y[295B]┃┣━━demo12.y[103B]┃┣━━demo2.y[728B]┃┣━━demo3.y[1.1K]┃┣━━demo4.y[1.7K]┃┣━━demo5.y[627B]┃┣━━demo6.y[372B]┃┣━━demo7.y[1.5K]┃┣━━demo8.y[1.1K]┃┗━━demo9.y[432B]┣━━day17[15.5K]┃┣━━课堂笔记.txt[643B]┃┣━━demo1.y[580B]┃┣━━demo10.y[1.3K]┃┣━━demo11.y[386B]┃┣━━demo12.y[789B]┃┣━━demo13.y[1.2K]┃┣━━demo14.y[2K]┃┣━━demo2.y[513B]┃┣━━demo3.y[481B]┃┣━━demo4.y[476B]┃┣━━demo5.y[473B]┃┣━━demo6.y[1.2K]┃┣━━demo7.y[1.3K]┃┣━━demo8.y[1.6K]┃┣━━demo9.y[1.2K]┃┗━━lik.txt[1.4K]┣━━day18[15.7K]┃┣━━课堂笔记.txt[1.3K]┃┣━━demo1.y[550B]┃┣━━demo10.y[1.1K]┃┣━━demo11.y[913B]┃┣━━demo12.y[751B]┃┣━━demo13.y[2.2K]┃┣━━demo14.y[140B]┃┣━━demo2.y[1.7K]┃┣━━demo3.y[568B]┃┣━━demo4.y[507B]┃┣━━demo5.y[2K]┃┣━━demo6.y[557B]┃┣━━demo7.y[438B]┃┣━━demo8.y[683B]┃┣━━demo9.y[1.1K]┃┗━━lik.txt[1.4K]┣━━day19[4.3K]┃┣━━课堂笔记.txt[348B]┃┣━━demo1.y[622B]┃┣━━demo2.y[232B]┃┣━━demo3.y[938B]┃┣━━demo4.y[338B]┃┣━━demo5.y[650B]┃┣━━demo6.y[539B]┃┣━━demo7.y[179B]┃┣━━demo8.y[157B]┃┗━━demo9.y[411B]┣━━day20[25.6K]┃┣━━课堂笔记.txt[2.1K]┃┣━━demo1.y[1.2K]┃┣━━demo2.y[2K]┃┣━━demo3.y[4.4K]┃┣━━demo4.y[4K]┃┣━━demo5.y[838B]┃┗━━ytho-loomfilter-mater.zi[11K]┣━━day21[190K]┃┣━━jiahu[0B]┃┣━━课堂笔记.txt[663B]┃┣━━demo1.y[1.2K]┃┣━━demo2.y[1.2K]┃┣━━demo3.y[3.4K]┃┣━━demo4.y[1.7K]┃┗━━reult.cv[181.9K]┣━━day23[10.5K]┃┣━━课堂笔记.txt[1.6K]┃┣━━demo1.y[661B]┃┣━━demo2.y[643B]┃┣━━demo3.y[744B]┃┣━━demo4.y[639B]┃┣━━demo5.y[798B]┃┣━━demo6.y[884B]┃┣━━demo7.y[3.8K]┃┗━━demo8.y[836B]┣━━day24[183.2K]┃┣━━课堂笔记.txt[148B]┃┣━━check.txt[19B]┃┣━━demo1.y[2.6K]┃┣━━demo2.y[3.8K]┃┣━━demo3.y[126B]┃┣━━demo4.y[2.6K]┃┗━━reult.txt[174K]┣━━day25[363.7K]┃┣━━demo1.y[4K]┃┣━━demo2.y[348B]┃┣━━demo3.y[263B]┃┣━━demo4.y[380B]┃┣━━demo5.y[292B]┃┣━━demo6.y[317B]┃┣━━demo7.y[643B]┃┣━━demo8.y[2K]┃┣━━keyword.txt[174K]┃┣━━mydict.txt[19B]┃┣━━reult.cv[178.8K]┃┗━━tet.txt[2.7K]┣━━day26[63.1K]┃┣━━demo1.y[2.3K]┃┣━━demo2.y[2.8K]┃┣━━demo3.y[3.9K]┃┣━━kw.txt[26B]┃┗━━reult.txt[54K]┣━━day27[54.3K]┃┣━━luextracter.zi[4.5K]┃┣━━demo1.y[4.1K]┃┣━━demo2.y[801B]┃┣━━demo3.y[547B]┃┣━━demo4.y[6.6K]┃┣━━kw.txt[549B]┃┗━━reult.txt[37.4K]┣━━day28[19.8K]┃┣━━织梦cm免登陆发布接口[14.7K]┃┃┣━━DedeCMS5.7免登陆文章发布接口使用说明.txt[3.8K]┃┃┗━━jiekou.h[10.9K]┃┣━━arturl.txt[506B]┃┣━━demo1.y[1.2K]┃┣━━demo2.y[771B]┃┣━━demo3.y[217B]┃┗━━demo4.y[2.5K]┣━━day29[14.7M]┃┣━━帝国cm免登陆发布接口[6.2M]┃┃┣━━EmireCMS_7.5_SC_UTF8.zi[6.2M]┃┃┣━━emirecm字段信息.txt[656B]┃┃┣━━jiekou_v7.2.h[2.3K]┃┃┣━━jiekou_v7.5.h[2.3K]┃┃┗━━jiekou.h[2.3K]┃┣━━hcm免登陆发布接口[8.4M]┃┃┣━━jiekou.h[3.2K]┃┃┣━━hcm_v9.6.3_UTF8.zi[8.4M]┃┃┣━━hcm接口说明.txt[329B]┃┃┗━━hcm字段信息.txt[967B]┃┣━━demo1.y[2.6K]┃┣━━demo2.y[1.7K]┃┗━━demo3.y[2.3K]┣━━day30[7.1K]┃┣━━课堂笔记.txt[1.1K]┃┣━━articleid.txt[30B]┃┣━━demo1.y[627B]┃┣━━demo2.y[436B]┃┣━━demo3.y[2.5K]┃┣━━demo4.y[2.2K]┃┣━━demo5.y[222B]┃┗━━itecofig.txt[29B]┣━━day31[10.3K]┃┣━━demo1.y[1.6K]┃┣━━demo2.y[3.8K]┃┣━━demo3.y[4.4K]┃┗━━kw.txt[416B]┣━━day32[9.6K]┃┣━━demo1.y[4K]┃┣━━demo2.y[5.2K]┃┗━━kw.txt[416B]┣━━day33[9.4K]┃┣━━check.cv[1.7K]┃┣━━demo1.y[3K]┃┣━━demo2.y[4.1K]┃┗━━lik.txt[586B]┣━━day34[8.8K]┃┣━━checkreult.cv[1.6K]┃┣━━demo1.y[1.9K]┃┣━━demo2.y[4.8K]┃┗━━lik.txt[586B]┣━━day35[11.1K]┃┣━━demo1.y[4.1K]┃┣━━demo2.y[6.4K]┃┗━━lik.txt[611B]┣━━day36[5.9K]┃┣━━a.kl[42B]┃┣━━demo1.y[333B]┃┣━━demo2.y[1.9K]┃┗━━demo3.y[3.6K]┣━━day37[5.1K]┃┗━━demo1.y[5.1K]┣━━day38[135.2K]┃┣━━cookie.txt[758B]┃┣━━demo1.y[2.9K]┃┣━━kw.txt[94B]┃┣━━reult.txt[121K]┃┗━━reult.txt[10.4K]┣━━day39[1.9M]┃┣━━demo1.y[4.3K]┃┣━━demo2.y[321B]┃┣━━demo3.y[632B]┃┣━━keyword.txt[28.5K]┃┣━━Pifile[174B]┃┣━━Pifile.lock[4.3K]┃┣━━requiremet.txt[157B]┃┗━━reult.jo[1.9M]┣━━day40[1.9M]┃┣━━demo.xlx[4.6K]┃┣━━demo1.cv[322B]┃┣━━demo1.y[985B]┃┣━━demo1.xlx[6.9K]┃┣━━demo2.cv[580B]┃┣━━demo2.y[294B]┃┣━━demo2.xlx[5.7K]┃┣━━demo3.y[345B]┃┣━━demo4.y[712B]┃┣━━demo5.y[1.4K]┃┣━━reult.jo[1.2M]┃┗━━reult.xlx[671.3K]┣━━day41[13.6M]┃┣━━20190504.log[12.7M]┃┣━━demo1.y[9.1K]┃┣━━c_20181003.log[741.2K]┃┗━━xxx.c.xlx[142.3K]┣━━day42[5.3G]┃┣━━CetOS-7-x86_64-DVD-1810.io[4.3G]┃┣━━fialhell_itall.exe[66.4M]┃┣━━fialhell_itall.kg[95.2M]┃┣━━VMwareFuioPro_11.1.1_WaitU.com.dmg[483.2M]┃┣━━VMware-worktatio-full-12.5.7-5813279.exe[404.9M]┃┗━━vmware序列号.txt[142B]┣━━day46[19.9K]┃┣━━adword.txt[184B]┃┣━━demo1.y[6.7K]┃┣━━demo2.y[3.5K]┃┣━━failed.txt[0B]┃┣━━kw.txt[513B]┃┗━━t.txt[9K]┣━━day47[7.3K]┃┣━━ai.txt[898B]┃┣━━demo.txt[3.6K]┃┗━━demo1.y[2.7K]┗━━day48[20K]┣━━ycache[6.8K]┃┗━━demo1.cytho-38.yc[6.8K]┣━━demo.txt[3.6K]┣━━demo1.y[6.7K]┗━━demo2.y[2.8K]课程目录:ytho与elk打造数据分析监控系统实战课程[15.1G]┣━━第二部分:elk基础入门[10.3G]┃┣━━第八课:QueryDSL全文搜索讲解-上[297.2M]┃┃┣━━脚本[15K]┃┃┃┣━━luextracter.zi[4.5K]┃┃┃┣━━crawler.y[8.3K]┃┃┃┗━━keyword.txt[2.1K]┃┃┣━━课件[57.1K]┃┃┃┗━━14.QueryDSL查询语句讲解-上.df[57.1K]┃┃┗━━视频[297.1M]┃┃┣━━38.全文搜索准备(根据关键词自动获取文章).m4[51.4M]┃┃┣━━39.布尔查询讲解-上.m4[63.8M]┃┃┣━━40.布尔查询讲解-下.m4[53.3M]┃┃┣━━41.提权查询用法讲解.m4[43.8M]┃┃┣━━42.匹配查询用法讲解.m4[20.7M]┃┃┣━━43.匹配布尔前缀查询讲解.m4[30M]┃┃┗━━44.短语和短语前缀匹配查询讲解.m4[34M]┃┣━━第二课:ELaticearch初探[172.3M]┃┃┣━━课件[865K]┃┃┃┗━━8.ELaticearch初探.df[865K]┃┃┗━━视频[171.4M]┃┃┣━━11.e集群和节点介绍及配置.m4[57.2M]┃┃┣━━12.索引类型文档_分片和副本介绍及索引相关操作.m4[33.9M]┃┃┣━━13.文档的简单增删改查操作.m4[21.4M]┃┃┣━━14.e配置文件介绍及局域网IP访问配置.m4[28.8M]┃┃┗━━15.kiaa配置文件介绍.m4[30.1M]┃┣━━第九课:QueryDSL全文搜索讲解-中[137.3M]┃┃┣━━课件[0B]┃┃┗━━视频[137.3M]┃┃┣━━45.多匹配查询用法讲解.m4[47.2M]┃┃┣━━46.查询字符串查询语法讲解.m4[65.5M]┃┃┗━━47.简单字符串查询语法了解.m4[24.7M]┃┣━━第六课:文档相关操作[138.4M]┃┃┣━━课件[59.8K]┃┃┃┗━━12.e文档相关操作.df[59.8K]┃┃┗━━视频[138.3M]┃┃┣━━29.自动创建索引相关设置.m4[45.9M]┃┃┣━━30.文档创建时的操作类型及自动生成id.m4[19.4M]┃┃┣━━31.获取文档的更多操作.m4[22.4M]┃┃┣━━32.删除和更新文档.m4[36.4M]┃┃┗━━33.重新索引reidex的使用.m4[14.2M]┃┣━━第七课:URI搜索接口讲解[154.5M]┃┃┣━━课件[41.3K]┃┃┃┗━━13.ESURI搜索接口讲解.df[41.3K]┃┃┗━━视频[154.4M]┃┃┣━━34.ES搜索之Pytho脚本批量添加关键词.m4[31.6M]┃┃┣━━35.URI搜索接口讲解-上.m4[38.3M]┃┃┣━━36.URI搜索接口讲解-下.m4[31.1M]┃┃┗━━37.请求体搜索接口讲解.m4[53.4M]┃┣━━第三课:e常用ai接口[85.9M]┃┃┣━━视频[85.9M]┃┃┃┣━━16.ai公共参数介绍.m4[26.1M]┃┃┃┣━━17.catai相关使用介绍.m4[32.7M]┃┃┃┗━━18.cluterai相关使用介绍.m4[27M]┃┃┗━━资料[84.3K]┃┃┗━━9.e常用常用API介绍.df[84.3K]┃┣━━第十二课:Liux常用命令讲解[181.6M]┃┃┣━━课件[463.2K]┃┃┃┣━━ceto7命令教程.html[208.7K]┃┃┃┗━━liux命令笔记.df[254.4K]┃┃┗━━视频[181.2M]┃┃┣━━57.Liux常有命令讲解-1.m4[40.2M]┃┃┣━━58.Liux常有命令讲解-2.m4[28M]┃┃┣━━59.Liux常有命令讲解-3.m4[48.4M]┃┃┣━━60.Liux常有命令讲解-4.m4[40.8M]┃┃┗━━61.Liux常有命令讲解-5.m4[23.8M]┃┣━━第十课:QueryDSL全文搜索讲解-下[160.5M]┃┃┣━━课件[42.4K]┃┃┃┗━━16.术语级别查询讲解.df[42.4K]┃┃┗━━视频[160.4M]┃┃┣━━48.exit查询讲解.m4[12.2M]┃┃┣━━49.rage查询讲解.m4[62.5M]┃┃┣━━50.正则表达式查询(了解).m4[29.5M]┃┃┣━━51.term和term查询讲解.m4[38.3M]┃┃┗━━52.通配符查询讲解.m4[18.1M]┃┣━━第十三课:vim编辑器的使用[146.9M]┃┃┣━━课件[153.4K]┃┃┃┗━━vim编辑器及日志分析常用命令.df[153.4K]┃┃┗━━视频[146.8M]┃┃┣━━62.vim编辑器的使用-1.m4[51.9M]┃┃┣━━63.vim编辑器的使用-2.m4[33.6M]┃┃┗━━64.vim编辑器的使用-3.m4[61.3M]┃┣━━第十四课:Liux日志分析[1.1G]┃┃┣━━65.liux日志分析命令讲解-1.m4[86.4M]┃┃┣━━66.liux日志分析命令讲解-2.m4[50.6M]┃┃┣━━67.liux日志分析命令讲解-3.m4[60.1M]┃┃┣━━m.xxx.com-acce.log[950.8M]┃┃┗━━vim编辑器及日志分析常用命令.df[170.3K]┃┣━━第十一课:Liux操作系统安装[5.4G]┃┃┣━━软件安装包[5.3G]┃┃┃┣━━CetOS-7-x86_64-DVD-1810.io[4.3G]┃┃┃┣━━fialhell_itall.exe[66.4M]┃┃┃┣━━fialhell_itall.kg[95.2M]┃┃┃┣━━VMwareFuioPro_11.1.1_WaitU.com.dmg[483.2M]┃┃┃┣━━VMware-worktatio-full-12.5.7-5813279.exe[404.9M]┃┃┃┗━━vmware序列号.txt[142B]┃┃┗━━视频[152.4M]┃┃┣━━53.Widow上安装VMware虚拟机.m4[37.3M]┃┃┣━━54.在VMware新建ceto操作系统.m4[56.8M]┃┃┣━━55.在macOS上安装ceto操作系统.m4[46.7M]┃┃┗━━56.fialhell连接服务器.m4[11.7M]┃┣━━第四课:e索引相关操作[142.4M]┃┃┣━━课件[4.4M]┃┃┃┣━━10.e索引相关操作.df[64.8K]┃┃┃┗━━elaticearch-aalyi-ik-7.2.0.zi[4.3M]┃┃┗━━视频[138.1M]┃┃┣━━19.e索引的创建及自定义设置.m4[23.5M]┃┃┣━━20.e索引的删除、获取、开关等操作.m4[21.5M]┃┃┣━━21.e更新索引的默认设置.m4[23.4M]┃┃┣━━22.e默认分析器及自定义分析器的使用.m4[19.8M]┃┃┗━━23.ik中文分析器的安装和使用.m4[49.9M]┃┣━━第五课:maig讲解[212.1M]┃┃┣━━课件[82.8K]┃┃┃┗━━11.ELaticearchmaig讲解.df[82.8K]┃┃┗━━视频[212M]┃┃┣━━24.maig的介绍及数组类型讲解.m4[42.1M]┃┃┣━━25.date类型讲解.m4[49.3M]┃┃┣━━26.keyword和text类型讲解.m4[64.2M]┃┃┣━━27.数字类型讲解.m4[29.3M]┃┃┗━━28.嵌套类型和对象类型讲解.m4[27.1M]┃┗━━第一课:elk介绍安装及启动[2G]┃┣━━课件[4.4M]┃┃┗━━7.ELK的介绍和安装.df[4.4M]┃┣━━软件安装包[1.6G]┃┃┣━━elaticearch-7.2.0-darwi-x86_64.tar.gz[310.7M]┃┃┣━━elaticearch-7.2.0-liux-x86_64.tar.gz[321.1M]┃┃┣━━elaticearch-7.2.0-widow-x86_64.zi[314.8M]┃┃┣━━kiaa-7.2.0-darwi-x86_64.tar.gz[203.2M]┃┃┣━━kiaa-7.2.0-liux-x86_64.tar.gz[203.3M]┃┃┗━━kiaa-7.2.0-widow-x86_64.zi[235.1M]┃┗━━视频[414.7M]┃┣━━7.elk的介绍和下载.m4[37.6M]┃┣━━8.在mac上安装e和kiaa.m4[62.5M]┃┣━━9.在widow上安装e和kiaa.m4[129M]┃┗━━10.在liux上安装e和kiaa.m4[185.5M]┣━━第六部分:百度专利[90.2M]┃┗━━第一天:百度去重算法讲解[90.2M]┃┣━━121.百度去重专利算法讲解-1.m4[59.8M]┃┣━━122.百度去重专利算法讲解-2.m4[28.7M]┃┣━━百度去重算法.g[1.4M]┃┗━━百度去重算法.xmid[260.3K]┣━━第三部分:Pytho操作ES[282.9M]┃┣━━代码[5K]┃┃┣━━e-demo1.y[167B]┃┃┣━━e-demo2.y[317B]┃┃┣━━e-demo3.y[1.7K]┃┃┣━━e-demo4.y[797B]┃┃┣━━e-demo5.y[701B]┃┃┣━━e-demo6.y[173B]┃┃┗━━e-demo7.y[1.3K]┃┗━━视频[282.9M]┃┣━━68.elaticearch模块的安装.m4[20.3M]┃┣━━69.elaticearch模块文档介绍和简单接口使用.m4[39.7M]┃┣━━70.elaticearch模块实例说明.m4[29.7M]┃┣━━71.Pytho对elaticearch索引进行增删改查.m4[67.6M]┃┣━━72.ytho对ELaticearch增加文档操作.m4[38.8M]┃┣━━73.ytho对ELaticearch进行更新和删除文档操作.m4[33.6M]┃┗━━74.ytho对ELaticearch进行文档搜索操作.m4[53.2M]┣━━第四部分:数据分析实战[851.1M]┃┣━━链接收录监控[150M]┃┃┣━━脚本[4.6M]┃┃┃┗━━aidu[4.6M]┃┃┃┣━━ycache[2.5K]┃┃┃┃┣━━maig.cytho-37.yc[680B]┃┃┃┃┗━━util.cytho-37.yc[1.8K]┃┃┃┣━━alum.txt[4.1M]┃┃┃┣━━cookie.txt[1.1K]┃┃┃┣━━detail.txt[21.8K]┃┃┃┣━━keywordcover.y[7.2K]┃┃┃┣━━keyword.txt[27.7K]┃┃┃┣━━maig.y[2.4K]┃┃┃┣━━ua.txt[795B]┃┃┃┣━━urlidex.y[6.4K]┃┃┃┣━━util.y[1.6K]┃┃┃┗━━zhuajiurl.txt[412.5K]┃┃┗━━视频[145.4M]┃┃┣━━86.域名链接收录监控-1.m4[91.2M]┃┃┗━━87.域名链接收录监控-2.m4[54.2M]┃┣━━排名监控[194.8M]┃┃┣━━脚本[42.3K]┃┃┃┗━━aidu[42.3K]┃┃┃┣━━ycache[2.4K]┃┃┃┃┣━━maig.cytho-37.yc[544B]┃┃┃┃┗━━util.cytho-37.yc[1.8K]┃┃┃┣━━cookie.txt[1.1K]┃┃┃┣━━keywordcover.y[7.3K]┃┃┃┣━━keyword.txt[27.7K]┃┃┃┣━━maig.y[1.5K]┃┃┃┣━━ua.txt[795B]┃┃┃┗━━util.y[1.6K]┃┃┗━━视频[194.7M]┃┃┣━━83.百度关键词排名监控-1.m4[84.6M]┃┃┣━━84.百度关键词排名监控-2.m4[49.3M]┃┃┗━━85.百度关键词排名监控-3.m4[60.9M]┃┣━━日志分析[287.1M]┃┃┣━━代码[15.8K]┃┃┃┣━━logaalyi.y[9.1K]┃┃┃┗━━logger_aalyi.y[6.7K]┃┃┗━━视频[287M]┃┃┣━━75.日志分析之数据导入.m4[65M]┃┃┣━━76.kiaadicover数据探索.m4[47.5M]┃┃┣━━77.kiaa数据图表的制作和展示-1.m4[38M]┃┃┣━━78.kiaa数据图表的制作和展示-2.m4[74M]┃┃┗━━79.kiaa数据图表的制作和展示-3.m4[62.6M]┃┗━━收录监控[219.3M]┃┣━━脚本[10.2K]┃┃┣━━domai_moitor.y[10.1K]┃┃┗━━domai.txt[137B]┃┗━━视频[219.3M]┃┣━━80.域名收录监控之数据查询和校验.m4[107.8M]┃┣━━81.数据的重新处理和图表制作-1.m4[73.8M]┃┗━━82.数据的重新处理和图表制作-2.m4[37.7M]┣━━第五部分:网站搭建[3.1G]┃┣━━第二天[406.9M]┃┃┣━━脚本[7.7K]┃┃┃┣━━dedecm_rewrite.txt[1K]┃┃┃┣━━demo4.y[2.6K]┃┃┃┗━━duawexue.y[4.1K]┃┃┣━━模板[111.5K]┃┃┃┗━━wj[111.5K]┃┃┃┣━━tatic[105.4K]┃┃┃┃┣━━category.jg[17.1K]┃┃┃┃┣━━icofot.woff[7.9K]┃┃┃┃┣━━idex_decorate_left.g[15.2K]┃┃┃┃┣━━idex_decorate_right.g[19.3K]┃┃┃┃┣━━jquery.commo.j[5.7K]┃┃┃┃┣━━jquery.lide.j[1.2K]┃┃┃┃┣━━logo.g[7.7K]┃┃┃┃┗━━tyle.c[31.4K]┃┃┃┗━━idex.htm[6.2K]┃┃┗━━视频[406.7M]┃┃┣━━92.ytho发布准备素材内容到后台栏目.m4[93.5M]┃┃┣━━93.dedecm首页模板制作-1.m4[103.6M]┃┃┣━━94.dedecm首页模板制作-2.m4[108.1M]┃┃┣━━95.dedecm首页模板制作-3.m4[62.9M]┃┃┗━━96.dedecm首页模板制作-4.m4[38.7M]┃┣━━第六天[934.9M]┃┃┣━━软件[684.7M]┃┃┃┣━━dedecm.zi[7.8M]┃┃┃┣━━lm1.6-full.tar.gz[676.7M]┃┃┃┗━━wj.zi[148.3K]┃┃┗━━视频[250.3M]┃┃┣━━113.ceto服务器上安装lm环境-1.m4[38.6M]┃┃┣━━114.ceto服务器上安装lm环境-2.m4[31.7M]┃┃┣━━115.lm添加网站.m4[22.4M]┃┃┣━━116.ceto上安装dedecm.m4[56.2M]┃┃┣━━117.模板配置和Ngix配置.m4[56.7M]┃┃┗━━118.移动站的配置.m4[44.7M]┃┣━━第七天[100.2M]┃┃┣━━视频[100.2M]┃┃┃┣━━119.dedecm安全配置.m4[44.1M]┃┃┃┗━━120.内容处理的一些建议和技巧提示.m4[56.1M]┃┃┗━━文档[295B]┃┃┗━━liux安全配置.txt[295B]┃┣━━第三天[478.8M]┃┃┣━━视频[453.6M]┃┃┃┣━━97.mac上配置PHP集成开发环境.m4[38.4M]┃┃┃┣━━98.dedecm数据还原和伪静态.m4[77.2M]┃┃┃┣━━99.公共部分模板分离调用.m4[39.1M]┃┃┃┣━━100.列表页模板制作.m4[82.3M]┃┃┃┣━━101.频道页模板制作.m4[47.8M]┃┃┃┣━━102.文章详情页模板制作-1.m4[110.4M]┃┃┃┗━━103.文章详情页模板制作-2.m4[58.5M]┃┃┗━━文档[25.3M]┃┃┣━━wj[120K]┃┃┃┣━━tatic[105.2K]┃┃┃┃┣━━category.jg[17.1K]┃┃┃┃┣━━icofot.woff[7.9K]┃┃┃┃┣━━idex_decorate_left.g[15.2K]┃┃┃┃┣━━idex_decorate_right.g[19.3K]┃┃┃┃┣━━jquery.commo.j[5.7K]┃┃┃┃┣━━jquery.lide.j[1.2K]┃┃┃┃┣━━logo.g[7.7K]┃┃┃┃┗━━tyle.c[31.3K]┃┃┃┣━━article_article.htm[4.7K]┃┃┃┣━━foot.htm[1K]┃┃┃┣━━head.htm[2.2K]┃┃┃┣━━idex_article.htm[1.2K]┃┃┃┣━━idex.htm[3.3K]┃┃┃┗━━lit_article.htm[2.4K]┃┃┣━━ackudata.zi[25.1M]┃┃┗━━dedecm模板标签语法.md[20K]┃┣━━第四天[585.1M]┃┃┣━━视频[584.9M]┃┃┃┣━━104.移动站首页模板制作-1.m4[117.1M]┃┃┃┣━━105.移动站首页模板制作-2.m4[161.7M]┃┃┃┣━━106.移动站列表页模板制作-1.m4[115.3M]┃┃┃┣━━107.移动站列表页模板制作-2.m4[57.7M]┃┃┃┣━━108.移动站详情页模板制作-1.m4[100.9M]┃┃┃┗━━109.移动站详情页模板制作-2.m4[32.3M]┃┃┗━━文档[184.2K]┃┃┣━━wj[164.2K]┃┃┃┣━━tatic[137.5K]┃┃┃┃┣━━category.jg[17.1K]┃┃┃┃┣━━ico-logo.g[3.7K]┃┃┃┃┣━━icofot.woff[7.9K]┃┃┃┃┣━━idex_decorate_left.g[15.2K]┃┃┃┃┣━━idex_decorate_right.g[19.3K]┃┃┃┃┣━━jquery.commo-m.j[1.3K]┃┃┃┃┣━━jquery.commo.j[3.2K]┃┃┃┃┣━━jquery.lide.j[1.2K]┃┃┃┃┣━━logo.g[7.7K]┃┃┃┃┣━━rite.g[1.1K]┃┃┃┃┣━━tyle-m.c[27.1K]┃┃┃┃┣━━tyle.c[31.3K]┃┃┃┃┗━━to-to.g[1.5K]┃┃┃┣━━article_article_m.htm[3.7K]┃┃┃┣━━article_article.htm[4.7K]┃┃┃┣━━foot_m.htm[1.1K]┃┃┃┣━━foot.htm[989B]┃┃┃┣━━head_m.htm[1.5K]┃┃┃┣━━head.htm[2.2K]┃┃┃┣━━idex_article_m.htm[1.4K]┃┃┃┣━━idex_article.htm[1.2K]┃┃┃┣━━idex_m.htm[2.6K]┃┃┃┣━━idex.htm[3.3K]┃┃┃┣━━lit_article_m.htm[1.6K]┃┃┃┗━━lit_article.htm[2.4K]┃┃┗━━dedecm模板标签语法.md[20K]┃┣━━第五天[188.4M]┃┃┣━━视频[188.2M]┃┃┃┣━━110.PC站标签页和标签列表页的模板制作.m4[93.8M]┃┃┃┣━━111.移动站标签页和标签列表页的模板制作.m4[67.6M]┃┃┃┗━━112.xml格式网站地图制作.m4[26.9M]┃┃┗━━资料[173.7K]┃┃┗━━wj[173.7K]┃┃┣━━tatic[137.8K]┃┃┃┣━━category.jg[17.1K]┃┃┃┣━━ico-logo.g[3.7K]┃┃┃┣━━icofot.woff[7.9K]┃┃┃┣━━idex_decorate_left.g[15.2K]┃┃┃┣━━idex_decorate_right.g[19.3K]┃┃┃┣━━jquery.commo-m.j[1.3K]┃┃┃┣━━jquery.commo.j[3.2K]┃┃┃┣━━jquery.lide.j[1.2K]┃┃┃┣━━logo.g[7.7K]┃┃┃┣━━rite.g[1.1K]┃┃┃┣━━tyle-m.c[27.3K]┃┃┃┣━━tyle.c[31.4K]┃┃┃┗━━to-to.g[1.5K]┃┃┣━━article_article_m.htm[3.8K]┃┃┣━━article_article.htm[4.9K]┃┃┣━━foot_m.htm[1.1K]┃┃┣━━foot.htm[989B]┃┃┣━━head_m.htm[1.5K]┃┃┣━━head.htm[2.2K]┃┃┣━━idex_article_m.htm[1.5K]┃┃┣━━idex_article.htm[1.2K]┃┃┣━━idex_m.htm[2.6K]┃┃┣━━idex.htm[3.3K]┃┃┣━━lit_article_m.htm[1.7K]┃┃┣━━lit_article.htm[2.4K]┃┃┣━━itema_m.htm[795B]┃┃┣━━itema.htm[802B]┃┃┣━━tag_m.htm[1.1K]┃┃┣━━tag.htm[2K]┃┃┣━━taglit_m.htm[1.6K]┃┃┗━━taglit.htm[2.5K]┃┗━━第一天[493.7M]┃┣━━脚本[2.4K]┃┃┗━━duawexue.y[2.4K]┃┣━━软件和课件[8.1M]┃┃┣━━dede布鲁.zi[7.9M]┃┃┣━━dedecm模板标签语法.md[18.9K]┃┃┗━━dedecm模板标签语法.df[174K]┃┗━━视频[485.7M]┃┣━━88.h环境搭建及dedecm安装.m4[54.4M]┃┣━━89.dedecm后台配置及火车头使用.m4[151.8M]┃┣━━90.用ytho抓取短文学文章内容-1.m4[83.8M]┃┗━━91.用ytho抓取短文学文章内容-2.m4[195.6M]┗━━第一部分:Pytho基础[470.5M]┣━━课件和代码[9.8M]┃┣━━1.ytho环境搭建.df[1.8M]┃┣━━2.Pytho常用IDE的安装和配置.df[4.4M]┃┣━━4.如何正确的运行Pytho.df[1.4M]┃┣━━5.ytho常见错误.df[581.7K]┃┣━━6.ytho安装第三方包的方法.df[1.6M]┃┣━━demo1.y[146B]┃┣━━demo2.y[103B]┃┣━━demo3.y[213B]┃┗━━requet-1.y[0B]┗━━视频[460.7M]┣━━1.Pytho环境搭建.m4[71.8M]┣━━2.ytho常用的IDE介绍和安装配置.m4[80.5M]┣━━3.ycharm初始配置讲解.m4[49.2M]┣━━4.正确运行Pytho的N种方法.m4[62M]┣━━5.Pytho运行常见的几个错误总结.m4[54.9M]┗━━6.Pytho第三方包常用安装方法.m4[142.3M]应版权方要求,相关课程删除下载地址,请大家支持正版。...

    2022-04-02 接口开发python 接口开发指的是什么

  • Java Springboot2.0开发头条项目实战教程(讲义+视频+资料+代码完整版),百度网盘,阿里云盘下载

    大家从今天开始讲一个叫黑马头条的新项目,类似于今天的头条,主要是把一些文章信息推给用户,分为11天!第一天:项目背景和架构...

    2022-04-03

  • 嵌入式Linux驱动模板精讲与项目实践(txt+pdf+epub+mobi电子书下载)|百度网盘下载

  • 马哥Linux高端运维云计算就业班(马哥教育),百度网盘下载

    马哥Linux高端运维云计算就业班(马哥教育),百度网盘下载

    本课程由马哥教育出品的liux从基础上看,高端运维云计算课程分为33章liux云计算课程课程的基本操作,到liux系统功能作用讲解和获取命令、再到liux常用的实战命令和liux的raid和lvm应用、liux一套完整的教程,如网络核心集群负载平衡方案。适用人群:系统运维架构师、运维开发工程师、云计算运维工程师、应用运维工程师、大数据运维工程师、软件运维工程师、游戏运维工程师liux系统运维工程师、数据库运维工程师、网络运维工程师、安全运维工程师课程目录:ma哥Liux高端运维云计算就业班目录│(大小29.37g)├01Liux云计算入门大纲:Liux运维云计算及未来的发展│└1.马哥亲自讲Liux运维发展与学习路线图.m4├02课前环境准备Liux基础入门介绍││2、Liux云计算学习环境介绍.m4││3、Liux全面介绍云计算系列课程体系.m4││4、Liux开发和演变操作系统.m4│└5、Liux使用开始入门和基本操作.m4├03Liux帮助系统组成和获得命令││6、运维基本功-Liux系统组成及初识.m4││7、运维基本功-Liux解释文件系统的功能和功能.m4││8、运维基本功-Liux获得命令使用帮助的详细解释.m4│└9、运维基本功-Liux实战应用常用基本命令.m4├04Liux根文件系统和目录结构ah特性││10、Liux全面解释目录结构和根文件系统.m4││11、Liux历史的基本命令和命令.m4││12、ah文本查看命令的常见特征和实战.m4│└13、Liux常用的文件管理命令和系统变量基础.m4├05运维必备知识-Liux用户组管理和用户权限││14、Liux高级系统运维应用-glo通配及IO重定向.m4││15、Liux系统用户和组全面解释.m4││16、Liux用户和团队管理命令演练和实际应用.m4│└17运维核心技能-Liux用户权限管理用户权限.m4├06hell脚本基础和gre企业应用文本处理工具││18、hell脚本基础-ah变量和逻辑操作.m4││19、hell脚本基础-ah脚本编程基础及配置文件.m4││20运维核心技能-gre命令和基本正则表达式.m4│└21、运维核心节能-egre应用高级文本处理工具.m4├07运维核心技术-vim文本编辑和文件搜索应用程序││22、Liux必要的操作和维护技能-vim深入解释编辑器.m4││23、Liux必要的操作和维护技能-vim高效使用编辑器.m4││24、Liux必要的操作和维护技能-查找命令企业级应用文件.m4│└25运维加薪技能-Liux特殊权限及facl扩展.m4├08面试加分技能-Liux磁盘和文件系统管理││26、Liux磁盘使用及文件系统管理介绍.m4││27、Liux解释磁盘使用和文件系统管理的先进概念.m4││28、Liux磁盘使用和文件系统管理.m4│└29、Liux磁盘使用和文件系统管理企业级实战.m4├09hell高级及脚本编程RAID和LVM应用││30运维核心技能-hell脚本编程思想和条件测试.m4││31运维核心技能-hell脚本逻辑判断和参数传输.m4││32面试必备技能-Liux平台RAID全面讲解技术.m4││33运维高级技能-在Liux实现LVM逻辑卷和快照.m4│└34运维加薪技能-trf管理和应用文件系统.m4├10Liux高级管理应用-压缩工具、计划任务、软件包管理实战││35、Liux压缩工具及hell实战应用脚本编程.m4││36、Liux任务计划crota企业实战应用.m4││37、Liux程序包管理介绍及应用.m4│└38、Liux软件包管理-rm命令介绍及实战应用.m4├11运维必备技能-Liux平台软件包管理yum与高级进阶││39运维必备技能-Liux软件包管理yum工具介绍.m4相关下载...

    2024-05-06 运行软件包脚本 编写脚本软件

  • Python代码重构指南,老师Bryan Beecham完结,百度网盘,阿里云盘下载

    本套课程由BryaBeecham,全球知名敏捷发展教练主讲:Pytho代码重构指南。重构是软件改进的核心,它使软件具有更好的结构和性能,使代码更容易理解、修改和扩展。虽然重建不是新事物,但软件开发人员仍然担心如何正确重建。随着敏捷运动的发展,DevO等概念不断追求高质量、精心设计的代码,实现更快的部署和反馈。然而,许多关于重建的教程都是基于Java语言,关于Pytho很少。在这门课程中,BryaBeecham将使用Pytho语言,向您展示如何识别代码中的问题,如何进行必要的更改,以创建可以快速开发的高质量软件,以及如何有效地重建,以改进和简化您的软件设计工作。Pytho代码重构指南视频随机截图学完这门课程您将获得:学习如何改进和简化软件设计;快速识别Pytho代码中常见的问题;掌握高效的代码重构技能;使用TDD优化现有的开发过程。课程目录:C-Pytho代码重构指南[634.9M]┣━━第二章:识别代码中的问题(15).m4[80.4M]┣━━第六章:与他人合作的好处(3).m4[18.5M]┣━━第七章:测试在重构中的作用(5).m4[23.6M]┣━━第三章:常见的重构技巧(8讲).m4[51.1M]┣━━第四章:重构实战(11讲)-1.m4[209.3M]┣━━第四章:重构实战(11讲)-2.m4[167.4M]┣━━第五章:内部重构(6).m4[29.6M]┣━━第一章:重构基础(11讲).m4[55M]相关下载点击下载...

    2022-04-03 代码重构五大原则 代码重构是什么意思

  • web安全微专业(kali正式篇)渗透/黑客/linux/网络安全/攻防/漏洞第4期(视频+课件),百度网盘,阿里云盘下载

    这套课程来自控制安全学院we安全微专业(kali正式篇)渗透/黑客//liux/网络安全/攻防/漏洞第四期官网售价4298元。从漏洞中学习代码,在代码中找到漏洞。通过对各类漏洞的深入分析,了解常见漏洞的属性,掌握漏洞挖掘的实际应用,如何利用漏洞控制目标进步。课程内容包括Kali为主的各种渗透工具,带同学从熟练掌握kali,入门安全,玩各种渗透工具,KaliLiux许多渗透测试软件都是预装的,包括,JohtheRier、d劫持etterca、hahcat密码破解、ma、Wirehark,以及Aircrack-g.用户可以通过硬盘,liveCD或liveUSB运行KaliLiux。KaliLiux镜像有32位和64位。x86指令集。同时也是基于。ARM树莓派和三星的结构镜像ARMChromeook。网站上还有2020We安全微专业-正式渗透/黑客/liux/网络安全/攻防/漏洞/kali(4、5、8期)课程一共26G文章底部的课程表和下载地址适用人群:1网工运维转岗2大学生就业3编程从业者4在职提升5黑客爱好者6寻求新方向we安全微专业(kali正式篇)渗透/黑客//liux/网络安全/攻防/漏洞视频截图课程目录:we安全微专业(kali正式篇)渗透黑客liux网络安全攻防第四期[26.1G]┣━━第四期正式课-t[7.8G]┃┣━━第10节:uruite检测插件[21.7M]┃┃┣━━文件包[18.1M]┃┃┃┣━━hatomj-2.1.1-widow.zi[17.4M]┃┃┃┣━━qlma.jar[595.4K]┃┃┃┗━━xValidator-mater.zi[138.2K]┃┃┣━━Buruite-用于检测插件.tx[3.6M]┃┃┗━━uruite-插件使用检测本课程的错误答案分析.docx[20.4K]┃┣━━第11节:x初步学习[4.5M]┃┃┣━━插件[202.7K]┃┃┃┗━━XSier_v1.1.37.crx[202.7K]┃┃┣━━跨站脚本攻击(XSS).g[814.9K]┃┃┣━━x初步学习漏洞.tx[3.4M]┃┃┗━━x漏洞初步学习易错解析回答.docx[16.8K]┃┣━━第12节:eef-x[3.6M]┃┃┣━━Beef-XSS.tx[3.5M]┃┃┣━━eef-x易错分析答案.docx[18.4K]┃┃┗━━XSS利用架构图.jg[99.8K]┃┣━━第13节:qlma原理利用[3.2M]┃┃┣━━aa.txt[3.3K]┃┃┣━━qlma.txt[598B]┃┃┣━━qlma之ql注入原理利用.tx[3.2M]┃┃┗━━qlma之ql注入原理利用易错回答分析.docx[15.8K]┃┣━━第14节:qlma之SQL注入一[13.4M]┃┃┣━━qli-li-mater.zi[3.3M]┃┃┣━━SQLma脑图.jg[4M]┃┃┣━━qlma过滤的tamer脚本分类总结.xlx[16.7K]┃┃┣━━SqlMa入门指南.g[2.6M]┃┃┣━━qlma之ql注入一.tx[3.5M]┃┃┗━━qlma之ql注入易错答案分析.docx[16.8K]┃┣━━第15节:qlma之SQL注入二[6M]┃┃┣━━SqlMa入门指南.g[2.6M]┃┃┣━━qlma之ql注入二.tx[3.4M]┃┃┗━━qlma之ql注入两门课容易错回答分析.docx[16.3K]┃┣━━第16节:wehell管理工具[124.9M]┃┃┣━━冰蝎[22.9M]┃┃┃┗━━Behider_v2.0.1.zi[22.9M]┃┃┣━━widow菜刀[685.2K]┃┃┃┗━━菜刀.zi[685.2K]┃┃┣━━widow蚁剑[98.1M]┃┃┃┣━━AtSword-Loader-v4.0.3-wi32-x64.zi[57.8M]┃┃┃┗━━AtSword.zi[40.3M]┃┃┣━━dama.h[85.6K]┃┃┗━━wehell管理工具.tx[3.1M]┃┣━━第17节:liuxhell管理工具[6.7M]┃┃┣━━dama.h[85.6K]┃┃┣━━liuxhell本课易错回答解析.docx[14.9K]┃┃┣━━Liuxhellweevely.tx[3.4M]┃┃┗━━liuxhell.g[3.1M]┃┣━━第18节:Metaloit框架介绍和基本命令[5.1M]┃┃┣━━Metaloit框架介绍和基本命令.tx[3.7M]┃┃┣━━Metaloit框架介绍和基本命令本课程的错误答案分析.docx[15K]┃┃┗━━MSF-mfcoole.g[1.4M]┃┣━━第19节:mf扫描模块[2.6M]┃┃┣━━MSF-扫描模块.tx[2.5M]┃┃┗━━mf扫描模块本课容易出错回答分析.docx[14.6K]┃┣━━第1节:kali的安装配置[2.7G]┃┃┣━━kali-liux-2019.3-vmware-amd64.7z[2.1G]┃┃┣━━kali快速安装-本课容易错分析回答.docx[22.7K]┃┃┣━━kali快速安装和构建虚拟机的环境.tx[2.1M]┃┃┗━━VMware-worktatio-full-15.5.0-14665864.exe[541.1M]┃┣━━第20节:mf密码爆破模块[2.8M]┃┃┣━━mf-爆破模块-本课容易回答错误分析.docx[15.3K]┃┃┗━━MSF-密码爆破.tx[2.8M]┃┣━━第21节:MSF漏洞利用一[88.5M]┃┃┣━━MSF-meterreter.g[1.4M]┃┃┣━━MSF-模块用于漏洞.tx[2.7M]┃┃┣━━mf-漏洞利用模块回答和分析课程的错误.docx[13.7K]┃┃┣━━hmyadmi.zi[10M]┃┃┗━━htudy配置.zi[74.5M]┃┣━━第22节:mf二用于漏洞[173.1M]┃┃┣━━获取管理员工具的插件mimikatz_truk.zi[899.9K]┃┃┣━━提权补丁集合widow-kerel-exloit-mater.zi[146.7M]┃┃┣━━Behider_v2.0.1.zi[22.9M]┃┃┣━━ex提权补丁.zi[250.8K]┃┃┣━━MSF-模块二用于漏洞.tx[2.3M]┃┃┗━━mf漏洞利用二-这门课容易出错,会回答分析.docx[16K]┃┣━━第23节:mf后门生成[33.1M]┃┃┣━━MSF-后门生成模块.tx[2.8M]┃┃┣━━mf后门生成模块-本课容易回答分析错点.docx[19.5K]┃┃┗━━vc6_c_full.exe[30.3M]┃┣━━第24节:hahcat密码破解[101.6M]┃┃┣━━工具[99M]┃┃┃┣━━提取各种文件加密的哈希值johtherier.7z[22.3M]┃┃┃┣━━flag.zi[245B]┃┃┃┣━━hahcat-5.1.0.7z[2.7M]┃┃┃┣━━ItelDriveradSuortAitatItaller.exe[13.6M]┃┃┃┗━━oecl_rutime_18.1_x64_etu.mi[60.5M]┃┃┣━━本课程容易出错.docx[19.7K]┃┃┗━━密码破解-hahcat.tx[2.6M]┃┣━━第25节:d劫持etterca[2.6M]┃┃┣━━d劫持-etterca.tx[2.6M]┃┃┣━━d劫持-本课容易回答分析错点.docx[61K]┃┃┣━━etterca常用指令.docx[17.4K]┃┃┣━━head.filter[343B]┃┃┗━━idex.html[4.5K]┃┣━━第二节:渗透测试流程及信息收集大纲[5.9M]┃┃┣━━编制信息收集文档.g[1.2M]┃┃┣━━常见的端口服务.g[420.3K]┃┃┣━━第二节:渗透试验流程...

    2022-04-04 漏洞 docker镜像 漏洞 动词

  • 动脑学院C/C++ Linux服务器开发/高级架构师课程价值5980元,百度网盘,阿里云盘下载

    这套课程来自自动脑学院C/CLiux服务器开发/高级架构师课程官网售价5980元.由Toy老师和Shae教师讲座旨在打造经典的高级架构师课程,培养低门槛Liux领域全能专业C/C开发工程师;零经验打造Liux结合教师项目的实践经验,分析和理解框架作者的思维,掌握本课程的联系,让您每月上升5-6K。课程一共34.94G文章底部的课程表和下载地址Toy老师2006年开始从事CBIOS固件开发、硬件驱动开发、嵌入式开发、应用软件开发、服务器软件开发、游戏服务器开发、软件安全与ji开发。-从软件设计师到系统架构设计师,我相信一定有很多可用的经验来帮助你!Shae老师062013年毕业于中南大学计算机科学与技术专业,一线研发13年。曾任华为中央研发部、国防科技大学卫星导航中心、齐心云计算、高级研发工程师、后台服务器总监、研发总监。c/liux熟悉大规模服务器开发、物联网和区块链技术的技术栈。动脑学院C/CLiux随机截图服务器开发/高级架构师视频适用人群:本课程适用于有C/C项目经验人群。课程目录:CLiux服务器开发高级架构师课程[34.9G]┣━━专题1Liux先进的服务器开发[21.4G]┃┣━━分析招聘要求[789.9M]┃┃┗━━分析招聘要求_20181123_151336.m4[789.9M]┃┣━━l01课程简介和项目准备[584.2M]┃┃┣━━作业01.txt[59B]┃┃┣━━Leio-01-课程简介和项目准备.m4[574.6M]┃┃┗━━Leio-01-课程简介和项目准备.t[9.6M]┃┣━━l02Liux介绍和环境安装[690.5M]┃┃┣━━Leio-02-Liux介绍和环境安装.m4[689.2M]┃┃┗━━Leio-02-Liux介绍和环境安装.t[1.3M]┃┣━━l03项目文档和架构设计[759.1M]┃┃┣━━文件模板.rar[16.4M]┃┃┣━━Leio-03-项目文件和架构设计.m4[735M]┃┃┗━━Leio-03-项目文件和架构设计.t[7.7M]┃┣━━l04[356.3M]┃┃┣━━Leio-04-介绍敏捷开发流程.m4[351.9M]┃┃┗━━Leio-04-介绍敏捷开发流程.t[4.5M]┃┣━━l05Shell编程[1G]┃┃┣━━Leio-05-Shell编程.m4[1G]┃┃┗━━Leio-05-Shell编程.t[1.1M]┃┣━━l06用git这个利器可以帮你管理源[696.6M]┃┃┗━━Leio-06-Git.m4[696.6M]┃┣━━l07lua语言[619.2M]┃┃┗━━Leio-07-Lua语言.m4[619.2M]┃┣━━l08gtet单元测试[682.1M]┃┃┗━━Leio-08-gtet单元测试.m4[682.1M]┃┣━━l09项目编译[614.9M]┃┃┗━━Leio-09-项目编译.m4[614.9M]┃┣━━l10调试技巧[720.6M]┃┃┗━━Leio-10-调试技巧.m4[720.6M]┃┣━━l11项目配置文件[436.1M]┃┃┗━━Leio-11-项目配置文件.m4[436.1M]┃┣━━l12项目日志[621.7M]┃┃┗━━Leio-12-项目日志.m4[621.7M]┃┣━━l13过程教程[429.4M]┃┃┗━━Leio-13-进程的概念.m4[429.4M]┃┣━━l14进程间通信[531.6M]┃┃┗━━Leio-14-进程间通信.m4[531.6M]┃┣━━l15网络协议[561.7M]┃┃┗━━Leio-15-网络协议.m4[561.7M]┃┣━━l16ocket第一讲[554M]┃┃┣━━Leio-16-ocket编程第一讲:TCP通信.m4[550.5M]┃┃┣━━rfc793.df[152.9K]┃┃┗━━ocket.rar[3.4M]┃┣━━l17ocket第二讲[359.8M]┃┃┣━━资料[6.5M]┃┃┃┣━━ud-iece.zi[65.7K]┃┃┃┣━━UDP分片原理分析及实现方法-20180706(1).tx[6.4M]┃┃┃┣━━udcliet_v1.c[1.2K]┃┃┃┗━━uderver_v1.c[1.5K]┃┃┗━━Leio-17-ocket编程第二讲:UDP通信.m4[353.3M]┃┣━━l18长连接和短连接[408.7M]┃┃┗━━Leio-18-TCP长连接和短连接.m4[408.7M]┃┣━━l19滑动窗户[554M]┃┃┗━━Leio-19-TCP流量控制.m4[554M]┃┣━━l20项目应用层协议设计[593.8M]┃┃┗━━Leio-20-htt协议介绍.m4[593.8M]┃┣━━l21应用层协议设计[471.8M]┃┃┗━━Leio-21-Brk介绍通信协议.m4[471.8M]┃┣━━l22rotouffer...

    2022-04-03 两个进程间通信 进程间通信线程间通信

  • 2020Web安全微专业—正式篇渗透/黑客/linux/网络安全/攻防/漏洞/kali(4、5、8期)价值6498元,百度网盘,阿里云盘下载

    这套课程来自控制安全学院We安全微专业-正式渗透/黑客/liux/网络安全/攻防/漏洞/kali,官网售价6498元,从0基础到深入一一讲解。没有基础的学生可以快速学习,逐渐掌握技能,照顾0基础学生或老学生。近年来,我发现越来越多的人在讨论信息安全。即使在做项目的时候,程序员也主动退出项目组,因为信息安全保护不够好。因此,我越来越认为信息安全真的很重要!目前从事售前技术支持,可以联系很多厂商,认识很多朋友,包括信息安全厂商。通过与他们的沟通,我了解到信息安全从业者非常稀缺,尤其是渗透测试工程师。我对信息安全有很强的兴趣,所以这个kali非常适合。本课程包括4期、5期和8期正式课程。18.3G文章底部的课程表和下载地址适用人群:1网工运维转岗2大学生就业3编程从业者4在职提升5黑客爱好者6寻求新方向课程目录:We安全微专业-正式渗透/黑客/liux/网络安全/攻防/漏洞/kali[18.3G]┣━━正式课第四课[3.7G]┃┣━━1开学典礼(1).m4[51.6M]┃┣━━2We服务器通信原理(1).m4[97.7M]┃┣━━3快速自建we安全试验环境(1).m4[86.8M]┃┣━━4前端基础HTML-写一个网页.m4[10.8M]┃┣━━5前端基础HTML—从QQ空间看HTML架构.m4[25.9M]┃┣━━6前端基础Divc-简介.m4[20.5M]┃┣━━7前端基础Divc-进阶.m4[20.6M]┃┣━━8后端基础SQL—数据库简介及SQL语法.m4[76.8M]┃┣━━9后端基础SQL—高级查询和子查询.m4[67.7M]┃┣━━10后端基础PHP—表格验证(1).m4[116.4M]┃┣━━11正则表达式.m4[103.1M]┃┣━━12-渗透测试的灵魂(1).m4[187.7M]┃┣━━13信息收集(1)(1).m4[108.4M]┃┣━━14网络架构-信息收集.m4[65.8M]┃┣━━15前端-信息收集.m4[76.7M]┃┣━━16系统-信息收集.m4[57.4M]┃┣━━17SQL注入原理分析(1).m4[140.9M]┃┣━━18HEAD注入(1).m4[113.5M]┃┣━━19盲注(1).m4[93.3M]┃┣━━20-XSS)(1).m4[95.5M]┃┣━━21存储型XSS(1).m4[98.9M]┃┣━━22DomBaedXSS(1).m4[95.4M]┃┣━━23CSRF(1).m4[102.7M]┃┣━━24文件上传漏洞-分析、验证、伪造(1).m4[162.7M]┃┣━━25文件上传漏洞-分析、验证、伪造(2)(1).m4[165.6M]┃┣━━26文件上传漏洞-分析、验证、伪造(3)(1).m4[114.1M]┃┣━━27XXE-实体注入(1).m4[147.1M]┃┣━━28SSRF-请求伪造服务器端(1).m4[77.4M]┃┣━━29变量覆盖漏洞(1).m4[133.3M]┃┣━━30本地包含与远程包含(1).m4[177M]┃┣━━31uerialize反序列化漏洞(1).m4[113.6M]┃┣━━32绕过验证码,找回密码漏洞(1).m4[152M]┃┣━━33平行越权、垂直越权(1).m4[136M]┃┣━━34支付漏洞(1).m4[92.3M]┃┣━━35Sql注入—0day审计案例(1)(1).m4[55.2M]┃┣━━36Sql注入—0day审计案例(2)(1).m4[186.4M]┃┗━━37就业指导-岗位、简历、内推(1).m4[161M]┣━━正式课第5[5.3G]┃┣━━1开学典礼(1).m4[175.8M]┃┣━━2We服务器通信原理(1).m4[106.9M]┃┣━━3快速自建we安全试验环境(1).m4[107.7M]┃┣━━4前端基础HTML-写一个网页.m4[10.8M]┃┣━━5前端基础HTML—从QQ空间看HTML架构.m4[25.9M]┃┣━━6前端基础Divc-简介.m4[20.5M]┃┣━━7前端基础Divc-进阶.m4[20.6M]┃┣━━8后端基础SQL—数据库简介及SQL语法.m4[76.8M]┃┣━━9后端基础SQL—高级查询和子查询.m4[67.7M]┃┣━━10后端基础PHP—简介及基本函数-上.m4[64.3M]┃┣━━11后端基础PHP—简介及基本函数-下.m4[83.6M]┃┣━━12后端基础PHP—表格验证(1).m4[124.4M]┃┣━━13正则表达式.m4[103.1M]┃┣━━14信息搜集的意义—渗透测试的灵魂(1).m4[100.3M]┃┣━━15信息收集(1)(1).m4[175.3M]┃┣━━16网络架构-信息收集.m4[65.8M]┃┣━━17前端-信息收集.m4[76.7M]┃┣━━18系统-信息收集.m4[57.4M]┃┣━━19SQL注入原理分析(1).m4[117M]┃┣━━20解释渗透试验常用工具(1).m4[171.8M]┃┣━━21HEAD注入(1).m4[126.1M]┃┣━━22盲注(1).m4[134.7M]┃┣━━23注入宽字节(1).m4[109.7M]┃┣━━24Acce注入—Cookie注入(1).m4[128.9M]┃┣━━25Acce-偏移注入(1).m4[87.2M]┃┣━━26MySQL注入—D注入(1).m4[100.2M]┃┣━━27MSSQL注入-反弹注入(1).m4[128.3M]┃┣━━28Oracle注入-报错注入(1).m4[96.2M]┃┣━━29XSS原理分析与解剖(1).m4[164.9M]┃┣━━30存储型XSS(1).m4[124.4M]┃┣━━31DomBaedXSS(1).m4[119M]┃┣━━32跨站请求伪造-CSRF(1).m4[149.1M]┃┣━━33文件上传漏洞-分析、验证、伪造(1).m4[185.4M]┃┣━━34文件上传漏洞-分析、验证、伪造(2)(1).m4[194.6M]┃┣━━35文件上传漏洞-分析、验证、伪造(3)(1).m4[96.7M]┃┣━━36绕过验证码,找回密码漏洞(1).m4[128.2M]┃┣━━37平行越权,垂直越权(1).m4[141.4M]┃┣━━38支付漏洞(1).m4[119.3M]┃┣━━39XXE-实体注入(1).m4[165.6M]┃┣━━40SSRF-请求伪造服务器端(1).m4[155.3M]┃┣━━41变量覆盖漏洞(1).m4[204.3M]┃┣━━42本地包含和远程包含(1).m4[171.7M]┃┣━━43uerialize反序列化漏洞(1).m4[152.7M]┃┣━━46就业指导-岗位、简历、内推(1).m4[175.6M]┃┣━━440day审计实战案例(1)(1).m4[168.9M]┃┗━━450day审计实战案例(2)(1).m4[188.8M]┗━━正式课第8[9.2G]┣━━1虚拟机安装.m4[55.7M]┣━━2开学典礼(1).m4[171.1M]┣━━3We服务器通信原理(1).m4[198.3M]┣━━4快速自建we安全试验环境(1).m4[103.1M]┣━━5前端基础.m4[96.8M]┣━━6后端基础SQL—数据库简介及SQL语法.m4[125.5M]┣━━7后端基础SQL—高级查询与子查询.m4[100.9M]┣━━8后端基础PHP—简介及基本函数-上.m4[153.7M]┣━━9后端基础PHP—简介及基本函数-下.m4[154.8M]┣━━10后端基础PHP—表格验证(1).m4[128.8M]┣━━11正则表达式(1).m4[113.1M]┣━━12-渗透测试的灵魂(1).m4[174.5M]┣━━13信息收集(1)(1).m4[258.1M]┣━━14网络架构-信息收集.m4[65.8M]┣━━15前端-信息收集.m4[76.7M]┣━━16系统-信息收集.m4[57.4M]┣━━17SQL注入原理分析(1).m4[174.2M]┣━━18解释渗透试验常用工具(1).m4[164.4M]┣━━19HEAD注入(1).m4[195.4M]┣━━20盲注(1).m4[134.1M]┣━━21注入宽字节(1).m4[121.6M]┣━━22Acce注入—Cookie注入(1).m4[132.8M]┣━━23Acce-偏移注入(1).m4[118.3M]┣━━24MySQL注入—D注入(1).m4[114.9M]┣━━25MSSQL注入-反弹注入(1).m4[121.1M]┣━━26Oracle注入-报错注入(1).m4[117.2M]┣━━27XSS原理分析与解剖(1).m4[192.8M]┣━━28存储型XSS(1).m4[119.7M]┣━━29DomBaedXSS(1).m4[184.1M]┣━━30跨站请求伪造-CSRF(1).m4[188.3M]┣━━31文件上传漏洞-分析、验证、伪造(1).m4[213.9M]┣━━32文件上传漏洞-分析、验证、伪造(2)(1).m4[194.9M]┣━━33文件上传漏洞-分析、验证、伪造(3)(1).m4[190.4M]┣━━34绕过验证码,找回密码漏洞(1).m4[226.2M]┣━━35越权-通过修改参数获得管理员权限.m4[142.1M]┣━━36SSRF-请求伪造服务器端(1).m4[151.5M]┣━━37支付漏洞.m4[155.1M]┣━━38XXE-实体注入(1).m4[187.1M]┣━━39变量覆盖漏洞(1).m4[242.9M]┣━━40uerialize反序列化漏洞(1).m4[263.6M]┣━━41本地包含和远程包含.m4[137.2M]┣━━42内网渗透-在内网旅游中发现更多漏洞(上)(1).m4[280M]┣━━43内网渗透-在内网旅游中发现更多漏洞(下)(1).m4[179.7M]┣━━44移动端渗透试验-A渗透试验[上](1).m4[234.2M]┣━━45移动端渗透试验-A渗透试验[下](1).m4[213.4M]┣━━46福利附送课-绕过阻挡我们的Waf(上).m4[189.6M]┣━━47福利附送课-实战代码审计(下).m4[230.5M]┣━━48福利附送课-利用MSF拿下服务器.m4[163M]┣━━49就业指导-岗位、简历、内推(1).m4[309.2M]┗━━基础福利课.zi[1.4G]相关下载点击下载...

    2022-04-04 上传漏洞和解析漏洞 常见上传漏洞

  • 2020马哥Linux云计算架构高薪班/名师亲授/协议班价值15800元(不完整版),百度网盘,阿里云盘下载

    本课程来自马哥教育:2020年马哥教育Liux云计算架构高薪班/名师亲授/协议班价值15800元,由马哥教育教学总监南山先生讲授。课程讲得很好,配套实验手册和笔记物有所值。课程体系大纲介绍:liux基础、服务和安全Liux集群、We站点架构及组件、运维工具、分布式存储系统、存储服务、虚拟化及容器技术、云计算掌握(3大运维基础夯实)解决学生入]难点,确保学生100%入门按照企业环境标准要求实现:Liux掌握系统安装、管理和使用Shell脚本、网络、安全攻防、企业级服务应用。课程更新到11章暂时不完整,不需要问客服是否完整。如果后期有完整的,会补上。!适合人群:大学生毕业就业寻求转岗技术liux提升充电职场升值加薪自我实现创业2020马哥Liux云计算架构高薪班/名师亲教/协议班视频截图课程目录:马哥教育2020Liux云计算运维工程师课程[19.2G]┣━━Liux2020课程视频[19.2G]┃┣━━01-马哥教育-年薪30万Liux云计算课程-云计算课程概览和计算机基础知识[2.3G]┃┃┣━━1计算机基础知识.avi[701.7M]┃┃┣━━2由计算机服务器硬件组成的.avi[675.6M]┃┃┣━━3操作系统基础知识.avi[380.4M]┃┃┗━━4Liux操作系统的起源和哲学思想.avi[608.3M]┃┣━━02-马哥教育-年薪30万Liux云计算课程-Liux安装和操作系统Liux基础命令[1.6G]┃┃┣━━2CetOS8及Uutu安装各种操作系统版本等.avi[394.8M]┃┃┣━━3Liux登录和基本操作.avi[529.7M]┃┃┣━━4Liux命令执行过程和命令类型.avi[305.3M]┃┃┗━━5Liux常见命令.avi[384.9M]┃┣━━03-马哥教育-年薪30万Liux云计算课程-Liux命令帮助和文件管理命令[1.6G]┃┃┣━━1命令历史和帮助.avi[405.2M]┃┃┣━━2帮助命令的用法.avi[416.9M]┃┃┣━━3文件系统目录结构和基本文件操作命令.avi[504.6M]┃┃┗━━4复制和移动文件等基本操作.avi[263.2M]┃┣━━04-马哥教育-年薪30万Liux云计算课程-Liux重定向管道技术和用户管理命令[1.6G]┃┃┣━━1详细说明硬链接和软链接.avi[332.5M]┃┃┣━━2标准输出和错误重定向.avi[337.5M]┃┃┣━━3重定向和管道.avi[385.2M]┃┃┣━━4用户及组管理及相关配置文件.avi[291.1M]┃┃┗━━5用户和组的管理命令.avi[281.4M]┃┣━━05-马哥教育-年薪30万Liux云计算课程-文件权限管理和文本编辑工具vim[1.7G]┃┃┣━━1用户和组相关命令.avi[364.7M]┃┃┣━━2文件权限管理和默认权限管理.avi[347.1M]┃┃┣━━3文件的特殊权限和FACL.avi[327.7M]┃┃┣━━4文本编辑工具VIM.avi[338.5M]┃┃┗━━5文本编辑工具VIM.avi[323.3M]┃┣━━06-马哥教育-年薪30万Liux云计算课程-文本处理命令和文本搜索工具gre[1.4G]┃┃┣━━1文本处理工具.avi[430.6M]┃┃┣━━2文本处理工具.avi[338.6M]┃┃┣━━3正则表达式详解.avi[353.9M]┃┃┗━━4扩展正则表达式和gre.avi[309.8M]┃┣━━07-马哥教育-年薪30万Liux云计算课程-hell脚本编程基础介绍[1.7G]┃┃┣━━1hell脚本编程基基本变量.avi[420.1M]┃┃┣━━2hell脚本编程基本算术和逻辑操作.avi[309M]┃┃┣━━3hell脚本编程基础的特殊变量.avi[343.8M]┃┃┣━━4hell脚本编程基本条件测试.avi[394.8M]┃┃┗━━5hell配置环境文件.avi[281.9M]┃┣━━08-马哥教育-年薪30万Liux云计算课程-文件包装压缩命令和文本处理命令ed[2G]┃┃┣━━1脚本编程条件分支判断if和cae.avi[371.7M]┃┃┣━━2文件的查找locate和fid.avi[419.1M]┃┃┣━━3xarg文件压缩和包装工具.avi[637.8M]┃┃┣━━4三剑客之一的文本处理ed基本用法.avi[331.6M]┃┃┗━━5三剑客之一的文本处理ed生产实战技能.avi[237.4M]┃┣━━09-马哥教育-年薪30万Liux云计算课程-Liux软件包管理命令和私人软件包仓库管理[1.7G]┃┃┣━━2软件运行环境及编译过程.avi[264.3M]┃┃┣━━3软件包的相关概念和组成.avi[382.9M]┃┃┣━━4rm常用的包管理器.avi[352.8M]┃┃┣━━5实现yum仓库配置.avi[460.4M]┃┃┗━━6实现内部私有yum源.avi[260.9M]┃┣━━10-马哥教育-年薪30万Liux云计算课程-源码编译安装软件与磁盘分区管理命令[2.5G]┃┃┣━━1C详细说明源代码编译安装过程.avi[416.7M]┃┃┣━━2httd编译安装,脚本自动编译安装.avi[511.6M]┃┃┣━━3一键安装脚本httd和uutu软件包管理.avi[458.1M]┃┃┣━━4磁盘结构及分区模式MBR和GPT.avi[929.7M]┃┃┗━━5分区管理相关工具.avi[239.6M]┃┗━━11-马哥教育-年薪30万Liux云计算课程-文件系统挂载管理及RAID以及逻辑卷管理[1.2G]┃┣━━1管理和挂载文件系统.avi[525.9M]┃┣━━2持久挂载和wa管理.avi[250.2M]┃┣━━3各种RAID逻辑卷的工作原理.avi[234M]┃┗━━4逻辑卷管理和快照.avi[250.5M]┣━━Liux2020资料云盘[27.9K]┃┗━━03资料[27.9K]┃┣━━log[8.8K]┃┃┗━━.log[8.8K]┃┣━━crit39[10.8K]┃┃┗━━hello【.com】[10.8K]┃┗━━crit[8.3K]┃┣━━ccmd-1.4.h[2.8K]┃┗━━haoi_tower_1.1.h[5.5K]┗━━马哥教育2020Liux云计算运维工程师课程大纲(原版).df[12.3M]相关下载点击下载...

    2022-04-03 云计算技术架构 云计算系统架构

  • web安全工程师高薪正式班/渗透/白帽/linux/网络安全/ctf/零基础价值6698元(完结),百度网盘,阿里云盘下载

    课程来自掌控安全学院出品由聂风、MSS魔术手等团队打造的:we安全工程师高薪正式班/渗透/白帽/liux/网络安全/ctf/零基础官网售价6698元。课程包括7、8、9、11期更新完结,课程的基础原理是不做脚本小子,明白渗透测试原理,把从各大论坛贴把搜集视频教程的资料搜集员转变成拥有复现学习能力的安全学习者!拥有可持续化的自学学习能力!福利课程,掌握绕过waf的原理,学会内网渗透和a渗透。逻辑漏洞:从业务逻辑中挖掘漏洞,学会代码审计技能成为专业的渗透测试人员,理论+实战+SRC,让你离就业更进一步!2021年8月8日更新至12期完结,课程包括视频和课件资料。专注培养高薪高水平安全人才适用人群:1、网工运维转岗2、大学生就业3、编程从业者4、白帽爱好者5、大学生就业6、在职提升7、寻求新方向WEB安全相关课程:We安全微专业mdah正式篇渗透/黑客/liux/网络安全/攻防/漏洞/kali课程包括7、8、9、11期更新完整完结,课程目录和下载链接在文章底部we安全工程师高薪正式班/渗透/白帽/liux/网络安全/ctf/零基础视频截图课程目录:we安全工程师高薪正式班渗透白帽liux网络安全ctf零基础12期1虚拟机安装.m42开学典礼(1).m43We服务器通信原理(1).m44快速自建we安全测试环境(1).m45前端基础.m46后端基础SQLmdah数据库简介及SQL语法.m47后端基础SQLmdah高级查询与子查询.m48后端基础PHPmdah简介及基本函数-上.m49后端基础PHPmdah简介及基本函数-下.m410后端基础PHPmdah表单验证(1).m411正则表达式(1).m412信息搜集的意义mdah渗透测试的灵魂(1).m413信息搜集(一)(1).m414网络架构-信息收集.m415前端-信息收集.m416系统-信息收集.m417SQL注入的原理分析(1).m418渗透测试常用工具讲解(1).m419HEAD注入(1).m420盲注(1).m421宽字节注入(1).m422Acce注入mdahCookie注入.m423Acce注入mdah偏移注入.m424MySQL注入mdahD注入(1).m425MSSQL注入mdah反弹注入(1).m426Oracle注入mdah报错注入(1).m427XSS的原理分析与解剖(1).m428存储型XSS(1).m429DomBaedXSS(1).m430无画面-跨站请求伪造-CSRF(1).m431重制版跨站请求伪造-CSRF(1).m432文件上传漏洞解析、验证、伪造(一)(1).m433文件上传漏洞解析、验证、伪造(二)(1).m434文件上传漏洞解析、验证、伪造(三)(1).m435验证码绕过、密码找回漏洞(1).m435验证码绕过、密码找回漏洞(1).m436越权-普通用户居然也能登陆后台(1).m436越权-普通用户居然也能登陆后台(1).m437支付漏洞.m437支付漏洞1.cwlev38SSRF-服务器端请求伪造(1).m439XXE-实体注入(1).m440代码执行漏洞(1).m441本地包含与远程包含(1).m442变量覆盖漏洞(1).m443uerialize反序列化漏洞(1).m444命令执行漏洞(1).m444命令执行漏洞(1)1.cwlev45工具课-内网渗透-遨游内网找到漏洞(上)(1).m446工具课-内网渗透-遨游内网找到漏洞(下)(1).m447工具课-移动端渗透测试-A渗透测试(1).m448福利附送课-绕过阻挡我们的Waf(上).m449福利附送课-绕过阻挡我们的Waf(下).m450福利附送课-实战代码审计(上).m451福利附送课-实战代码审计(下).m452就业指导mdah岗位、简历、内推(1).m4课件.ziwe安全工程师高薪正式班渗透白帽liux网络安全ctf零基础11期10正则表达式(1).m411信息搜集的意义mdah渗透测试的灵魂(1).m412信息搜集(一)(1).m413网络架构-信息收集.m414前端-信息收集.m415系统-信息收集.m416Acce注入mdahCookie注入.m417Acce注入mdah偏移注入.m418MySQL注入mdahD注入(1).m419MSSQL注入mdah反弹注入(1).m41开学典礼(1).m420Oracle注入mdah报错注入(1).m421XSS的原理分析与解剖(1).m422存储型XSS(1).m423DomBaedXSS(1).m424跨站请求伪造-CSRF(1).m425文件上传漏洞mdah解析、验证、伪造(一).m426文件上传漏洞mdah解析、验证、伪造(二).m427文件上传漏洞mdah解析、验证、伪造(三).m428直播文件上传漏洞解析、验证、伪造(一)(1).m429直播文件上传漏洞解析、验证、伪造(二)(1).m42We服务器通信原理(1).m430直播文件上传漏洞解析、验证、伪造(三)(1).m431验证码绕过、密码找回漏洞(1).m432越权-普通用户居然也能登陆后台.m432越权-普通用户居然也能登陆后台~1.m433支付漏洞.m434SSRF-服务器端请求伪造(1).m435XXE-实体注入(1).m436代码执行漏洞(1).m437本地包含与远程包含(1).m438变量覆盖漏洞.m439uerialize反序列化漏洞(1).m43快速自建we安全测试环境(1).m440命令执行漏洞(1).m441工具课-内网渗透-遨游内网找到漏洞(上)(1).m442工具课-内网渗透-遨游内网找到漏洞(下)(1).m443工具课-内网渗透-遨游内网找到漏洞(下)(2).m444工具课-移动端渗透测试-A渗透测试(1).m445工具课-移动端渗透测试-A渗透测试(2).m446福利附送课-绕过阻挡我们的Waf(上).m447福利附送课-绕过阻挡我们的Waf(下).m448福利附送课-实战代码审计(上).m449福利附送课-实战代码审计(下).m44前端基础.m450就业指导mdah岗位、简历、内推(1).m45后端基础SQLmdah数据库简介及SQL语法.m46后端基础SQLmdah高级查询与子查询.m47后端基础PHPmdah简介及基本函数-上.m48后端基础PHPmdah简介及基本函数-下.m49后端基础PHPmdah表单验证(1).m4基础福利课.zi├we安全工程师高薪正式班渗透白帽liux网络安全ctf零基础7期10后端基础PHPmdah表单验证(1).m410后端基础PHPmdah表单验证(1)~1.m411正则表达式(1).m412信息搜集的意义mdah渗透测试的灵魂(1).m413信息搜集(一)(1).m414网络架构-信息收集.m415前端-信息收集.m416系统-信息收集.m417SQL注入的原理分析(1).m418渗透测试常用工具讲解(1).m419HEAD注入(1).m41开学典礼(1).m41虚拟机安装.m420盲注(1).m421宽字节注入(1).m422Acce注入mdahCookie注入(1).m423Acce注入mdah偏移注入(1).m424MySQL注入mdahD注入-试听版(1).t25MySQL注入mdahD注入-完整版(1).t26MSSQL注入mdah反弹注入(1).t27Oracle注入mdah报错注入(1).t28XSS的原理分析与解剖(1).t29存储型XSS(1).t2We服务器通信原理(1).m430DomBaedXSS(1).t31跨站请求伪造-CSRF(1).t32文件上传漏洞mdah解析、验证、伪造(一).t33文件上传漏洞mdah解析、验证、伪造(二).t34文件上传漏洞mdah解析、验证、伪造(三).t35验证码绕过、密码找回漏洞.t36越权-通过修改参数获取管理员权限.t37利用工具快速拿下服务器.t38SSRF-服务器端请求伪造(1).t39支付漏洞(1).t3快速自建we安全测试环境(1).m440XXE-实体注入(1).t41变量覆盖漏洞(1).t42本地包含与远程包含(1).t43uerialize反序列化漏洞(1).t440day审计实战案例(上)(1).t450day审计实战案例(下)(1).t460day审计实战案例(下)(2).t47Bya-绕过阻挡我们的Waf(上).t48Bya-绕过阻挡我们的Waf(下).t49就业指导mdah岗位、简历、内推(1).t4前端基础.m45后端基础SQLmdah数据库简介及SQL语法(1).m46特约课-杀毒软件原理与绕过(1).m47后端基础SQLmdah高级查询与子查询(1).m48后端基础PHPmdah简介及基本函数-上(1).m49后端基础PHPmdah简介及基本函数-下(1).m4├we安全工程师高薪正式班渗透白帽liux网络安全ctf零基础8期10正则表达式(1).m411信息搜集的意义mdah渗透测试的灵魂(1).m412信息搜集(一)(1).m413网络架构-信息收集.m414前端-信息收集.m415系统-信息收集.m416SQL注入的原理分析(1).m417渗透测试常用工具讲解(1).m418HEAD注入(1).m419盲注(1).m41开学典礼(1).m41虚拟机安装.m420宽字节注入(1).m421Acce注入mdahCookie注入(1).m422Acce注入mdah偏移注入(1).m423MySQL注入mdahD注入(1).m424MSSQL注入mdah反弹注入(1).m425Oracle注入mdah报错注入(1).m426XSS的原理分析与解剖(1).m427存储型XSS(1).m428DomBaedXSS(1).m429跨站请求伪造-CSRF(1).m42We服务器通信原理(1).m430跨站请求伪造-CSRF(2)-副本.m430跨站请求伪造-CSRF(2).m431文件上传漏洞mdah解析、验证、伪造(一)(1).m432文件上传漏洞mdah解析、验证、伪造(二)(1).m433文件上传漏洞mdah解析、验证、伪造(三)(1).m434验证码绕过、密码找回漏洞(1).m435越权-通过修改参数获取管理员权限.m436SSRF-服务器端请求伪造(1).m437支付漏洞.m438XXE-实体注入(1).m439变量覆盖漏洞(1).m43快速自建we安全测试环境(1).m440uerialize反序列化漏洞(1).m441本地包含与远程包含.m442内网渗透-遨游内网找到更多漏洞(上)(1).m443内网渗透-遨游内网找到更多漏洞(下)(1).m444移动端渗透测试-A渗透测试[上](1).m445移动端渗透测试-A渗透测试[下](1).m446福利附送课-绕过阻挡我们的Waf(上).m447福利附送课-绕过阻挡我们的Waf(上).m448福利附送课-实战代码审计(上).m449福利附送课-实战代码审计(下).m44前端基础.m450福利附送课-利用MSF拿下服务器.m451就业指导mdah岗位、简历、内推(1).m45后端基础SQLmdah数据库简介及SQL语法.m46后端基础SQLmdah高级查询与子查询.m47后端基础PHPmdah简介及基本函数-上.m48后端基础PHPmdah简介及基本函数-下.m49后端基础PHPmdah表单验证(1).m4├we安全工程师高薪正式班渗透白帽liux网络安全ctf零基础9期10正则表达式(1).m411信息搜集的意义mdah渗透测试的灵魂(1).m412信息搜集(一)(1).m413网络架构-信息收集.m414前端-信息收集.m415系统-信息收集.m416SQL注入的原理分析(1).m417渗透测试常用工具讲解(1).m418HEAD注入(1).m419盲注(1).m41开学典礼(1).m420宽字节注入(1).m421Acce注入mdahCookie注入(1).m422Acce注入mdah偏移注入(1).m423MySQL注入mdahD注入(1).m424MSSQL注入mdah反弹注入(1).m425Oracle注入mdah报错注入(1).m426XSS的原理分析与解剖(1).m427存储型XSS(1).m428DomBaedXSS(1).m429跨站请求伪造-CSRF(1).m42We服务器通信原理(1).m430文件上传漏洞mdah解析、验证、伪造(一)(1).m431文件上传漏洞mdah解析、验证、伪造(二)(1).m432文件上传漏洞mdah解析、验证、伪造(三)(1).m433验证码绕过、密码找回漏洞(1).m434越权-普通用户居然也能登陆后台(1).m435支付漏洞.m436SSRF-服务器端请求伪造(1).m437XXE-实体注入(1).m438变量覆盖漏洞(1).m439uerialize反序列化漏洞(1).m43快速自建we安全测试环境(1).m440本地包含与远程包含.m441工具课-内网渗透-遨游内网找到漏洞(上)(1).m442工具课-内网渗透-遨游内网找到漏洞(上)(2).m443工具课-内网渗透-遨游内网找到漏洞(中)(1).m444工具课-内网渗透-遨游内网找到漏洞(下)(1).m445工具课-移动端渗透测试-A渗透测试(1).m446福利附送课-绕过阻挡我们的Waf(上).m447福利附送课-绕过阻挡我们的Waf(上).m448福利附送课-实战代码审计(上).m449福利附送课-实战代码审计(下).m44前端基础.m450就业指导mdah岗位、简历、内推(1).m45后端基础SQLmdah数据库简介及SQL语法.m46后端基础SQLmdah高级查询与子查询.m47后端基础PHPmdah简介及基本函数-上.m48后端基础PHPmdah简介及基本函数-下.m49后端基础PHPmdah表单验证(1).m4基础福利课.zi...

    2023-03-03 你认为对上传漏洞的修补 哪一种方式比较彻底

  • 嵌入式Linux驱动模板精讲与项目实践(txt+pdf+epub+mobi电子书下载)|百度网盘下载

    作者:林锡龙出版社:电子工业出版社格式:AZW3,DOCX,EPUB,MOBI,PDF,TXT嵌入式Liux驱动模板精讲与项目实践试读:前言一、行业背景嵌入式Liux驱动开发涉及的知识点比较多,要求开发者掌握的技能也比较多,且内核知识点比较分散,对于初学者来说门槛比较高,而嵌入式Liux在各行各业中已被广泛应用,在物联网、通信行业、航空航天、消费电子、汽车电子等行业中急需掌握嵌入式Liux软件开发的研发人员。近年来,随着嵌入式应用越来越广泛,嵌入式Liux开发变得更加复杂,嵌入式Liux驱动开发已经成为嵌入式应用领域的一个重大课题。二、关于本书本书大部分内容基于专业培训机构特训的讲稿。在专业培训提倡的嵌入式Liux驱动的模板式教学中取得了很好的效果,在此之上结合一线研发经验对驱动开发进行战略性指导,其中很多关键点是作者花了很长时间实实在在整理出来的,旨在揭晓嵌入式Liux驱动中的各种机制,达到知其然且知其所以然的目的。本书各章内容说明如下。第1章为驱动总论,是驱动开发在高层次上的介绍。第2章介绍的内核编程及基础知识点是驱动开发的基础,对驱动开发涉及的Liux内核中的各个知识点进行介绍,旨在扫清对Liux内核阅读的障碍。第3章介绍驱动模块开发,涉及各种模块移植中常见的设备方法,其中各个模板可以直接应用到实际研发中。第4章结合Liux操作系统讲解互斥机制在各种情况下的使用,重点分析各种机制的使用注意事项。第5章重点介绍Liux中断的上下部机制及Liux提供的各种接口,强调中断程序设计的基本理念及设计手段。第6章介绍Liux驱动中字符设备驱动的高级设备方法。第7章在Liux子系统的层面上介绍各种高级设备驱动。第8章重点介绍如何使用虚拟文件系统,这些实用技巧是一线研发的经验总结。第9章对设备驱动模型各个元素进行讲解,并介绍如何一步步手动建立设备驱动模型模板。第10章手把手带领读者建立最基本的文件系统,并制作各种常见的文件系统,其中穿插介绍各种实用技巧及实际研发工具。第11章介绍一线研发人员使用的开发调试技巧,重点强调实用。第12章结合V字形开发模型在嵌入式Liux驱动开发中的具体实施进行总结。第13章介绍嵌入式Liux设备驱动编程规范。三、本书特色●一线研发实战经验积累,所有技巧及讲解使用的工具都可以直接应用到实际开发工作中。●采用模板的方式对分散的各种驱动知识点进行讲解,所有模板都可以直接引用。●对每个知识点都提供实际案例,从模块的原理介绍,到系统层次的分析,图文并茂,力求分析透彻。●提供了大量的驱动例程,这些例程可以快速应用在实际开发中,读者可以直接运行调试。●结合实际研发工作对开发过程中的思考进行总结,重在实用。四、作者介绍本书由林锡龙编著,编著者在写作过程中查阅了大量开源工具及互联网上的资料,对各种资料的作者不能一一列举,在此表示谢意。由于时间仓促,书中程序和图表较多,错误之处在所难免,请广大读者批评指正。作者电子邮箱:wlxl_1204@163.com。编著者第1章驱动总论1.1总论1.1.1驱动在内核中的比例在Liux内核中,驱动程序的代码量占有相当大的比重。图1.1是一幅Liux内核代码量的统计图(单位:行数),对应的内核版本是2.6.29。从图中可以很明显地看到,在Liux内核中驱动程序(driver)的代码超过了500万行,所占的比例最高。图1.1Liux内核代码量统计图1.1.2驱动开发需要具备的能力目前,Liux软件工程师大致可分为两个层次。(1)Liux应用软件工程师。Liux应用软件工程师主要利用C库函数和LiuxAPI进行应用软件的编写。(2)Liux固件工程师。Liux固件工程师主要进行Bootloader、Liux的移植及Liux设备驱动程序的设计。一般而言,对固件工程师的要求要高于应用软件工程师,而其中的Liux设备驱动编程又是Liux程序设计中比较复杂的部分,究其原因,主要包括如下几个方面。(1)设备驱动属于Liux内核的部分,编写Liux设备驱动需要有一定的Liux操作系统内核基础。(2)编写Liux设备驱动需要对硬件原理有相当的了解,大多数情况下是针对一个特定的嵌入式硬件平台编写驱动的。(3)Liux设备驱动中广泛涉及多进程并发的同步、互斥等控制,容易出现ug。(4)由于Liux设备驱动属于内核的一部分,所以它的调试也相当复杂。Liux设备驱动的开发要求比较高,要求开发人员掌握一定的硬件知识、Liux内核技能、操作系统并发概念和较高的软件编程驾驭能力,Liux设备驱动程序作为内核的一部分运行,像其他内核代码一样,如果出错将导致系统严重损伤。一个编写不当的驱动程序甚至会导致系统崩溃,导致文件系统破坏和数据丢失,所以对Liux设备驱动开发比对应用程序要求高得多。Liux驱动的编写涉及如下主题。(1)内核模块、驱动程序的结构。(2)驱动程序中的并发控制。(3)驱动程序中的中断处理。(4)驱动程序中的定时器。(5)驱动程序中的I/O与内存访问。(6)驱动程序与用户程序的通信。实际内容错综复杂,掌握起来也有难度,但从本质上来说,这些内容仅分为两类。(1)设备的访问。(2)对设备访问的控制。前者是目的,而为了达到访问的目的,又需要借助并发控制等辅助手段。1.1.3驱动开发重点关注的内容初看起来Liux设备驱动开发涉及的内容很多,而需要实现驱动的设备又千差万别,其实质主要包括以下几点内容。(1)对驱动进行分类,先归纳为是哪种类型的驱动,归类正确再利用内核提供的子系统进行开发,这时往往会发现很多通用的事情内核已经做了。一个优秀的驱动工程师应该最大限度地利用内核的资源,因为内核已经实现的毕竟稳定性强、可移植性高。(2)找到内核提供的子系统后,接下来就是要制作该子系统对该类设备提供的表征,也就是描述该类驱动的结构体,然后定义这个结构体,把必要的数据进行初始化,最后调用该内核子系统提供的接口函数提交给内核管理。这是大部分驱动程序开发的战略流程。(3)明确子系统已经做了什么,需要在自己驱动中实现哪些内容,通常的做法是找一个接近的驱动程序进行修改,而不是一行一行地对代码进行编写。到内核中找接近的驱动例程是一个又快又好的方法。这些例程基本上都提供接口如何使用、调用流程等,借鉴已有例子可以避免低级错误。(4)以上都是与内核接口有关的,驱动另一个涉及的就是芯片手册,这个与做其他嵌入式软件一致,故对从单片机软件开发或者其他操作系统软件开发转过来做Liux驱动开发的人员来说,这部分是一个强项。(5)驱动的另外一个内容就是协议,包括各种嵌入式总线协议,从简单的SPI到复杂的PCI或者USB等。协议的基本知识是需要掌握的,好在内核对各种常见协议都是以子系统的形式提供的,在子系统中做了大部分共性工作,所以大大降低了驱动开发的工作量。综上所述,学好驱动开发,一个重要的方面就是对内核的学习,熟悉内核的组织和思维方式。1.2驱动理论与思想Liux对驱动的管理有自身的一套方法并提供相应的机制,但其具体实现可以由开发者自己决定。这一点可能比较抽象,但真正接触到实践之后,你会发现相同的一个功能,如点灯驱动,有很多实现方式——简单字符方式、cdev方式、mic实现、设备驱动模型等,对于设备的管理实现也有多种方法,只要你喜欢你可以写出很多种方式的驱动。正因为存在这么多种形式的驱动,初学者最初会比较茫然,进而觉得复杂,再后来就会感觉很灵活,然后感觉很多事情Liux已经做好了,你要做的就是熟悉一下它所提供的机制,然后正确调用其所提供的接口实现功能。从2.4到2.6,Liux内核在可装载模块机制、设备模型、一些核心API等方面发生较大改变。特别是引入设备模型,设备模型是一个难点,将由后续专门章节介绍。本章作为驱动理论将在一个更高的角度来总结内核对各种驱动所提供的相似点。之所以先提及设备模型,个人觉得真正理解Liux的驱动应该以设备模型为主线,设备驱动模型的提出涉及驱动管理方式的变化,如从原来手动创建设备文件到自动创建设备文件这个变化Liux引入了Udev系统,再展开来说,从设备模型中引入各种子系统、总线等概念,对这些进一步深入可以发现Liux提供各种驱动的core,如I2C-core,iut-core,rtc-core,erial_core等,如果打开阅读内核代码,你会发现在内核代码driver下对每种设备都进行了分类,而且每个文件夹下基本都有一个core文件,这些core文件已经对相应类型的驱动进行通用属性和行为的封装。市场上很多Liux驱动的书籍基本上都会对每种驱动以一个章节进行描述。在某种程度上讲,随着内核的发展,在驱动上尽量将各种类型的设备进行抽象,由内核里底层的代码,如总线驱动或此类设备共用的核心模块来实现共性的工作,从而简化设备驱动开发。设备模型的引入既在驱动设备管理上进行了分类又在文件系统上进行了统一。“一切皆文件”是Liux的设计思想,可以在Liux下的y虚拟文件系统中看到cla文件夹下有各种类型设备的相应文件夹。系统对设备的管理系统Udev也是按照cla下的文件进行设备文件创建的。当然这也只是众多主线之一,还有总线、设备、驱动等概念,提出这些概念及响应机制的目的是为了简化设备驱动的开发、管理与维护。Liux博大精深,且不断发展,新的特性不断涌现,知识点众多,为开发者和用户不断提供新的模块,我们必须抓住主线,逐个深入,长期积累。现在不少嵌入式驱动开发者在项目中只采用基本的属性行为,很少或者基本用不上高级特性功能,采用IOCTL方式进行用户与驱动之间的对话式交互,通过编制上下对应的IOCTL命令即可完成绝大部分工作。在对驱动开发应聘者的面试中可以发现,很多应聘者对设备模型理解不多或者不清楚,这对深入理解新内核驱动显然是不够的。1.2.1分类思想Liux对各种各样的设备进行分类,一般分为字符型设备、块设备和网络设备3种。但在内核中对于一个具体的设备还有细分,而且整个内核是按照不同细分种类的设备来提供支持的。在系统运行之后查看一下y/cla,图1.2所示为显示y/cla目录情况。图1.2y/cla目录并且可以看到各种类型的驱动。对于具体驱动来说,Liux内核还保留了一些固定的主设备号,在内核代码iclude\liux/Major.h中定义了一些默认的类型主设备号。比如:#defieMISC_MAJOR10/*混杂型设备*/#defieSCSI_CDROM_MAJOR11#defieMUX_MAJOR11#defieXT_DISK_MAJOR13#defieINPUT_MAJOR13/*输入型设备*/对于一个新的驱动来说,首先必须要确定一下要把它当哪类设备来处理,也就是归为哪类设备,然后再看内核在这类设备中提供的支持,最后调用这类设备的接口函数进行处理。当然,如果一个新驱动有接近类似的,那么还是在接近的驱动基础上进行修改。1.2.2分层思想对Liux的iut、RTC、MTD、I2C、SPI、TTY、USB等诸多设备驱动进行分析,可以看到大致都是按照分层次来设计的。市面上很多介绍Liux驱动的书籍在章节编排上一般先介绍该类型的硬件知识,再介绍协议和相关操作,然后再对实际例子进行分析。实际上,协议和相关操作是归纳在内核相对应的core或者类似core相关的文件中的。这样对于一个具体设备来说并不需要对该部分再进行一次编写。这就是分层思想带来的好处。Liux内核分层的框架设计用到了面向对象的设计思想。在设备驱动方面,往往为同类设备设计了一个框架,而框架中的核心层则实现了该设备通用的一些功能。如果具体设备不想使用核心层的函数则可以对其进行实现重载。图1.3所示为驱动核心层与实例之间的关系图。图1.3驱动核心层与实例之间的关系图1.iut子系统层次iut子系统整体系统框架如图1.4所示,整个系统是按一定层次进行划分和组织的。图1.4iut子系统整体系统框架图再回到内核相应的路径文件夹driver/iut下,图1.5所示为看到的输入子系统相关文件。图1.5Liux输入子系统相关文件这些文件分为事件层、核心层和处理层。每个文件夹对应的是一种类型的输入设备,会产生事件报告到核心层,核心层决定调用哪些处理层对事件进行分发,最后发送到用户空间相应的设备文件下。图1.6所示为iut子系统文件层次示意图。图1.6iut子系统文件层次示意图这是在Liux-2.6.24版本下的标准内核,当然如果有厂家需要自己添加相应的驱动即可以在事件层中添加底层操作的一个文件夹,然后在处理层中添加一个相应的文件并添加到iut系统中。2.RTC子系统层次接着移到driver/rtc目录下,该目录下的文件并没有像iut下那样组织,但是按照前面提过的Liux很多地方采用面向对象的方法抽象共同点,然后在实例化的指导下我们可以看出,下面这些rtc-×××.c带有型号的文件都是实例化的驱动。图1.7所示为Liux中RTC实例化文件。图1.7Liux中RTC实例化文件在RTC系统中使用的是latform总线,latform总线在后面设备模型中会重点介绍。这里只要理解为设备模型中“总线,驱动,设备”中的一种总线即可,而这些实例化的rtc-×××.c文件就是模型中的驱动,需要实现的是latform_driver结构,设备则放在相应体系结构中对应的目录下,如arch/arm/lat-3c24xx/下,需要实现的是latform_device。Liux已经提供latform总线,驱动是对应某个型号的芯片,基本上可以在driver/rtc目录下找到,那么驱动开发实际上就是完成系统中各个器件相应的设备描述即可,这就是驱动开发所要做的,而且熟悉之后工作量不是很大。至此,设备模型中的三个要素已经具备,只要驱动和设备注册成功且匹配,实际芯片就能正常工作。下面看一个采用Liux的RTC系统运行的例子,如图1.8所示。图1.8RTC系统运行实例这个cla中的rtc是在哪儿实现的呢?看一下driver/rtc下的cla.c文件:taticit__iitrtc_iit(void){rtc_cla=cla_create(THIS_MODULE,"rtc")…}这是RTC系统核心层附属的cla模块自动做的。也就是说,该子系统不但把RTC相关的共同操作提供了,而且还附带送上驱动模型这一套liux-2.6中的亮点特性。接下来回到本节主题,图1.9所示为RTC系统的层次结构图。图1.9RTC系统的层次结构图当系统运行起来之后,再看一下由rtc-roc.c所创建的roc虚拟文件系统文件:[root@FriedlyARMdriver]#wd/roc/driver[root@FriedlyARMdriver]#catrtcrtc_time:05:21:48rtc_date:2000-05-05alrm_time:00:00:00alrm_date:1970-01-01alarm_IRQ:oalrm_edig:o24hr:yeeriodic_IRQ:o还有由cla.c所创建的y虚拟文件系统文件:[root@FriedlyARMcla]#wd/y/cla[root@FriedlyARMcla]#ldiiutetci_geericvcfirmwareledci_hotvideo4liuxgrahicmemvru2oudvtcoolehwmomicrtcttyi2c-adatermmc_hotci_deviceuii2c-devmtdci_diku_device[root@FriedlyARMcla]#lrtcrtc0提示一下,该系统设备文件操作在RTC子系统核心rtc-dev.c文件中。taticcottructfile_oeratiortc_dev_fo={.ower=THIS_MODULE,.lleek=o_lleek,.read=rtc_dev_read,.oll=rtc_dev_oll,.ioctl=rtc_dev_ioctl,.oe=rtc_dev_oe,.releae=rtc_dev_releae,.fayc=rtc_dev_fayc,}3.MTD子系统层次相对而言,MTD会比较复杂,图1.10所示为Liux中MTD所处的层次。图1.10Liux中MTD所处的层次图1.11所示为MTD子系统框架图。图1.11MTD子系统框架图对于MTD子系统的优点,简单解释就是它实现了驱动设计者要去实现的很多功能。换句话说,有了MTD,使得你设计NadFlah的驱动所要做的事情要少很多很多,因为大部分工作都由MTD做好了。MTD比较复杂,在此只做简单介绍,后面有专门小节进行详细描述,这里可以按照前面介绍的方式对y/cla/mtd下的目录进行查看。[root@FriedlyARMcla]#lmtdmtd0mtd0romtd1mtd1romtd2mtd2ro[root@FriedlyARMcla]#catmtd/mtd0/ameBootloader[root@FriedlyARMcla]#catmtd/mtd0/ize4194304在Liux中,一个类别的设备驱动被归结为一个子系统,如PCI子系统、iut子系统、u子系统、ci子系统等。在内核文件结构中,driver目录下第一层中的每个目录都算一个子系统,每个目录都代表一类设备。每个子系统中都有一个uy_iitcall宏,例如:uy_iitcall(iit_ci)ci子系统uy_iitcall(iut_iit)iut子系统uy_iitcall(u_iit)u子系统uy_iitcall(mic_iit)mic子系统针对某个子系统内核使用uy_iitcall宏来指定初始化函数。使用uy_iitcall宏表示该部分代码比较核心,应该视为一个子系统,而不仅仅是一个内核模块。内核中将同类的驱动以子系统的方式进行管理,在子系统中抽象出共性部分,有些以core方式出现,如I2C-core,iut-core等,并对外提供主要接口函数,而对于驱动开发者来说就要最大限度地使用内核提供的子系统,对数据结构进行初始化并按照子系统提供的接口函数注册到相应的子系统中,简化驱动开发。关于子系统之间的消息传递,内核有自己的一套机制,称为内核通知链,内核通知链在后面章节介绍。1.2.3分离思想在内核大部分驱动中采用的是设备驱动模型,设备驱动模型中重要的三角关系就是总线、驱动和设备。其中,驱动和设备就是分离思想的体现,实现了驱动和资源的分离,如latform总线,在内核中支持了大部分驱动,抽象出来的就是设备的注册,往往需要做的接口就是Reource的传递。Reource是设备资源的体现,通过设备驱动模型传递到驱动中,采用设备和驱动都向总线注册的方式工作。这种分离思想所带来的好处就是驱动开发者真正要做的就是对资源的使用,将设备对应的资源注册到模型中,具体驱动的实现都是类似的。具体设备和相应驱动可以理解为成员和行为的关系,这两者的关系在设计上采用的就是分离思想。分离思想也为驱动设计带来很强的可移植性,同时也为驱动设计带来灵活性,另一方面也增加了系统的复杂度。在I2C驱动中采用适配器与从设备分离的设计方式是一个很好的说明。图1.12所示为I2C多控制器与多设备关系例图。图1.12I2C多控制器与多设备关系例图假如有3个CPU的I2C适配器A、B、C控制三个从设备a、、c,如果直接控制,则必须要实现9个读写函数,即A_ReadWrite_a()A_ReadWrite_()A_ReadWrite_c()B_ReadWrite_a()B_ReadWrite_()B_ReadWrite_c()C_ReadWrite_a()C_ReadWrite_()C_ReadWrite_c()可以看出,如果有N个适配器和M个从设备,那么将需要N×M个驱动,并且这N×M个驱动程序必然有很多重复代码,而且不利于驱动程序的移植。采用分离的思想是将适配器和从设备分离,通过总线驱动的方式进行管理,适配器和从设备分别注册到系统的I2C-core中。每个适配器和从设备都有相应的描述,分离之后只需要N+M个驱动描述,而且适配器和从设备之间几乎没有耦合性,增加一个适配器或者从设备并不会影响其余驱动。1.2.4总线思想总线是设备模型中核心三角关系之一,也是联系驱动和设备的纽带。采用总线管理方式作为处理器与设备之间的通道,将所有设备都通过总线相连。对于没有相应总线的设备可以归到“latform”虚拟总线上,如CPU上的片上外设。通过总线的管理,驱动和设备分别向某条总线注册,一旦两者匹配,设备就可以找到相应的驱动,这样对于多个设备来说,只要注册不同的设备device即可。总线的核心作用是:总线相关代码屏蔽了大量底层琐碎的技术细节,为驱动程序员提供了一组使用友好的接口,简化了驱动程序开发工作。关于总线,同样地利用y文件系统可以观察到系统已经存在的总线,图1.13所示为系统总线情况。图1.13系统总线情况这种思想的好处是可以在不同体系的CPU中进行快速移植,而且驱动与具体设备分开,另外一个最重要的好处就是对设备的管理。本章小结本章主要对驱动开发的情况在一定程度上进行描述,对Liux内核的一些思想进行总结,这些优秀的软件思想除了给我们学习使用内核、编写驱动提供很大帮助之外,很多优秀的设计思想也是软件开发中在总体设计上可以借鉴的。本章内容初学起来比较抽象,可以在后面章节学习之后再回过头来再学习一遍,或者在做了一段时间驱动之后再回过头来学习,对比编写过的驱动进行理解。第2章内核编程及基础知识点2.1内核线程内核线程就是内核的分身,一个分身可以处理一件特定事情。这在处理异步事件,如异步IO时特别有用。内核线程的使用是廉价的,唯一使用的资源就是内核栈和上下文切换时保存寄存器的空间。支持多线程的内核叫做多线程内核(Multi-ThreadKerel)。内核线程跟普通进程之间最大的区别就是只运行在内核态,不受用户态上下文的拖累。另外,内核线程没有独立的地址空间,mm(内存管理结构)指针被设置为NULL,它只在内核空间运行,从来不切换到用户空间中,并且和普通进程一样,可以被调度,也可以被抢占。内核线程与普通进程之间的比较如下。(1)内核线程只运行在内核态,而普通进程既可以运行在内核态(运行在内核态,如进行系统调用时进入内核态),也可以运行在用户态。(2)因为内核线程只运行在内核态,所以它们只使用大于PAGE_OFFSET的线性地址空间。另一方面,不管是在用户态还是在内核态,普通进程都可以用4GB的线性地址空间。(3)内核线程由系统内核负责创建、调度和管理。内核可以直接调度同一进程包含的所有线程,在多处理器系统中能使这些线程并发执行,同时克服了不同进程的线程之间的不公平。用户线程执行一个导致阻塞的系统调用时会导致整个进程阻塞,即使该进程的其他线程仍具备运行条件;另外,若操作系统是以进程为单位调度的,则分配给进程的时间片就由该进程的所有线程分享,在不同进程的线程之间会产生不公平现象。内核线程一旦启动起来会一直运行,除非该线程主动调用do_exit函数,或者其他进程调用kthread_to函数结束线程的运行。1.内核线程的编写1)所需头文件#iclude//wake_u_roce()#iclude//kthread_create()、kthread_ru()#iclude//IS_ERR()、PTR_ERR()2)模板句柄:tructtak_truct*kThread=NULL(1)线程函数(结合kerel_ru使用)taticitthreadFu(void*data){…while(!kthread_hould_to()){Doomethig()chedule_timeout(HZ)//让出CPU运行其他线程,并在指定的时间内重新被调度}资源释放retur0}(2)线程启动kerel_thread是主要的创建线程实现函数,为最原始函数,最终调用do_fork函数。kerel_thread需要使用deamoize释放资源并挂到iit下,还需要使用comlete等待这一过程的完成。模板:kerel_thread(fu,,CLONE_KERNEL)itfu(void*arg){wait_queue_twaitdeamoize("ked%",ame)iit_waitqueue_etry(amwait,curret)while(!atomic_read(am-gtkilled)){et_curret_tate(TASK_INTERRUPTIBLE)...chedule()}et_curret_tate(TASK_RUNNING)retur0}使用kthread_create不马上运行,需要wake_u_roce。使用kthread_ru函数实现线程的创建和启动,是kthread_create和wake_u_roce的组合。kThread=kthread_ru(threadFu,"helloworld",线程名称)kthread_ru函数是创建线程kthread_create()和激活线程wake_u_roce()的封装,内核提供比较简洁的接口kthread_ru,一步到位。(3)结束线程在模块卸载时,可以结束线程的运行。使用下面的函数:itkthread_to(tructtak_truct*k)模板:taticvoidtet_cleau_module(void){if(tet_tak){kthread_to(kThread)//发信号给tak,通知其可以退出了kThread=NULL}}module_exit(tet_cleau_module)在执行kthread_to时,目标线程必须没有退出,否则会oo。原因很容易理解,当目标线程退出时,其对应的tak结构也变得无效,kthread_to引用该无效tak结构就会出错。为了避免这种情况的发生,需要确保线程没有退出,其方法如代码中所示。thread_fuc(){while(!thread_could_to()){wait()}}exit_code(){kthread_to(_tak)//发信号给tak,通知其可以退出了}这种退出机制很温和,一切尽在thread_fuc()的掌控之中,线程在退出时可以从容地释放资源。3)注意事项(1)在调用kthread_to函数时,线程函数不能已经运行结束。否则,kthread_to函数会一直等待。(2)线程函数必须能让出CPU,以便能运行其他线程,同时线程函数也必须能重新被调度运行。在例子程序中,这是通过chedule_timeout()函数完成的。不能使用mdelay让出CPU,而应该使用chedule_timeout(),否则将导致系统无法响应。可以使用mlee_iterrutile让出CPU,在线程运行之后查看to可以看出,CPU的占用率很低,而使用chedule_timeout对CPU的占用率比较高。4)性能测试可以使用to命令来查看线程(包括内核线程)的CPU占用率。命令如下:to-线程号可以使用下面命令来查找线程号:aux|gre线程名注:线程名由kthread_create函数的第三个参数指定。2.内核线程例子创建内核线程,每隔1打印一次。#iclude#iclude#iclude#iclude#iclude#iclude#iclude#iclude#iclude#iclude#iclude#ifdefSLEEP_MILLI_SEC#defieSLEEP_MILLI_SEC(MilliSec)\do{\logtimeout=(MilliSec)*HZ/1000\while(timeoutgt0)\{\timeout=chedule_timeout(timeout)\延时不到,继续调度}\}while(0)#ediftatictructtak_truct*kThread=NULLtaticitkThreadFu(void*data){char*mydata=kmalloc(trle(data)+1,GFP_KERNEL)memet(mydata,'\0',trle(data)+1)trcy(mydata,data,trle(data))while(!kthread_hould_to()){SLEEP_MILLI_SEC(1000)ritk("%\",mydata)}kfree(mydata)retur0}taticit__iitiit_kthread(void){kThread=kthread_ru(kThreadFu,"lxlog","kThread")retur0}taticvoid__exitexit_kthread(void){if(kThread){ritk("tokThread\")kthread_to(kThread)}}module_iit(iit_kthread)module_exit(exit_kthread)MODULE_AUTHOR("lxlog")MODULE_LICENSE("GPL")2.2内核定时器内核定时器是基于软中断的基础实现的,其作用是在未来某个时间点到达时执行一个相应的动作,该相应的动作就是调用定时器绑定的函数。通常很多情况下需要定时执行一个动作,或者周期性地执行一个操作,如定时查询某个状态、定时打印、喂看门狗等,这在实际系统中应用很广泛。内核中维护定时器是通过一个定时器链表来实现的,一旦一个定时器被添加到系统中,即该定时器会被连接到定时器链表上,内核系统会不断查询该链表,检测在定时器链表上是否有时间到达的定时器,一旦发现定时器时间到达,即触发软中断去调用并执行该定时器绑定的函数。定时器在初始化时绑定的函数类似于定时器的中断服务程序。图2.1为内核定时器链表图。图2.1内核定时器链表图定时器包含文件:#iclude#iclude内核对象表征结构体:tructtimer_littimer初始化:iit_timer(amtimer)timer.data=time传给fuctio的参数timer.exire=jiffie+HZ1个jiffie大约为1m,1HZ为1timer.fuctio=timer_futioadd_timer(amtimer)将定时器添加到系统中绑定函数的实现:voidtimer_futio(uigedlogara){传入的参数uigedlogara为初始化时初始化的参数timer.data=time若需要重复周期性地执行该定时器,即调用mod_timer(amtimer,时间)}修改定时:mod_timer(amtimer,jiffie+(HZ*2))实际上是先杀死定时器,重新设置时间大小,再启动定时器定时器的删除:del_timer(amtimer);一般使用del_timer_yc()代替del_timer(),前者立即删除不执行,后者会继续执行到下一个到期定时器过期后会被系统自动删除,除非调用mod_timer函数重新启动定时器。del_timer(amtimer)在定时器没有过期的情况下才有意义。泛滥使用定时器会导致系统效率下降,因为定时器是基于中断实现的,并且在中断中定时器去操作硬件要考虑与进入定时器中断前的操作硬件之间的互斥问题。【案例分析】定时器使用不当。在驱动中使用定时器,加载驱动正常,运行正常。当卸载时出现:RmmodDrv系统崩溃出现以下错误:#[135.961105]Ualetohadlekerelagigrequetfordataataddre0xe30aade8[135.968588]Faultigitructioaddre:0xc0025d28[135.973548]Oo:Kerelacceofadarea,ig:11[#1]…[136.111687]Kerelaic-otycig:Fatalexcetioiiterrut分析加载驱动和卸载驱动过程:加载:dev_tdevodevo=MKDEV(DRV_MAJOR,0)reult=regiter_chrdev_regio(devo,1,"Drv")cdev_iit(amDrv_dev_P-gtDrv_c_dev,amDrv_o)reult=cdev_add(amDrv_dev_P-gtDrv_c_dev,devo,1)iit_timer(amDrv_dev_P-gttimer)Drv_dev_P-gttimer.fuctio=(void*)amdDogFuDrv_dev_P-gttimer.exire=jiffie+HZmod_timer(amDrv_dev_P-gttimer,jiffie+10)retur0卸载:cdev_del(amDrv_dev_P-gtDrv_c_dev)uregiter_chrdev(MKDEV(DRV_MAJOR,0),"DRV")卸载过程为加载过程的相反过程,在加载时申请的资源应该在卸载中释放。从以上过程来看,定时器在加载时初始化,但在卸载时没有注销,所以在rmmod该驱动时会出现系统崩溃。将卸载改为:del_timer(amDrv_dev_P-gttimer)cdev_del(amDrv_dev_P-gtm_c_dev)uregiter_chrdev(MKDEV(DRV_MAJOR,0),"DRV")编译之后加载,使用rmmod卸载成功。【小结】包含文件:#iclude#iclude对象:tructtimer_littimer初始化:iit_timer(amtimer)timer.data=time传给fuctio的参数timer.exire=jiffie+HZ1个jiffie大约为1m,1HZ为1timer.fuctio=timer_futio――gtvoidtimer_futio(uigedlogara)add_timer(amtimer)修改定时:mod_timer(amtimer,jiffie+(HZ*2))实际上是先杀死定时器,重新设置时间大小,再启动定时器定时器过期后会被系统自动删除。del_timer(amtimer)在定时器没有过期的情况下才有意义。按照毫秒或者微秒的量度:uigeditjiffie_to_mec(cotuigedlogj)uigeditjiffie_to_uec(cotuigedlogj)uigedlogmec_to_jiffie(cotuigeditm)uigedloguec_to_jiffie(cotuigeditu)2.3链表包含头文件:#iclude主要结构:tructlit_head{tructlit_head*ext,*rev}使用时将lit_head放在实际数据结构中,相当于lit_head承载一个数据结构。如:tructtudet{charame[100]itumtructlit_headlit}链表相关例子参考在所附光盘中。主要接口函数:tructlit_headtudet_lit初始化链表:INIT_LIST_HEAD(amtudet_lit)在链表尾部添加成员元素:lit_add(am(tudet[i].lit),amtudet_lit)扫描链表:tructlit_head*olit_for_each(o,amtudet_lit)到链表尾部才结束。取出链表元素:lit_etry(o,tructtudet,lit)Liux内核代码中已经提供了对链表的基本操作,在iclude/liux/lit.h中包含链表初始化、插入、删除、搬移、合并和遍历等操作,在驱动中需要时直接使用即可。2.4内存操作Liux2.6所有的内存分配函数包含在头文件中,而原来的不存在。老版本内存分配函数包含在头文件中。内核最下层申请函数为:get_free_age()lt----gtfree_age()常用内存分配函数如下。(1)__get_free_ageuigedlog__get_free_age(gf_tgf_mak,uigeditorder)__get_free_age函数是最原始的内存分配方式,直接从伙伴系统中获取原始页框,返回值为第一个页框的起始地址。__get_free_age在实现上只是封装了alloc_age函数。(2)kmem_cache_alloctructkmem_cache*kmem_cache_create(cotchar*ame,ize_tize,ize_talig,uigedlogflag,void(*ctor)(void*,tructkmem_cache*,uigedlog),void(*dtor)(void*,tructkmem_cache*,uigedlog))void*kmem_cache_alloc(tructkmem_cache*c,gf_tflag)kmem_cache_create/kmem_cache_alloc是基于la分配器的一种内存分配方式,适用于反复分配释放同一大小内存块的场合。首先用kmem_cache_create创建一个高速缓存区域,然后用kmem_cache_alloc从该高速缓存区域中获取新的内存块。kmem_cache_alloc一次能分配的最大内存由mm/la.c文件中的MAX_OBJ_ORDER宏定义,在默认的2.6.18内核版本中,该宏定义为5,于是一次最多能申请(1ltlt5)*4KB,也就是128KB的连续物理内存。分析内核源码发现,kmem_cache_create函数的ize参数大于128KB时会调用BUG()。(3)kmallocvoid*kmalloc(ize_tize,gf_tflag)kmalloc是内核中最常用的一种内存分配方式,它通过调用kmem_cache_alloc函数来实现。kmalloc一次最多能申请的内存大小由iclude/liux/kmalloc_ize.h的内容来决定,在默认的2.6.18内核版本中,kmalloc一次最多能申请的大小为131072B,也就是128KB的连续物理内存。测试结果表明,如果试图用kmalloc函数分配大于128KB的内存,编译则不能通过。(4)vmallocvoid*vmalloc(uigedlogize)前面几种内存分配方式都是物理连续的,能保证较短的平均访问时间。但是在某些场合,对内存区的请求不是很频繁,较长的内存访问时间也可以接受,这时就可以分配一段线性连续物理不连续的地址,所带来的好处是一次可以分配较大块的内存。vmalloc对一次能分配的内存大小没有明确限制。出于性能考虑,应谨慎使用vmalloc函数。(5)dma_alloc_coheretvoid*dma_alloc_coheret(tructdevice*dev,ize_tize,ma_addr_t*dma_hadle,gf_tgf)DMA是一种硬件机制,允许外围设备和主存之间直接传输I/O数据,而不需要CPU的参与,使用DMA机制能大幅提高与设备通信的吞吐量。在DMA操作中,涉及CPU高速缓存和对应的内存数据一致性问题,必须保证两者的数据一致,在x86_64体系结构中,硬件已经很好地解决了这个问题,dma_alloc_coheret和__get_free_age函数的实现差别不大,两者最终都调用_alloc_age函数来分配内存,它们所分配内存的大小限制一样,另外两者分配的内存都可以用于DMA操作。(6)ioremavoid*iorema(uigedlogoffet,uigedlogize)iorema是一种更直接的内存“分配”方式,使用时直接指定物理起始地址和需要分配内存的大小,然后将该段物理地址映射到内核地址空间。iorema用到的物理地址空间都是事先确定的,和上面的几种内存分配方式并不太一样,并不是分配一段新的物理内存。iorema多用于设备驱动,可以让CPU直接访问外部设备的I/O空间。iorema能映射的内存由原有的物理内存空间决定。(7)BootMemory如果要分配大量的连续物理内存,则上述分配函数都不能满足,只能用比较特殊的方式在Liux内核引导阶段来预留部分内存。在内核引导时分配内存:void*alloc_ootmem(uigedlogize)可以在Liux内核引导过程中绕过伙伴系统来分配大块内存。使用方法是在Liux内核引导时,调用mem_iit函数之前用alloc_ootmem函数申请指定大小的内存。如果需要在其他地方调用这块内存,可以将alloc_ootmem返回的内存首地址通过EXPORT_SYMBOL导出,然后就可以使用这块内存。这种内存分配方式的缺点是,申请内存的代码必须链接到内核中的代码里才能使用,因此必须重新编译内核,而且内存管理系统看不到这部分内存,需要用户自行管理。测试结果表明,重新编译内核后重启,能够访问引导时分配的内存块。通过内核引导参数预留顶部内存:在Liux内核引导时,传入参数“mem=ize”保留顶部的内存空间。比如,系统有256MB内存,参数“mem=248M”会预留顶部的8MB内存,进入系统后可以调用iorema(0xF800000,0x800000)来申请这段内存。几种分配函数的比较如表2.1所示。表2.1几种分配函数的比较最函数大分配原理其他名内存_get_f4M适用于分配较大量的连续物理内ree_直接对页框进行操作B存agekmem_cach128适合需要频繁申请释放相同大小基于la机制实现e_alloKB内存块时使用c基于kmallo128最常见的分配方式,需要小于页kmem_cache_alloc实cKB框大小的内存时可以使用现物理不连续,适合需要大内存,vmallo建立非连续物理内存但是对地址连续性没有要求的场c到虚拟地址的映射合dma_alloc_c基于__alloc_age实4M适用于DMA操作ohere现Btiorema实现已知物理地址到适用于物理地址已知的场合,如虚拟地址的映射设备驱动alloc_在启动kerel时,预小于物理内存大小,内存管理要ootm留一段内存,内核看求较高em不见2.5I/O端口几乎每种外设都通过读/写设备上的寄存器来访问,外设寄存器也称“I/O端口”,通常包括控制寄存器、状态寄存器和数据寄存器三大类,而一个外设寄存器通常被连续编址,描述的就是CPU对外设访问的方式取决于CPU对外设I/O端口编址的方式。ARM、M68K等只有一个物理空间,统一编址,外设I/O端口物理地址被映射到CPU单一物理地址空间,成为统一编址的一部分,即访问这种I/O地址无须专门外设的I/O指令。硬件上的差异对软件来说是完全透明的,可以将内存映射方式的I/O端口和外设内存统一看作I/O内存资源。X86等为外设专门实现一个独立空间,称为I/O地址空间,独立编址,与内存地址空间分开,并有专门的I/O指令(如X86的IN和OUT指令)访问。Liux在io.h头文件中声明了iorema(),用来将I/O内存资源的物理地址映射到核心虚拟地址空间(3~4GB)中。相应的取消映射函数为iouma()。2.6内核相关宏1.__iit位置:/iclude/liux/iit.h定义:#defie__iit__attriute__((__ectio__(".iit.text")))注释:这个标志符和函数声明放在一起,表示gcc编译器在编译时需要把这个函数放在.text.iitSectio中,而这个Sectio在内核完成初始化之后就会被释放掉。2.__iitdata位置:/iclude/liux/iit.h定义:#defie__iitdata__attriute__((__ectio__(".iit.data")))注释:这个标志符和变量声明放在一起,表示gcc编译器在编译时需要把这个变量放在.data.iitSectio中,而这个Sectio在内核完试读结束[说明:试读内容隐藏了图片]点击下载...

    2022-04-04 内核Linux 如何理解kabi 内核linux4.4.22

学习考试资源网-58edu © All Rights Reserved.  湘ICP备12013312号-3 
站点地图| 免责说明| 合作请联系| 友情链接:学习乐园