• timescale指令的用法

    1、什么是`timescale指令?\x26amp;nbsp; \x26amp;nbsp; \x26amp;nbsp;`timescale指令我相信大

    01-03 14浏览
  • 详解linux系统组成结构

    NB的架构师都要具备足够的技术深度,然后才能透过问题看本质,所谓技术深度就是扎实的基础知识,要不断深入,反复研究学习,打磨自己的硬实力。不论从事云计算、虚拟化、容器、大数据、人工智能,几乎都是基于 Linux 服务器部署服务。 一、linux系统结构 linux系统看似纷繁复杂,单其核心只有一点,那就冯洛伊曼体系“存储计算”,万变不离其宗。就像一颗大树一样,枝叶繁多,但主干却很清晰简单。 Linux系统一般有4个主要部分:programs/utilities/tools 内核、shell/工具(GUN工具)、文件系统和应用程序。内核、shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序、管理文件并使用系统。部分层次结构如图1-1所示。 Computer Resources:硬件资源 Kernel:内核 GUN工具: Shell:shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行,是一个命令解释器 Programs/Utilities/Tools:库函数、工具等 File systems:文件系统是文件存放在磁盘等存储设备上的组织方法。Linux系统能支持多种目前流行的文件系统,如EXT2、 EXT3、 FAT、 FAT32、 VFAT和ISO9660。 User Application:Linux应用,标准的Linux系统一般都有一套被称为应用程序的程序集,它包括文本编辑器、编程语言、X Window、办公套件、Internet工具和数据库等 Linux开机后,内核启动,激活内核空间,抽象硬件、初始化硬件参数等,运行并维护虚拟内存、调度器、信号及进程间通信(IPC)。内核启动后,再加载Shell和用户应用程序,用户应用程序使用C\C++编写,被编译成机器码,形成一个进程,通过系统调用(Syscall)与内核系统进行联通。进程间交流需要使用特殊的进程间通信(IPC)机制。 二. Linux系统1: linux内核组成 Linux内核是世界上最大的开源项目之一,内核是与计算机硬件接口的易替换软件的最低级别。它负责将所有以“用户模式”运行的应用程序连接到物理硬件,并允许称为服务器的进程使用进程间通信(IPC)彼此获取信息。 内核是操作系统的核心,具有很多最基本功能,其核心功能就是:管理硬件设备,供应用程序使用。硬件设备包括CPU、Memory(内存和外存)、输入输出设备、网络设备和其它的外围设备。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。 Linux 内核由如下几部分组成:内存管理、进程管理、设备驱动程序、文件系统和网络管理等。如图: 系统调用接口: SCI 层提供了某些机制执行从用户空间到内核的函数调用。这个接口依赖于体系结构,甚至在相同的处理器家族内也是如此。SCI 实际上是一个非常有用的函数调用多路复用和多路分解服务。在 ./linux/kernel 中您可以找到 SCI 的实现,并在 ./linux/arch 中找到依赖于体系结构的部分。 1、内存管理 负责管理Memory(内存)资源,以便让各个进程可以安全地共享机器的内存资源。另外,内存管理会提供虚拟内存的机制,该机制可以让进程使用多于系统可用Memory的内存,不用的内存会通过文件系统保存在外部非易失存储器中,需要使用的时候,再取回到内存中。 内存管理系统在操作系统中,不同的进程有不同的内存空间,这些内存空间需要统一的管理和分配,这就需要内存管理系统。 对任何一台计算机而言,其内存以及其它资源都是有限的。为了让有限的物理内存满足应用程序对内存的大需求量,Linux  采用了称为“虚拟内存”的内存管理方式。Linux  将内存划分为容易处理的“内存页”(对于大部分体系结构来说都是 4KB)。Linux 包括了管理可用内存的方式,以及物理和虚拟映射所使用的硬件机制。 不过内存管理要管理的可不止 4KB 缓冲区。Linux 提供了对 4KB 缓冲区的抽象,例如 slab 分配器。这种内存管理模式使用 4KB 缓冲区为基数,然后从中分配结构,并跟踪内存页使用情况,比如哪些内存页是满的,哪些页面没有完全使用,哪些页面为空。这样就允许该模式根据系统需要来动态调整内存使用。 为了支持多个用户使用内存,有时会出现可用内存被消耗光的情况。由于这个原因,页面可以移出内存并放入磁盘中。这个过程称为交换,因为页面会被从内存交换到硬盘上。内存管理的源代码可以在 ./linux/mm 中找到。 2 .进程管理 进程管理系统在操作系统中,进程的执行也需要分配CPU来执行,所以,为了管理进程,我们还需要一个进程管理系统。如果运行的进程很多,则一个CPU会并发地运行多个进程,这就需要CPU的调度能力了。 进程实际是某特定应用程序的一个运行实体。在 Linux  系统中,能够同时运行多个进程,Linux  通过在短的时间间隔内轮流运行这些进程而实现“多任务”。这一短的时间间隔称为“时间片”,让进程轮流运行的方法称为“进程调度” ,完成调度的程序称为调度程序。 进程调度控制进程对CPU的访问。当需要选择下一个进程运行时,由调度程序选择最值得运行的进程。可运行进程实际上是仅等待CPU资源的进程,如果某个进程在等待其它资源,则该进程是不可运行进程。Linux使用了比较简单的基于优先级的进程调度算法选择新的进程。 通过多任务机制,每个进程可认为只有自己独占计算机,从而简化程序的编写。每个进程有自己单独的地址空间,并且只能由这一进程访问,这样,操作系统避免了进程之间的互相干扰以及“坏”程序对系统可能造成的危害。为了完成某特定任务,有时需要综合两个程序的功能,例如一个程序输出文本,而另一个程序对文本进行排序。为此,操作系统还提供进程间的通讯机制来帮助完成这样的任务。Linux 中常见的进程间通讯机制有信号、管道、共享内存、信号量和套接字等。 内核通过 SCI 提供了一个应用程序编程接口(API)来创建一个新进程(fork、exec 或 Portable Operating System Interface [POSⅨ] 函数),停止进程(kill、exit),并在它们之间进行通信和同步(signal 或者 POSⅨ 机制)。 3. 文件系统 Linux系统,一切皆文件: 1)启动一个进程,需要一个二进制文件。 2)启动进程时,需要加载一些配置文件如yml, properties等,这是文本文件 3)把日志打印到控制台上,是标准输出stdout文件 4)一个进程的输出作为另一个进程的输入,称为管道,管道也是一个文件 5)进程可以通过网络和其他进程通信,建立的socket,也是一个文件 6)进程需要访问的外部设备,也是一个文件 7)文件夹也是一个文件每个文件,Linux都会分配一个文件描述符(File Descriptor),这是一个整数。有了这个文件描述符,我们就可以使用系统调用,查看或干预进程运行的方方面面。 和 DOS 等操作系统不同,Linux 操作系统中单独的文件系统并不是由驱动器号或驱动器名称(如 A:  或 C:  等)来标识的。相反,和 UNIX  操作系统一样,Linux 操作系统将独立的文件系统组合成了一个层次化的树形结构,并且由一个单独的实体代表这一文件系统。Linux  将新的文件系统通过一个称为“挂装”或“挂上”的操作将其挂装到某个目录上,从而让不同的文件系统结合成为一个整体。Linux  操作系统的一个重要特点是它支持许多不同类型的文件系统。Linux 中最普遍使用的文件系统是 Ext2,它也是 Linux  土生土长的文件系统。但 Linux  也能够支持 FAT、VFAT、FAT32、MINIX 等不同类型的文件系统,从而可以方便地和其它操作系统交换数据。由于 Linux  支持许多不同的文件系统,并且将它们组织成了一个统一的虚拟文件系统. 虚拟文件系统(VirtualFileSystem,VFS):隐藏了各种硬件的具体细节,把文件系统操作和不同文件系统的具体实现细节分离了开来,为所有的设备提供了统一的接口,VFS提供了多达数十种不同的文件系统。虚拟文件系统可以分为逻辑文件系统和设备驱动程序。逻辑文件系统指Linux所支持的文件系统,如ext2,fat等,设备驱动程序指为每一种硬件控制器所编写的设备驱动程序模块。 虚拟文件系统(VFS)是 Linux 内核中非常有用的一个方面,因为它为文件系统提供了一个通用的接口抽象。VFS 在 SCI 和内核所支持的文件系统之间提供了一个交换层。即VFS 在用户和文件系统之间提供了一个交换层。 VFS         在用户和文件系统之间提供了一个交换层: 在 VFS 上面,是对诸如 open、close、read 和 write 之类的函数的一个通用 API 抽象。在 VFS 下面是文件系统抽象,它定义了上层函数的实现方式。它们是给定文件系统(超过 50 个)的插件。文件系统的源代码可以在 ./linux/fs 中找到。 文件系统层之下是缓冲区缓存,它为文件系统层提供了一个通用函数集(与具体文件系统无关)。这个缓存层通过将数据保留一段时间(或者随即预先读取数据以便在需要是就可用)优化了对物理设备的访问。缓冲区缓存之下是设备驱动程序,它实现了特定物理设备的接口。 因此,用户和进程不需要知道文件所在的文件系统类型,而只需要象使用 Ext2  文件系统中的文件一样使用它们。 4. 设备驱动程序 设备驱动程序是 Linux  内核的主要部分。和操作系统的其它部分类似,设备驱动程序运行在高特权级的处理器环境中,从而可以直接对硬件进行操作,但正因为如此,任何一个设备驱动程序的错误都可能导致操作系统的崩溃。设备驱动程序实际控制操作系统和硬件设备之间的交互。设备驱动程序提供一组操作系统可理解的抽象接口完成和操作系统之间的交互,而与硬件相关的具体操作细节由设备驱动程序完成。一般而言,设备驱动程序和设备的控制芯片有关,例如,如果计算机硬盘是 SCSI  硬盘,则需要使用 SCSI  驱动程序,而不是 IDE 驱动程序。 5.网络接口(NET) 提供了对各种网络标准的存取和各种网络硬件的支持。网络接口可分为网络协议和网络驱动程序。网络协议部分负责实现每一种可能的网络传输协议。众所周知,TCP/IP  协议是 Internet  的标准协议,同时也是事实上的工业标准。Linux  的网络实现支持 BSD 套接字,支持全部的TCP/IP协议。Linux内核的网络部分由BSD套接字、网络协议层和网络设备驱动程序组成。 网络设备驱动程序负责与硬件设备通讯,每一种可能的硬件设备都有相应的设备驱动程序。 需要C/C++ Linux服务器架构师学习资料加qun812855908获取(资料包括C/C++,Linux,golang技术,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK,ffmpeg等),免费分享 二、Linux系统1: 内核运行原理 百度搜索:漫画趣解Linux内核:内容大概如下: 一幅来自 TurnOff.us 的漫画 “InSide The Linux Kernel” 。TurnOff.us 是一个极客漫画网站,作者 Daniel Stori 画了一些非常有趣的关于编程语言、Web、云计算、Linux 相关的漫画。 整体架构画面分为三层:(按我个人理解) 最下面一层看起来像是一个仓库,就是文件系统(File System); 地面层有很多人(大部分都是企鹅)在各种忙碌,代表着进程表(Process Table); 还有一个跃层,代表着人机交互界面(Terminals And Termina process); 这些就是Linux内核的基本层次架构,所有程序执行、资源调度、系统功能都在这个内核中运行和实现。 关于操作系统处理任务/服务的大体流程简单归纳为:1.输入—2.中断/异常处理——3.调度进程——4.服务进程处理——5.输出结果: 接下来我们按照漫画的分层分开说明一下这些流程: 1、顶层的半层:输入输出交互界面 交互界面是一个跃层,说明它是内核的一部分,但和进程管理大厅联系紧密。这里墙上有很多屏幕,代表它通过可视化的界面来处理信息,实际上就是系统和人的交互界面。 屏幕有很多个,代表系统可以同时处理多路的命令交互。屏幕上的内容都有不同,有的屏幕还没有开启,有的屏幕是字符界面,有的还有图形界面,代表不同的GUI的交互状态。 这里有两个进程来管理这些屏幕。有一个进程面向屏幕,正在一个控制板上进行操作,笔者的理解是它是一个输出进程,可以控制各个屏幕的不同状态和输出内容;另一个进程面向大厅,手中拿着一份文件,应该正在向大厅里面的进程下达质量,所以它是一个输入控制进程。这样我们也能够理解为什么这里是一个半层,因为它需要一个开放的架构来连接输入输出和执行进程。 跃层有很多不同的屏幕,每个屏幕上写着 TTY(这就是对外的终端)。比如说最左边 tty4 上输入了 “fre” ——这是想输入 “freshmeat…” 么 :d ;它旁边的 tty2 和 tty3 就正常多了,看起来是比较正常的命令;tty7 显示的图形界面,对,图形界面(X Window)一般就在 7 号终端;tty5 和 tty6 是空的,这表示这两个终端没人用。等等,tty1 呢? 跃 层,也是最接近用户的一层。两只企鹅在名为 TTY 的窗口面前工作,一只企鹅在控制台前戳戳点点,另一只在仔细端详程序的输出。TTY 中文为电传打字机,关于 TTY,可以追溯到计算机的远古时代,那时候我们使用的还只是没有主机的打字机。设备的输入要经过长长的串行线路才能到达那昂贵的大型主机 (Mainframe Computer)。 作为 Unix-like 的 Linux 也继承了这一特性,在 /dev 目录下和 ps 命令的输出中我们都可以看到它的身影。 TTY(终端)是对外沟通的渠道之一,但是,不是每一个进程都需要 tty,某些进程可以直接通过其他途径(比如端口)来和外部进行通信,对外提供服务的,所以,这一层不是完整的一层,只是个跃层。 2、中间层:进程和进程调度 中间层则体现的是流程中的:调度,服务以及输出, 进程调度处理任务:忙碌的大厅,各司其职。 大厅里,就是各种进程运行和忙碌的主要场所了。 大厅的中心,是一张长条桌。这里应该就是主进程表了,一个主进程正在和一堆进程开会,可能正在协调它们的运行;这些进程神态和状态各异,有的认真听讲,有的不屑一顾,有的左顾右盼,有的沉默不语...,确实很像系统中各种任务执行的状态。 大厅一角堆了很多管道,这是Linux处理信息的 应用进程(企鹅): 图中有很多企鹅,它们通常代表着在Linux内核中运行的进程。之所以使用企鹅,应该是因为Linux的Logo和形象代表就是一个企鹅。但如果我们认真观察,会发现虽然它们都是企鹅,但是它们的装扮、动作甚至神态都是不一样的,隐喻着它们有不同的特性和状态。一般情况下,企鹅的胸前会挂着一个写有数字的工牌,代表着这个进程的进程编号。 初始化(init)进程:左上角有一个小企鹅,站着,仿佛在说些什么这显然是一位家长式的人物,不过看起来周围坐的那些小企鹅不是很听话 —— 你看有好多走神、自顾自聊天的 —— “喂喂,说你呢,哇塞娃(171),转过身来”。它代表着 Linux 内核中的初始化(init)进程,也就是我们常说的 PID 为 1 的进程。桌子上坐的小企鹅都在等待状态(Wait)中,等待工作任务。 监控进程(看门狗):除了企鹅之外,我们还看到有几条小狗。这些都是看门狗(Watch Dog)。它们负责在系统内部进行巡查,处理各种异常状况。当小企鹅们不听话时,它就会汪汪地叫喊起来。 异常进程: 最后还有一个小丑,应该就代表着系统内部的异常进程,比如病毒木马等恶意软件。 cron 进程:看它急得头上都冒汗了,这位老弟不断的看着手表,执行着周期性任务。 web守护进程:一只 PID 为 1341 的小企鹅就是大名鼎鼎的 Apache HTTP 服务器进程。它坚守在 80 端口提供 HTTP 服务。它头上的羽毛就是 Apache 的标志。 ssh守护进程:墨镜的企鹅守护着 22 端口。它看着要比其他的企鹅要更加有威严,脸上彷佛写着生人勿进四个字。原来它看护的是用于 SSH 服务的 22 端口,SSH 服务常常用于远程登陆,所以必须要仔细审查。 进程交互:管道 两位企鹅累的满头大汗,任劳任怨的在搬动着管道。一只小企鹅可以把自己手上的东西通过这个管道,传递给后面的小企鹅。 进程端口号:门 这个大厅里面,有几扇门,代表着和外部世界沟通的网络端口。 通用web端口号80: 左边的那个门上面的编号是80,这是标准的HTTP的端口号,所以这是一个标准Web端口;端口旁边有一个守卫进程,熟悉网络编程的同学应该可以看出来它就是Apache Tomcat,因为它头上戴着那个熟悉的羽毛。 ssh端口号22:右边那个门编号是22,就是SSH的端口,旁边那个戒备森严,戴墨镜耳机的保安,表明了这个端口的安全级别比较高。 ftp端口21:中间角落里面那个门的门牌都歪了,因为它已经年久失修。因为它是ftp端口(端口编号21),现在已经基本上没人用了。 系统交互:楼梯 和shell界面交互:SSH旁边的楼梯,可以上到交互界面层; 和文件系统交互:而21端口旁边,还有一个隐蔽的楼梯,上面FS的指示牌,表明从这里可以下到文件系统层。 3、地基层:文件系统 文件系统是单独的一层。这里面有很多柜子,按照行列码放整齐,表明了文件系统保存文件的方式和结构。文件放在柜子的抽屉里面,而且也是按照索引依次存放。 大部分抽屉都是关闭的,说明现在还没有人来访问。库房里有编号是421(PID(Process ID) 为 421 的进程)的一个进程正在查看文件;还有一个柜子已经打开,但旁边却没有人,可能是那个进程打开了文件,却由于某种原因没有正常关闭(比如异常或强行退出,甚至进程本身就忘了要关闭文件句柄),所以需要一条看门狗(右下角有一只小狗Watchdog)来进行处理,这代表对文件系统的监控。 4、总结、使用银行柜台业务总结linux系统处理任务流程: 这里像不像去银行柜台办理业务处理:1.请求输入—2.中断/异常处理——3.调度进程——4.服务进程处理——5.输出结果: 大家应该都去过银行办业务,由于银行的柜台就那么几个,办业务的人数又多,所以,去银行的第一件事就是排队取号: 银行柜台办理不同的业务类型: 普通业务(存取款)柜台(80web端口服务线程池):、例如有个有两个固定普通业务窗口(核心线程数为2)3位工作人员(最大线程数为3),等候座位(任务队列),一个规则《超出银行最大接待能力处理办法》(饱和等待策略)。 vip业务柜台(22 ssh端口直接优先处理): 办卡业务(办卡机直接办理):直接shell脚本处理。 如果大家办理普通业务, 首先是内存管理(叫号系统的号码): 由于银行的普通业务柜台就那么2个,办业务的人数又多。所以,去银行的第一件事就是排队取号,注意这个号号,并不代表去哪个柜台办业务,只是说你前面等待办业务的人数,不过需要等着叫号系统叫到你之后,才能办理业务,而且最终办理业务的柜台是随机的。好了,类比一下就是,银行柜台好比是物理内存,而排队序号就是虚拟地址,我们想办业务只能通过手里拿着的这个 “虚拟地址”,然后,必须通过叫号系统,将虚拟地址,即排队序号 翻译成具体的物理地址,即柜台号,我们才能办理业务。 进程管理: 进程属性: 每个柜台窗口都有窗口id(进程ID和服务端口号) 进程调度: 按照叫号系统的指示,办理普通业务的客户被安排到普通业务窗口,办理办卡业务的客户被安排办卡机办理。 线程调度: 例如有个有两个固定普通业务窗口(核心线程数为2)3位工作人员(最大线程数为3),等候座位(任务队列),一个规则《超出银行最大接待能力处理办法》(饱和拒绝策略)。 A客户(任务A)去银行(线程池)办理业务,但银行刚开始营业,窗口服务员还未就位(相当于线程池中初始线程数量为0),于是经理(线程池管理者)就安排1号工作人员(创建核心线程1去执行任务)接待A客户。 在A客户业务还没办完时,B客户(任务B)又来了,于是经理(线程池管理者)就安排2号工作人员(创建核心线程2去执行任务)接待B客户。 在A、B客户都没有办完业务的情况下,C客户(任务C)来了,于是经理(线程池管理者)就安排C客户先坐到等候座位上,并告知他:如果1、2号工作人员空出,C客户就可以前去办理业务。 此时D客户(任务D)又来了,(两个窗口都在忙,等候座位也满了)于是经理(线程池管理者)赶紧安排3号工作人员(创建非核心线程3去临时执行任务D)在大堂站着给D客户办理业务。 假如前面的业务都没有结束的时候E客户(任务E)又来了,此时2位窗口工作人员,和1位临时工作人员都在忙,等候座位也满了,于是经理只能按《超出银行最大接待能力处理办法》(饱和处理机制)拒接接待E客户。 如果是vip客户,可以直接被被安排到前面,抢占其他客户的时间办理,这显然是调度算法显然调高了vip客户(某个应用程序)的优先级,可以快速抵达“柜台”。 这当于Linux中进程的调度,它的头脑十分强大,需要按照各个应用程序的优先级顺序,必要时可以进行“抢占式调度”,抢占调度指的是一个高优先级进程是否可以强行夺取低优先级进程的处理器资源。如果可以强行夺取,就是可抢占的调度。这也是础光Linux实时性改造的一大亮点。 中断处理: 中断是指CPU接受到I/O设备发送的中断信号的一种响应。CPU会暂停正在执行的程序,保留CPU环境后自动转去执行该I/O设备的中断处理程序。执行完毕后回到断点。继续执行原来的程序。中断是由外部程序引起的所以称为外中断。小企鹅们会根据各类中断请求来进行CPU的工作安排。 类比银行业务,当前窗口柜台的客户X办理业务需要一些手续盖章而中断一段时间,但业务员可以继续办理其他客户业务,当客户X办理业务的手续盖章完成了,业务员继续唤醒客户X来办理。 三 . linux系统2: shell shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行,是一个命令解释器。另外,shell编程语言具有普通编程语言的很多特点,用这种编程语言编写的shell程序与其他应用程序具有同样的效果。 在Linux系统上,通常有好几种Linux shell可用。不同的shell有不同的特性,有些更利于创建脚本,有些则更利于管理进程。所有Linux发行版默认的shell都是bash shell。bash shell由GNU项目开发,被当作标准Unix shell。目前主要有下列版本的shell: 1.Bourne Shell:是贝尔实验室开发的。  2.BASH:是GNU的Bourne Again Shell,是GNU操作系统上默认的shell,大部分linux的发行套件使用的都是这种shell。 3.Korn Shell:是对Bourne SHell的发展,在大部分内容上与Bourne Shell兼容。  4.C Shell:是SUN公司Shell的BSD版本。 1、shell的类型 linux启动什么样的shell程序取决于用户ID配置。 在/etc/passwd文件中,在用户ID记录的第7个字段中列出了默认的shell程序。只要用户登录到某个虚拟控制台终端或是在GUI中启动终端仿真器,默认的shell程序就会开始运行。例如:用户root使用/bin/bash(bash shell)作为自己的默认shell程序. 不过还有另外一个默认shell是/bin/sh,它作为默认的系统shell,用于那些需要在启动时使用的系统shell脚本。你经常会看到某些发行版使用软链接将默认的系统shell设置成bash shell,如CentOS发行版: $ ls -l /bin/sh /bin/sh 相当于 /bin/bash --posix,使用 sh 调用执行脚本相当于打开了bash 的 POSIX 标准模式,它们之间的各种差异都是来自 POSIX 标准模式和bash的差异。 2、shell的父子关系 用于登录某个虚拟控制器终端或在GUI中运行终端仿真器时所启动的默认的交互shell,是一个父shell。 在CLI提示符后输入/bin/bash命令或其他等效的bash命令时,会创建一个新的shell程序。这个shell程序被称为子shell(child shell)。子shell也拥有CLI提示符,同样会等待命令输入。 例如:使用ps -f 使用ps -f的时候,显示出了两个进程: 第一个bash shell程序,也就是父shell进程,进程ID是3966191,运行的是bash shell程序。 第二个bash shell程序,即子shell进程,进程ID为3972365,对应的是命令ps -f。 在生成子shell进程时,只有部分父进程的环境被复制到子shell环境中。 3、常用的GUN命令总结 GUN是GNU的一种小工具,它是“GNU即不仅仅是UNIX”的缩写。GNU工具集是一系列用于UNIX操作系统的自由软件工具。这些工具提供了强大的功能,可以用于文件操作、文本处理、版本控制、编译和调试等任务。 下面是一些常见的GUN工具及其含义: 1). 文本处理工具 grep:用于在文件中搜索指定的字符串,并返回匹配的行。它支持正则表达式,可以进行高级搜索。 awk:一种强大的文本处理工具,它可以根据指定的规则对输入文件进行处理。它常用于提取、转换和格式化文本数据。 sed:流编辑器,用于对输入流进行文本转换。它可以在文件中查找和替换字符串,删除或插入行,并执行其他编辑操作。 2). 文件管理工具: GUN命令集还包含了用于文件管理的工具。 ls:命令用于列出目录内容, cp:命令用于复制文件, mv:命令用于移动或重命名文件, rm:命令用于删除文件等。 find:用于在指定目录中查找文件。它可以基于文件属性(如文件名、大小、时间戳等)进行搜索,并支持复杂的逻辑操作。 tar:用于创建和提取归档文件。它可以将多个文件和目录打包成一个单独的文件,也可以提取已打包的文件。 gzip:用于压缩文件。它使用Lempel-Ziv算法对文件进行压缩,以减小文件大小。 这些工具提供了对文件系统的基本操作。 3). 进程管理和系统监控: GUN命令集中的一些工具可用于管理和监控系统中运行的进程。 ps:命令用于列出当前运行的进程, top:命令用于实时监视系统资源的使用情况, kill:命令用于终止正在运行的进程等。 4). 网络工具 GUN命令集包含了一些网络工具,用于管理和配置网络连接。 ifconfig:命令用于配置网络接口, ping:命令用于测试网络连接的可达性, netstat:命令用于显示当前网络连接和端口状态等。 5). 软件包管理: GUN命令集中还包含了一些用于软件包管理的工具。 apt-get命令:用于在Debian和Ubuntu系统中安装和升级软件包, yum命令:用于在Red Hat和CentOS系统中进行相同的操作。 这些工具简化了软件安装和更新的过程。 6). 软件编译相关: make:用于自动构建软件项目。它根据指定的规则和依赖关系,自动编译和链接源代码文件,生成可执行文件或库文件。 gcc:GNU编译器集合,用于编译C、C++和其他支持的编程语言。它将源代码文件编译成可执行文件。 gdb:GNU调试器,用于调试程序。它可以在程序运行过程中暂停执行,并提供查看变量、堆栈和内存的功能。 四 . linux系统3: 文件管理系统 各操作系统使用的文件系统并不相同,例如,Windows98 以前的微软操作系统使用 FAT(FAT16)文件系统,Windows 2000 以后的版本使用 NTFS 文件系统,而 Linux 的正统文件系统是 Ext2。 在 CentOS 6.3 系统中,默认的文件系统是 Ext4,它是 Ext3(Ext2) 文件系统的升级版,在性能、伸缩性和可靠性方面进行了大量改进,变化可以说是翻天覆地的,比如: 向下兼容 Ext3; 最大 1EB 文件系统和 16TB 文件; 无限数量子目录; Extents 连续数据块概念; 多块分配、延迟分配、持久预分配; 快速 FSCK、日志校验、无日志模式、在线碎片整理、inode 增强、默认启用 barrier 等; Linux支持的常见文件系统 Linux 系统能够支持的文件系统非常多,除 Linux 默认文件系统 Ext2、Ext3 和 Ext4 之外,还能支持 fat16、fat32、NTFS(需要重新编译内核)等 Windows 文件系统。也就是说,Linux 可以通过挂载的方式使用 Windows 文件系统中的数据。Linux 所能够支持的文件系统在 "/usr/src/kemels/当前系统版本/fs" 目录中(需要在安装时选择),该目录中的每个子目录都是一个可以识别的文件系统。我们介绍较为常见的 Linux 支持的文件系统,如表 1 所示。 五 . linux系统4: 应用程序,用户态和内核态 应用程序是无法直接访问硬件资源的,需要通过通过内核SCI 层提供的接口来访问硬件资源。 Linux系统将自身划分为两部分,一部分为核心软件,即是kernel,也称作内核空间,另一部分为普通应用程序,这部分称为用户空间。 区分用户空间和内核空间的目的是为确保系统安全。在CPU的所有指令中,有一些指令是非常危险的,如果错用,将导致整个系统崩溃。比如:清内存、设置时钟等。因为如果应用程序和内核在同一个保护级别,那么应用程序就有可能有意或者不小心进入了内核空间,破坏了内核空间的代码和数据,系统崩溃就不足为奇。所以CPU将指令分为特权指令和非特权指令,对于那些危险的指令,只允许操作系统及其相关模块使用,普通的应用程序只能使用那些不会造成灾难的指令。Intel的CPU将特权级别分为4个级别:RING0,RING1,RING2,RING3, 内核空间级别为“RING0”, 用户空间级别为RING3。 linux的内核是一个有机的整体。每一个用户进程运行时都好像有一份内核的拷贝,每当用户进程使用系统调用时,都自动地将运行模式从用户级转为内核级,此时进程在内核的地址空间中运行。 当应用程序进程执行系统调用而陷入内核代码中执行时,我们就称进程处于内核运行态(或简称为内核态)。此时处理器处于特权级最高的(RING0级)内核代码中执行。当进程处于内核态时,执行的内核代码会使用当前进程的内核栈。每个进程都有自己的内核栈。当进程在执行用户自己的代码时,则称其处于用户运行态(用户态)。即此时处理器在特权级最低的(RING3级)用户代码中运行。当正在执行用户程序而突然被中断程序中断时,此时用户程序也可以象征性地称为处于进程的内核态。因为中断处理程序将使用当前进程的内核栈。这与处于内核态的进程的状态有些类似。 内核态与用户态是操作系统的两种运行级别,跟intel cpu没有必然的联系, 如上所提到的intel cpu提供Ring0-Ring3四种级别的运行模式,Ring0级别最高,Ring3最低。Linux使用了Ring3级别运行用户态,Ring0作为 内核态,没有使用Ring1和Ring2。 内核空间和用户空间 x86 CPU采用了段页式地址映射模型。进程代码中的地址为逻辑地址,经过段页式地址映射后,才真正访问物理内存。 通常32位Linux内核地址空间划分0~3G为用户空间,3~4G为内核空间。64位内核地址空间划分是不同的。 32位与64位具体地址分布如下图: 64位地址时将0x0000,0000,0000,0000 – 0x0000,7fff,ffff,f000这128T地址用于用户空间。参见定义: #define TASK_SIZE_MAX   ((1UL << 47) - PAGE_SIZE),注意这里还减去了一个页面的大小做为保护。 而0xffff,8000,0000,0000以上为系统空间地址。注意:该地址前4个都是f,这是因为目前实际上只用了64位地址中的48位(高16位是没有用的),而从地址0x0000,7fff,ffff,ffff到0xffff,8000,0000,0000中间是一个巨大的空洞,是为以后的扩展预留的。 而真正的系统空间的起始地址,是从0xffff,8800,0000,0000开始的,参见: #define __PAGE_OFFSET     _AC(0xffff,8800,0000,0000, UL) 而32位地址时系统空间的起始地址为0xC000,0000。 另外0xffff,8800,0000,0000 – 0xffff,c7ff,ffff,ffff这64T直接和物理内存进行映射,0xffff,c900,0000,0000 – 0xffff,e8ff,ffff,ffff这32T用于vmalloc/ioremap的地址空间。 而32位地址空间时,当物理内存大于896M时(Linux2.4内核是896M,3.x内核是884M,是个经验值),由于地址空间的限制,内核只会将0~896M的地址进行映射,而896M以上的空间用做一些固定映射和vmalloc/ioremap。而64位地址时是将所有物理内存都进行映射。 内核态与用户态 用户态Ring3状态不能访问内核态Ring0的地址空间,包括代码和数据。(例如32位Linux进程的4GB地址空间,3G-4G部 分大家是共享的,是内核态的地址空间,这里存放在整个内核的代码和所有的内核模块,以及内核所维护的数据)。用户运行一个程序,该程序所创建的进程开始是运行在用户态的,如果要执行文件操作,网络数据发送等操作,必须通过write,send等系统调用,这些系统调用会调用内核中的代码来完成操作,这时,必 须切换到Ring0,然后进入内核地址空间去执行这些代码完成操作,完成后,切换回Ring3,回到用户态。这样,用户态的程序就不能 随意操作内核地址空间,具有一定的安全保护作用。 处理器总处于以下状态中的一种: 1、内核态,运行于进程上下文,内核代表进程运行于内核空间; 2、内核态,运行于中断上下文,内核代表硬件运行于内核空间; 3、用户态,运行于用户空间。 从用户空间到内核空间有两种触发手段: 1.系统调用: 用户空间的应用程序,通过系统调用,进入内核空间。这个时候用户空间的进程要传递很多变量、参数的值给内核,内核态运行的时候也要保存用户进程的一些寄存器值、变量等。所谓的“进程上下文”,可以看作是用户进程传递给内核的这些参数以及内核要保存的那一整套的变量和寄存器值和当时的环境等。 2.中断: 硬件通过触发信号,导致内核调用中断处理程序,进入内核空间。例如网卡发送一个数据包或硬盘驱动器提供一次 IO 请求等。这个过程中,硬件的一些变量和参数也要传递给内核,内核通过这些参数进行中断处理。所谓的“中断上下文”,其实也可以看作就是硬件传递过来的这些参数和内核需要保存的一些其他环境(主要是当前被打断执行的进程环境)。

    01-03 66浏览
  • 华为将发布“大家想不到”的产品!

    “我是吹牛,但我基本都实现了!”这句话出自华为余承东之口,其直爽的个性让人印象深刻,更突显了华为对自己技术的坚定信心。今日,余承东再次放出狠话:今年华为上市了别人想得到但做不出来的产品,明年会有大家想不到的产品,未来还有大家不敢想的产品!但有了华为三折叠屏手机的前例,他的这番话似乎并非吹牛。余承东表示,去年秋天,随着先锋计划,在历经连续5年制裁之后,华为重返了智能手机的赛道。今年是华为重返赛道的第一年,实现了快速地增长,也开启了华为终端未来十年的新征程。“我们一直说,我们要敢于做别人想得到但做不出来的产品,这款产品上市了,这就是全球首款商用三折叠屏手机,改写了手机行业的历史。还有我们的原生鸿蒙操作系统也正式发布,在迅速完善成熟商用中。史上最强大的Mate 70系列,盎然向新。”余承东还预告,明年还会有大家想不到的产品,未来还有大家不敢想的产品,敬请期待。据悉,12月28日到30日,华为将在深圳举办2024花粉年会。“特别感谢花粉朋友们长期以来的支持、信任与包容!我看到有花粉朋友报名了感谢大家的热情!期待你们的到来!”余承东说。华为Mate 70系列芯片实现100%国产日前,余承东在宝安中学进行了一场讲座,途中直接掏出了华为Mate 70手机,骄傲的称其实现了芯片的100%国产。尤其是SoC,Mate 70 Pro以上的机型这次还首发了全新一代的麒麟9020芯片。按照华为官方的数据,这让Mate 70系列相比上一代华为Mate 60 Pro+,操作流畅度提升39%,游戏帧率提升31%,整机性能提升40%。具体参数方面,麒麟9020的CPU部分包含1*泰山大核2.5GHz+3*泰山中核2.15GHz+4*小核1.6GHz,GPU为Maleoon 920。CPU的频率相较之前有所提升,同时GPU也是麒麟归来后首次换代,游戏性能相较麒麟9000s、麒麟9010明显增强。麒麟9020的安兔兔跑分在125万分左右,比麒麟9010高了30%。最重要的是,麒麟9020这次实现了CPU大中小核全自研,用上了全新自研的小核心,相比于公版小核心大幅增强。根据博主的拆解发现,麒麟9020芯片面积更大,同时还集成5G-A SOC及卫星通信模块。Mate 70系列还可以升级原生鸿蒙系统,是中国首个全栈自研的移动操作系统。自此,华为做到了血统最纯正的国产手机。对华芯片出口管制是“白费工夫”对中国的芯片限制出口管制策略,在美国商务部长看来,真的是失败了。如今距离卸任只剩几周,美国商务部长雷蒙多称,美国试图限制中国获得先进半导体技术的努力并没有阻碍中国的进步,在芯片竞赛中“试图阻挠中国是‘白费工夫’(a fool's errand)”。报道称,雷蒙多认为,努力将中国排除在“敏感技术”之外仍然很重要,但对华半导体出口管制只不过使中国向全球技术主导地位迈进的步伐“减速”而已。“打败中国的唯一方法就是走在他们前面。”她说,“我们必须跑得更快,在创新方面超越他们,这才是制胜之道。”事实上,中国半导体正在快速的崛起。最典型的一个例子就是,随着Mate 60的发布,华为带着新麒麟9000系列芯片重回智能手机领域,已经说明了美国封锁芯片的做法失败。

    01-03 12浏览
  • 什么是AEB自动紧急制动?

    1什么是AEB自动紧急制动 自动紧急制动 Advanced/Automatic Emergency Braking; AEB AEB是一种汽车主动安全技术,能够实时检测车辆前方行驶环境,并在可能发生碰撞危险时自动启动车辆制动系统,使车辆减速,辅助驾驶员避免碰撞或减轻碰撞后果。 当系统计算出会有碰撞可能时,首先会通过声音、图标等警示驾驶员,若驾驶员没能对预警起到正确反应,再轻微震动制动踏板或方向盘来二次预警,过程中提前填充制动油路油压,以便全力制动能快速准确的完成。 简单点说AEB,就像你副驾驶的教练,能在危险的时候帮你踩刹车。 AEB常见变化: 自动紧急制动(AEB): 当车辆感知到即将发生碰撞时,车辆会独立停车,以避免发生碰撞,或者降低无法避免的严重程度。 向前自动紧急制动(AEB):  在汽车向前行驶时,会自动应用制动,以防止碰撞或减小冲击力。 后方自动紧急制动(AEB后部):  当汽车在倒车方向行驶时,会自动施加制动以防止碰撞或减小冲击力。 具有行人检测功能的自动紧急制动(AEB踏板):  在汽车前进时,会自动施加制动,以防止与行人或骑自行车的人发生碰撞或减少冲击力。 城市速度AEB(AEB-city): 在城市速度(通常为80公里或以下)下,会自动应用制动器以防止碰撞或减小冲击力。 高速公路速度AEB(高速公路AEB): 在高速公路速度(每小时80公里以上)时,会自动应用制动器以防止碰撞或减小冲击力。 2AEB是如何工作的 AEB系统和其他辅助系统一样,由感知、决策、执行三大部分组成,具体来说就是由雷达、摄像头作为传感器构成感知部分,传感器内置ECU或独立的外置ECU完成决策,并将制动请求通过总线发送至执行器,通常是ESP,也可以是其他装置,例如线控制动系统或独立的高压蓄能器控制器对车辆进行制动。 【感知】 常见的感知方案有三种。 视觉摄像头: 摄像头就像人眼一样,可跟踪识别行人障碍物等,感知距离大概在120米左右,但是不能精确计算与物体的相对距离,而且受不良天气的影响,因此单独采用摄像头方案的AEB系统非常少 障碍物识别,主流的主机厂一般使用Mobileye的成熟算法,测距主要是利用被识别障碍物在图像中的像素大小以及短时间差内的图像障碍物视差来实现。 毫米波雷达: 毫米波雷达的感知距离大概在150米以上,但是因为天线和尺寸的特性,雷达的角度分辨率也有限,但是较难识别行人等障碍物,而且雷达存在二次反射问题,容易出现误识别,因此单独采用雷达的AEB方案,也非常少。通过多普勒效应计算距离/差速。 _ 视觉摄像头 毫米波雷达 作用距离 100-120m 150-250m 测距精度 近/远 0.1m/1m 0.3m(远近一致) 光线与天气影响 显著 很小 物体高宽测量 精度高 精度低 车道线标识识别 有 无 行人识别准确度 高 低 成本 一般 一般 视觉摄像头与毫米波雷达系统对比 视觉摄像头融合雷达 为了能做出更可靠的AEB方案,大部分车厂将毫米波雷达与视觉摄像头结合起来,两者优势互补,视觉摄像头识别目标类型,用雷达较好的角度分辨率感知距离,判断与障碍物距离信息,然后相互确认,大幅度降低误判断 可靠性 目标真实可靠性高 互补性 全天候应用与远距离提前预警 高精度 大视角全距离条件下的高性能定位 识别能力 复杂对象的分类处理 成本 高性价比与选择灵活性 视觉与毫米波雷达融合方案优势 【决策】 决策就是用汽车的大脑(ECU)做判断,ECU能够根据传感器信息,然后按照设定的逻辑计算,得出执行命令,最后将执行命令发送给执行机构。 这里我们要提到一个词——碰撞时间TTC(Time-To-Collision)。 TTC是Time-To-Collision的缩写,直译为碰撞时间。海沃德(1972)将TTC定义为:“如果两个车辆以现在的速度和相同的路径继续碰撞,则需要碰撞的时间”。在交通冲突技术的研究中,TTC已被证明是衡量交通冲突严重程度和区分关键行为与正常行为的有效手段。一些研究的结果指出直接使用TTC作为交通决策的线索。车辆之间未来相互作用的预测涉及为受试车辆以及所有可能发生相互作用的车辆创建预测轨迹,以查看是否可能发生碰撞。 在TTC算法中,车辆被视为二维平面。每一辆都由位于平面中特定位置的矩形表示。每辆车都有速度和加速度,速度与加速度都是矢量。 每辆“主体”车辆与附近的车辆会发生相互作用,不存在先导车辆或跟随车辆。主体车辆的动作遵循三条规则: 1. 跟随前方的车辆 2. 避免碰撞 3. 基于TTC的数值来调整所采取的动作的强度 TTC是针对每两辆相互足够接近车辆来计算相互时间长。根据其老位置、新速度矢量和新加速度矢量计算车辆的新坐标。它的新速度矢量同样是从它的旧速度和新加速度矢量计算出来的。通过对期望轨迹、道路几何形状、交通控制(例如,停止标志、交通信号和速度限制)以及邻近车辆的接近来确定加速度矢量。如果不引起任何碰撞,加速度被认为是可接受的。 在车辆行驶时,实时地计算出本车与前车在当前运动状态下,继续运动直到发生碰撞所需要的时间(即TTC),来与事先设定好的阀值进行比较:当 TTC 值小于 FCW 阀值时,系统采用视觉、听觉或触觉向驾驶员报警;当 TTC 小于 AEB 阀值时,系统以一定的减速度采取紧急制动。 【执行】 执行可以简单的理解为驾驶员帮你踩刹车。 执行机构,通常是通过ESP或其它装置,例如i—Booster或者独立的高压蓄能器控制器——对车辆刹车系统进行控制制动。 但是在执行刹车之前,一般都会有碰撞预警系统做提示,让你自己处理危险,或者有个心理准备。 提醒阶段主要是通过声学和光学的方式提醒驾驶者对车辆即将可能发生碰撞进行接管,并对制动系统进行提前减压。同时还会根据车辆实际的配置对一些功能进行调节,比如可变悬架。 到了预制动阶段,AEB系统首先会试图通过短促的制动来唤醒驾驶员,同时车辆也会对安全带进行预紧。此时制动系统开始对刹车盘施加制动力,但通常只有全部制动能力的30%。此阶段仍然可以通过驾驶员的干涉来完全避免碰撞。 而部分制动阶段时AEB系统开始使用50%的制动力来为车辆减速,同时配备自动车窗和天窗的车辆会开始主动关闭,避免驾驶员在接下来可能发生的碰撞中被抛出窗外,在进入部分制动时,AEB系统也会打开双闪警示灯提醒后车。此时如果驾驶员进行干预,仍然有可能避免发生碰撞。 最后是全力制动阶段,在这一阶段AEB系统将会放弃依靠驾驶员的制动行为,并通过执行器进行100%刹车力度的制动。与此同时车辆也会收到信号开始着手为接下来可能存在的碰撞风险做好准备,比如将安全带收紧等。 整个执行过程的持续时间通常只有两三秒钟,我们甚至很难通过身体的感受来区分第二和第三阶段的区别。通常来说AEB系统会根据危险等级依次进入四个阶段,但也有一些情况会跳过其中某个或某几个阶段。比如面对突然出现的行人,或是前方障碍物与当前车辆的距离迅速缩短。 3AEB工作范围 可以工作在不同的道路上。 目前大部分车厂采用视觉融合毫米波雷达的方案,具有车辆识别和行人识别的功能。 车辆识别: 在40km/h以内,可以做到避免与静止车辆碰撞 在与前方运动的速度差小于40km/h以内,可以做到避免碰撞 如果运动时速与前车大于40km/h时,降低事故损伤程度 行人识别:(只能探测到身高80cm以上的人) 时速30km/h以内,避免与行人发生碰撞 时速在30km/h-90km/h之间,有可能会撞上,但是可以降低损伤事故 时速超过90km/h,行人识别功能关闭 车速过低<5km/h时,AEB不工作,速度太高>150km/h时,也不工作,目前的AEB并不是任何车速下都能刹车 除了速度范围,一般车型的AEB也只能识别车辆和行人两种,虽然部分AEB带有骑行识别功能,但识别率很低 4AEB的技术重点是什么 传感器融合方案 传感器数据融合的基本原理主要是综合多个传感器获取的数据和信息,把多传感器在空间和时间上冗余或互补信息依据某种准则来进行组合,获得对被测对象的一致性描述 传感器融合的优势: 1.增强系统生存能力 2.扩展空间覆盖范围 3.扩展时间覆盖范围 4.提高可信度 5.降低信息的模糊度 6.改进探测性能 7.提高空间分辨率 8.增加了测量空间维数 9.成本低、质量轻、占空小 首先摄像头和毫米波雷达分别针对观测目标收集数据,然后对各传感器的输出数据进行特征提取与模式识别处理,并将目标按类别进行准确关联,最后利用融合算法将同一目标的所有传感器数据进行整合,从而得出关于目标威胁性的一致性结论。 数据融合也有不同的策略,比如有的方案会选择将不同传感器各自处理生成的目标数据进行融合,有些会选择将不同传感器的原始数据进行融合,避免一些原始数据的丢失。在智能驾驶场景下,传感器的数据融合大致有3种策略:数据级、特征级和决策级。 数据级融合 数据级融合是最低层次的融合,直接对传感器的感测数据进行融合处理,然后基于融合后的结果进行特征提取和判断决策。这种融合处理方法的主要优点是:只有较少数据量的损失,并能提供其他融合层次所不能提供的其他细微信息,所以精度最高。他的局限性包括: 1.所要处理的传感器数据量大,故障处理代价高,处理时间长,实时性差 2.这种融合是在信息的最底层进行的,传感器信息的不确定性、不完全性和不稳定性要求在融合时有较高的纠错处理能力 3.它要求传感器是同类的,即提供对同一观测对象的同类观测数据 4.数据通信量大,抗干扰能力差 此级别的数据融合用于多源图像复合、图像分析和理解以及同类雷达波形直接合成 特征级融合 特征级融合属于中间层次的融合,先由每个传感器抽象出自己的特征向量(可以是目标的边缘、方向和速度等信息),融合中心完成的是特征向量的融合处理。一般来说,提取的特征信息应是数据信息的充分表示量或充分统计量。其优点在于实现了可观的数据压缩,降低对通信的要求,有利于实时处理,但由于损失了一部分有用信息,使得融合性能有所下降。 特征级融合可以划分目标状态信息融合和目标特征信息融合两大类。 目标状态信息融合主要应用于目标跟踪,融合处理首先对传感器进行数据处理,完成数据校准,然后进行数据相关的状态估计。具体数学方法包括卡尔曼滤波理论、联合概率数据关联、多假设法、交互式多模型法和序贯处理理论。 目标特征信息融合实际属于模式识别问题,常见的数学方法有参量模板法、特征压缩和聚类方法、人工神经网络、K阶最近邻法等。 决策级融合 决策及融合是一种高层次的融合,先由每个传感器基于自己的数据做出决策,然后融合中心完成的是局部决策的融合处理。决策融合是三级融合的最终结果,是直接针对具体决策目标的,融合结果直接影响决策水平。这种处理方法数据损失量大,相对来说精度最低,但通信量小,抗干扰能力强,对传感器依赖小,不要求是同质传感器,融合中心处理代价低。常见的算法由Bayes推断、专家系统、D-S证据推理、模糊集理论等。 特征级和决策级的融合不要求多传感器是同类的。另外由于不同融合级别的融合算法各有利弊,所以为了提高信息融合技术的速度和精准,需要开发高效的局部传感器处理策略以及优化融合中心的融合规则。 【信息融合的主要技术和方法】 ・信号处理与估计理论方法 信号处理与估计理论方法包括用于图像增强与处理的小波变换技术、加权平衡、最小二乘、Kalman滤波等线性估计技术,以及扩展Kalman滤波(EKF),Gauss和滤波(GPS)等非线性估计技术等 ・统计推断方法 统计推断方法包括经典推理、Bayes理论、证据推理、随机集理论以及支持向量机理论等 ・信息论方法 信息论方法运用优化信息度量的手段融合多源数据,从而获得问题的有效解决。经典算法有熵方法、最小描述长度方法(MDL)等。 ・人工智能方法 人工智能方法包括模糊逻辑、神经网络、遗传算法、基于规则的推理以及专家系统、逻辑模板法、品质因数法(FOM)等。 5AEB的品牌名称 阿尔法罗密欧:Autonomous Emergency Braking 奥迪:Automatic Brake Assist 宝马:Driving Assistant Plus 福特:Active City Stop 霍尔顿:Automatic Emergency Braking City Stop 本田:Collision Mitigation Braking System 现代:Autonomous Emergency Braking 起亚:Autonomous Emergency Braking 路虎:Autonomous Emergency Braking 雷克萨斯:Pre-collision Safety System with Brake Assist 马自达:Smart City Brake Support 梅赛德斯·奔驰:PRE-SAFE Brake 迷你版:City Collision Mitigation 三菱:Forward Collision Mitigation 日产:Intelligent Emergency Braking with Forward-Collision Warning 标致:Active City Brake 斯柯达:Multi-Collision Braking 斯巴鲁:Pre-Collision Braking System (Eyesight) 丰田:Pre-Crash Safety System 大众:City Emergency Braking 沃尔沃:City Safety 6AEB使用注意事项 关于AEB大家有一个普遍的误解——好的AEB系统应该避免一切碰撞。 在目前的技术条件下,工程师并不能完全排除AEB系统发生各种故障或错误,却依然能发出减速度请求的情况,例如由于识别到错误的目标而导致AEB触发,车辆突然减速。特别地,在高速公路上行驶的时,如果过度减速,很容易导致追尾事故。出于功能安全(Functional Safety)的考虑,目前市场上的多数AEB系统最多允许车速降低60kph。当车辆减速达到这一限制的时候,制动干预应该逐渐退出(仅制动退出,并非AEB系统退出),由驾驶者接管。

    01-03 43浏览
  • 射频传导开关

    引言:分立式开关也叫射频传导开关,作用是将多路射频信号中的任一路或几路通过控制逻辑连通,以实现不同信号路径的切换,包括接收与发射的切换、不同频段间的切换等。

    2024-12-20 191浏览
  • 利用参考时钟,实现Cyclone10LP器件的串行通信数据恢复

    对于非源同步的低速串行数据通信场景,会存在通信对端的时钟频率相对有偏差的情况,导致数据接收端不能正确的采样;这时候利用Altera中高端器件的高速收发器或者LVDS serdes中的SOFT-CDR及DPA功能便能解决此问题;但...

    2024-11-29 143浏览
  • rtp协议:rtcp包格式和传输间隔

    rtcp包格式和传输间隔

    2024-11-25 88浏览
  • 总结:rtsp协议:响应状态码和请求方法

    rtsp:响应状态码和请求方法汇总

    2024-11-25 329浏览
  • 什么是强电?什么是弱电?还傻傻分不清楚?

    强电 强电这一概念是相对于弱电而言,一般并无电压电流的具体界限划分。 电子类人们习惯分为强电(电力)和弱电(信息)两部分。两者既有联系又有区别,一般来说强电的处理对象是能源(电力),其特点是电压高、电流大、功率大、频率低,主要考虑的问题是减少损耗、提高效率,弱电的处理对象主要是信息,即信息的传送和控制,其特点是电压低、电流小、功率小、频率高,主要考虑的是信息传送的效果问题,如信息传送的保真度、速度、广度、可靠性。一般来说,弱电工程包括电视工程、通信工程、消防工程、保安工程、影像工程等等和为上述工程服务的综合布线工程。弱电是针对强电而言的。强电=(380/220)、高压不管。 在电力系统中,36v以下的电压称为安全电压,3kv以下的电压称为低压,3kv以上的电压称为高压,直接供电给用户的线路称为配电线路,如用户电压为380/220v,则称为低压配电线路,也就是家庭装修中所说的强电(因它是家庭使用最高的电压)。强电一般是指交流电电压在24V以上。如家庭中的电灯、插座等,电压在110V~220V。家用电气中的照明灯具、电热水器、取暖器、冰箱、电视机、空调、音响设备等用电器均为强电电气设备。 智能化系统为建筑设备监控系统、安全防范系统、通讯网络系统、信息网络系统、火灾自动报警及消防联动等系统,以集中监视、控制和管理为目的构成的综合系统;家庭内各种数据采集、控制、管理及通讯的控制或网络系统等线路,则称为智能化线路(也就是家庭装修中所说的弱电)。弱电一般是指直流电路或音频、视频线路、网络线路、电话线路,直流电压一般在24V以内。家用电气中的电话、电脑、电视机的信号输入(有线电视线路)、音响设备(输出端线路)等用电器均为弱电电气设备。 弱电 弱电一般是指直流电路或音频、视频线路、网络线路、电话线路,直流电压一般在32V以内。家用电器中的电话、电脑、电视机的信号输入(有线电视线路)、音响设备(输出端线路)等用电器均为弱电电气设备。 建筑中的弱电主要有两类:一类是国家规定的安全电压等级及控制弱电电压等低电压电能,有交流与直流之分,如24V直流控制电源,或应急照明灯备用电源。另一类是载有语音、图像、数据等信息的信息源,如电话、电视、计算机的信息。 狭义上的建筑弱电主要是指:安防(监控、周界报警、停车场)、消防(电气部分)、楼控以及网络综合布线和音频系统等。 与强电的区别 强电和弱电从概念上讲,一般是容易区别的,主要区别是用途的不同。强电是用作一种动力能源,弱电是用于信息传递。它们大致有如下区别: 1、交流频率不同 强电的频率一般是50Hz,称“工频”,意即工业用电的频率:弱电的频率往往是高频或特高频,以KHz(千赫)、MHz(兆赫)计。 2、功率、电压及电流大小不同 强电功率以千瓦、兆瓦计、电压以伏、千伏计,电流以安、千安计;弱电功率以瓦、毫瓦计,电压以伏、毫伏计,电流以毫安、微安计,因而其电路可以用印刷电路或集成电路构成。 3、传输方式不同 强电以输电线路传输,弱电的传输有有线与无线之分。无线电则以电磁波传输。 4、分类 建筑中的弱电主要有两类:一类是国家规定的安全电压等级及控制电压等低电压电能,有交流与直流之分,如24V直流控制电源,或应急照明灯备用电源。另一类是载有语音、图像、数据等信息的信息源,如电话、电视、计算机的信息。 功能及应用 电力应用按照电力输送功率的强弱可以分为强电与弱电两类。建筑及建筑群用电一般指交流220V50Hz及以上的强电。主要向人们提供电力能源,将电能转换为其他能源,例如空调用电,照明用电,动力用电等等。 智能建筑中的弱电主要有两类,一类是国家规定的安全电压等级及控制电压等低电压电能,有交流与直流之分,交流36V以下,直流24V以下,如24V直流控制电源,或应急照明灯备用电源。另一类是载有语音、图像、数据等信息的信息源,如电话、电视、计算机的信息。 人们习惯把弱电方面的技术称之为弱电技术。可见智能建筑弱电技术基本涵义仍然是原来意义上的弱电技术。只不过随着现代弱电高新技术的迅速发展,智能建筑中的弱电技术应用越来越广泛。一般情况下,弱电系统工程指第二类应用。 主要包括:1、电视信号工程,如电视监控系统,有线电视。2、通信工程,如电话。3、智能消防工程。4、扩声与音响工程,如小区的中背景音乐广播,建筑物中的背景音乐。5、综合布线工程,主要用于计算机网络。随着计算机技术的飞速发展,软硬件功能的迅速强大,各种弱电系统工程和计算机技术的完美结合,使以往的各种分类不再像以前那么清晰。各类工程的相互融合,就是系统集成。 常见的弱电系统工作电压包括:24VAC、16.5VAC、12VDC,有的时候220VAC也算弱电系统,比如有的由摄像机的工作电压是220VAC,我们就不能把它们归入强电系统。弱电系统主要针对的是建筑物,包括大厦、小区、机场、码头、铁路、高速公路等。 常见的弱电系统包括:闭路电视监控系统、防盗报警系统、门禁系统、电子巡更系统、停车场管理系统、可视对讲系统、家庭智能化系统及安防系统、背景音乐系统、LED显示系统、等离子拼接屏系统、DLP大屏系统、三表抄送系统、楼宇自控系统、防雷与接地系统、寻呼对讲及专业对讲系统、弱电管道系统、UPS不间断电源系统、机房系统、综合布线系统、计算机局域网系统、物业管理系统、多功能会议室系统、有线电视系统、卫星电视系统、卫星通讯系统、消防系统、电话通讯系统、酒店管理系统、视频点播系统、人力资源管理系统等等。 强电与弱电为什么分开 区分强弱电是因为强弱电之间能不能共槽,否则会干扰弱电的信息传输,影响家中电视、电脑、电话的使用,甚至还可能造成火灾。 那么,在强弱电施工中,如何避免弱电被干扰,以及线路布置中具体有哪些注意事项呢,主要有以下5点: 1、强弱电要分开 在装修中,电路布线改造最忌讳的事情,是把所有线路收纳到一起。所以在改造电路施工时,国家标准是:强弱电要分开走线,禁止共管共盒,且强弱电之间线路的平行距不得小于30cm。但是考虑到实际情况(现代公寓没有做到30cm以上的条件),讲究一些的装修公司会至少留出15厘米,保证留出距离。这个距离也能保证不会出现强电干扰弱电的情况。 2、不同弱电线也要分开 不同的弱电线在一起也会造成信号干扰,为避免这种情况,像电话线、网线、电视线等弱电线在线路作业时一定要分开穿管,不可共用同一条管。 3、布线在前走线在后 无论是强电还是弱电,在布线施工时,应遵循先安装管路再穿线的规则,这样做是为了防止出现无法抽动的现象,方便以后进行维护换线。 4、同一管内线路不宜过多 在强弱电线路布设时,所需管数应当根据导线数量而变化,原则上一根管子不能超过四根导线,千万不能有导线把管内空间塞满的情况。像一般弯管的利用率在四成到五成之间,直线管可以稍高一些,在五成到六成之间为宜。 5、忌避免折断式直角弯 在施工走线中,遇到线路需转弯的情况,千万不能出现折断式的转直角,这样很可能会影响信号强度,且造成导线无法穿过的情况,因此,最好采用大弯,金属角来过弯连接导线。(来源:网络) 两者既有联系又有区别,一般区分原则是强电的处理对象是能源(电力),其特点是电压高、电流大、功率大、频率低,主要考虑的问题是减少损耗、提高效率,弱电的处理对象主要是信息,即信息的传送和控制,其特点是电压低、电流小、功率小、频,主要考虑的是信息传送的效果问题,如信息传送的保真度、速度、广度、可靠性。

    2024-11-25 86浏览
  • 晶圆、封装为什么重要?看完这份芯片资料你就知道了

    现代科技推动下,芯片制造全流程堪称一场精密的工艺之旅,整个工艺过程不仅展示了材料科学的前沿突破,更是人类智慧与先进科技的完美融合。在全球数字化转型背景下,了解半导体制造过程对于从事电子制造领域或对此感兴趣的人来说极为重要。

    2024-11-22 102浏览
正在努力加载更多...
EE直播间
更多
广告