粉丝1.7万获赞8.9万

等了一年处,终于出 linux 版本了,这次带你深度体验安装一次,我们来看看。安装包还挺大的,有两百多 mb, 安装好有一个 g 的 空间占用。找到它,启动了,开始继续。先跳过 天天过,非常完美,可以用。为什么我推荐大家在 linux 上写代码呢?是因为它完全可以接近我们的生产环境,一比一,不需要做任何调试。而且它的硬件特别便宜, 我在这边可以很便宜的买到八核三十二 g 的 空间。

哈喽啊翠友们,用 ai 做应用,现在一句话就能生成代码,但一旦项目变复杂,需求开始迭代,你或许会发现结果可能会偏离预期。不过,我这次用翠 solo 从零搭建了一个 ai prompt 管理平台,就没有遇到这样的问题。 因为我起用了 step 模式,它会在进入开发前,先建立清晰结构化的规范文档,然后让 ai 基于这些规范去生成代码。是的,目前翠中国版和国际版的 solo 模式下, solo code 都已经支持 step 了。 back 呢,是一种文档驱动的任务执行方式,你可以把它理解为 ai 的 项目说明书。在 tree solo 里 add solo coder, 输入斜杠,选择 back 后,就会自动生成需求大纲 spec 点 md, 任务列表 tasks 点 md, 验收清单 checklist 点 md。 ai 呢,会先理解项目,整理规划,整理确认后再开始实现。这里我知道你可能会问了, aspec 和 plan 有 什么区别呢?我们之前已经在 solo coder 里支持的 plan 呢,适用于中小型功能开发和模块结重构,就先生成一份计划文档,然后去执行。而 spec 呢,则是面向更复杂的系统级任务, 他会先生成三阶段文档组,每个阶段都支持用户确认。你看,比如这里,我们发送指令后,搜搜 code, 很 快就生成了这三阶段文档组,每个文档都需要确认后,你点击执行才能进入开发。 然后 ai 呢,会根据他拆分的任务按顺序执行,并且会实时标记已经完成了的子任务。在任务全部完成后,还会去一一 check 验收清单,让整个开发过程都更可见可控。所以,如果你的项目设计从零到一,搭建新系统、新模块, 大规模重构、多人协助开发,高质量、高稳定性要求以及需要长期维护的,你都可以试一试。 stack 模式,它会帮助你在动手之前把需求讲清楚,拆明白、备齐确认,把复杂任务的风险前置,提高一次性成功率。

咱们都知道啊,在复杂的软件项目里, ai 既可以是个神队伍,也可能瞬间变成猪队伍,制造一堆混乱。我们当然都希望 ai 能帮我们写代码,但问题是怎么才能保证它不放飞自我呢? 今天咱们就来聊一个叫规范驱动开发的方法,看看它到底是怎么驯服我们这位既聪明又有点任性的 ai 编程伙伴的。 我相信啊,只要你是开发者,或多或少都经历过这种情况吧,你给 ai 一个任务,刚开始哇,他写的代码简直完美,但随着项目越来越复杂,他就开始跑偏了,甚至把自己最开始要干嘛都给忘了,真是让你又好气又好笑。 那问题到底出在哪呢?你看,就像这些资料里说的,当项目代码量一多,比如说超过各五百行大语言模型,那点可怜的记忆力就不够用了,他就很容易丢失上下文。 结果呢,他可能会写出前后矛盾的代码,或者完全无视你精心设计的整体架构,到头来我们还得花大把时间去给他收拾烂摊子。所以咱们得换个思路, 你可以把 ai 想象成一个特别有才华但记性巨差的实习生,你不能就跟他说,哎,给我做个这个,然后就指望他能搞定一个复杂的项目,那不现实。他真正需要的是一份清清楚楚明明白白的蓝图,或者说操作手册,好让他随时都能看看自己该干嘛该怎么干。 没错,我们刚才说的那份蓝图,就是咱们今天的主角,规范驱动开发,英文简称 s d d。 这个想法其实特别巧妙,它就相当于给 ai 提供了一个外部记忆,也就是这个规范,英文叫 spec。 有 了这个东西, ai 在 整个开发过程中就始终有个毛点,想跑偏都难。那么这个 s、 s、 d 到底是个啥?说白了,它就是一套开发方法, 它的核心就是先动手创建一份非常详细、结构化的文档。我们管它叫规范,这份规范就是项目里唯一的圣经,是绝对的真理来源,从头到尾 ai 都得听它的,这样就保证了它不会迷路。 好理论听起来很棒,那在实际操作中,这套流程到底是怎么跑的呢?其实很简单,它就是通过一个特别清晰的三阶段工作流,把你脑子里的一个模糊想法,一步一步地变成 ai 能够直接上手干活的具体任务。你看整个核心流程就这三步。 第一步,定语需求,也就是把我们到底要做什么这件事给说明白了。第二步,做设计,确定我们应该怎么做。这里面就包括了模块要怎么划分,接口要怎么定。 最后也是最关键的一步,就是把这个设计方案拆解成一个一个 ai 能看懂、能执行的具体任务。 但这里面有一条黄金法则,那就是人绝对不能缺席。你看,在每个阶段的交接点,都必须由咱们开发者的亲自审核和确认,从需求到设计,从设计到任务,每一步都得我们点头才算数。 这就像是设了三道质量安检门儿,确保项目从头到尾都在正确的轨道上。如果说 s、 d、 d 是 搭了个基础框架,那么 spac 范式就是它的终极进阶版, 它已经不只是一个流程了,它构建了一整套系统,目的就是为了系统性的减少开发过程中的那种升增,说白了就是减少混乱和不确定性。 spacky, 这里面有几个概念我觉得特别牛。首先是项目宪法,它搞了一个 constitution 点 m d 文件,里面写着项目绝对不能违反的铁律,比如所有 api 接口都必须有日制记录。 其次是质量门禁,通过检查清单,就像给需求做单元测试一样,确保 ai 没理解错。而且它还实现了从需求到代码的完全可追溯,并且通过渐近式批录,这种方式只在 ai 需要的时候给它看相关信息,避免了信息过载,效率大大提升。 咱们来这么一对比,差别就太明显了。传统方式就是你给 ai 一个模糊的指令,然后等它生成代码了,你再去手动检查。而 specklet 犯事呢,是先把模糊的需求给结构化,然后用自动化的工具来保证质量。 最关键的是什么?所有的项目知识、经验、教训都沉淀在了像 constitution 点 m d 这样的文档里,变成了可以附用的宝贵资产,而不是那些聊完就忘的聊天记录。 好了,说了这么多理论,那回到现实,用的这套结构化的方法到底能带来多大的变化呢?我跟你说,数据绝对会让你大吃一惊。 首先看这个最吓人的数字代码,反功率直接降低了百分之七十三,你想象一下这是什么概念?这意味着开发者可以把将近四分之三用来救火改 bug 的 时间,真正投入到有创造性的工作上去。 其次,整个项目的开发周期缩短了四十一盘儿线,在今天这个天下武功唯一快不破的市场环境下,这可能就意味着你的产品能比竞争对手早好几个月上线,这优势可太大了,对吧? 再来看这个 ai 对 需求的理解,准确率直接从原来勉强及格的六十八百分,一下子飙升到了接近完美的九十二百分,这就从跟上解决了那个垃圾进垃圾出的老大难问题,保证了项目从一开始方向就是对的。 所以啊,我们在这里看到的早就不是什么工具或者方法的升级了,这根本就是一种范式的转变, ai 的 角色已经从一个只会闷头写代码的代码生成器,进化成了一个能陪你跑通整个开发流程的全流程写作者。 那这背后的本质又是什么呢?其实它就是把我们开发者脑子里那些凭经验、凭直觉得来的隐性知识,给它转化成了 ai 能够理解、能够严格执行的一条条明确的显性规则。 最后呢,我想留给大家一个问题,可以好好琢磨一下,在这个 ai 写作的新时代,我们花心思去设计和管理 ai 的 工作流程这件事本身会不会比 ai 最后生成的那几行代码来得更加重要呢?好,今天就聊到这里。

说,我说杰哥,我二幺幺本二战失败,现在超了一个 o s 项目, e x 还没有学,能做驱动开发吗?从这一句话里面,我说对于你找工作这个问题,我说最起码你犯了有三个错误。第一个错误呢,现在超了一个 o s 的 项目, 这是第一个错误,超一个 o s, 我 说这种项目它是不具备任何实际价值的,就是它只能解决你学的问题。 我说你这个项目你抄完之后,你在简里面写出来,我实现了某某某 os 项目,我说你的面试官大概的情况是不会问的,因为它是没有任何实际价值的, 那也就是说你这个项目写在简里面唯一的作用就是占字数,哈哈,占用你的篇幅和字数,其实它的作用并不会太大,它没有解决具体问题。第二点, names 还没学。首先这个问题呢?在哪呢?大家各位? names 不是 学出来的,它是用出来的 list, 你 就直接装一个 web, 再加一个 web 图就开始用,就是你所有的代码都在 list 上面,你不管是 c、 c 加你的功能都在 list 上面,去开发,去实现,去用就可以了, 能理解吗?这是第二个问题,我是问 list 它是用,它不是学明白的,它是用,你多用,自然而然你就慢慢对它熟悉了。第三个问题,在哪?能做驱动开发吗?首先我是问对于你的情况,我说你现在缺的是工作, 不是缺的驱动开发。首先第一点,我说这个驱动开发,首先岗位它是非常非常少的。对于你二战失败,目前我说你缺的是一份工作, 你应该把路走宽,不是去纠结一个某一个很细小垂直的一个方向去将持这个驱动开发这四个字, 它是没有任何意义的。包括后面发展来说,也不是驱动开发,它就发展非常非常好,它也不叫开发,它叫遗址 驱动开发,他是以前是有一个模组的,是已经有一个设备的,然后有一套办法,然后现在要把它升级,然后再平移到这里,这大部分是以移植为主, 而这个工作我说他不是那么好找。做应届生朋友,二战失败,你应该把路走宽,不是去考虑我要去做驱动开发,或者我做其他的,做某某方向,这样会使得你的面试机会都会少的可怜,知道吗?现在我是为第一, 你做一个产品化的项目,在链子上面做一个产品化的项目,后面不要去挑风向,多头多面,多拿几个 offer, 再拿到 offer 中间再去选择。可不可以 不是在这里僵持这个所谓的举动开发,我认为这个问题提案中有三个做法,哈哈哈,希望对你这个后面的计划有帮助。好吧,离线三年加关注,去除你的问题。

好,我给大家看一下,如果说你想正常的至至少能让你 ai 不 再 乱动代码的话,你大概需要用多大的这个提示词、工作量啊,包括一些 a 键,这个是我压缩后的这个全部提示词和 skills, 包括一些其他 啊规则啊、技能记忆什么的,全部打包压缩是差不多有十六点八 mb, 然后的话这个是节后的,差不多有二十五点八 mb。 这个大小的话对于很多人来说可能还不如几张照片大啊,但是在这个 a 里面这其实已经算大了。这个文件夹的话,它包括有 啊直接提示我每次沟通的话都是用这个 m c p 来进行的,这个是主要是为了减少账号额度的这个消耗, 就让它不要把那个额度耗得这么快。然后面的话就是通过文件的方式去接入这些在系统上已经安装好的 skills、 m c p 和提示技能,就比如说我现在用这个, 这个是字节跳动,也就抖音那边推出的这个。然后的话我是怎么用的啊?首先我不是在我的电脑上直接运行我的 m c p 这项目什么的,我是直接呃在我的局网那一台, 呃公控机上运行的这个 ai 就 就是这一台,这台是一台四合八 g 的 一台小型公控机,我的系统是无帮图, 然后的话我我这里是其,我这边那么多文件,其实有一些它是做这个对话记录的,我是把那些对话全部给它, 就让 ai 给它记录下来,打成每一个 u i d 啊,或者说它的一个特征码,给它写入到一个文件里面,通过时间顺序,呃主要做了什么?然后它怎么调用?它的这个哈希值是多少?呃,通过这个文件的形式去调用,因为像我们国产的一些 ai, 呃和一些其他的这些 ai 工具,它都是这个,对于这个 m c p 安装其实有上限的, 哎,等一下我得登一下, 这些的话有这个 skills, 呃,这些这些代码主要是为了让 ai 去识别而用哪个用哪什么东西去调用,你不可能说让 ai 靠它单独的这个框架去这个实现很多功能调用,就像这个 这个 q 的 话,它的 solo 模式的话是不是叫这个啊?反正我英语不好,它的话它一个智能机最大也就支持呃两到三个,这个 m c p 如果再超出的话,它就不能够那个呃合理的使用和调用了。所以说 我安装这个 mcp 的, 我最多也就会只动只安装它,然后这另外这两个是直接去安装在这台公共机上的,但是这个性能有点不太够,但是对于一些小型项目算是比较呃支持的了。 所以说大家在使用这个 mcp 或者说那个 ai 的 情况下啊,最好是 呃开台虚拟机,或者说像我这样有一台这个局网下的一个设备,然后的话,嗯,这一套模板大家可以拿去 呃操作一下,我到时候会放把它放到泊课上,这个我已经让这个哎帮我转换成这个可以,嗯, 做一个适利的一个程度了,就是说他会根据这个文件的结构去啊告诉你,或者说告诉 ai, 呃什么时候该调用什么, 然后的话该怎么去执行任务,要做什么拆分,那很多很多人其实都都是通过这个 m c p 来进行,但有时候 m c 他 以为抽风了,所以说我们只能是手动的去呃,先做一个任务的积分,但这个我偷懒,我是直接让 ai 去帮我执行了。 他现在的话就比如说我先给他发送, 我就直接发送这个,然后它就会直接调用这个东西,调用这个 m c p。 这个 m c p 呢?最好是在你的这个每个 ai 的 这个软件里面优先安装这个,另外这两个可以不用安装, 然后的话你看它直接开始唤醒这个,然后自动打开浏览器登好这个的话就可以开始了。 然后你看他直接帮我把我的这个任务开拆分了,判断我要用哪些东西,这个是核心,这个是核心技能,我现在就说明确需求了,他每次都需要按呃,这个参考这些规则去帮我执行规则在这里 规则是这一套,然后还有这个智能体告诉他,呃,这个记忆,告诉他要干什么,然后的话这个是项目的,这个包括我现在我要做什么,这个项目的结构,还有这个系统的 呃,信息,就是说还有一点就是系统的信息,你也要告诉这个,然后让它识别,当然信息不要是 windows, 最好不是 windows, 呃, linux 就 行。然后这个是给人看的这个 ai 它不是看这个,这个是让 ai 写出来给给人类看。呃,它主要是干什么?需要干什么,然后它还有一份单独的文档是给它 ai, 这个 ai 自己看的,我们 呃人类是不需要去观看的,就比如说像这份,这份就是给 ai 看的,这个我们人是肯定看不懂它要干嘛的,这个是主要是给 ai 看来视 b i 主要是 通过这份文档可以知道这个我们当前的这个提示词结构、项目结构,然后提示词存放的位置, q 存放的位置, agent 存放的位置 啊,这个是给 ai 看的,然后的话才能更好地去给我们这个做服务。如果说你全部都要要求你人类能看得懂的话,我估计 ai 它幻觉是很严重的。你要知道有些东西它并不是说, 呃,单靠你能能看得懂 ai 他 就一定懂,那肯定是不行的。你看就像我这个,我这个还做了个优化,就是每十轮他就打成一个他,他就会拿出一点时间来把这个对话打成一个这个日字,就是说 啊,当前时间,什么什么时间啊?做了什么,然后的话他主要是他的对外 id 是 做了什么东西,然后的话动了什么文件,然后的话说说的内容是什么?这个就是这个就是说的内容是什么,就启动这个,启动这个 m c p, 这样的话,他下次就是说哪怕你换了一个新的账号做了额度,你要做的起就是首先你让他先解锁这个当前这个 m c p 的 这个 文件,就说先解锁这个文件夹,然后呢 a a i 就 知道,哎,他要做什么,然后接着他就会根据这里面制定的规则继续往下往下走,如果这个超过最大的一轮这个对话数的,他就会删掉最 最早时候的内容对话,因为这个相当于这时候已经用不到了,所以说减少这个 token 消耗,它也是灵活调用了。我加入了一个灵活的一个优先级机制啊,不要让它的这个 token 输出那么多,输出那么大,因为我们中文对话的时候,它是其实是需要经过两轮转移 才能转为这个能让 ai 看得懂的东西的。所以说这些东西的话都是有本机信息,有我们对外的这个规则和一些其他的。呃, 负责这个更合适它调用的那些东西,它适合很多的这个软件,就比如说 code、 code, 或者说 呃,只有那个命令行类型的那些,也可以就说也是通过去调用这个文件去查询这个文件里面的核心规则,然后去执行。

逼自己一个月学完,你的潜入式 linux 开发水平就很牛了,存下吧,真的很难找全的。本系列课程耗时三个月,制作共计四百三十分钟,全场七小时,带你一口气从零基础入门进阶,掌握潜入式 linux 开发所有重难点知识。 课程内容全是行业刚需,包括内核开发、驱动编程、文件系统交叉变异、多现成编程等高频实用知识点,不讲废话,只讲重点。由于视频较长,分为六期发布, 为了让零基础的小伙伴学习起来没有负担,教程中配套资料以及我整理的全套学习资料,对零基础超有帮助的学习路径。已关加评论幺幺幺即可全部带走,如果你看到了这,还请支持一下主播, 让更多想要学习潜入式 linux 开发的小伙伴看到这个视频。接下来我们开始这套系统课的学习吧! 那我们这个课程呢,主要呢给大家分为了六个部分来讲解。第一个部分呢,我们会给大家简单介绍一下我们另一个操作系统的一些基础知识,包括它的发展啊 啊,结构啊以及特点啊等等啊。然后第二个部分呢,我们会给大家介绍 linux 操作系统它的一个安装,因为我们要使用它,所以说我们首先要在我们的电脑上先把 linux 操作系统先安装上来啊。第三个部分呢,我们会给大家简单介绍一下 linux 操作系统它的文件系统相关的一些基础知识。 第四个部分呢,我们会详细的来讲解一下 linux 操作系统它的一些命令使用。那么我们知道 linux 操作系统呢,大多数时候呢,我们都是通过命令的方式来使用它,尤其是在我们的嵌有式开发的时候啊,做一些底层开发的时候,更多的时候我们用的是命令,很少用图形界面 啊,虽然他也支持图形界面啊。然后第五个部分呢,我们会给大家介绍一下在 linux 操作系统上如何进行应用程序的安装和卸载。 然后第六个部分呢,我们会来介绍一下在另一个操作系统中,一个文本编辑器 v i 它的一个基本使用啊。那首先呢,我们先来看一下另一个操作系统的基础知识,这个部分我们要学习的一些主要内容。 那这个部分呢,我们首先呢要学习要了解我们的这个另另一个操作系统的一个发展啊,了解另一个操作系统的一个发展。 然后第二个呢,我们要理解另一个操作系统它的这个特点啊。然后第三个部分呢,我们要掌握另一个操作系统的一个组成结构,尤其是这个组成结构,它是我们的一个重点,也是难点啊,我们考核也是考核它 啊。那么在这个部分呢,我们会有一些常见的一些小名词啊,这个我们在课程中也会讲到像 colonel sheil, 阿巴什 sheil 这样的一些名词啊。好,那么我们先来进入我们的第一讲, 第一讲呢,我们会来给大家介绍一下 linux 的 发展组成结构和特性啊,那么先来说一下它的发展,发展呢,我们就要从这个 linux 的 一个 人啊,发明这个 linux 的 一个人叫 linux 啊,那么他在大学的时候呢,他学的是 linux 啊,是一个 linux 系统,那并不是太好,也不是很完善。然后呢,这个呃,在九一年的时候呢,由这个 linux 呢, 他自己呢就去写了一个保护模式下的一个操作系统啊,嗯,大概是九一年十月的时候呢,他就把它写好了啊,当时呢这个系统呢,大概有八千行的代码啊,那么是最早的一个版本,我们叫做零点零一版 啊,那他呢是把它放到他们大学的一个 f t v 服务器上,供自由下载,当时知道的人并不多,主要是一些黑客去访问了它,并且对它进行了一些修补啊,然后这个更改啊,完善啊等等。 那后来呢,这个 linux 呢,将它的这个 linux 呢就加入到了 glue 啊, glue 对 这个 linux 的 发展是起了非常大的推动作用,加入这个 glue 以后呢,它就遵循了一个 g p l 的 协议 啊,那现在呢, g p r 已经发展到 g p r 三了啊,它是一种非商业用途啊,遵循 g p r 协议,非商业用途啊,就是说它允许开源,开源免费吗?但这个免费主要是非商非商业用途,如果你是商业用途的话,也不会是免费啊,它允许开源,然后分享、传播和修改,这是因为 它加入了跟路以后, linux 系统遵循这样的一个协议,所以说有更多的一些组织和优秀的一些程序员就来使用这样的一个系统,并且对它进行不断的修改,不断的完善啊,那么涉及到一些内核的修改呢,都会经过这个 linux 这个人的一个审核 啊,那么发展到现在呢,我们说内核的最新版本呢,已经到了四点一点四了,所以你大家可以看到它的发展非常的迅速,非常的快啊,当然基于这个内核之上的 linux 本身这个操作系统的版本呢,那据我了解呢,也至少有三百种了 啊,这个就是 linux 系统的一个简单的一个发展,大家了解一下啊。然后第二个部分呢,我们要来重点讲解一下 linux 操作系统一个组成结构,那它的组成结构呢?我们可以从这个图啊可以看得出来。那么一个 linux 操作系统呢,它主要的组成结构呢?是由三个部分组成, 一个是包裹在这个硬件之外的,叫做 kernel, 我 们称为内核啊,称为内核,那在内核之外呢,又有一个叫做 shell 啊,然后呢还有一个叫做 file systems 文件系统,然后最外面呢,我看到是用户啊,也就是用户是通过 shell 在 使用内核,我们可以通过这个图看得到,对吧?那什么是 kernel? 什么是 shell, 对 吧?有什么作用呢?我们具体的来了解一下。 colonel, 我 们叫做内核,它是包裹在我们这个硬件之外的啊,那么我们要与硬件去打交道,都要通过这个 colonel, 所以 说这个 colonel 它里面呢都是一些非常核心的一些程序系统程序, 它它呢可以用来管理我们的硬件设备,管理我们这个系统里面的进程、内存、交换空间、文件系统精灵进程,精灵进程其实也就是守护进程啊,那么它是包裹在硬件之外,也就说我们是通过它来使用硬件的,所以说它可以控制我们的系统程序与硬件之间打交道,这样的一个功能 啊,要通过它来使用,所以它里面都是非常核心,非常底层的一些程序。然后 shell 呢,我们说是包裹在内核之外的,叫内核之上的,对吧?叫外壳 shell, 它是包裹在内核之上的,而且 shell 你 看呢,它是位于用户和内核之间的, 所以说我们说 shell 呢,它的作用呢,是提供了一个人机交互的界面,它是我们用户和内核之间打交道的功能,就是我们通过使用 shell 来使用我们的另一个操作系统 啊。而大多数时候呢,我们说命令系统呢,是通过命令的方式来操作的啊,所以说我们说 shell 呢,它又有点类似于像我们 windows 里面那个 come on 的, 我们知道那个 windows 里面你运行 come on 的, 它是一个 黑黑屏,对吧?然后一个命令窗口,你可以在里面通过命令来操作。这个 shell 就 有点类似于它啊,那我们是通过命令方式来与 carl 打交道,所以说 shell 它其中还有个作用,就是它可以解释我们用户输入的命令操作命令。 那么随着 linux 操作系统的这个版本的不断的发展呢,那么 cio 呢,也有很多不同的版本,不同的 cio 呢,它对命令的解释不一样,但我们不用管它,我们只是使用它啊。常见的 cio 呢,有最早的一个 cio 和 kio, 还有像 cio, 后来的 cio, cio 和后来的 bio, bio 实际上是对最早的这个啊, brunio 的 一个 升级啊, t c o 啊,这些都是不同的 c o, 那 么这些不同的 c o, 我 们最常用的就是现在的另一个操作系统里面,最常见的两个版本就是 c o 和 b c o 啊, 那么不同的 c o 呢,它在这个使用命令的时候,它的命令提示服务也会不一样。我们后面安装了另一个操作系统以后,大家会进一步的了解到,可以去验证一下。那么常见的 c o 和 b c o, 在管理员的用户情况下呢,他的提示符是井号,而在普通用户情况下呢,他是一个 d r 号。如果是 c c o 的 话呢,他的管理员用户呢,是井号,而普通用户呢,是百分号。也就说如果以后你们在使用另一个超系统的时候,你可以通过这个提示符来区分, 如果你看它是 dollar 呢,那么它应该是一个 bar shelf, 如果你看它是个百分号呢,那么它应该是个 c shelf 啊,这就是 shelf 啊。然后第三个部分呢,我们说是文件系统,文件系统呢,当然是用来组织管理文件和目录的,那么文件系统具体的一个情况,我们会在后面专门来讲解 啊,那了解了它的组成结构,我们再来看一看它的特性啊,那例子的特性呢,非常的多,首先呢是多用户,那么例子这个多用户呢,我们说它 至于支持许多用户账户,而且可以让多个用户在同一个时间登录到系统中,同时工作,每个用户呢,还可以自己去定制自己的一个环境啊。而 linux 中的这些用户呢,它启动的这些应用程序啊,都是在 linux 的 服务器上来运行的,而不是在桌面 pc 啊,这不是终端运行了啊,这是它的一个很大的一个特点啊。 linux 操作系统是可以作为应用服务器的,而 windows nt 我 们知道它许多程序都是分为服务器端和客户端应用程序,并不是完全运行在服务器上的,对不对?你像我们的 dos 控制台运行,就能说明 我们的 windows nt 跟 linux 多用户支持上一个区别了啊。然后第二个呢,它特性呢,是多任务啊,它可以同时运行多个程序,而且这些程序呢,不仅仅是我们用户在线的用户所启动的程序,还有很多是本身 linux 系统本身自带的一些系统后台运行的进程 啊,那它能支持多任务呢?当然就有有它的这个多进程,多现成的一个机制。 好,那第三呢,它支持多平台啊,那么应该说 linux 所支持的平台是历史上最多的了,像有上的 spark 啊, 还有这个阿帕奇的 macos 啊,像 power pc, 还有像惠普,还有像英特的叉八六啊, x 八六系列的这些计算机,那它都支持,包括像 pda 的 一些装置它也支持,当然,嗯, 之所以能支持呢,主要是得益于我们 linux 这个操作系统,它大部分的代码呢,都是用 c 语言来写的啊, c 语言呢,具有比较好的一致性,尤其是在对于这个不同的硬件平台啊。 然后第四个呢,我们说它也支持图形化的用户界面 g u i, 因为 linux 呢,它传承了我们 ulex 强大的图形用户界面 x window 这个协议啊, x window 呢,是支持图形化应用进程正常工作的一个框架,一个协议,它可以与我们 g u i 应用进行通信,并在 x 服务器上进进程啊,在 x 服务器进程上来进行一些显示啊。然后另外呢,我们说它还有一个特点呢,就是它的硬件支持非常好啊,那六个是对硬件的要求是非常低的 啊,所以说它的这个移植性也比较好,就是你非常低的配置,你都可以去跑另一个超系统啊,还有非常强大的这个通信和联网功能啊,它支持啊,种类繁多的像网卡呀,调制解调器啊,串行等连接设备,而且它也支持局域网的一些, 像 token, ring 啊啊,还有像这个 asteroid 这样的一些协议,而且它还内建了很多上层网络协议,像 tcp 啊, novel 啊这样的一些协议,并且呢, 它有各种的一些软件包啊,它可以提供一些各种软件包让我们来搭建,像文件服务器啊,打印服务器啊, web 服务器啊等等,没有服务器啊等等啊。另外呢,它对应用程序的支持也比较强大啊,它可以这个支持像 有编辑器啊啊,编辑器像 vr 啊,图形化的 gedit 啊啊,编程工具啊, g c c, g d b 啊啊,这些都都非常都都有 mac 呀,数据库像 micro 啊,还有像 oracle 啊,办公软件 像我们比较有名的 call word, perfect 还 start office 等等啊,图形处理也有向上 xview 啊, gimp 啊, snapshot 这样的一些图形处理软件啊,网络应用像网警, landscape, communication, 还有阿帕奇 啊,游戏那就更多了啊,游戏等等也也都支持啊。好了,那么这就是我们这一讲的主要内容,那么在这一讲里面呢,我们重点要去掌握的是 linux 系统的一个组成结构,以及它这个结构里面的 作用啊,这个里面的作用,了解一下它的发展和特性啊,好,感谢大家的收听和收看,我们下一讲再见 容啊,那我们上一讲呢,主要呢给大家介绍了我们另一个操作系统的一些基础知识啊,主要呢简单给大家介绍一下发展和它的特性。重点呢给大家分析了另一个操作系统的一个组成结构啊,以及每个组成部分它的一个作用 啊,那么对这个部分有了简单的了解以后呢,今天我们进入第二讲,也是进入我们的第二个部分,就是我们 linux 操作系统的安装,那这个部分呢,我们主要的内容和要求是什么呢?我们来看一下,那这个部分我们主要要求大家首先要了解 linux 系统的 版本以及选择。第二个呢,了解我们即将要给大家介绍的这个乌邦图啊,它的一个不同的版本, 理解 linux 系统的一个登录,然后呢掌握我们这个啊,这个啊,微软和无帮图官网的使用以及下载软件。然后呢掌握无帮图的桌面和服务器的一个安装啊,我们这个部分的一个 要学习的一个目标。那么在这里面我们重点呢是要学会我们 linux 系统无帮图的一个安装啊,一个安装 考核呢,也是考核它的安装啊,那么课后呢,我是希望大家通过我们这个学习呢,你们能够去安装一下我们的无邦图系统,或者是安装 red hat 啊,红帽子, 这是我们这个部分的课程目标啊,一个介绍啊,中难点那个介绍啊,好,那么现在我们就进入我们这个部分的第二讲啊,那么第二讲呢,我们要给大家介绍的是 linux 系统的一个选择以及安装的一个准备啊, 那么这个选择完成准备呢,我们先来了解下另一个系统的选择,我们先要介绍一下我们现在比较 常用的或者用的比较多的啊,这样的一个另一个系统,那么就现在来说,我们用的非常多的另一个系统呢,主要的主流的啊,应该是有两个 啊,有两个,那么第一个我们叫做 red hat 啊,红帽子 red hat 呢,现在呢主要应用在企业级啊,主要是应用在一些企业级版的啊,而且,呃,它的这个系统呢,就是如果是商用的话呢,那么已经开始收费了啊。 还有一个呢,就是比较多的呢,就是无邦图啊,无邦图,那无邦图呢,我们说它是用于这个桌面桌面的,而且是开源的 啊,就是说它不收费啊,那无帮图呢,也是我们这个课程所选用的 linux 操作系统,我们会用这个系统来给大家进行讲解啊,那为什么会选它呢 啊?我们说无帮图呢,也是就现在来说,在 linux 系统里面啊,它应该算是比较纯正的 linux 系统 啊,而且呢,我们知道我们学这个课程呢,是作为嵌式的一个基础开发啊,那么嵌式的基础开发,那么将来还会涉及到安卓的一个开发,安卓底层的开发,那么吴邦图这个操作系统呢啊,那个操作系统呢,他也是安卓官方指定的一个翻译操作系统 啊,所以说我们学习他呢,可以为将来的后续的一些啊课程的学习呢,打下一个基础,做一个铺垫啊,而且他也发展很快啊,就现在来说,无邦图他已经支持 arm 架构了啊,也也也为我们的嵌式这个开发 做了非常好的一个铺垫啊,所以在我们这门课程里面,我们会选用无邦图这个 linux 操作系统来进行学习啊,这就是 linux 操作系统的一个选择啊。 那么第二个呢,我们来看一下,既然选择,那么我们选择了它,我们当然就来安装它,那安装的我们要做哪些准备呢?我们看下安装前的准备。首先我们肯定有电脑啊,那么电脑呢,我们要做好相应的一些硬件配置,所以我们的硬件准备。 那么前面我们在讲 linux 特性的时候,我们已经提到过,我们说 linux 操作系统它对硬件的要求是比较低的, 对吧?所以说这个硬件的准备呢,就现在来说,就我们现在的电脑 pc 机来说,基本上你现在去买,在电脑城去配一个电脑,或者买一个品牌机,基本上都可以满足,就说没有什么 很特别的,什么什么要求啊,因为他本身对硬件要求就不高啊,所以说现在的电脑基本上都可以满足的,所以你不需要去担心你现在买的电脑啊,不,不能安装他啊,不存在。 然后第二个呢,软件准备,软件准备呢,这个地方我们要简单说一下啊,就是说我们现在安装这个命令操作系统呢,我们为了 方便操作啊,为了方便我们的操作,我们现在大多数情况啊,也是很多比较常见的情况呢,都是在 windows 系统下,通过这个虚拟 虚拟机虚拟环境,通过搭建这个虚拟机的虚拟环境来安装我们的这个零六个操作系统啊,因为我们知道一个硬件平台,如果你去装双系统的话呢,一个是消耗资源比较大, 第二个呢那个也不方便我们这个课程的学习和讲解啊,因为你两个系统切换是很麻烦的,对吧?所以我们这个地方就选用的是在虚用,利用虚拟机来虚拟 这个环境,在虚拟环境下来安装啊,所以软件的准备呢,我们首先就要有一个虚拟机叫 when where where 啊, v m where 啊, 啊,那么这个软件呢,可以到它的官网啊,这个三 w wenware 官网去下载啊,那么现在这个虚拟机呢,有两种啊,有两种 版本,第一种叫做 winware player, 然后另外一个叫做 winware workstation。 啊,那么这个是用用于工作站的啊,这个呢是用于普通的用户桌面的啊,桌面上用的那, 嗯,这个呢,如果是作为商用的话呢,他是要收费的,当然我们我们如果是作为个人个人用户去使用,现在这个网上也有很多他的破解版啊,有很多的破解版也可以用啊,也可以用。这两个呢都是一样的啊,都是虚拟机啊,都是虚拟机 啊,好好,那我们到他的官网去看一下啊,我们去看一下这个虚拟机的官网。 好,我们可以看到它自动会进入中文,对吧?如果你要进一步的了解呢?你想下载呢?你可以下载软件或者点击下载, 对吧?它就进到下载这个页面,下载这个页面,你看它有很多不同的版本,对吧?这是云的,基于云的云版本, 对吧?啊,这是操作系统,这操作管理结构,管理安全网络,还有桌面和普通用户用的啊,你可以在这想啊,可以在这边下,也有试用版,也有产品啊,还有其他,对吧?啊,你也可以下免费下载试用版 啊。啊,那这个里面呢?我已经就是下载好了啊,我啊已经下载好,我是下载的十这个版本啊,那么后面我们就会来安装啊,会来安装,当然你在这个地方不方便,你也可以到百度,我们知道百度里面有很多关于它的破解版 啊,有很多破解版你也可以去下,比如你随便输一个,你就给个 win win when where, 对 吧?啊?然后 workstation 十二十一都有,对吧?你,你需要什么,你下载什么,对吧?我下载的是十,对吧?你也可以去下载啊,这都可以用 好,这个是我们说的虚拟机啊,然后接下来我们要准备无帮图软件,那无帮图软件呢?我们也可以到它的官网去访问一下, 对吧?啊,我们进入到这个无帮图啊,进来之后呢,你可以看到它的 页面,对吧?啊,那如果我们要去下载我们所需要的,我们可以到下载这个里面,你看你选了下载,你看这就有很多,对吧?啊,你点击这个下载,然后就进到下载这个页面,那在下载这个页面里面呢,你就可以看到。哎,我们无帮图这个 软件啊,其实它也有很多版本啊,主流的,你看这里面有 disco 桌面版、 server 服务器版,桌面版就是我们用户桌面用户使用的,那它肯定是支持图形界面的,然后服务器版,那服务器服务器版呢? 大多数情况那肯定是没有图形界面,它主要是以命令方式。还有一个云版本啊,还有云版本啊, 还有它的结构 download, 对 吧?啊啊,就是下载,它有很多的版本,所以说我们说无邦图也有很多版本啊,那它安装方式呢?我们可以看到安装方式最常见的就是一般就是要么就是 windows 的 安装文件,下载什么 ios iso 的 镜像文件,或者是 erp 的 安装文件直接安装。还有种它有发布的 cd 啊,可以 cd dvd 的 方式安装,也可以 usb 的 方式安装,对吧?那这个呢,你可以到它的产品 shop 这个地方,你可以去看 啊,未看图方的商店,你看它这就有 cd 的 dvd 软件,对吧?啊,也有也支持这样的一些版本啊,也支持这样的一些版本。 那下载下来之后呢,我们这一方主要去下载的就是下载桌面和服务器版 iso 的 文件,镜像文件,我们后面呢会来安装,所以你到这个里面,你就在我们的下载这个页面去就可以了啊,在 download 里面可以就可以了,而你找不到 download 呢,你就回到首页嘛, 对吧?你回到首页又进入当漏的吗?你看这有三个的吗?你要下桌面板,这就进到桌面板,你看现在最新的是十四点零四点三,而我之前下的是这个 十四点零点四点三,对吧,就是它的最新版本,对不对?你也可以在这下,它有支持六十四位,它有三十二位,一般我们现在机器基本上买的话呢,可能多数同学都会选六十四位的啊,但你可以根据你机器的配置啊,根据你机器的配置 啊,但这个下载过程我就不去演示了啊,因为下载过程呢,这个比较慢啊。而这个 lts 是 什么意思呢?长周期,就是以前那个版本更新很频繁, 那现在这个呢,更新他可以支持的时间比较长了啊,就这个意思啊,好,这个是他的这个官网的一个软件的一个下载的情况啊,给大家介绍一下。那你们接下来这节课完了之后,你们要去做的就是到这个官网上去把虚拟机和 这个无邦图的桌面和服务器版的镜像文件都把它下载下来准备好,那么我们下一节课呢就会来讲这个安装啊。好,那么我们这一节课主要内容就讲到这个地方啊,感谢大家的收听和收看,我们下一讲再见。 我们上一讲呢,主要给大家介绍了 linux 操作系统安装的这个部分的第一个小讲, linux 的 选择和安装准备啊,那么我们介绍了这个常见的两种 linux 操作系统以及它们的特点啊。 嗯,然后呢,另外呢,我们介绍了它的安装的一些准备,包括硬件和软件,硬件呢没有什么特别的软件准备呢,我们讲到了 这个虚拟机和无帮图的两个软件的相关的内容啊,那么分别可以到他们的官网上去下载, 而且无帮图呢,我们说他有三个版本,我们对这三个版本呢进行了一个简单介绍,并且对他的安装方式呢也进行了一个简单介绍,而我们要求下载桌面和服务器两个 版本的 iso 的 安装机箱文件。这样的话呢,我们这一讲呢就可以来安装它啊,安装它,那在上一讲呢,我们已经下载好了虚拟机和无邦图的安装文件,那这一讲呢,我们就进入安装无邦图 桌面板和服务器板,那么安装魔方图的桌面和服务器板呢?我们是要在 windows 系统下再来装一个 linux 系统,那么所以我们需要先安装 winware extension 这个虚拟机,我们在虚拟机的上面来装这个 linux 系统。 好,那么在 windows 二中去配置和新建新建我们的无棒图系统,那我们来看一下怎么来做。首先我们先装我们的虚拟机,在我的地方已经下载好了 windows 二啊,我们下载的是十大家,现在新版本有十一有十二了,然后你可以去下载新的。 好,我们下载然后安装,它会进入到这个安装的向导啊,就可以进入下一步, 然后呢选择接受下一步,然后呢你可以选择自定义,可以选择典型,我们一般就选典型,因为我们典型就足够够够我们用了。还说启动点的产品更新啊,这个你不用,反正你以后三三六零里面你可以去更新它 啊,这个就不需要桌面上有图标,然后程序夹有继续,然后就开始安装了 啊,大家记住啊,虚拟机的运,这个程序图标是这样的啊,这样的一个程序图标啊,所以以后大家在桌面上看到这样的图标,应该知道它是一个虚拟机啊。 where? 那 我们为什么要在虚拟机环境下来装呢?因为我们是要在 windows 系统上来安装另外一个操作系统,而虚拟机实际上就相当于什么呢?它就相当于模拟了另外一个机器, 那在这个机器里面装的 linux 操作系统,所以这个虚拟机它的功能很强大,如果没有它的话呢,我们直接装 linux 系统,那么就会在我们的系统里面形成一个双系统, 那这样的话呢,我在使用 windows 和 linux 就 很不方便了,我就不能进行切换啊,而虚拟机呢,就可以使得我这两个系统的切换呢,非常的方便,非常的方便 啊,那么正在安装很快呢,我们也就会安装完了,安装完了之后呢,这会有一个它的注册,注册机啊,我们要对这个虚拟机要进行一个注册,否则你使用的时候呢,会会是试用版啊,用不了多久就失效了啊,用不了多久就失效了, 好了,他说这儿正在执行我们的安装,可能需要几分钟的时间啊, 我们这个稍微耐心的等待一下, 所以我们这一讲主要就是给大家这个讲解,安装好,你看要求输入密钥,这个时候我们要打开这个注册机 啊,选择这个 generator 或者这个注册码,然后进入到它这个安装向导里面来填写啊,然后输入, ok, 完成完了,关了。好,这样的话呢,这个就安装好了,虚拟机就安装好了,那么我们在我们的桌面上就可以看得到这有个虚拟机的图标,看到了吗?啊,那我们怎么来安装虚拟机上安装这个无邦图呢? 我们双击这个虚拟机图标,他会打开这个虚拟机啊,那在虚拟机里面他有创建新的虚拟机,打开虚拟机 连接远程服务器,物理虚拟化物理机,对吧?而我们就是要去新建一个新的虚拟机,我们要在新新的虚拟机上来进行魔方图的安装啊,这呢它可以自定义,这也可以是典型 啊,那我们可以看一下,如果是典型的话呢,选择以后还会你是否通过镜像文件?我们就是要通过镜像文件啊,所以我这就选择我的下载好的无帮图的什么镜像文件来找到无帮图的镜像文件, 嗯,在我们的,在我的电脑里面,应该是, 我是放到我的这个里面的,对吧?我们找到我们的这个无光头的软件,那我们用的,我们现在是普通用户在自己的电脑上用,我们可以就选择一个桌面版,因为它是带图形界面的啊,我们打开它, 好啊,检测到了啊,六十四位的,对吧?好,然后下一步他问你,你取个名字,那你就叫 鲁邦图,对吧?用户名呢?随便取一下,你可以取自己的用户名, 那密码你可以取简单一点啊,名字啊,然后呢位置,他问你这个虚拟机安装的位置默认,他有一个默认虚拟机的位置在这个用户文档这个下面啊, 那你可以改,不过我们这个地方呢,就就认他默认吧。啊,没关系,那他说你设定多大的磁盘大小来供这个虚拟机,虚拟机的硬盘是作为一个和多个文件存储的主机的物理磁盘中,所以你就说你要用多大的硬盘, 我们要不了这么多,我可以给一个十 g 嘛。啊,当然你是六十四位,你可以用二十,建议用二十 g, 对 吧?你用二十 g, 然后他说你将这个虚拟虚拟的这个系统安装进去之后,你是成为多个文件还是单个文件?一般我们成为多多个文件啊? 好,然后他就给你显示名称,位置,版本,系统,硬盘,内存啊,网络适配器,还有其他的设备。那你对这些你需要进行调整的话呢?你可以在这自己定义一键,你可以调整,比如说内存, 你用一个 g 的 内存,你觉得多了你可以降,对吧?那一般我们都是我们的内存是两 g, 我 们一般呢建议用一 g 啊,然后处理器,我们这个是, 这个是四核的啊,那么针对你那个系统呢?我们用一个就够了啊,核心处理器你要用两个也行,他可以更快啊,那我们用两个 对吧?合起四个,每个处理器核心数量,对吧?你就用的比较多了,你可以用用处理器数量两个,这样的话他就会更快一些,然后这是设置 这个它的 iso, 镜像文件, dvd, 然后网络啊,你的网络适配器我们一般就默认 usb 啊,可以自动连接啊,你要支不支持 usb, 就是 你的虚拟机这个系统支不支持 usb 声卡,对吧?打印机这种检测, c s g 这种检测,这些我们都可以默认关闭,就调整好了。然后呢?创建后就开启这个虚拟机啊,是不是我们就完成可以 让它创建后就帮我开启它就开启了啊? 开启后你看单机虚拟屏幕可发送按键,简易安装。正在安装六十四位无邦通,看到了吧?啊, 它现在这个 wifi 二正在连接更新这服务器详细信息,你可以看详细信息更新它, 如果我们不想它这个更新呢?我们可以把它关掉,然后在这个地方,你看这个里面就在安装,进入到我们的无邦图的安装了,看到没有拷贝文件好, 这个安装过程就比较慢了啊,我们可能需要等待一下,那这个地方我们就暂停一下啊,我们就暂停一下,嗯,这个等安装完了我们再来看哈, 进入到文件的拷贝了,你看好安装好我们无帮图,这个以后呢,大家可以看它进入这样的一个界面,让我们去登录。那我们知道 linux 操作系统,它是一个多用户系统,所以每个用户要使用这个系统的,它都有一定的权限安全控制,需要去登录, 那这个地方要求我们输入密码,我们输入什么密码呢?这个地方他默认的密码就是我们在配置安装这个系统的时候,我要那个地方要我们输入的用户名和密码,而我们在那个地方输入的是用户名是 w j, 对 吧?还记得吧?那密码我也是用 w j 回车, 他就以这个用户登录到了这个系统里面。那现在大家看到登录到的这个系统呢?我们可以是可以看到他的这个图图形界面的啊,他是一个有这样的一个桌面啊,图形界面这样的一个桌面。 那么我们知道我们使用的大多数的我们的这个命令操作呢,都是通过这个命令的方式 啊,通过命令的方式,那我们如何从这个图形界面切换到这个命令方式啊?那么我们看一下从图形界面要切换到命令方式呢? 有几种啊?一种呢就是通过 ctrl alt 加上 f f 三, f 四啊,我们可以看一下 f 三, 进到这个里面 ctrl alt 加 f 三,它就以终端的方式,然后这个地方你可以输入用户名密码登录,你看它是显示的什么 d r, d r 是 什么?什么八写?什么写?哦,在我们前面是不是讲过八写哦,它的提示符普通用户就是 d r 啊, 对吧?那如果我要从命令方式再切换回我的图形界面呢? ctrl alt 加 f 七。 那大家看到图形界面他也有桌面,而且在这个桌面上他也支持很多的图图标,你看这个图标是什么文件操作,他有提示,就是你单机他,他就会进入相关这个文件,而默认的目录是进入到用户的主目录后 啊,有文档下载的,对吧?音乐,然后他也有 firefox 的 支持,就是你可以直接在这个里面上网 啊,如果你是联网了的,那么在这个里面它也可以联网,然后这个地方也还有相关的 office 的 一些组建,像 office 的 一些处理啊, office 的 演示啊,文档啊,表格,你看这儿 google 默认进 google 啊,这个就是我们安装好以后的无方图,那安装好以后的无方图如果我们要关闭怎么做啊?在这儿选择 下了单,然后选择下了单关机,它就会关掉,关掉会显示一系列的关闭信息,它就会自动关掉了。好, 那这就是安装无帮图系统,那这里我们安装的是桌面版,对吧?那如果你还想安装其他服务器版怎么办?主页,你可以再创建新的虚拟机,然后在这个地方你选择什么服务器的这个 ios 应用键, 然后你看这个地方就会要求你输入用户名密码,注意这个地方的用户名和密码就是你将来登录这个安装好以后的这个系统的用户名和密码,所以这方你要记住啊,一定要记住啊。 ok, 好, 那我们本讲的主要内容呢, 就给大家说到这个地方啊,那么我们要求大家要做的事情是什么呢啊,要做的事情就是 干什么? 就是能够去安装我们无邦图的桌面和服务器板啊,去安装无邦图的桌面和服务器板啊,大家记住, 这个地方的安装我已经给大家介绍了啊,好了,我们感谢大家的收听和收看,我们下一讲再见。 好,那么本讲呢,我们主要给大家介绍的是无邦图桌面的一个安装,然后服务器的安装呢,我希望下来大家自己去安装一下,按照我们桌面版的安装方式,同样的新建虚拟机啊去安装。那么如何在图形和命令模式的切换呢?刚才我们在 讲解的过程中也给大家做了演示啊,通过 ctrl alt f 二、 f 三、 f 四、 f 六都可以从图形转到命令,它们是以不同的终端的方式,而且它是一个 bash u, 对 吧?然后呢要回到图形呢,我们用 ctrl alt f 七 啊,那本讲的主要内容呢?主要就是这些啊,那这个感谢大家的收听和收看,我们下一讲呢,主要就是这些啊,那这个感谢大家的收听和我们下一讲呢,主要就是这些啊,那这个感谢大家的是 linux 系统的安装, 然后呢我们介绍了如何来安装无邦图的桌面板和服务器板,以及安装以后我们怎么来简单的登录使用啊,图形和命令的切换啊,那么了解了这个部分以后呢,那么对于我们基础部分的命令操作的安装我们就介绍完了, 那么今天我们要进入到第三个部分,就是 linux 文件系统以及文件的一些基础知识的介绍。那首先我们先来了解一下这个部分我们主要的一些目标和考核重难点啊,那么我们的目标第一个就是我们要了解文件系统的基本定义和功能。 第二个呢,我们要了解一下 linux 文件系统。第三个我们要理解不同类别的文件系统以及它的作用, 然后理解文件系统的基本的组成,理解 linux 文件系统的特点。然后呢,我们要重点去掌握 linux 文件系统的目录结构,内容特点以及作用,掌握 linux 系统的登录和使用 ls 查看目录文件 好,那重点和难点呢?主要是对于不同类别的文件系统以及它的作用要理解和掌握。第二个就是 linux 基本的登录和使用 ls 去查看目录文件 好,那么考核呢,就是对于不同类别的文件系统以及它的作用我们要掌握,我们要考核这个,而我们后面呢,我们会有什么练习呢?首先练习登录退出, 然后练习 ls 去查看,练习 ls 查看我们系统的文件和目录结构啊,而且通过不同的 文件标识和颜色来识别不同的文件类别啊,那这个里面呢,会涉及到一些小的一些名词啊,像 y t 三 j f s s r y f s 这些我们在会后面的课程中都会去讲解 啊,好,这是我们这个部分的主要的课程目标,重难点以及考核目标啊等等的一些介绍。那现在我们就进入这个部分的第一个小讲啊,首先我们来了解一下文件系统的基础知识,文件系统概述,在这个部分里面呢,我们主要给大家介绍的是文件系统定义、 分类和功能啊,也就说如果我们要去设计一个操作系统上面的文件系统,我们要从哪些方面着手,对吧?那我首先肯定要了解它这个基本的功能,对吧?而且它到底是不是一个文件系统,对吧?定义 好,那我们来看一下。首先文件系统第一,那什么是文件系统呢?我们说文件系统啊,它是一种组织计算机文件和资料的方法啊,比如像 windows 系统上,它的文件系统是通过什么方式组织? 像塑形结构一样的方式在组织,对吧?而且呢,他有资源管理器来进行管理啊,所以说文件系统其实是一种组织计算机文件和资料的一种方法啊。那么在操作系统中,这个文件系统到底是什么呢? 我们可以把文件系统本身可以看出是一个程序,而这个程序呢,是属于系统机的,就是比较高级的程序啊,这他是属于操作系统中已经被我已经 为我们封装好的一个系统服务程序,其实它也是一个软件程序,只不过这个软件程序它是用来存储和管理计算机文件和资料的 啊,这就是文件系统。第一个文件系统其实也是一个程序啊,我们也可以去设计它,我们也可以设计啊,在某一个操作系统去设计它,那要设计它,那么 肯定要了解它的一个功能,对吧?那文件系统的功能是什么?如果你来设计文件系统,你应该让它具备什么样的功能?那么我们说文件系统的功能,第一个他应该是可以去定义我们文件的一种组织方式,比如说文件结构 啊,文件结构用什么样的方式来组织?比如说在我们现在的文件常见的文件系统里面,就是以目录啊,目录目录数这样的结构。 然后第二呢,你文件里面的这些内容怎么来组织,对吧?有文件结构,文件要存储在我们的磁盘上,又怎么来?怎么来组织,对吧?所以要定义文件的组织方式。文件结构第二呢,他应该是可以提供一个存建立和存储文件的环境, 比如我们通过目录文件,对吧?建立目录,建立文件来存储文件。第三个呢,他要能对文件处理器空间进行组织,比如说你这个文件建好了之后,你是要存到我们的硬盘或者存到一个处理器上的,那处理器上的空间怎么去组织和分配,对吧?他应该具备这样的功能才能存到我们的磁盘上吧? 那另外一个你想他要肯定要负责这个文件存储啊,能够进行存入取出,并且能对存入的文件呢进行一个保护和检修啊,保护和检修啊,然后呢负责建立文件, 能够去建立文件存入、读出、修改、转出文件、控制文件的存取、撤销文件,等等,对吧?啊?也就是说一个文件系统他应该具备这样的一些功能, 它才能够称之为文件系统,才能够真正的实现管理和存储我们计算机上的这些文件和资料存取,对不对啊?所以这文件系统功能, 然后了解文件系统功能以后呢?那么我们来了解一下常见的一些文件系统有哪些啊?那么常见文件系统呢?我们可以分为这么几类, 第一个词盘文件系统,词盘文件系统呢?常见的像 windows 下面的 ntfs, 对 吧?还有 f d 三二, 还有 e t 三, e t 三其实就是 linux 的 文件系统,它是基于日制的啊,基于日制方式我们后面会详细讲,然后如果是闪存,比如说我们的 u 盘闪存, 闪存的这种存储形式,存储戒指的这种啊,那么它的闪存文件系统呢?采用的 g f s r, 然后 y a f s, 常见的这个用的比较多啊,大家可以在百度上去了解一下。然后数据库文件系统,数据库文件系统就是数据库的这些数据,最终其实它还是存到文件的,那它的文件系统用的是什么呢?有 bfs 和 winfs 啊,然后呢,这是网络文件,这是我的文件在网络中传输的时候,那么网络文件系统用的是 nfs, 那还有些虚拟文件系统 vfs, 那 么什么是虚拟文件系统呢?虚拟文件系统呢?是这样的啊,就说我们有很多不同的这些文件系统,对吧?不同的操作系统,它也支持不同的文件系统, 对吧?啊,那我在访问,那不同的文件系统呢,那么他的这些功能的定义,文件结构啊,目录啊,以及空存储空间的分配组织啊,他的实现方式都不太一样,对不对啊?那么我虚拟文件系统是用来干什么呢?就是 我用不同文件系统,那么我在使用它的时候,它的由于它这些功能定义都不一样,所以我使用的方法也会不一样,这就使得这些不同文件系统它的一致性比较困难,对吧?就说我不同,我用户针对不同文件系统,我都要去学习一套它的实现方式,对不对?而 虚拟文件系统呢,就很好了,虚拟文件系统它定义了一套标准的接口,就是标准的实现方式,而 这些不同的文件系统呢,最终都由这个虚拟文件系统进行了一个转换处理。而面向我们用户使用者来说,他都是什么使用的统一的标准, 而由虚拟文件系统呢,转化成具体的不同文件系统的实现方式,这就是虚拟文件系统 啊,这是虚拟文件系统。好,那么这是我们这一讲的主要内容,那么我们这一讲主要给大家讲的是文件系统的定义,就是文件什么是文件系统?是用来干什么的,对吧?然后他有哪些文件系统,然后他文件系统,如果我们要来设计文件系统,应该具备什么样的一些基本功能, 对吧?啊?基本功能好,那么重点呢,大家要找文件系统基本功能以及它的分类啊,以及虚拟文件系统的一个特点。好,那么这一讲呢,我们就讲到这个地方,感谢大家的收听和收看,我们下一讲再见。 我们上一讲呢,主要给大家介绍的是 linux 文件系统,文件系统的基础知识几个部分,那么我们上一讲呢,介绍的是文件系统一些基本概念啊,包括文件系统的定义、 分类,还有它的功能啊。什么是文件系统?常见的文件系统有哪些?那么如果我们来设计一个文件系统,它应该具备哪些功能,对吧?这是我们上一讲给大家讲的内容, 那么了解了这些内容之后呢,那么这一节我们重点要给大家介绍的是 linux 这个操作系统,它的文件系统以及文件的一些相关内容。那首先我们要介绍的是 linux 文件系统以及它的特点啊,那我们来看一下 linux 文件系统,那 linux 文件系统呢?呃, 主要呢是有两个类型的文件系统,第一个就是 e x t 三啊,这个在我们前面上一讲呢,也提到过,对吧? e x t 三是是一个什么样的系统呢? e x t 三,它是一个基于日字方式的文件系统 啊,它是一个基于日字方式文件系统。那么什么是基于日字文件系统呢?就是系统中每个文件它都会有,所以 啊,他都会建立,所以而我们的用户对这个文件的每一个操作啊,他都会去记录日记,然后呢形成一个任务队列啊,牌子执行 啊。那这样的一个日式操作系统他有什么好处呢?第一,因为他每个文件都有,所以而且用户对文件的每个操作都有日制, 这样就使得他可以什么呀?他可以监控用户对文件的一个操作,就是如果某个用户对文件进行操作以后,系统发生了什么错误,或者是一些类似于崩溃这样的问题,他可以通过查日记得到相应的记录,从而能够什么进行很好的这个 这个检修,或者是进行很好的一个更改啊,修复啊。那第二个呢?他把用户的每个操作记录成日记以后呢?他 不一定是说这个马上就去执行,他可以形成一个任务队列,排着一个一个执行 啊,这是 e t 三这样的一个日字系统,那它除了 e t 三这样的一个格式的日字系统文件系统之外,它还支持一个 swapp 啊, swapp 这样的一个文件系统。 swapp 这个文件系统呢,主要是用于交换分区的一个文件系统。 那什么是交换分区啊?这个地方可能大家太理解啊,那交换分区我们可以把它理解成像 windows 下面的那种虚拟内存 啊,有点像 windows 虚拟内存,就是当我们内存不够的时候,我们会把什么硬盘上的一部分空间作为内存 啊?那虚拟内存的实现呢?一般常用两种方式,一种呢就是进行内存的排列,像内存池一样进行一个优化,就是说内存不够的时候,他会对内存 的一个空间进行一个排列,解锁排列像内存词一样,然后给他进行优化,再进一步的提升他的利用率啊,这是虚拟内存的事情第一种方式。那第二种方式呢?就是我刚才说的,他会把硬盘上的空间一部分模拟成内存 啊,而这个 swapp 交换分区的这个文件系统,这个 swapp 实际上就是 linux 系统上的一个虚拟内存,它在安装的时候就会要求我们设置大小啊,一般呢我们会设置为物理内存的两倍啊,物理内存的两倍 啊,这个是我们说交换分区连接到 swapp 啊,如果你们去安装这个,如果是安装我们的这个红帽子啊,如果安装红帽子就有就会有这个设置啊,我们安装无方图呢,桌面版的还好一些啊,没有这个设置啊, 他会默认的为我们设置好了,不要求我们自己去设置啊。有有这个设置啊,这是 linux 操作系统,它的文件系统 最重要的两个文件系统,大家要知道,而且要了解它的一个特点啊,那么有基于自制这种方式,它的性能肯定是比较好的啊,因为它会形成一个任务队里拍着自行啊,慢慢自行。 好,那了解了 linux 文件系统以后,我们来了解一下 linux 文件系统的一个特点。在 linux 文件系统里面啊,在 linux 这个操作系统上,它的文件系统,它对文件的理解啊,我们可以认为是 linux 系统,它认为 在系统中的所有的东西都是文件,就说一切皆文件啊,哎,这个系统,他甚至可以把设备像硬盘啊,光驱啊,软驱啊等都看成是文件,而你可以把文件夹也看成是文件, 所以说在另一个系统中,他认为所有的东西都是文件,一切皆文件。那么对于不同的文件,我们知道在 windows 下,它可以通过扩展名,什么 ex 一 啊, 啊,什么 d a r r 啊,对吧?那什么 s y s 啊等等这样的一些后后扩展名来区分不同类型的文件。而那个操作系统里面,由于它是一切皆有文件,而且那个操作系统它的特点呢?它对文件这个文件名啊,它的特点是它是没有扩展扩展名的 啊,文件他文件是没有扩展,他不支持扩展,那他怎么来区分他的这些不同类型的文件呢?他是通过不同的一些标识啊,那常见的呢,我们可以有这样的几种,普通文件用的是短横线来表示,然后目录文件呢,用的是 d, 链接文件呢用的是 l, 快 设备呢,用的是 b 啊,快设备用的 b, 然后制服设备用的是 c, 然后如果是 socket 这种,用的是 s socket 文件,如果是管道文件呢,用的是 p 啊,这是它支持的常见的文件类型啊,那 我们可以待会一会呢,我们可以登录我帮图系统,我们来看一下啊,他这些文件啊,这些常用的这些文件类型的标识啊,那除了用这些常用的文件类型的标识来标 区分不同的这种文件啊,那么另外他还有他自己的文件属性,他还可以通过颜色来标识不同类型的一些文件啊,比如说蓝色,它表示目录, 绿色呢,它表示可执行文件,就是绿色,浅绿色呢就表示链接文件,红色就是压缩文件,灰色呢表示其他 啊。当然这个文件类型和文件属性呢,不同版本的或者说不同的 linux 系统,它是不一样的,也就说在 read hat 里面和无帮图里面,这两块的内容是 不完全相同,有的是一样,有的是不一样的。那只要根据不同的这个系统,你要去看他的这个帮助文档,对吧?来了解他的这个文件类型和文件属性啊。好,那么我们来看一下,那现在我们就来登录一下我们的这个文件系统, 我们打打开我们的虚拟机,我们启动一下,我们进去看一下。 好,正在启动啊,稍微等待一下, 好,进来了会要求我们输入密码,我们输入我们安装配置时候给的一个用户名和密码, 他会首先进入到这个图形界面,我们从这个图形界面呢切换到我们的命令窗口来看一下啊,这是图形界面的登录,对吧?这一块我们也要会啊,怎么登录?那我们从图形界面 ctrl alt 加 f 二, 我们进入到命令,命令,你看命令情况下,他会也要求你首先要 log in 登录,那我们输入我们在安装配置它的时候,我们给的用户名,我是给的 w j。 好,然后我就说他要输密码, w g 密码它是不会显示的, ok, 进来了,进来以后你看它会显示提示 f d l, 巴西有,对吧?那这个时候我们可以这个怎么来看呢?啊?那么我们可以用 p w d 这个命名呢?可以看到当前我们的目录 是在 hold 下,这个就是我们的用户主目录啊,用户主目录,然后呢,我们在用户主目录下,我们可以用 ls, ls 这个命令呢,有点相当于我们 windows 那 个 dos 下面的那个 d r, 就是 列出当前目录下面的文件,你看这是我的主目录,你看这就有蓝色的,看到了吗?这些蓝色的就是文件夹。 好,那如果我想看一下它的标识呢?我可以加一个 l l s, 里面有一个选项 l, 它就会以长格式的方式列出,后面我们会详细讲,你可以看到这些蓝色的文件,而且它的你可以看到在它的第一个, 这个鼠标不太管用。哈,我们看到这个长格式的第一个啊,每一行的第一个字母,你看蓝色的,它标识的是不是 d? 第一点是什么?刚才我们说了目录文件对吧?而普通文件呢?你看他是杠,对吧?好,那么如果我们还想多看一些呢,我们可以将我们的目录改到我们的根目录传到,你看一下,这个上面有很多文件,你看 我们可以以长格斯的方式再练一下,你看这些浅蓝色的这种啊,或者是浅绿色的这种,你看它的前面第一个字母都是什么?都是 l, 对 吧?都是 l 啊,都是 l 啊,你看它都是 l, 看到了吗? l, 对 吧?就表示它是链接文件,你看指向某一个链接啊,而蓝色呢,就是目录,对吧?那如果我们再进到, 我们再进到一个目录下,根目录下面的 b, 我 们再来看一下,你看它这个里面就有很多什么文件, 绿色的看,有绿色的这些,对吧?绿色的就是可执行文件,也有很多链接文件,而且还有什么红色背景的,对吧?我们可以用还是用这个长格式的方式进来看一下, 看一下,你看这些绿色,对吧?啊?红色还有链接红色背景啊, 然后我们再来,当然还有很多其他的了啊,所以说在这里头我们要学会用 ls 这个命令和 ls 杠 l 这个命令啊。嗯,我们看一下,这是另一下面的。

家人们, opencall windows 版部署教程终于来了,还有飞书官方插件安装攻略,手把手教你零成本搞定专属本地 ai 助手,新手也能一次成功,再也不用被环境配置难住了! 这款开源的 opencall 是 真的香,本地运行不泄露数据,能执行终端命令,操作文件还能无缝对接飞书七成二十四小时帮你搞定工作生活琐事, windows、 mac、 linux 全是配,现在跟着吹 id, 一 几步就能装! 重点记好这六步, windows 端专属部署流程超简单,一、先去官网下 tree 中国版手机号注册登录,全程无门槛。二、可选装 w l, 在 tree 里连接 w l 选无不 two 版本,创建隔离环境数据更安全。 三、初一里输入 open call 官方文档地址,让 ai 帮着安装,跟着确认命令就行,报错直接甩给 ai 自动修复。四、飞书开放平台建企业自建应用,记好 app id 和 secret, 再去火山方舟创字定义推例接入点选免费豆包模型,复制接入点 id 和 ipit, 发给初 ai 初设化配置。 五、飞书后台添机器人能力导入指定权限代码,事件和回调都设上连接,添加接收消息和卡片回传交互,最后创建版本发布。六、飞书搜机器人发任意消息,复制配对指令,发给 tree 执行,配对成功,你的 open call 就 上线了。 装完基础版还不够,教你装飞书官方插件解锁全功能,再吹礼书命令执行插件安装全使用已有机器人,跟着指引配置,再用命令检查插件是否起用。重启 open call, 飞书发 face star 的 验证显示版本号就是装成了。最后授权权限开流式输出插件就彻底能用了, 装完插件的 open call 直接开挂,能读写飞书文档管理云空间配置、日历、日程处理多维表格,飞书里一句话就能搞定,效率直接拉满, 全程用吹 ide 操作,遇到任何问题,不管是安装报错还是飞书配置失败,直接复制发给吹 ai 秒帮你解决,不用自己折腾,零成本还安全。现在 windows 版终于安排上了,不管是办公自动化还是日常当智能助手,这个 open call 都能满足你! 教程关键链接放评论区,收藏起来慢慢看,赶紧跟着操作,把这个专属 ai 助手领回家!学会的朋友记得点赞,后续还有更多 ai 工具玩法分享!

真的太炸裂了!谁能想到带完整教学动画的视频,或者带专业图表统计的报告视频,我居然全程在初页里只用三分钟写代码就直接生成, 尤其适合知识教学、数据可化、技术科普类创作者。告别令人头痛的 ppt, 今天手把手教你用代码来做酷炫的 ppt 动画, 用到的就是这个 remote skills。 用 react 创作视频,这是一个程序化视频生成框架,让开发者用代码创建专业动画。它的核心特性包括 react 驱动编程动画,高性能可定制。 这个工具特别适合教学、工作汇报、数据分析等从业者使用,非常高效,不用做繁杂的 ppt。 接下来我们来看看如何从 github 下载并安装 remote skills。 这就是 remote skills 的 github 仓库页面。操作步骤很简单,首先在 github 搜索 remote skills, 然后复制仓库地址或下载 zip, 最后使用 git clone 克隆到本地 复制以上命令到终端执行也可完成下载。下载完成后,我们在 tree 中配置并使用这个技能。下载的文件需要存放在特定目录下,路径图中已标注,将下载的 remote 文件夹放入 skills 目录,即可在 tree 中完成配置。按如下操作,可以验证此 skills 是 否配置成功。 第一步,打开 tree 设置。第二步,找到规则和技能。如果如视频中一样,说明 skills 安装成功了,也可翻看我之前的视频,有详细的安装教程。 使用技能非常方便。首先在对话中直接描述需求, tree 会自动匹配对应技能,然后一键生成所需内容,最后获得专业视频代码提示,直接说帮我制作一个视频即可调用技能。最后给大家演示我的 tree 目录结构以及 ai 全程编写流程,一起看最终运行效果。 好啦,你学会了吗?关注我,学习更多 ai 编程小技巧!


大家好,欢迎大家观看讯媒电子令尼克斯的视频。这节课我们学习 spi 的 即兴和象位。 spi 的 即兴和象位一般写为 cpl 和 cpha, 即时钟即兴和时钟象位。其中 cpl 中的 c 是 英文单词 clock 的 首字母 c, pol 是 英文单词即兴前三个字母同理, c p h a 中的 c 也是英文单词 clock 的 首字母 c p h a 是 相位。这个英文单词的前三个字母 s p i 的 即兴和相位决定了 s p i 的 工作模式。 c p o l 也就是时钟即兴, 表示时钟信号的初使电瓶状态。如果 cpl 为零,时钟信号的初使电瓶状态就为低电瓶。如果 cpl 为一,时钟信号初使电瓶状态就为高电瓶。 cpha, 也就是时钟向位,表示在第几个时钟跳变延采用数据。如果为零,表示在第一个时钟跳变延采用数据。如果为一,表示在第二个时钟跳变延采用数据。 那 cpl 和 cpha 是 不是可以分别为零和一呢?所以它们俩有四种组合方式。 所以就根据 cpl 和 cpha 的 不同, spi 就 有四种工作模式。老师在这里给同学们列了一个表格, 接下来我们看一下 spi 这四种不同的工作模式。我们先来看当 cpl 为零和 cpa 为零,也就是时钟极性为零和时钟向位为零的这种工作模式。时钟极性为零是不是表示时钟信号初使电瓶为低电瓶呢? 同学们看这张时序图,时钟信号初时电平是不是低电平呢? c p h a 为零,表示的是在第一个时钟跳变延采用数据。 第一个时钟跳变延是不是这里的上升延呢?所以在这个上升延采用数据,采用数据是对 m i s o。 这根线来说的, 紧接着在下一个时钟跳变延,也就是这里的下降延发数据,发数据是对 m o s i。 这根线来说的,是不是将这里准备好的数据发出去呢? 这样在一个时钟周期内,是不是就完成了一次数据收发呢?经过八个时钟周期以后,是不是就完成了一个字节的传输以后接下来继续进行下一个字节的传输。 这个是 kol 为零和 c p h a 为零的这种工作模式,同理,其他的这三种工作模式也是这样分析。 我们看 kol 为零和 c p h a 为一的这种工作模式。 kol 为零表示时钟信号初始状态为低电频。 c p h a 为一表示的是在第二个时钟跳变延采集数据。 第二个始终跳变眼是不是这里的下降眼呢?这里的上升眼是第一个始终跳变眼,在第二个始终跳变眼采样数据,采样数据是对 m i s o。 这根线来说的,紧接着在下一个始终跳变眼,也就是这里的上升眼发数据。 发数据是对 mosi 这根线来说的。将这里准备好的数据发出去,然后我们看 cpl 为一和 cpha 为零的这种工作模式。 cpl 为一 表示的是时钟信号初使电瓶状态为高电瓶,这里是不是高电瓶呢? c p h a 为零,表示在第一个时钟跳变延采用数据,是不是在这里的下降延采用数据呢?紧接着在下一个时钟跳变延,也就是这里的上升延发数据, 发数据也是对 m o s i 这根线来说的,将这里准备好的数据发出去。最后我们看 c p o l 为一和 c p h a 为一的这种工作模式。 cpl 为一表示始终信号初使电瓶状态为高电瓶 cpa 为一表示在第二个始终跳变眼采样数据。第二个始终跳变眼是不是这里的上升眼呢?在这里采样数据,紧接着在下一个始终跳变眼发数据,将这里准备好的数据发出去。 这四张持续图对应的就是 s p i 这四种不同的工作模式。最后我们再总结一下, s p i。 有 四种工作模式,这四种工作模式是由急性和向胃决定的, 所以在进行 s p i。 通讯的时候,我们要选择合适的工作模式,否则 s p i。 通讯会不成功。

mcu 转行零九驱动开发要学到什么程度才能和面试官兑现?大家好,今天我们聊这样的话题,最近有个粉丝呢,是想转零九驱动开发,他有一年的 mcu 工作经验了,那么之前呢,说基础还可以,之前学过,也做过项目, 但是驱动开发还没有学过,他主要想做几个项目,写到简历里面,然后到我们做,那我们看一下他这个想法是否可行呢?那么首先呢,我们要知道 一个问题,就是说你做驱动开发项目,你首先要学应用开发,这个基础是必须有的。好,那我们的结论是什么呢? mcu 转人力的启动开发肯定是可行的,但是呢,我建议呢,先转行到人力的岗位呢,先过渡一下, 之后呢再做运营岗位去驱动岗位。那么首先我们看看转行是不是可行。首先呢是薪资差距分析,这个我就不多介绍了,薪资差距还是比较大的, mcu 开发呢,都是六到十一 k, 这还是有一定工作经验的。 那么驱动开发的话,薪资呢?你比如说有有经验的是十五到二十五 k, 薪资要高基本上一倍了,这个没什么好说的那。呃,有这样的想法其实是,嗯, 非常好的。那么市场需求趋势的话,这里面呢,有这个 mcu 岗位呢,需求量大,但是增长放缓 啊,这个二零二五年招聘基地中呢, itm 三二呢,时代已经结束呢,那么驱动岗位现在需求是比较大的,因为现在这个车载呀,等等 ai 啊,相关的底层驱动啊,对这块的需求是比较大的。 好,那么刚才我们讲一个话题,一个内容,就是这个 linux 驱动开发呢,它是要先学 linux 应用的东西的,我们这边有一个谦老师 linux 开发 完全自学指南,这里面我们看看学习路线和路径。左边呢,我们看看这个要学 c 语言,乌斑图等系统, linux 应用开发, linux 的 通用知识,常用的外设啊, arm 开发版, linux 内核子系统,这部分才属于 linux 驱动的部分啊,那么复杂,外设包括 oled 啊,啊, camera 啊等等啊,系统调优, 性能优化,然后硬件测试工具等等啊,这样来学。所以通常来说,你学驱动开发也是要学应用开发的啊, 这个是大家知道的。另外呢,你为什么我们说建议大家先做应用开发呢?这个岗位也是要求你有一定的驱动开发经验的啊,大家看一下我们总校深圳的应用开发自学指南呢,他也是要求学习驱动的内容的,你看这个部分 啊,也要学原子驱动内容,那么所以呢,建议你先把原子应用的开发呢也准备好啊,先把应用原子应用开发呢学好之后呢,也学一些驱动内容,就投简历,那么这样子你既可以投 应用方向,也可以投驱动方向,那么因为呢,我们社招的话是比较看经验的啊,社招是比较看经验的,你之前做的是 mcu 开发, 那 hr 呢?一看你的简历呢,不是做驱动开发,也不是做人力的应用开发的,直接给你一个驱动岗位,我觉得是比较难的, offer 是 比较难,那他们宁愿呢?把 offer 给哪些人呢?给,哎, 宁愿给有给人力资应用开发工程师啊。那么如果你已经有一年的 链是应用开发经验,那你再转驱动那是比较好,是不是?那你现在你的基础是 mcu 开发,那你转到链子驱动开发那是挺难的。好的,谢谢大家。那么这个话题我们就聊到这里。

大家好,今天咱们来当一回系统侦探,用的工具就是 dmsh 迷。你是不是有过这种体验?插上个新设备,结果电脑里都不理你,真是头疼对吧?但其实系统都看在眼里,我们只需要找到它留下的证据。 好,要怎么破案呢?咱们的计划是这样的,这么说吧,你的 linux 内核其实有本秘密日记,记录着他做的一切。这本日记专业点说,就叫核心环形环驱冲,所有线索都在这里。 那么要怎么看这本日记呢?这时候就得请我们的侦探出场了,这个侦探就是 d message 命令,它能把科和波洪区的消息全都给你亮出来。当然了,光有侦探还不够,还得有工具,这些工具就是 d message 的 各种参数, 你看加上 d 参数时间戳,马上就变得人性化了,一目了然。可问题来了,输出信息太多,刷刷刷一大堆,怎么找关键线索?别急,用 e level 参数就行,它能按严重等级帮你筛选直击要害。 比如这条命令,就只看错误和警告一下就清清多了。想实时监控,用杠 w 参数就行,一有动静它马上告诉你。好了,工具都齐了,咱们现在就来解决开淘那个没反应的设备问题,简单粗暴,直接用 grab 过滤一下,所有跟 usb 有 关的信息都出来了, 找到了。你看这条错误,很可能就是供电或者兼容性出了问题。当然, d message 不是 一个人在战斗,他还有个搭档叫 journal ctr。 简单说, dmesk 专攻硬件和内核底层,而 journal control 管得更宽。咱们来总结一下,当个好侦探,记住这三步就够了。 记住, dimsg 就是 你排查硬件问题的第一道防线,非常关键。好了,现在工具交给你了,去看看你的系统日记里藏着什么秘密吧。

欢迎大家观看讯维电子利克斯视频。上节课我们学习了 spi 子系统框架,通过对 spi 子系统框架的学习,我们知道 spi 设备驱动层中的 spi 设备驱动需要我们去编 辑, spi 设备驱动就是具体 spi 外设的驱动程序。在本期课程中,我们使用的 spi 外设是 mcp 二五幺五,这个 spi 外设的功能是什么呢? m c p 二五幺五,可以将 s p i。 接口转成看接口。如果在做项目的时候看接口不够用,我们就可以使用 m c p 二五幺五把 s p i。 接口转成看接口。 通过对 s p i。 子系统框架图的学习,我们知道 s p i。 设备驱动它分成了两个部分,分别是 d y s 部分和拽握部分。 我们和 iphonec 类别来学习。 iphonec 设备驱动是不是也分成了两个部分呢?分别是 iphonec client 和 iphonec driver。 iphonec client 和 iphonec driver 会通过 iphonec 总键进行匹配,匹配成功之后进到 power 函数。 iphonec client 部分是不是就是 dy 部分呢?在没有设备数之前,这部分我们是需要写到平台文件当中的。有了设备数之后,我们在设备中编写设备节点。同理, spi 设备驱动是不是也是这样的呢? spi 的 device 部分和 driver 部分会通过 spi 总键进行匹配,匹配成功之后会进到 pro 函数。在没有设备数之前, spi 的 device 部分也是写到平台文件当中。有了设备数之后, spi 的 device 部分就写到设备节点当中。这节课我们就先学习编写 spi 设备驱动的 device 部分。 这节课我们使用设备节点编写 s p i 的 d s 部分,因为现在都是使用设备数了,使用平台文件的机会非常少。首先我们打开二 k 三五六八开发版的底板原理图,我们先确定在二 k 三五六八开发版底板的 j p i o 座子上引出的 s p i 接口是哪组? s p i 接口 通过原理图的网络标号,我们是不是可以看出来使用的是 spi 零的 m 一 这组 spi 接口呢?所以我们接下来就要在设备数中描述这些信息, 因为设备数就是描述硬件资源的文件,所以在写设备节点之前,我们需要先看原理图,确定硬件上用的 spi 是 哪一组。我们打开虚拟机屋版图,然后我们打开二 k 三五六八点 dtsi 文件呢? 在讲 sci 基础知识的时候,老师是不是说 sci 有 硬件 sci 和软件 sci, 现在我们学习的是硬件 sci, 硬件 sci 就是 在处理器中有一个 sci 控制器,通过这个 sci 控制器进行 sci 通讯,让这个 sci 控制器工作起来。是不是得有具体的驱动程序呢?这个驱动程序是 sci 适配器驱动层去完成的,这个是由原厂的工程师去编辑的 spi 适配器驱动,它是通过 plant from 总线进行匹配的。那是不是也得分成两个部分呢?一个是 device 部分,一个是 driver 部分。所以我们需要在这个 dtsi 文件中找到 spi 控制器的设备节点, 因为 s p i 控制器它是不是在处理器的内部呀?大家看这个设备数点 d t s i 前面是 r t 三五六八,那它实际上就是一个非常通用的设备数文件,它描述的就是 s, 就是 三五六八这个处理器的内部的啊这些资源,所以我们要打开这个设备数, 在这个设备数中,我们找到 s p i 零这个设备节点,这个设备节点它就是 s p i 零控制器的设备节点。 因为在硬件原理图我们已经知道了 s p i 零,所以我们要找 s p i 零这个 s p i 控制器,那节点我们找到了,那这个控制器对应的驱动程序在哪呢?我们要怎么找呢?我们是不是可以根据这个 canpad 属性来查找呢?因为 它要根据这个名字进行匹配,匹配成功之后要去执行 prob 函数,所以通过这个名字我们就可以找到这个 spi 控制器对应的驱动程序。老师给同学们演示一下。我们进到二 k 三五六八开发版 linux 的 内核原码目录下的驱动原码目录下,然后我们直接使用 drape 命令来搜索它, 我们稍等一会儿,是不是搜到了一个文件呀?叫这个名字,我们打开这个文件,这个文件就是 spi 控制器的驱动程序,在里面我们是不是可以找到 power 函数呀?那当它们俩匹配成功之后,就会去执行 power 函数。 spi 控制器的驱动程序,它是通过 plant from 总线进行匹配的,然后我们接着看这个设备节点,那我们的 mcp 二五幺五这个 spi 外设,它是不是接到了 spi 零的 m 一 组这组 spi 接口上呢? 那我们是不是就得在设备书中描述 m c p 二五幺五是接到了 s p i 零上了,怎么描述呢?我们直接用追加的方式,我们打开这个设备书文件,这个设备书文件就是开发版上的这个描述硬件信息的设备书文件,我们在这里直接通过这种方式进行修改。 我们在这个文件中,第一步是不是需要先将 s p i 零给打开呢?因为它默认是 d c 部,我们需要在这里将它打开。 那有的同学说,老师我直接在这改成 ok, 可以 吗?可以,但是不建议这么做。为什么呢?同学们看这个设备书文件,它是不是描述的都是处理器上的硬件资源呀?然后这个设备书文件它描述的是不是都是开发版上的硬件资源呀?它们俩分开了, 那如果说我把它们俩揉到一起是不是就很乱呀?所以这里我们不直接在这里改,我们通过这种方式去改,如果同学们不知道为什么这样可以改。同学们去看老师讲解的设备数的视频,第一步我们得描述 mcp 二五幺五,这个 spi 外设是挂载到了 spi 零上, 那通过之前 iphone c 的 学习,我们是不是就知道了,我们需要在这边写一个子节点,那这个子节点的名字我就叫 m c p 二五幺五,艾特零,我叫这个名字行不行?然后呢,我再给他起个小名,小名的话我就叫 m c p 二五幺五,是不是没有问题啊? 那在这个节点中,它是不是要有 ctrl 波属性呀?那这个 ctrl 波属性是不是就得和这个 m c p 二五幺五的驱动程序进行匹配了呀?也就是它们俩要进行匹配和这个 s p i 设备器没有关系了,同学们一定要区分开,我们这里写一个 ctrl 波属性 名字,我叫 my 横杠 m c p 二五幺五,是不是没有问题啊?我叫这个名字, 我们这个节点先写这么多,别的我们先不写啊,这个这个外设它需要的零件还有很多,我们先只写这么多,先描述我们这个 spi 外设是挂载到了 spi 零上, 通过原理图我们还知道一个信息, spi 零我们用的是 m 一, 那之前老师是不是也讲过呀? spi 它有 m 零, m 一 可以选择, 那如果说我们用 m 一 的话,是不是得把 m 一 的引脚复用设置一下呀?那我们要在哪设呀?我们是直接在这用拼接处吗?不是的,我们需要在这里使用拼接处来设置复用。为什么呀?我再给同学们画一下这个图, 这个 spi 控制器,它出来的是不是就是 m o s i, m s o c l k 和这个 c s 这些引脚呀?那 m 零和 m 一 我是不是得在 这个 s p i。 控制器的设备处里面进行修改,我不能在它挂载的这个外设 m c p 二五幺五上进行修改,同学们说是不是呢?所以说我们得找这个设备截点,在这个设备截点中,我们可以很轻松的发现,这里是不是就用拼接块子系统设置了引点输入呀?有两组,一个是 default, 一个是 high 四 p 的, 那这里它默认使用的是 s p i 零, m 零是不是和我们硬件是对不上的呀?我们得改一下,我们这里先把它原来的这个给注视掉,注视掉了之后,我们直接复制一下, 这里它用的是 spi m 零 c s 零,那我们得用 m 一 这一组,所以我把零改成一是不是没有问题啊?在硬件原理图中,我们是不是只用到了这一个片源信号呀? c s 零, 所以它后面的这个 cs 一 我们是不是可以不用要它了?因为我们没有用到它嘛,我们不用要它了,然后后面我们是不是也得把这个 m 零给改成 m 一 呢?那这样引教服用我们就设置好了,为什么我们可以直接把零改成一呢? 同学们看这个设备书,这个设备书文件也是由原厂的工程师给我们编辑好的,在这个设备书文件里面描述了所有的这个引教服用的功能, 那比如说他这里是不是就给我们描述了这个 spi 零的每组的啊?这种情况呀?有 spi 零 m 零的和 spi 零 m 一 的,是不是他直接把这些节点都给我们写好了?所以我们直接引用这些节点,我们就可以去修改它的赋用了, 是不是非常简单,非常贴心啊?不用我们去写了,我们需要写的是什么呀?我们需要写的就是具体 s p i 外设所用的引荐,那比如说这个 m c p 二五幺五它使用的终端引荐是哪个?那我们是不是需要去设置一下这个终端引荐的服务呀?那这些是需要我们在这个节点中使用 pick 键串去设置服务的,但是你像这些 s p i 控制器的这些东西, 原厂的工程师是都给我们写好的,所以我们可以直接这样去改,非常简单,我们这里保存一下,那这样设备数我们就写好了。 s p i 抵 y s 部分,我们把它的框架完成了,还不能说是完全写完,因为里面有很多的硬件信息我们还都没有写,现在我们只是把框架写完了, 把这个框架写完了,那同学们举一反三一下,那比如说你这个 s p i 零的接口,你接的不是 m c p 二五幺五,你接的是一个 s p i flex, 那 你这个设备节点是不是也会写了呀?是不是也这样写呀?这里这样引用一下。然后呢,你看一下你用的是 m 零还是 m 一, 然后这个控制器的节点你这样改一下。 然后这里呢啊,老师是直接啊在控制器里面啊修改啊,因为这个硬件上它是固定了的嘛,所以就直接就这样改了, 同学们也可以根据这个狂吐自己来修改一下 m c p 二五幺五这个外设的具体介绍,等老师带着同学们写 s p i 驱动程序的时候,再给同学们详细介绍,同学们知道它的功能是 s p i 转看就可以了。这节课老师就先讲到这里。