真人娱乐-安全吗Leaf是美团基础研发平台推出的一个分布式ID生成服务,名字取自德国哲学家、数学家莱布尼茨的一句话:“There are no two identical leaves in the world.”Leaf具备高可靠、低延迟、全局唯一等特点。目前已经广泛应用于美团金融、美团外卖、美团酒旅等多个部门。具体的技术细节,可参考此前美团技术博客的一篇文章: 《Leaf美团分布式ID生成服务》 。近日,Leaf项目已经在Github上开源: 希望能和更多的技术同行一起交流、共建。
Leaf在设计之初就秉承着几点要求: 全局唯一,绝对不会出现重复的ID,且ID整体趋势递增。 高可用,服务完全基于分布式架构,即使MySQL宕机,也能容忍一段时间的数据库不可用。 高并发低延时,在CentOS 4C8G的虚拟机上,远程调用QPS可达5W+,TP99在1ms内。 接入简单,直接通过公司RPC服务或者HTTP调用即可接入。
Leaf第一个版本采用了预分发的方式生成ID,即可以在DB之上挂N个Server,每个Server启动时,都会去DB拿固定长度的ID List。这样就做到了完全基于分布式的架构,同时因为ID是由内存分发,所以也可以做到很高效。接下来是数据持久化问题,Leaf每次去DB拿固定长度的ID List,然后把最大的ID持久化下来,也就是并非每个ID都做持久化,仅仅持久化一批ID中最大的那一个。这个方式有点像游戏里的定期存档功能,只不过存档的是未来某个时间下发给用户的ID,这样极大地减轻了DB持久化的压力。
整体上,V1版本实现比较简单,主要是为了尽快解决业务层DB压力的问题,而快速迭代出的一个版本。因而在生产环境中,也发现了些问题。比如: 在更新DB的时候会出现耗时尖刺,系统最大耗时取决于更新DB号段的时间。 当更新DB号段的时候,如果DB宕机或者发生主从切换,会导致一段时间的服务不可用。
为了解决这两个问题,Leaf采用了异步更新的策略,同时通过双Buffer的方式,保证无论何时DB出现问题,都能有一个Buffer的号段可以正常对外提供服务,只要DB在一个Buffer的下发的周期内恢复,就不会影响整个Leaf的可用性。
这个版本代码在线上稳定运行了半年左右,Leaf又遇到了新的问题: 号段长度始终是固定的,假如Leaf本来能在DB不可用的情况下,维持10分钟正常工作,那么如果流量增加10倍就只能维持1分钟正常工作了。 号段长度设置的过长,导致缓存中的号段迟迟消耗不完,进而导致更新DB的新号段与前一次下发的号段ID跨度过大。
假设 服务QPS为Q,号段长度为L,号段更新周期为T ,那么 Q * T = L 。最开始L长度是固定的,导致随着Q的增长,T会越来越小。但是Leaf本质的需求是 希望T是固定的 。那么如果L可以和Q正相关的话,T就可以趋近一个定值了。所以Leaf每次更新号段的时候,根据上一次更新号段的周期T和号段长度step,来决定下一次的号段长度nextStep: T30min,nextStep = step / 2
至此,满足了号段消耗稳定趋于某个时间区间的需求。当然,面对瞬时流量几十、几百倍的暴增,该种方案仍不能满足可以容忍数据库在一段时间不可用、系统仍能稳定运行的需求。因为本质上来讲,Leaf虽然在DB层做了些容错方案,但是号段方式的ID下发,最终还是需要强依赖DB。
在MySQL这一层,Leaf目前采取了半同步的方式同步数据,通过公司DB中间件Zebra加MHA做的主从切换。未来追求完全的强一致,会考虑切换到 MySQL Group Replication 。
现阶段由于公司数据库强一致的特性还在演进中,Leaf采用了一个临时方案来保证机房断网场景下的数据一致性: 多机房部署数据库,每个机房一个实例,保证都是跨机房同步数据。 半同步超时时间设置到无限大,防止半同步方式退化为异步复制。
针对服务自身的监控,Leaf提供了Web层的内存数据映射界面,可以实时看到所有号段的下发状态。比如每个号段双buffer的使用情况,当前ID下发到了哪个位置等信息都可以在Web界面上查看。
第1位置为0。 第2-42位是相对时间戳,通过当前时间戳减去一个固定的历史时间戳生成。 第43-52位是机器号workerID,每个Server的机器ID不同。 第53-64位是自增ID。
在这里,Leaf提供了Java版本的实现,同时对Zookeeper生成机器号做了弱依赖处理,即使Zookeeper有问题,也不会影响服务。Leaf在第一次从Zookeeper拿取workerID后,会在本机文件系统上缓存一个workerID文件。即使ZooKeeper出现问题,同时恰好机器也在重启,也能保证服务的正常运行。这样做到了对第三方组件的弱依赖,一定程度上提高了SLA。
未来规划 号段加载优化:Leaf目前重启后的第一次请求还是会同步加载MySQL,之所以这么做而非服务初始化加载号段的原因,主要是MySQL中的Leaf Key并非一定都被这个Leaf服务节点所加载,如果每个Leaf节点都在初始化加载所有的Leaf Key会导致号段的大量浪费。因此,未来会在Leaf服务Shutdown时,备份这个服务节点近一天使用过的Leaf Key列表,这样重启后会预先从MySQL加载Key List中的号段。 单调递增:简易的方式,是只要保证同一时间、同一个Leaf Key都从一个Leaf服务节点获取ID,即可保证递增。需要注意的问题是Leaf服务节点切换时,旧Leaf 服务用过的号段需要废弃。路由逻辑,可采用主备的模型或者每个Leaf Key 配置路由表的方式来实现。
分布式ID生成的方案有很多种,Leaf开源版本提供了两种ID的生成方式: 号段模式:低位趋势增长,较少的ID号段浪费,能够容忍MySQL的短时间不可用。 Snowflake模式:完全分布式,ID有语义。
读者可以按需选择适合自身业务场景的ID下发方式。希望美团的方案能给予大家一些帮助,同时也希望各位能够一起交流、共建。
近日,饱受无法远程登录到新安装在VMWare上的Ubuntu虚拟机,如今发现问题所在,故记录此问题的解决方案,以备后用。
Ubuntu虚拟机的联网方式应该选择Bridged(桥接模式),可以在Ubuntu中配置静态IP,或者使用路由器(自己使用的是WiFi连接,经过无线路由器进行配置)通过DCHP服务器进行IP地址分配(一般配置后不再改变,通过MAC地址识别来分配地址,除非IP地址已经耗尽)。关于VMWare的几种联网方式,可以参考:vmware中的bridge、nat、host-only的区别
查看22端口是否处于LISTEN状态或ssh服务是否已经运行,如果是,则说明Ubuntu主机上的ssh已经配置好了。
依照提示,逐步配置,端口号选择22,进行个性化配置后,即可进行远程登录。
1、为了在xshell中正常的显示中文,我们要把xshell编码方式改成utf8。具体操作为:
gPhoto2是一个免费软件,提供了在类Unix系统上通过终端来控制数码相机的功能,开发队伍来自世界各地的自愿者,现在已支持超过1700多 款机型。可以运行在Linux, FreeBSD, NetBSD, MacOS X等系统上。同时在大部分发行版的软件仓库中都有。通过Picture Transfer Protocol (PTP) 协议来和相机通讯。
硬件开发2015-03-27 14:46:00玩转树莓派-Raspberry,内置的防火墙ufw设置和启用ufw是一个主机端的iptables类防火墙配置工具,比较容易上手。如果你有一台暴露在外网的树莓派,则可通过这个简单的配置提升安全性。
作用:开启了防火墙并随系统启动同时关闭所有外部对本机的访问(本机访问外部正常)。
这样设置已经很安全,如果有特殊需要,可以使用sudo ufw allow开启相应服务。
硬件开发2015-03-27 09:49:00推广支持天猫精灵及手机APP控制LED等控制蓝牙模块-TB-01TB-01 智能照明模块是一款基于 EP2S12F40 芯片设计的符合蓝牙 4.2 低功耗SIGE MESH 的蓝牙模块;该模块 支持天猫精灵直接控制且拥有蓝牙 mesh 组网
功能的蓝牙模块;设备之间通过对等星型网络通讯,采用蓝牙广播进行通讯,可保证多设备情况下响应及时,它主要应用于智能灯控。可满足低功耗、低延
模块热线 刘生硬件开发2020-01-10 17:09:00推荐支持1主25从蓝牙模块-IN612L-MAIN612L-MA模块支持蓝牙5.0协议及2.4G私有协议,该模块体积小,功能齐全,支持1主25从,或者多主多从模块,支持AT透传命令的应用
IN612L是Inplay公司的SwIFtRADIO TM SOC产品系列之一,具有多模协同2.4G无线全协议栈的SOC芯片;如2mbps高数据速率模式,125kbps/500kbps编码物理速率支持,以及扩展的广告功能。用户定义的SDR协议栈(2.4G协议栈)及其内置的Bluetooth 5协议栈可以同时运行,因此可以很好地解决和优化许多复杂的网络应用。
该芯片内部增加数字加速引擎,加密模块,语言处理模块, 数字加速引擎最多能处理16*16矩阵运算,支持矩阵加,减,乘,除等多种运算, 加密模块可以为客户提供更好的加密算法支持AES128,AES256,SHA-1,SHA-2和ECC加密功能,以及内部有唯一ID号,语言处理模块支持1:4语言压缩跟解压,支持PDM及I2S输出
低容量的特性,使得MRAM组件更适用于嵌入式系统,其中SoC和ASIC可更容易地设计兼容的DDR控制器。
目前行业内已通过MRAM来部分替代DRAM,比如IBM就在去年推出了Flash Core模块,以及希捷在FMS2017上展示的原型。
当然我们并不指望 mram 专用存储设备可以迅速在市面上普及(SSD或NVDIMM)。毕竟市面上的混合型SSD,仍依赖于NAND闪存作为主要存储介质。
作为与格罗方德合作生产的第二款分立型MRAM器件,他们还在GloFo的22nmFD-SOI工艺路线图中嵌入了MRAM。
鉴于该工厂取消了7nm和更低制程的计划,包括嵌入式内存在内的特殊工艺对其未来显然至关重要。
需要指出的是,尽管Everspin不是唯一一家致力于MRAM技术的公司,但它们却是分立式MRAM器件的唯一供应商。Everspin在磁存储器设计,制造和交付到相关应用中的知识和经验在半导体行业中是独一无二的。Everspin拥有超过600项有效专利和申请的知识产权产品组合,在平面内和垂直磁隧道结(MTJ)STT-MRAM位单元的开发方面处于市场领先地位。硬件开发2020-02-19 14:57:00三轴加速计【围观】麒麟芯片遭打压成绝版,华为亿元投入又砸向了哪里?>
加速计它可以在倾斜检测应用中测量静态重力加速度,还可以测量运动或冲击导致的动态加速度
主要功能 单振、双振检测 横屏、竖屏检测 唤醒检测 活动、非活动检测 自由落体检测 计步 大动作检测
活动和非活动检测功能通过比较任意轴上的加速度与用户设置的阈值来检测有无运动发生
内嵌功能 计步 计步功能工作在25Hz,ODR配置必须>
= 25Hz 内置温度传感器
硬件开发2016-07-12 19:43:00基于库函数STM32流水灯的实现【围观】麒麟芯片遭打压成绝版,华为亿元投入又砸向了哪里?>
硬件开发2016-06-30 01:55:00openwrt编译环境搭建【围观】麒麟芯片遭打压成绝版,华为亿元投入又砸向了哪里?>
然后配置文件,这个是定制目标路由器的功能或者硬件信息的 make menuconfig
刚买了一个wrtnode开发板,有兴趣的盆友一起研究下呗硬件开发2016-05-16 10:49:00硬件知识——RAID【围观】麒麟芯片遭打压成绝版,华为亿元投入又砸向了哪里?>
RAID 0又称为Stripe或Striping,它代表了所有RAID级别中最高的存储性能。RAID 0提高存储性能的原理是把连续的数据分散到多个磁盘上存取,这样,系统有数据请求就可以被多个磁盘并行的执行,每个磁盘执行属于它自己的那部分数据请求。这种数据上的并行操作可以充分利用总线的带宽,显著提高磁盘整体存取性能。
系统向三个磁盘组成的逻辑硬盘(RAID0 磁盘组)发出的I/O数据请求被转化为3项操作,其中的每一项操作都对应于一块物理硬盘。通过建立RAID 0,原先顺序的数据请求被分散到所有的三块硬盘中同时执行。从理论上讲,三块硬盘的并行操作使同一时间内磁盘读写速度提升了3倍。 但由于总线带宽等多种因素的影响,实际的提升速率肯定会低于理论值,但是,大量数据并行传输与串行传输比较,提速效果显著显然毋庸置疑。
RAID 0的缺点是不提供数据冗余,因此一旦用户数据损坏,损坏的数据将无法得到恢复。RAID0运行时只要其中任一块硬盘出现问题就会导致整个数据的故障。一般不建议企业用户单独使用。
RAID 1通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据。当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID 1可以提高读取性能。RAID 1是磁盘阵列中单位成本最高的,但提供了很高的数据安全性和可用性。当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据。
RAID1是将一个两块硬盘所构成RAID磁盘阵列,其容量仅等于一块硬盘的容量,因为另一块只是当作数据“镜像”。RAID1磁盘阵列显然是最可靠的一种阵列,因为它总是保持一份完整的数据备份。它的性能自然没有RAID0磁盘阵列那样好,但其数据读取确实较单一硬盘来的快,因为数据会从两块硬盘中较快的一块中读出。RAID1磁盘阵列的写入速度通常较慢,因为数据得分别写入两块硬盘中并做比较。RAID1磁盘阵列一般支持“热交换”,就是说阵列中硬盘的移除或替换可以在系统运行时进行,无须中断退出系统。RAID1磁盘阵列是十分安全的,不过也是较贵一种RAID磁盘阵列解决方案,因为两块硬盘仅能提供一块硬盘的容量。RAID1磁盘阵列主要用在数据安全性很高,而且要求能够快速恢复被破坏的数据的场合。
在这里,需要注意的是,读只能在一块磁盘上进行,并不会进行并行读取,性能取决于硬盘中较快的一块。写的话通常比单块磁盘要慢,虽然是并行写,即对两块磁盘的写入是同时进行的,但因为要比较两块硬盘中的数据,所以性能比单块磁盘慢。
RAID1通过硬盘数据镜像实现数据的冗余,保护数据安全,在两块盘上产生互为备份的数据,当原始数据繁忙时,可直接从镜像备份中读取数据,因此RAID1可以提供读取性能。
RAID1是硬盘中单位成本最高的,但提供了很高的数据安全性和可用性,当一个硬盘失效时,系统可以自动切换到镜像硬盘上读/写,并且不需要重组失效的数据。
写性能:两块磁盘都要写入,虽然是并行写入,但因为要比对,故性能单块磁盘慢。
冗余:只要系统中任何一对镜像盘中有一块磁盘可以使用,甚至可以在一半数量的硬盘出现问题时系统都可以正常运行。
RAID 5是RAID 0和RAID 1的折中方案。RAID 5具有和RAID0相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度比对单个磁盘进行写入操作稍慢。同时由于多个数据对应一个奇偶校验信息,RAID5的磁盘空间利用率要比RAID 1高,存储成本相对较低,是目前运用较多的一种解决方案。
RAID5把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上,其中任意N-1块磁盘上都存储完整的数据,也就是说有相当于一块磁盘容量的空间用于存储奇偶校验信息。因此当RAID5的一个磁盘发生损坏后,不会影响数据的完整性,从而保证了数据安全。当损坏的磁盘被替换后,RAID还会自动利用剩下奇偶校验信息去重建此磁盘上的数据,来保持RAID5的高可靠性。
做raid 5阵列所有磁盘容量必须一样大,当容量不同时,会以最小的容量为准。 最好硬盘转速一样,否则会影响性能,而且可用空间=磁盘数n-1,Raid 5 没有独立的奇偶校验盘,所有校验信息分散放在所有磁盘上, 只占用一个磁盘的容量。
RAID10也被称为镜象阵列条带。象RAID0一样,数据跨磁盘抽取;象RAID1一样,每个磁盘都有一个镜象磁盘, 所以RAID 10的另一种会说法是 RAID 0+1。RAID10提供100%的数据冗余,支持更大的卷尺寸,但价格也相对较高。对大多数只要求具有冗余度而不必考虑价格的应用来说,RAID10提供最好的性能。使用RAID10,可以获得更好的可靠性,因为即使两个物理驱动器发生故障(每个阵列中一个),数据仍然可以得到保护。RAID10需要4 + 2*N 个磁盘驱动器(N>
=0), 而且只能使用其中一半(或更小, 如果磁盘大小不一)的磁盘用量, 例如 4 个 250G 的硬盘使用RAID10 阵列, 实际容量是 500G。
Raid10其实结构非常简单,首先创建2个独立的Raid1,然后将这两个独立的Raid1组成一个Raid0,当往这个逻辑Raid中写数据时,数据被有序的写入两个Raid1中。磁盘1和磁盘2组成一个Raid1,磁盘3和磁盘4又组成另外一个Raid1;这两个Raid1组成了一个新的Raid0。如写在硬盘1上的数据1、3、5、7,写在硬盘2中则为数据1、3、5、7,硬盘中的数据为0、2、4、6,硬盘4中的数据则为0、2、4、6,因此数据在这四个硬盘上组合成Raid10,且具有raid0和raid1两者的特性。
虽然Raid10方案造成了50%的磁盘浪费,但是它提供了200%的速度和单磁盘损坏的数据安全性,并且当同时损坏的磁盘不在同一Raid1中,就能保证数据安全性。假如磁盘中的某一块盘坏了,整个逻辑磁盘仍能正常工作的。
当我们需要恢复RAID10中损坏的磁盘时,只需要更换新的硬盘,按照RAID10的工作原理来进行数据恢复,恢复数据过程中系统仍能正常工作。原先的数据会同步恢复到更换的硬盘中。
冗余:只要一对镜像盘中有一块磁盘可以使用就没问题。硬件开发2019-04-16 10:12:00CPU与GPU的区别【围观】麒麟芯片遭打压成绝版,华为亿元投入又砸向了哪里?>
作者讲述的清楚: 我的理解:1 GPU ALU更多 2 Core 更多 3 业务更加专一(主要进行密集计算) 4 缓存区更少 硬件开发2019-04-26 16:00:00青少年编程培训机构加盟首选萝卜教育【围观】麒麟芯片遭打压成绝版,华为亿元投入又砸向了哪里?>
萝卜教育,以萝卜狗为硬件基础,以Python Editor为教具,设计了将计算机语言融入语言、数学、科学的编程教学的课程体系,更适用于当前进行积木式编程教育机构的课程升级。萝卜教育坚持“立足积木式编程教育后,延长编程教学,与孩子共创未来”的信念,提供优质的课程与服务,与各机构进行深度合作,实现双赢、多赢。
萝卜狗是一款支持Python语言、操作简单、功能强大的口袋编程计算机。Python Editor是自主研发的可视化图形拼插编辑器,是第一款从拼插编程到代码编程的编程工具。让青少年编程学习开启“从业余到专业,从语法到程序设计,从软件到软硬结合 ,从模仿到创意应用”的新模式。
萝卜教育坚持“立足编程教育,融入工业应用”,面向未来,让孩子循序渐进的走入编程世界 。
推行”给家长一个交代,与孩子共创未来 “的教育理念,积极打造”循序渐进,让孩子赢在编程起跑线上“的教育体系。让青少年接受到专业的编程学科教育。为培训机构升级编程课程,延长编程教学,减少学员流失。
加盟萝卜教育,有利于培训机构在短时间内升级编程课程,解决学员流失,提高宣传效率,节约宣传成本。
萝卜教育提供给加盟培训机构一套完善高效的课程体系,避免了新装xiu设计,开店,招募的大量繁复的工作,从而降低加盟培训机构风险,提高成功机率。
1、灵活多样的加盟方式,让您用最少的成本扩展您的课程体系,增强同业竞争力。
2、为加盟培训机构提供一套完善高效的课程体系,免费培训两名教师,免费提供五套编程教具,您的需要就是我们的目标
3、利用现有教学场所、培训现教师、延续现有学员,快速升级到专业的编程学科教育
近年来,积木式编程教育培训机构虽可让孩子在游戏中培养认知力,但课程结束后,学员并没有掌握编程,而且面临无升级课程,造成学员流失的难题。
越来越多的培训机构在寻找如何延长现有 学员的课程,让孩子真正从业余到专业,进行学科教育的方案。
更多加盟信息可访问: 硬件开发2018-07-30 14:24:00[MicroPython]TPYBoard智能小车“飞奔的TPYBoard装甲一号”【围观】麒麟芯片遭打压成绝版,华为亿元投入又砸向了哪里?>
智能小车作为现代的新发明,是以后的发展方向,他可以按照预先设定的模式在一个环境里自动的运作,不需要人为的管理,可应用于科学勘探等等的用途。智能小车能够实时显示时间、速度、里程,具有自动寻迹、寻光、避障功能,可程控行驶速度、准确定位停车,远程传输图像等功能。下面带大家做一个智能蓝牙小车,用手机APP来控制小车前进、后退、向左、向右、停止,本次蓝牙小车的设计在于探索蓝牙智能小车的设计理念及设计方法,学习一下PWM控制电机差速来控制小车的方向,下面就动手搞起来吧!!!!!
蓝牙( Bluetooth):是一种无线技术标准,可实现固定设备、移动设备和楼宇个人域网之间的短距离数据交换(使用2.4-2.485GHz的ISM波段的UHF无线电波)。
我们在此使用的蓝牙模块(HC-06)已经在内部实现了蓝牙协议,不用我们再去自己开发调试协议。这类模块一般都是借助于串口协议通信,因此我们只需借助串口将我们需要发送的数据发送给蓝牙模块,蓝牙模块会自动将数据通过蓝牙协议发送给配对好的蓝牙设备。
TPYBoard v102 是遵循MIT协议,由TurnipSmart公司制作的一款MicroPython开发板,它基于STM32F405单片机,通过USB接口进行数据传输。该开发板内置4个LED灯、一个加速度传感器,可在3V-10V之间的电压正常工作。让你会Python就能做极客, 用Python控制硬件,支持Python语言的开发板。比树莓派更小巧,更简单,更便宜,比Arduino更强大,更加容易编程。
以TPYBoard v102开发板为主控板,小车扩展板具有四路PWM调速电机、8个可控LED、1个蜂鸣器、5路舵机接口、1个蓝牙接口、1个PS2无线接口、引出TPYBoard v102开发板全部针脚,可装载循迹模块、超声波模块、机械手臂、红外接收头,兼容入门级电机和专业级电机,两节18650单独供电。
我们只需要把TPYBoard v102 插小车扩展板上,把蓝牙模块插上,把程序写入就行,下面是main.py源程序
硬件开发2018-07-19 15:48:00基于C51单片机的丁字路通灯控制系统【围观】麒麟芯片遭打压成绝版,华为亿元投入又砸向了哪里?>
项目要求:用单片机设计一套丁字路口的交通灯显示系统,如图所示,有三组相同的道路显示系统
项目概述:采用多机通讯实现对多个红绿灯的控制 主机功能:主机,用于在特殊情况下操纵从机,和对从机的时间统一。 从机功能:从机,每隔10s红灯亮、每隔10s绿灯亮,绿灯到红灯时黄灯闪烁3秒。
网盘链接: 包含项目概述、项目图纸、项目代码、项目报告及项目PPT需要自取 链接: 提取码: vijn 本人初学C51如上功能暂不完善,欢迎指正!硬件开发2020-06-19 22:50:00灵动微MM32 eMiniBoard介绍【围观】麒麟芯片遭打压成绝版,华为亿元投入又砸向了哪里?>
上海灵动微电子是国内专注于MCU产品及应用方案的供应商,致力于提供高性能、高质量的32位MCU产品元件。灵动迄今为止已完成数百余项产品设计,满足客户及市场多领域、多层次的丰富应用场景需求。 灵动微 一级代理介绍MM32 eMiniBoard相关资料。
MM32L073F产品使用高性能的 ARM® Cortex®-M0 为内核的 32 位MCU,工作频率最高可达48MHz,并内置高速存储器,丰富的增强型 I/O 端口和外设连接到外部总线。产品系列工作电压为 2.0V ∼ 5.5V,工作温度范围包含-40◦C ∼ +85◦C 常规型和-40◦C∼ +105◦C 扩展型。多种省电工作模式保证低功耗应用的要求。适合于应用在电机驱动和应用控制、工业等。硬件开发2020-06-19 11:57:00迅为-IMX6ULL开发板Linux文件系统【围观】麒麟芯片遭打压成绝版,华为亿元投入又砸向了哪里?>
操作系统的主要功能之一就是文件的管理。文件管理是由文件系统来实现的, Linux 系统支持多种格式
的文件系统,本届我们主要讲解下文件系统的类型,以及文件操作的一些常用命令。
我们在使用 Windows 系统的时候,有时会对硬盘,U 盘等的存储设备进行格式化,在格式化的时候会要求
我们选择文件系统的类型,比如:exFAT、FAT32、NTFS,同样 Linux 系统也支持各种不同类型的文件系统,
比如:ext2、ext3、ext4、yaffs、FAT32、NTFS 等。这里我们主要讲解下几种常用的文件系统。
FAT32 指的是文件分配表是采用 32 位二进制数记录管理的磁盘文件管理方式,因 FAT 类文件系统的核心是
文件分配表,命名由此得来。FAT32 是从 FAT 和 FAT16 发展而来的,优点是稳定性和兼容性好,能充分兼容
Win 9X 及以前版本,且维护方便。缺点是安全性差,且最大只能支持 32GB 分区,单个文件也只能支持最大
邮件列表中,最早显示了他使用扩展的 ext2,该文件系统从 2.4.15 版本的内核开始,合并到内核主线 是第四代扩展文件系统(英语:Fourth extended filesystem,缩写为 ext4)是 Linux 系统下的日志
并引入到 Linux2.6.19 内核中。Ext4 产生原因是开发人员在 Ext3 中加入了新的高级功能。
上面几种文件系统是我们在 Linux 下经常使用的,那么我们安装的 Ubuntu 系统下的文件系统使用的是哪种
从上图红色方框的文件就是我们安装 Ubuntu 的磁盘,在 Linux 下一切皆为文件,“/dev/sda1”就是我
们的磁盘分区,可以看到他的类型是 ext4。我们在 Windows 系统下有 C、D、E 盘这样的概念,但是通过上
面的命令我们可以看到 Linux 下对磁盘的管理与 Windows 是不一样的,没有 C、D、E 盘这样的概念。Linux
系统只有一个跟目录“/”,我们可以在 Ubuntu 的桌面打开“文件”应用,我们可以看到打开的文件路径
并不是在根目录下,这是因为 Ubuntu 是支持多用户的,会为每个用户分配一个根目录,比如我的 Ubuntu
登录的用户是 topeet,那么默认进入的就是 topeet 用户的根目录“home”,如下图所示:
上图就是 UBuntu 的根目录,那么前面我们的说的 Ubuntu 会为每一个用户创建一个根目录,那么这个根目
录具体位置在哪里呢?我们在创建用户的时候,Ubuntu 同时会在“/home”目录下创建与应户名同名的文
件夹,这个文件夹就是用户的根目录,比如我这里登陆的用户名是 topeet,那么 topeet 用户对应的用户根
目录就是“/home/topeet”这个目录。用户可以对自己用户根目录下的文件进行任意的读写操作。我们可
以打开终端使用“cd /”命令,进入到系统根目录下,然后在输入“ls”命令,产看下系统根目录下都有哪
从上图可以看到系统根目录下都有哪些文件夹,我们来看下这些文件夹的具体功能:
/home 普通用户默认目录,每个用户在改目录下都有一个以本用户名命名的文件夹
我们在前面学习 vim 的时候,可以通过 vim 来创建一个文本文件,“touch”不仅可以用来创建文本文件,
当我们使用“touch”命令创建文件的时候,如果创建的文件不存在,则会直接创建,如果创建的文件已经存在,则会修改下文件的最后修改日期(修改成运行该命令时候的系统日期)。现在我们使用命令“cd
~”进入到用户的根目录下,然后使用“touch”命令创建一个名为 ceshi 的文件,运行结果如下图所示:
mkdir 是用来创建文件夹的命令,在使用该命令的时候,要求当前用户在当前的目录下具有写权限,并且创
-p //可以是一个路径命令,如果路径中的目录不存在,则依次创建他们-v //每次创建新目录都显示信息
我们可以使用 mkdir 创建一个名为“test”的文件夹,我们在终端运行命令“mkdir test”,运行结果如下图
rm 命令可以删除文件和文件夹,在使用该命令的时候,要求当前用户在当前的目录下具有写权限,命令格
我们使用“rm”命令删除前面创建的文件“ceshi”,我们在终端输入“rm ceshi”,然后回车就可以删
“rm”命令也可以删除文件夹,我们删除前面创建的 test 目录,我们在终端执行“rm -rf test”,运行结果
我们在用户跟目录下使用 mkdir 命令创建两个文件夹:ceshi1、ceshi2,如下图所示:
然后进入“ceshi1”文件夹,在 ceshi1 文件夹创建 a 文件,如下图所示:
我们将文件 a 复制到用户根目录下的 ceshi2 文件夹,运行结果如下图所示:
完成文件的复制,接下来我们来实现文件夹的复制,首先我们返回到用户根目录下,然后将 ceshi1 文件夹
我们在前面创建了两个文件夹:ceshi1、ceshi2,在 ceshi1 文件夹创建了文件 a,我们将文件 a 重命名成文
件 b,然后将文件 b 移动到 ceshi2 文件夹,运行结果如下图所示:
Linux 下常用的压缩包格式有两种:.bz2 和.gz。我们可以使用 tar 命令来解压或压缩这两种格式的压缩包,
我们使用 tar 命令压缩生成.bz2 和.gz 压缩包,运行结果如下图所示:
在上图中我们分别压缩了.bz2 和.gz 两个格式的压缩包,其中压缩.bz2 格式的压缩包我们使用的参数
是-jcvf,而.gz 格式的压缩包使用的参数是-zcvf。下面在我们在来学习下 tar 解压文件,操作如下图所示:
在上图中,我们分别解压了.tar.bz2 和.gz 两种格式的压缩包。其中.tar.bz2 压缩包使用的-jxvf 参
数来解压的,而.gz 格式的压缩包使用-zxvf 参数来解压的。关于 tar 的命令我们就介绍到这里,更多详细
文件查找在我们的平常使用中也是很常见的,比如在 Linux 内核源码中,我们要查找某个文件的路径,这
路径标识要从哪个目录下开始查找文件,如果不写默认从执行 find 的当前目录下开始查找。
该命令的参数有很多,我们这里只是列举除了一些常用的。我们来使用 find 命令查找一下在目录“/etc”下以“host”开头的文件,我们在终端输入“find /etc -name host*”命令,运行结果如下图所示:
从上图中我们可以看到在“/etc”目录下,以“host”关键字开头的文件全部查找出来了。
有时候我们需要搜索出包含特定关键字的文件有哪些,这样就会用到 grep 这个命令,命令格式如下:
比如我们在“/etc”下递归查找包含字符“topeet”的文本,运行结果如下图所示:‘
硬件开发2020-05-18 14:14:00快乐的玩耍树莓派吧1-基本安装使用(树莓派教程)【围观】麒麟芯片遭打压成绝版,华为亿元投入又砸向了哪里?>
树莓派简易入门主要用途
例如搭建自己的私人网盘,私人vpn访问google,自制游戏机,自制各种,,控制机器人,监控阿猫阿狗。太多太多了
nano 比vim好用点。 我看别人玩树莓派都玩这个,玩一次就放弃vim了
2020-05-16 13:15:00PCB设计经验,不得不说的一些技。