https://developer.nvidia.com/embedded/jetpack-sdk-60dp
作者简介: 王建峰,对于技术方向(主要是嵌入式领域的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 引导
在本系列的第一部分中,我们通过讨论 cd - 命令的用法,重点介绍了 Linux 中的命令行导航。还讨论了一些其他相关要点/概念。现在进一步讨论,在本文中,我们将讨论如何使用 pushd 和 popd 命令在 Linux 命令行上获得更快的导航体验。
1、高位地址:栈(存放着局部变量和函数参数等数据),向下生长 (可读可写可执行)
eBPF 在可观测性中的应用——对 Groundcover、Odigos、Grafana Beyla、Pixie、Cilium 和 Apache SkyWalking 等领先的可观测性平台中 eBPF 使用情况的回顾
在我们完成云堆栈的构建工作——即实现平台即服务(简称PaaS)、规模化容器乃至开发工具集中的各类工具选项——之前,我们首先需要建立良好的操作系统基础以支持这些容器系统。 对于云堆栈而言,良好的基础应当
了解Linux环境下,进程的地址空间划分,对于我们理解Linux应用程序有很大的帮助,否则会被New与Malloc之类的指针操作弄的晕头转向,本文基于Linux内核讲述了Linux/Unix线性地址空间的划分,为你答疑解惑。从逻辑上来看,Unix程序的线性地址空间传统上被分为几个叫做段(segment)的区间。
Linux 系统与服务管理工具 Systemd 被曝存在 3 大漏洞,影响几乎所有 Linux 发行版。Systemd 是 Linux 系统的基本构建块,它提供了对系统和服务的管理功能,以 PID 1 运行并启动系统的其它部分。目前大部分 Linux 发行版都以 Systemd 取代了原有的 System V。
随着容器发展模式逐渐成为主流,容器堆栈本身也在不断发展。现在,企业看到了容器的价值,开发和业务重点正在从引擎转移到增加更多复杂的功能,以便更直接地获得业务收益。事实上,在短短几年内,容器已经从没有管理
前段时间,我们的项目组在帮客户解决一些操作系统安全领域的问题,涉及到windows,Linux,macOS三大操作系统平台。无论什么操作系统,本质上都是一个软件,任何软件在一开始设计的时候,都不能百分之百的满足人们的需求,所以操作系统也是一样,为了尽可能的满足人们需求,不得不提供一些供人们定制操作系统的机制。当然除了官方提供的一些机制,也有一些黑魔法,这些黑魔法不被推荐使用,但是有时候面对具体的业务场景,可以作为一个参考的思路。
作者:灵剑 链接:https://www.zhihu.com/question/47514375/answer/106347643 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
LinuxThreads 项目最初将多线程的概念引入了 Linux?,但是 LinuxThreads 并不遵守 POSIX 线程标准。尽管更新的 Native POSIX Thread Library(NPTL)库填补了一些空白,但是这仍然存在一些问题。本文为那些需要将自己的应用程序从 LinuxThreads 移植到 NPTL 上或者只是希望理解有何区别的开发人员介绍这两种 Linux 线程模型之间的区别。
因为图片比较大,微信公众号上压缩的比较厉害,所以很多细节都看不清了,我单独传了一份到github上,想要原版图片的,可以点击下方的阅读原文,或者直接使用下面的链接,来访问github:
近日,Linux底层函数glibc 的 DNS 客户端解析器被发现存在基于栈的缓冲区溢出漏洞。攻击者可借助特制的域名、 DNS 服务器或中间人攻击利用该漏洞执行任意代码,甚至控制整个系统。
原文链接:https://www.collabora.com/news-and-blog/blog/2019/04/15/an-ebpf-overview-part-2-machine-and-bytecode/
关于dlinject dlinject是一款针对Linux进程安全的注入测试工具,在该工具的帮助下,广大研究人员可以在不使用ptrace的情况下,轻松向正在运行的Linux进程中注入一个共享代码库(比如说任意代码)。之所以开发该工具,是因为目前社区有非常多的反ptrace技术,而dlinject的功能并不基于ptrace实现,因此渗透测试的效果会更好。 工具运行机制 1、该工具首先会向目标进程发送终止运行的信号,并定位_dl_open()方法。接下来,该工具将会通过/proc/[pid]/sysca
许多人都认为Linux是最安全的操作系统,因此在对Linux的安全问题上也放松了警惕。那么事实真的如此吗?其实安全从来都只是相对的,Linux也不例外。虽然它加载了强大的安全机制,但仍可能受到来自各方面带来的安全威胁。本文我们主要将讨论有关Linux架构的主要利用技术,以及相关的安全防御措施。
看到一篇讲解uCLinux与Linux之间的一些差异的文章,与大家分享下。uCLinux一般用于MCU,而Linux用于MPU。
将 Kubernetes 的 CNI 从其他组件切换为 Cilium, 已经可以有效地提升网络的性能. 但是通过对 Cilium 不同模式的切换/功能的启用, 可以进一步提升 Cilium 的网络性能. 具体调优项包括不限于:
时间紧迫,刻不容缓:立即行动,确保系统安全,并顺利迁移到受支持的企业级 Linux 操作系统。
这个51真是热闹,NVIDIA除了发布ChatRTX聊天机器人(NVIDIA Chat With RTX还没更新么?原来改头换面啦!),还在隔天发布了JetPack6.0生产版本!为Jetson平台带来了一系列强大的新功能和优化。
栈是编程中使用内存最简单的方式。例如,下面的简单代码中的局部变量 n 就是在堆栈中分配内存的。
Windows无人参与安装在初始安装期间使用应答文件进行处理。您可以使用应答文件在安装过程中自动执行任务,例如配置桌面背景、设置本地审核、配置驱动器分区或设置本地管理员账户密码。应答文件是使用Windows系统映像管理器创建的,它是Windows评估和部署工具包(ADK:Assessment and Deployment Kit)的一部分,可以从以下站点免费下载https://www.microsoft.com.映像管理器将允许您保存unattended.xml文件,并允许您使用新的应答文件重新打包安装映像(用于安装Windows)。在渗透式测试期间,您可能会在网络文件共享或本地管理员工作站上遇到应答文件,这些文件可能有助于进一步利用环境。如果攻击者遇到这些文件,以及对生成映像的主机的本地管理员访问权限,则攻击者可以更新应答文件以在系统上创建新的本地账户或服务,并重新打包安装文件,以便将来使用映像时,新系统可以受到远程攻击。
今天小编要跟大家分享的文章是关于Linux上错误段的核心转储问题。喜欢Linux操作系统,对Linux感兴趣的小伙伴快来看一看吧,希望通过本篇文章能够有所收获。
之前写过一篇文章 Linux下c语言中的main函数是如何被调用的,该篇文章侧重于从user space层面讲程序的运行,而文章中提到的有关kernel space层面的相关系统调用,比如fork、execve等,都被一笔带过。
| 导语 企鹅FM近几个版本的外网Crash出现很多OutOfMemory(以下简称OOM)问题,Crash的堆栈都在Thread::start方法上。该文详细分析了发生原因。 ---- 有两种栈: 出现次数最多的一种,称之为 堆栈A。 java.lang.OutOfMemoryError: pthread_create (1040KB stack) failed: Out of memory java.lang.Thread.nativeCreate(Native Method)
当异常发生时,Linux内核给造成异常的进程发送一个信号,告知其发生了异常。比如,如果一个进程尝试除零操作,CPU会产生除法错误异常,相应的异常处理程序发送SIGFPE信号给当前进程,然后由其采取必要的步骤,恢复还是中止(如果该信号没有对应的处理程序,则中止)。
这几天在看GCC Inline Assembly,在C代码中通过asm或__asm__嵌入一些汇编代码,如进行系统调用,使用寄存器以提高性能能,需要对函数调用过程中的堆栈帧(Stack Frame)、
日常的工作中,会收到一堆CPU使用率过高的告警邮件,遇到某台服务的CPU被占满了,这时候我们就要去查看是什么进程将服务器的CPU资源占用满了。通常我们会通过top或者htop来快速的查看占据CPU最高的那个进程,如下图:
若要安装最新版 dotnet-stack NuGet 包,请使用 dotnet tool install 命令:
windows堆栈信息跟踪,程序异常退出时,生成dumpbin的堆栈信息可分析定位 github源码:https://github.com/JochenKalmbach/StackWalker
在开始之前,让我们先谈谈什么是 eBPF。该首字母缩写词代表可扩展伯克利包过滤器。我不认为这很有帮助。您真正需要知道的是,eBPF 允许您在内核中运行自定义代码。它使内核可编程。让我们稍作停顿,确保我们都在同一个页面上了解内核是什么。内核是操作系统的核心部分,分为用户空间和内核。我们通常编写在用户空间中运行的应用程序。每当这些应用程序想要以任何方式与硬件交互时,无论是读取还是写入文件、发送或接收网络数据包、访问内存,所有这些都需要只有内核才能拥有的特权访问权限。用户空间应用程序必须在想要做任何这些事情时向内核发出请求。内核还负责诸如调度这些不同的应用程序之类的事情,以确保多个进程可以同时运行。
在Kubernetes中,Windows容器和Linux容器在镜像格式、运行时环境、网络和存储等方面有一些区别。将应用程序移植到Windows容器可能会面临应用程序依赖性、镜像构建和调试、性能和稳定性以及安全性等挑战。
JVM大家可能都知道是个什么玩意-Java虚拟机,但是到底是个什么鬼?相信即使工作3-5年的程序员可能也不大了解。
写在前面:今天开始尝试写写除Vim外的其他内容,仍然是以技术为主,可能涉及的内容包括Linux、正则表达式、gdb、makefile等内容,不知道小伙伴们有没有兴趣看呢?不管如何,也算是我自己的知识沉淀吧~
避免程序崩溃,有很多方法,分别针对不同的崩溃原因,我今天想谈谈一种程序员经常碰到的、不管是初学者甚至编程老手都经常犯的错误,就是程序运行时栈的崩溃。 这种错误相信大家都碰到过吧: 为了解释导致它的一种
上篇文章写完后,性能调优|成都核酸系统篇 收到了一些夸赞,让我有继续写下去的动力;
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)是第一个以
如前所述,我们知道异常的处理还是比较简单的,就是给相关的进程发送信号,而且不存在进程调度的问题,所以内核很快就处理完了异常。
eBPF 允许用户在 Linux 内核中加载和安全运行自定义程序,而无需直接更改内核本身。可能性是无限的。
JVM大家可能都知道是个什么玩意-Java虚拟机,但是到底是个什么鬼?相信即使工作3-5年的程序员可能也不大了解。 如题所述,今天与大家分享的是如何分析JVM的线程堆栈以及如何从堆栈信息中找出问题。
虽然我们在区分Linux进程类别, 但是我还是想说Linux下只有一种类型的进程,那就是task_struct,当然我也想说linux其实也没有线程的概念, 只是将那些与其他进程共享资源的进程称之为线程。
本文旨在介绍下几种常见的调试方法gdb、crash、kgdb and kdb 以及dynamic debug. 关于在 Linux 内核上使用debuggers,Linus Torvalds 长期以来对它们不太喜欢。简短地解释这种态度是,依赖调试器可能鼓励用权宜之计而非深思熟虑来解决问题,这会导致代码质量恶化。详细解释可以参考https://lwn.net/2000/0914/a/lt-debugger.php3
领取专属 10元无门槛券
手把手带您无忧上云