之前做过一次uboot的升级,当时留下了一些记录,本文摘录其中比较有意思的两个问题。
写的是Zynq 7000系列的,arm有两个核。主要有AMP和SMP两种方式,SMP是两个核运行一个操作系统,跑LINUX的话,使能SMP,资源会自动分配给两个核运行。AMP是两个核独立运行,每个核可以运行操作系统也可以裸机运行。
初始化高端内存线性地址中永久映射的全局变量.IMX6ULL这里的宏没开,所以这里应该是空
由于种种原因,linux的内核版本需要升级,但由于生产原因往往不能在线升级,在此记录笔者本人昨晚的的离线升级步骤,亲测可用。
一、分区建议(对于经常访问的目录,单独分区): 1、/ swap /var /usr /home单独分区 2、/dev/hda1 比 /dev/hda2 比/dev/hda3访问速度快 3、hda1应该式swap分区,第二个分区/var,第三个/usr,剩下/ /home 二、I/O提升调度器 http://www.learnfuture.com/article/2150 1、deadline:数据库要改成这种。截止时间调度算法 2、noop:先进先出,SSD用这种 3、cfq:默认 更改:cat "deadline">/sys/block/sda/queue/scheduler 永久更改:GRUB_CMDLINE_LINUX_DEFAULT="quiet splash elevator=noop" 三、TLB:https://blog.csdn.net/liuchen_csdn/article/details/66975348 1、超大TLB:配置超大TLB的数量:echo x>/proc/sys/vm/nr_hugepages 2、配置后使用方式:
在 Linux系统中,对于多核的ARM芯片而言,在Biotron代码中,每个CPU都会识别自身ID,如果ID是0,则引导Bootloader和 Linux内核执行,如果ID不是0,则Biotron一般在上电时将自身置于WFI或者WFE状态,并等待CPU0给其发CPU核间中断或事件(一般通过SEV指令)以唤醒它。一个典型的多核 Linux启动过程如图20.6所示。 被CPU0唤醒的CPUn可以在运行过程中进行热插拔,譬如运行如下命令即可卸载CPU1,并且将CPUI上的任务全部迁移到其他CPU中:
一般嵌入式系统使用的都是对称多处理器(Symmetric Multi-Processor, SMP)系统,包含了多个cpu, 这几个cpu都是相同的处理器,如4核Contex-A53。但是在系统 启动阶段他们的地位并不是相同的,其中core0是主cpu(也叫引导处理器),其他core是从cpu(也叫辅处理器),引导cpu负责执行我们的启动加载程序如uboot,以及初始化内核,系统初始化完成之后主core会启动从处理器。
就像他的名字一样,服务器在网络上为不同用户提供不同内容的信息、资料和文件。可以说服务器就是Internet网络上的资源仓库,正是因为有着种类繁多数量庞大内容丰富的服务器的存在,才使得Internet如此的绚丽多彩。
为了提高缓存命中率,提高虚拟机性能,可以将vCPU绑定到指定的物理CPU去执行。具体设置步骤如下: 在宿主机操作系统启动时将用于虚拟机的CPU独立出来,使其上只运行vCPU线程,QEMU进程和少数的管理进程。设置方法即是在内核启动参数中加入: isolcpus=0,1 例如在grub.cfg下面的配置如下: menuentry 'Fedora (3.13.6-200.fc20.x86_64) 20 (Heisenbug)' --class fedora --class gnu-linux -
$date +%s -d “04/24/2014 15:30:00” 1398324600
Linux内核版本有两种:稳定版和开发版 ,Linux内核版本号由3个数字组成:r.x.y
本文主要讨论在高实时要求、高效能计算、DPDK等领域,Linux如何让某一个线程排他性独占CPU;独占CPU涉及的线程、中断隔离原理;以及如何在排他性独占的情况下,甚至让系统的timer tick也不打断独占任务,从而实现最低的延迟抖动。
上一篇文章我们简单了解了一些关于时间的概念,以及Linux内核中的关于时间的基本理解。而本篇则会简单说明时钟硬件,以及Linux时间子系统相关的一些数据结构。
如果确定当前的linux系统是红帽系列,那么可以使用该方法,别的linux系统不支持,比如Ubuntu。特别是通过方法一确定是linux系列后,想进一步知道该系统内核版本。
从启动引导程序 bootloader(uboot)跳转到 Linux 内核后,Linux 内核开始启动,今天我们分析一下 Linux 内核启动入口。
#查看现在的内核版本uname -aLinux worker01 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux#查看 yum 中可升级的内核版本yum list kernel --showduplicates#如果list中有需要的版本可以直接执行 update 升级,多数是没有的,所以要按以下步骤操作#导入ELRepo软件仓库的公共秘钥rpm --import https:
今天尝试安装龙芯版 Linux,本来希望能安装 Debian 版,但只找到一些文档(https://wiki.debian.org/LoongArch),没找到可安装版的 ISO。
Linux有很多的发行版,不同的版本会有一些细微区别,所以经常需要查看服务器系统的版本号。
KVM虚拟化CPU技术总结 一 NUMA技术介绍 NUMA是一种解决多CPU共同工作的技术方案,我们先回顾下多CPU共同工作的技术架构历史。多CPU共同工作主要有三种架构,分别是SMP MPP NUMA架构。SMP MPP NUMA 都是为了解决多CPU共同工作的问题。 早期的时候,每台服务器都是单CPU,随着技术发展,出现了多CPU共同工作的需求,最早的多CPU技术是SMP。 SMP 多个CPU通过一个总线访问存储器,因此SMP系统有时也被称为一致存储器访问(UMA)结构体系,一致性意指无论在什么时候,处理器只能为内存的每个数据保持或共享唯一一个数值。 SMP的缺点是可伸缩性有限,因为在存储器接口达到饱和的时候,增加处理器并不能获得更高的性能,因此SMP方式支持的CPU个数有限。 MPP MPP模式则是一种分布式存储器模式,能够将更多的处理器纳入一个系统的存储器。一个分布式存储器模式具有多个节点,每个节点都有自己的存储器,可以配置为SMP模式,也可以配置为非SMP模式。单个的节点相互连接起来就形成了一个总系统。MPP可以近似理解成一个SMP的横向扩展集群,MPP一般要依靠软件实现。 NUMA 每个处理器有自己的存储器,每个处理器也可以访问别的处理器的存储器。 NUMA-Q 是IBM最早将NUMA技术应用到i386上的商业方案,可以支持更多的x86 CPU一起工作。
如果您之前编译过EV200的SDK,那么您会发现,编译DV300的过程很类似,软件包直接拷贝,无需重新下载,通常在1-2个小时内能搞定SDK的编译。 DV300的入门会简洁介绍,如果遇到编译错误,请你阅读EV200的编译过程和相应目录下的readme查询解决方法。
5.14-rc6了,看起来5.14也快发布了。而我5.13的总结还没有写出,我早觉得有写一点东西的必要了,这虽然于搬砖的码农毫不相干,但在追求上进的工程师那里,却大抵只能如此而已。为了不忘却的纪念,我们列出5.13内核的10个激动人心的新特性。上集先谈4个:
SMP——Symmetric Multi-Processing (SMP),即对称多处理器结构
参考:《Hi3516CV500╱Hi3516DV300 SDK 安装及升级使用说明》 海思HI3516DV300 自学记录【1】:linux服务器SDK安装、nfs挂载
用 Gearman 搭建 Map/Reduce ,GearmanManager 来管理所有的 workers。启动多个 gearman-manager daemon,为了充分利用服务器资源,使其运行于不同的 CPU 内核上。 假设启动 10 个gearman-manager daemon,CPU 是 4核。 [root@www ~]# ps aux | grep gearman-manager | awk {'print $2;'} | sort -k1,1 | head -3 | xargs -n 1
我们都知道,带有优化的编译器,会尝试重新排序汇编指令,以提高程序的执行速度。但是,当在处理同步问题的时候,重新排序的指令应该被避免。因为重新排序可能会打乱我们之前想要的同步效果。其实,所有的同步原语都可以充当优化和内存屏障。
本文以Linux3.14版本源码为例分析其启动流程。各版本启动代码略有不同,但核心流程与思想万变不离其宗。
上次我们写过了 Linux 启动详细流程,这次单独解析 start_kernel 函数。
本文例子均在 Linux(g++)下验证通过,CPU 为 X86-64 处理器架构。所有罗列的 Linux 内核代码也均在(或只在)X86-64 下有效。
嵌入式Linux系统中,Linux直接管理所有CPU。默认情况下,系统的目标是提高吞吐率,而不是实时性。为了保证实时性,可以根据应用场景,对CPU实行更加精确的控制。常见的办法有,进程CPU隔离、CPU亲和、中断CPU亲和、进程优先级。
Lima:Linux-on-mac(“用于Linux的macOS子系统”,“用于Mac的容器”)
Simulator可以模拟硬件设备并运行VxWorks系统。这个模拟的系统可以提供VxWorks的大部分标准功能,包括网络、Shell等等。而且它的构建过程与构建真实硬件设备镜像的过程也基本是一样的。有了它,我们就可以脱离硬件设备,直接在Host上开发、运行、测试VxWorks应用。这样在项目开发阶段,尽可能的减少了对硬件设备的依赖。而外界与这个VxWorks系统进行交互的应用程序,是区分不出它是模拟设备还是真实的硬件设备。因此,除了可以加快软件开发进度,Simulator在很多领域也可以给我们提供帮助,例如教学、项目展示等。 Simulator对应用层提供的API与真实设备上的API没有什么区别,有区别的仅是对外设的访问,也就是无法提供一些外设的驱动程序。Simulator至少可以模拟以下硬件或功能
查看版本 # uname -a Linux huawei 2.6.32-642.13.1.el6.x86_64 #1 SMP Wed Jan 11 20:56:24 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux # cat /etc/issue CentOS release 6.8 (Final) 安装docker # yum install -y docker-io 启动docker # service docker start 查看启动 # ps aux | gre
进程或者线程绑定到某个CPU Core,仍然可能会有线程或者进程切换的发生,如果想到达到进一步减少其他进程对于该进程或者线程影响,可以采取把CPU Core从Linux内核调度中剥离出来。Linux内核提供isolcpus,对于有4个CPU core的系统,在启动时候加入isolcpus=2,3,那么系统启动后将不会使用CPU3,CPU4.这里的不适用不是绝对的,但是可以通过taskset命令来设置
对称多处理器结构 , 英文名称为 " Symmetrical Multi-Processing " , 简称 SMP ;
2、minor:表示次版本号,新增功能时才发生变化;一般奇数表示测试版,偶数表示生产版。
想要在Ubuntu或者其他linux系统上面搭建虚拟机吗,那就看看吧,最近一段时间闲着没事干,在服务器上面挂qemu虚拟机启动Windows,只是单纯的觉得很好玩(.....)
事情是这么一个事情,因前几周的一个周末,有点闲时间便安装了一台虚拟机,装了 CentOS7.6 版本,基础环境均配置好了,也可以使用 CRT 连接了,但是有个问题,现在想使用时却忘记了 root 密码。怎么试都不知道密码是啥了,不管什么设备忘记密码可真是头疼的事情,没办法现在只能重置密码了。重置密码说起来也简单,重启进入启动界面,用命令行修改内核,然后直接进入单用户模式修改密码重启即可。6.X 和 7.X 版本略有差异,下面来一起看看。
1,in和not in ---- yuan@ThinkPad-SL510:~$ ipython -nobanner In [1]: uname = "Linux #50-Ubuntu SMP Fri Mar 18 19:00:26 UTC 2011" In [2]: 'Linux' in uname Out[2]: True In [3]: 'Darwin' in uname Out[3]: False In [4]: 'Darwin' not in uname Out[4]: True 2,f
来源:马哥教育链接:https://mp.weixin.qq.com/s/UupllldADYE0sHbRs0uouQXfS文件系统是SGI开发的高级日志文件系统,XFS极具伸缩性,非常健壮。所幸的是SGI将其移植到了Linux系统中。在linux环境下。目前版本可用的最新XFS文件系统的为1.2版本,可以很好地工作在2.4核心下。XFS文件系统简介主要特性包括以下几点:数据完全性采用XFS文件系统,当意想不到的宕机发生后,首先,由于文件系统开启了日志功能,所以你磁盘上的文件不再会意外宕机而遭到破坏了。不论目前文件系统上存储的文件与数据有多少,文件系统都可以根据所记录的日志在很短的时间内迅速恢复磁盘文件内容。传输特性XFS文件系统采用优化算法,日志记录对整体文件操作影响非常小。XFS查询与分配存储空间非常快。xfs文件系统能连续提供快速的反应时间。笔者曾经对XFS、JFS、Ext3、ReiserFS文件系统进行过测试,XFS文件文件系统的性能表现相当出众。可扩展性XFS 是一个全64-bit的文件系统,它可以支持上百万T字节的存储空间。对特大文件及小尺寸文件的支持都表现出众,支持特大数量的目录。最大可支持的文件大小为263 = 9 x 1018 = 9 exabytes,最大文件系统尺寸为18 exabytes。XFS使用高的表结构(B+树),保证了文件系统可以快速搜索与快速空间分配。XFS能够持续提供高速操作,文件系统的性能不受目录中目录及文件数量的限制。传输带宽XFS 能以接近裸设备I/O的性能存储数据。在单个文件系统的测试中,其吞吐量最高可达7GB每秒,对单个文件的读写操作,其吞吐量可达4GB每秒。XFS文件系统的使用下载与编译内核下载相应版本的内核补丁,解压补丁软件包,对系统核心打补丁下载地址:ftp://oss.sgi.com/projects/xfs/d … .4.18-all.patch.bz2对核心打补丁,下载解压后,得到一个文件:xfs-1.1-2.4.18-all.patch文件。对核心进行修补如下:# cd /usr/src/linux # patch -p1 < /path/to/xfs-1.1-2.4.18-all.patch修补工作完成后,下一步要进行的工作是编译核心,将XFS编译进Linux核心可中。首先运行以下命令,选择核心支持XFS文件系统:#make menuconfig在“文件系统“菜单中选择:<*> SGI XFS filesystem support ##说明:将XFS文件系统的支持编译进核心或 SGI XFS filesystem support ##说明:以动态加载模块的方式支持XFS文件系统另外还有两个选择:Enable XFS DMAPI ##说明:对磁盘管理的API,存储管理应用程序使用 Enable XFS Quota ##说明:支持配合Quota对用户使用磁盘空间大小管理完成以上工作后,退出并保存核心选择配置之后,然后编译内核,安装核心:#make bzImage #make module #make module_install #make install如果你对以上复杂繁琐的工作没有耐心或没有把握,那么可以直接从SGI的站点上下载已经打好补丁的核心,其版本为2.4.18。它是一个rpm软件包,你只要简单地安装即可。SGI提交的核心有两种,分别供smp及单处理器的机器使用。创建XFS文件系统完成对核心的编译后,还应下载与之配套的XFSprogs工具软件包,也即mkfs.xfs工具。不然我们无法完成对分区的格式化:即无法将一个分区格式化成XFS文件系统的格式。要下载的软件包名称:xfsprogs-2.0.3。将所下载的XFSProgs工具解压,安装,mkfs.xfs自动安装在/sbin目录下。#tar –xvf xfsprogs-2.0.3.src.tar.gz #cd xfsprogs-2.0.3src #./configure #make #make install使用mkfs.xfs格式化磁盘为xfs文件系统,方法如下:# /sbin/mkfs.xfs /dev/sda6 #说明:将分区格式化为xfs文件系统,以下为显示内容: meta-data=/dev/sda6 isize=256 agcount=8, agsize=128017 blks data = bsize=4096 blocks=1024135, imaxpct=25 = sunit=0 swidth=0 blks, unwritten=0 naming =version 2 bsize=4096 log =internal log bsize=4096 blocks=1200 realtime =none
本篇文章主要讲解嵌入式板卡中Linux系统是如何正确测试、使用的,其中内容包含有U-Boot编译、U-Boot命令和环境变量说明、Linux内核编译、xtra驱动编译、系统信息查询、程序开机自启动说明、NFS使用说明、TFTP使用说明、TFTP + NFS的系统启动测试说明、inux设备驱动说明等,其中案例源码部分公开。
Nginx 的特点: 1.处理静态文件 2.反向代理加速 3.fastCGI,简单的负载均衡和容错 4.模块化的结构 5.分阶段资源分配技术,使得它的 CPU 与内存占用率非常低,保持 10,000 个没有活动的连接,它只占 2.5M 内存 6.支持内核 Poll 模型,能经受高负载的考验,有报告表明能支持高达 50,000 个并发连接数 7.采用 master-slave 模型,能够充分利用 SMP 的优势,且能够减少工作进程在磁盘 I/O 的阻塞延迟。当采用 select()/poll() 调用时,还可
🎈 作者:互联网-小啊宇 🎈 简介: CSDN 运维领域创作者、阿里云专家博主。目前从事 Kubernetes运维相关工作,擅长Linux系统运维、开源监控软件维护、Kubernetes容器技术、CI/CD持续集成、自动化运维、开源软件部署维护等领域。 🎈 博客首页:CSDN【互联网-小阿宇】 、阿里云【互联网-小阿宇】 🎈 欢迎小伙伴们点赞👍、留言💬 📷 ⭐Centos系统升级内核 🎈查看现在的内核版本 🎈查看 yum 中可升级的内核版本 🎈导入ELRepo软件仓库的公共秘钥 🎈Centos系
在研究了一阵后,发现是APT如果在安装某个包中断后,以后再安装什么都会汇报依赖那个包失败。因此linux-image-extra-4.4.0-116-generic这个包很可能是在某次apt upgrade过程中被安装的,但是由于/boot目录已满,导致安装linux-image-extra-4.4.0-116-generic失败,以至于后面的apt命令都汇报依赖该包失败。
内核最终目的:运行根文件系统的应用程序 内核做的事情: 处理uboot传入的参数 arch\arm\kernel /*启动内核:bi_arch_number机器ID。参数存放的地址 bd->bi_boot_params*/ theKernel (0, bd->bi_arch_number, bd->bi_boot_params); 判断是否支持单板(根据启动内核时传入的机器ID) /**/ ENTRY(stext) msr cpsr_c, #PSR_F_BIT | PSR_I_BIT | SVC_MOD
在linux bsp中,allwinner平台统一命名为“sunxi”。即:linux bsp中的“sunxi”可以理解为是allwinner的代称。
service 命令是Redhat Linux兼容的发行版中用来控制系统服务的实用工具,它以启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。
周五下午在公司的服务网格月度讨论会上,一位同事为大家分享了在服务网格中使用 ebpf 来优化提升 istio 中 sidecar 和 RS 间的通信效率。听过之后手痒难,想测试一把 ebpf。当这位同事在这方面做的还是比较深入的,而且给内核和 istio 中提交了pr。有兴趣的同学可以看看他的 github:https://github.com/ChenLingPeng 还有他的 blog。
本文转载自:http://www.oolap.com/2015-11-07-ubuntu-install-dbgsym
领取专属 10元无门槛券
手把手带您无忧上云