作者简介: 王建峰,对于技术方向(主要是嵌入式领域的OS方向的系统应用)感兴趣,最近在学习操作系统基础。同时也是某芯原厂的驱动工程师,主要是gpu领域的驱动软件。https://gitee.com/hinzer/blog 1 概念介绍 1.1 什么是操作系统? 1.2 如何理解中断机制? 1.3 如何理解系统定时? 1.4 如何理解进程控制? 1.5 如何理解内存管理? 1.6 如何理解堆栈概念? 1.7 内核在源码中的体现? 1.8 如何理解系统调用? 1.9 如何理解特权级? 2 流程分析 2.1 引导
本周,开放网络峰会(ONS)在美国举行。Linux基金会在本次的ONS大会上宣布,云开源虚拟化平台OpenContrail已经完成向Linux基金会的迁移,并且已经正式更名为Tungsten Fabr
上篇文章写完后,性能调优|成都核酸系统篇 收到了一些夸赞,让我有继续写下去的动力;
IBM HeapAnalyzer 更多信息见官方网站地址:http://www.alphaworks.ibm.com/tech/heapanalyzer
前言:昨天下午(11月29日),红帽举办了云套件合作伙伴(BP)招募会。会上,红帽几位架构分享了云套件解决方案以及销售方法。合作伙伴们也踊跃提出了疑问和见解,大家进行了充分讨论,获益良多。 为了使更多
GDB调试汇编分析 代码 本次实践我参照了许多先做了的同学的博客,有卢肖明,高其,张梓靖同学。代码借用的是卢肖明同学的代码进行调试运行。 GCC编译 使用gcc -g gdbtest.c -o gdbtest -m32命令在64位的机器上产生32位汇编代码 在使用gdb进行调试运行时,有cgdb和gdb两种工具,我建议大家使用张梓靖同学使用的cgdb工具,因为使用时可以随时看到自己的源代码,看到我们的断点在哪里,每一步返回值到了哪行,更加直观。 分析过程 使用b main指令在main函
旧金山 - 2018年8月20日 - Akraino Edge Stack是一个Linux基金会项目,它创建了一个开源软件堆栈,以支持边缘计算系统和应用程序优化的高可用性云服务,今天宣布它已经从规划阶段过渡到执行阶段。该项目吸引了Arm,AT&T,戴尔EMC,爱立信,华为,英特尔公司,inwinSTACK,Juniper网络,诺基亚,高通,Radisys,Red Hat和Wind River等成员的加入。
eBPF 允许用户在 Linux 内核中加载和安全运行自定义程序,而无需直接更改内核本身。可能性是无限的。
https://developer.nvidia.com/embedded/jetpack-sdk-60dp
当您学会使用 eBPF 性能分析解锁详细洞察时,不可靠的数据将成为过去。了解如何细粒度且高效地监控 CPU、内存和网络数据。
对于系统地介绍Java问题定位类的教程少之又少,即使有这方面的内容,往往也是一笔带过。本教程系统地介绍Java问题定位技术,我相信有一些很少公开的定位技术,在正确使用时,可以产生令人惊讶的效果。
结合eBPF监控关键性能指标,并使用strace追踪耗时的系统调用,从而定位和解决性能问题
Printf(“valriable x has value = %d\n”, x)
使用Java语言开发应用程序,虽然JVM帮我们进行了GC收集、清除工作;但是使用不当的话,还是会导致某些对象常驻堆空间无法给垃圾收集器清除,导致内存泄露、内存溢出等情况,今天盘点一下在项目中进行内存泄露分析和GC分析的一些常用、好用的工具。
随着摩尔定律的减弱,加速计算和人工智能是较经济实惠的方式实现数据中心能源效率所需的工具。 让我们一起跟随和了解 NVIDIA Grace CPU、NVIDIA L4 GPU 和 NVIDIA BlueField DPU 如何推动数据中心迈向更高效的未来。
作为 Linux 运维工程师,在日常工作中我们会遇到 Linux服务器上出现CPU负载达到100%居高不下的情况,如果CPU 持续跑高,则会影响业务系统的正常运行,带来企业损失。
DPDK在专注数据面报文处理的同时,一直紧跟着网络发展的脉搏以开放的姿态融合不断涌现的各种新的网络设备。从最初的普通网卡,到集成虚拟化和交换功能的高级网卡,再到各种网络SoC(片上系统)设备,到现在最热的基于FPGA的Smart NIC,DPDK一直走在软件定义的网络技术发展的最前沿。近年来,数据中心异构化的趋势出现,基于云的数据中心如何使用加速器来进行存储,网络以及人工智能的加速,成为炙手可热的话题,在刚结束的APNET’18研讨会上,华为与腾讯都分享了技术方向与实践演进过程,基于Linux Foundation的开源项目,对这种架构的支持,在软件的持续性与高质量保证上至关重要。
白盒交换机近年来已经成为了一些大的网络设备厂商如思科、惠普企业(HPE)、Juniper等公司的阴影,根据摩尔定律,商用交换机芯片在专有平台上具有压倒性的价格/性能优势。在今年的开放计算峰会上指明了混
近日,经 LF Edge 委员会投票决议,EMQ 旗下的开源项目 EMQ X Kuiper(以下简称 Kuiper)作为「Stage 1 - At Large」正式加入 LF Edge 基金会。
前段时间,我们的项目组在帮客户解决一些操作系统安全领域的问题,涉及到windows,Linux,macOS三大操作系统平台。无论什么操作系统,本质上都是一个软件,任何软件在一开始设计的时候,都不能百分之百的满足人们的需求,所以操作系统也是一样,为了尽可能的满足人们需求,不得不提供一些供人们定制操作系统的机制。当然除了官方提供的一些机制,也有一些黑魔法,这些黑魔法不被推荐使用,但是有时候面对具体的业务场景,可以作为一个参考的思路。
2019 年开始写 Systrace 系列,陆陆续续写了 20 多篇,从基本使用到各个模块在 Systrace 上的呈现,再到启动速度、流畅性等实战,基本上可以满足初级系统开发者和 App 开发者对于 Systrace 工具的需求。通过博客也加了不少志同道合的小伙伴,光交流群就建了有 6 个。这里非常感谢大家的支持。
系统调用是应用程序(包含运行库)与操作系统内核的接口,它决定了应用程序如何与内核打交道。在现在的操作系统系统里,程序运行的时候,本身是没有权利访问系统的资源,由于系统有限的资源有可能被不同的应用程序同时访问,因此,如果不加以保护,各个应用程序的冲突在所难免。所以现代操作系统都尽可能的把冲突的资源保护起来,阻止程序直接访问。这些资源,包括文件、网络、IO、各种设备等。
George Zhao,目前任职华为在美国的研发公司 Futurewei Technologies,主要从事网络开源与生态发展。曾经担任过 OpenDaylight 董事,技术指导委员会成员,社区经理和版本经理,目前是DPDK 董事会董事 和FD.io 技术指导委员会成员。
T客汇官网:tikehui 撰文 | 张珅健 Docker容器在今年三月已经进入第四个年头。如果你早些时候注意过Docker的话,就会发现Docker的生态系统已经大不相同。下面会为大家分析自2013年Docker出现以来究竟经历了哪些变化。 当Docker 于2013第一次在PyCon大会上出现的时候,在开发者中引起了巨大轰动,你能听到他们对Docker进行了各种各样的定义,但谁都不清楚Docker对业务到底有多大影响。毕竟在当时,Docker只是LXC内的一个工具,而Linux 容器虚拟化技术早已出现
Intel 微处理器的段机制是从8086 开始提出的, 那时引入的段机制解决了从CPU 内部 16 位地址到20 位实地址的转换。为了保持这种兼容性,386 仍然使用段机制,但比以前复杂。 因此,Linux 内核的设计并没有全部采用Intel 所提供的段方案,仅仅有限度地使用 了一下分段机制。这不仅简化了Linux 内核的设计,而且为把Linux 移植到其他平台创造了 条件,因为很多RISC 处理器并不支持段机制。但是,对段机制相关知识的了解是进入Linux 内核的必经之路。
性能为王,系统的性能提升是每一个工程师的追求。目前,性能优化主要集中在消除系统软件堆栈中的低效率上或绕过高开销的系统操作。例如,内核旁路通过在用户空间中移动多个操作来实现这个目标,还有就是为某些类别的应用程序重构底层操作系统.
王竞原,负责网游刀锋铁骑项目,高级开发工程师,使用C++已有10年,非常喜欢C++,特别是C++11。希望能与广大的C++爱好者多交流。 一、什么是Android的C/C++ NativeCrash Android上的Crash可以分两种: 1、Java Crash java代码导致jvm退出,弹出“程序已经崩溃”的对话框,最终用户点击关闭后进程退出。 Logcat 会在“AndroidRuntime”tag下输出Java的调用栈。 2、Native Crash 通过NDK,使用C/C++开发,导致
实验代码: 链接:https://pan.baidu.com/s/14XsCng6laiSiT_anuwr5dw?pwd=78dy 提取码:78dy 环境 Windows上安装tomcat、Apach
这个51真是热闹,NVIDIA除了发布ChatRTX聊天机器人(NVIDIA Chat With RTX还没更新么?原来改头换面啦!),还在隔天发布了JetPack6.0生产版本!为Jetson平台带来了一系列强大的新功能和优化。
参考:http://www.cnblogs.com/sunyubo/archive/2010/05/05/2282170.html 几乎是照抄参考过来的,只不过后面自己调试一下代码。 这里主要介绍Valgrind的一些简单用法。更多详细的使用方法可以访问valgrind的主页:http://www.valgrind.org Valgrind是Julian Seward的作品。Valgrind是运行在Linux上一套基于仿真技术的程序调试和分析工具,它包含一个内核,一个软件合成的CPU,和一系列的小工具。 每
在上一篇文章中描述了如何使用Valgrind工具检查内存相关问题,包括内存泄露、空指针使用、野指针使用、重复释放等问题。对于大多数情况下,Valgrind的作用性体现更多在于“内存泄露”检查,因为空指针、野指针的访问,会引发程序段错误(segment fault )而终止,此时可以借助linux系统的coredump文件结合gdb工具可以快速定位到问题发生位置。此外,程序崩溃引发系统记录coredump文件的原因是众多的,野指针、空指针访问只是其中一种,如堆栈溢出、内存越界等等都会引起coredump,利用好coredump文件,可以帮助我们解决实际项目中的异常问题。
答:栈溢出发生的时候,栈顶指针(SP - Stack Pointer)一定会超出栈的范围,所以也可以在发生线程切换的时候,检测SP指向的地址是否超过了栈的内存限定。
本文根据DPDK董事会董事和FD.io技术指导委员会成员George Zhao先生在2020网络数据平面峰会上的演讲《开源网络数据平面生态》整理而成。
什么是网络功能虚拟化(NFV)的风险?与任何新兴技术一样,快速迁移或选择错误的组件可能会带来很多危害。我们接下来将会分析构建虚拟网络时面对的NFV风险。 我耗时数月来收集各种服务提供商的反馈,以了解N
RustyHermit,是一个 Unikernel 应用,它完全是由 Rust 开发的。Unikernels 是直接将内核作为库方式包含的应用程序映像,因此不需要安装操作系统(OS)。它们通常用于构建典型云应用,或者基础设施建设的核心虚拟化环境。
旧金山- 2019年6月6日-LF Edge是Linux基金会旗下的一个组织,旨在建立一个独立于硬件、硅、云或操作系统的开放的、可互操作的边缘计算框架,该组织今天宣布了Akraino Edge Stac K版本1(“Akraino R1”)的可用性。通过广泛的社区合作,Akraino的首次发布释放了智能边缘的力量,为不同的边缘使用案例提供了可部署的、自我认证的蓝图。
现在云计算采用率也在增长,人们需要退后一步评估可观察性能力。基于控制理论,现代云计算时代的可观察性以多种形式表现出来。在人们拥有多个不同的云计算提供商和许多云计算实例的世界中,需要一个协调的联合可观察性级别,具有集中视图以及跨多个集群中的多个云平台进行过滤和聚合的能力,如果希望能够保持控制的话。
本次笔记整理自NVIDIA 8月20日在线研讨会,原讲座标题:DEEPSTREAM SDK – ACCELERATING REAL-TIME AI BASED VIDEO AND IMAGE ANALYTICS
app组件加载异常监控 软件异常监控常常直接关联到软件本身的质量,完备的异常监控体系常常能够快速定位到软件运行中发生的问题,并能帮助我们快速定位异常的源头,提升软件质量。在服务端的话,可以通过tomcat日志查看定位,在native开发的app中我们也可以通过各种异常监控工具去监控,但是对于混合开发的app来说,通过上面的方式就不那么容易做到了。通常混合开发的app通过webview本地加载html、js、css,如果发生错误,应该怎样去捕获并传送给服务器呢?前端错误日志传送给服务器很简单,在异常发生
美国计算机安全应急响应中心(以下简称“CERT”)日前发布公告称,Windows、macOS、Red Hat、Ubuntu、SUSE Linux、FreeBSD、VMware 和 Xen 等系统都可能受到一个重大安全漏洞( CVE-2018-8897)的影响,这个漏洞是由于操作系统开发者曲解了英特尔和AMD两大芯片厂商的调试文档所致。
Tungsten Fabric项目是一个开源项目协议,它基于标准协议开发,并且提供网络虚拟化和网络安全所必需的所有组件。项目的组件包括:SDN控制器,虚拟路由器,分析引擎,北向API的发布,硬件集成功能,云编排软件和广泛的REST API。
对于初次使用NVIDIA Jetson产品的人经常会问:这个产品是装什么操作系统?Ubuntu 16.04支持么?支持安卓么?能不能安装CUDA?等等 其实我们之前已经有很多文章介绍了关于如何在NVI
堆栈溢出技术是渗透技术中的大杀器之一,主要分为堆溢出和栈溢出两种,堆栈溢出的原理是利用软件在开发时没有限制输入数据的长度,导致向内存中写入的数据超出预分配的大小从而越界,越界部分覆盖了程序的返回指针,使程序脱离正常运行流程而执行恶意代码。本次实战主要为栈溢出的入们级练习,联系环境选择了vulnhub上的Stack Overflows for Beginners: 1这个靶机,此靶机共设置了5个flag,每个flag对应了一个用户名,每拿到一个flag就会得到下一个任务对应用户名的密码,完成所有任务可以拿到root权限。
前面介绍了JVM相关的内存和线程相关的技术。对于JVM也算有了一个比较系统、完整的理论基础。理论总是作为指导实践的工具,但是从理论到实践,总会遇到一些虚拟机相关问题,故障。所以还需要学习一些常用的JVM排障工具,和一些常见的调优手段。
Canonical公司的Ubuntu桌面总监Will Cooke今天宣布,即将推出的Ubuntu 18.04 LTS(仿生海狸)操作系统将默认采用X.Org图形堆栈,而不是下一代Wayland显示服务器。 Ubuntu 18.04 📷 Canonical公司的Ubuntu桌面总监Will Cooke今天宣布,即将推出的Ubuntu 18.04 LTS(仿生海狸)操作系统将默认采用X.Org图形堆栈,而不是下一代Wayland显示服务器。 Ubuntu 17.10 (Artful Aardvark)是第一个以
这个问题展开可以聊的东西非常多,从编程语言到可执行文件,从堆栈空间到虚拟内存,可以帮助面试官快速了解候选人这部分的知识储备。
领取专属 10元无门槛券
手把手带您无忧上云