科百科
当前位置: 首页 范文大全

操作系统安装和调试(操作系统-操作系统的调试)

时间:2023-08-21 作者: 小编 阅读量: 3 栏目名: 范文大全

BCC工具箱满足了这些要求,并提供了动态,安全,低影响的调试环境。为了确保BPF指令的行为良好,在插入运行Linux内核之前,它们会通过verifier验证者传入。验证者会进行检查以确保说明不会影响系统性能或安全性。尽管eBPF为Linux内核中的跟踪提供了丰富的功能集,但是从传统上来说,使用其C接口开发程序非常困难。BCC工具还将C程序编译为eBPF指令,并使用探测或将其跟踪点插入内核中,这是两种允许在Linux内核中跟踪事件的技术。

我们总是时不时的提起调试。现在我们就好好看看这玩意儿。宽泛点说,调试就是在系统中发现和修复问题的行为,包括硬件和软件。性能问题也认为是bug,所以调试也包括性能调优,也就是寻求通过去除处理过程中的瓶颈来改善性能。接下来,我们会提到调试的过程、内核错误以及性能问题。暂时不涉及硬件调试。

错误分析

如果一个进程发生了错误,大多数的操作系统会把错误信息写进日志文件从来警告管理员或用户有问题发生了。操作系统也会用core dump(核心转储),是进程地址空间的内容以及有关进程状态的其他信息写出的一个磁盘文件,用来之后分析。运行的程序和core dump可以通过调试器探测到,这可以让程序员检查代码并且查看失败时进程地址空间到底发生了什么。

调试用户级别的进程代码是一个挑战。因为内核的大小和复杂度,操作系统的内核调试更是复杂,它既控制着硬件,有缺少用户级别的调试工具。当crash发生时,错误信息会被保存到日志文件中,内存状态信息会被保存到crash dump

操作系统的调试和进程调试,因为这两个任务天生的不同而通常使用不同的工具和技术。考虑到文件系统代码中的内核故障会导致内核在重启之前尝试将其状态保存到下文件系统上的文件中的风险,一种常见的技术是将内核的内存状态保存到为此保留的一部分磁盘中,该部分不包含文件系统。如果内存检测到不可回复的错误,则会将内存的全部内容,或至少是系统内存中内核拥有的部分,写入该磁盘区域。当系统重启时,将运行一个进程从该区域收集数据并将其写入文件系统中的crash dump文件中以进行分析。显然,这样的策略对于调试普通的用户进程是没有必要的。

性能监测和调优

我们之前性能调优就是提过通过去除处理过程中瓶颈来寻求改善性能。为了识别瓶颈,我们必须能够监测系统性能呢个。因此,操作系统必须有一些方式用来计算和展示系统的行为。根据是按每个进程或整个系统的观测角度的不同,每个工具都有自己的特征。为了达成这些观测,工具会使用这两个方法中的一个 --- counters计数或追踪tracing。下面,我们会探究一下这俩玩意儿。


计数器

操作系统通过一系列的计数器保持对系统行为的追踪,比如系统调用的次数或是对网络设备或磁盘的操作次数。下面是Liunx用作计数器的工具:

  • 进城级
    • ps - 报告对单个或选中进程的信息
    • top - 报告当前进程们的实时统计信息
  • 系统级
    • vmstat - 报告内存使用的统计
    • netstat - 报告网络接口门的统计信息
    • iostat - 包括对磁盘的I/O使用情况

在Linux中大多数基于计数的工具都是从/proc文件系统里读取统计信息的。/proc是一个假的文件系统,它只存在于内核的内存中,并且主要被用来查寻各个进程和内核的统计信息。/ proc文件系统组织为目录层次结构,每个进程(分配给每个进程的唯一整数值)显示为/ proc下的子目录。例如,目录条目/ proc / 2155将包含ID为2155的进程的每个进程统计信息。/proc这也有各种条目,用于各种内核统计信息,如下图:

Unbuntu中也提供了一个系统监测应用,一个包含进程进程,系统资源,和文件系统信息的工具。截图如下:

Ubuntu中的系统监测工具

追踪

尽管基于计数的工具只是简单的查询内核维护的某些统计信息中的当前值,但追踪工具则收集一些特殊时间的数据,诸如系统调用中包含的每一步。

下面是Linux中追踪事件工具的示例:

  • 进程级
    • strace - 追踪单个进程的系统调用
    • gdb - 一个源代码级的调试器
  • 系统级
    • perf - Linux性能收集工具
    • tcpdump - 采集网络包

柯林汉定律 (Kernighan's Law)

调试在一开始就比编写程序困难一倍。因此,按照定义,如果你的代码写得非常巧妙,那么你就没有足够的能力来调试它。

使操作系统在运行时更易于理解,调试和调优是研究和实践的活跃领域。新一代支持内核的性能分析工具在实现此目标的方式上有了重大改进。接下来,我们讨论BCC,一个动态Linux内核追踪工具包。


BCC

如果没有能够理解两组代码并能够检测它们之间的交互作用的工具集,几乎不可能调试用户级代码与内核代码之间的交互。为了使该工具集真正有用,它必须能够调试系统的任何区域,包括未考虑调试的部分,并且在不影响系统可靠性的情况下进行调试。该工具集还必须对性能产生最小的影响-理想情况下,它在不使用时不受影响,而在使用中的影响是不成比例。 BCC工具箱满足了这些要求,并提供了动态,安全,低影响的调试环境。

BBCBPF Compiler Collection)是个丰富的工具包,用于提供对Linux系统的追踪。BCC是e BPF(extended Berkeley Packet Filter,扩展的Berkeley数据包过滤器)工具的前端接口。 BPF技术是在1990年代初开发的,用于过滤计算机网络中的流量。 “extened扩展的” BPF(e BPF)为BPF添加了各种功能。 BPF程序是用C的子集编写的,并被编译成e BPF指令,这些指令可以动态地插入正在运行的Linux系统中。 e BPF指令可用于捕获特定事件(例如正在调用的某个系统调用)或监视系统性能(例如执行磁盘I / O所需的时间)。为了确保BPF指令的行为良好,在插入运行Linux内核之前,它们会通过verifier验证者传入。验证者会进行检查以确保说明不会影响系统性能或安全性。

尽管e BPF为Linux内核中的跟踪提供了丰富的功能集,但是从传统上来说,使用其C接口开发程序非常困难。开发BCC的目的是通过在Python中提供一个前端接口来简化使用e BPF编写工具的过程。 BCC工具是用Python编写的,它嵌入了与e BPF工具接口的C代码,后者又与内核接口。 BCC工具还将C程序编译为e BPF指令,并使用探测或将其跟踪点插入内核中,这是两种允许在Linux内核中跟踪事件的技术。

编写自定义BCC工具的细节不在讨论范围之内,但是BCC软件包提供了许多现有工具,用于监视正在运行的Linux内核中多个活动区域。

ubuntu下的安装命令如下:

sudo apt-get install bpfcc-tools linux-headers-$(uname -r)

其他系统可参考https://github.com/iovisor/bcc/blob/master/INSTALL.md

使BCC特别强大的是,它的工具可以在运行关键应用程序的实时生产系统上使用,而不会对系统造成损害。这对于必须监视系统性能以识别可能的瓶颈或安全漏洞的系统管理员特别有用。下图说明了BCC和e BPF当前提供的各种工具,以及它们跟踪Linux操作系统的几乎任何区域的能力。 BCC是一种快速变化的技术,不断地被添加新功能。

    推荐阅读
  • 汽车增值税和车辆购置税有什么不同?(汽车增值税与购置税征收范围和征税对象不同)

    车辆购置税,是特定车辆征收的“财产税”。汽车在公安机关办理登记注册手续时计征。汽车增值税与车辆购置税的征收范围、征税对象都不同:购置税是取得汽车后由汽车所有权人缴纳的税款,购买、进口、获奖等,只要取得汽车所有权就需要缴纳。车辆购置税税款应当一次缴清。

  • 人穷无人问富在深山有远亲(穷在闹市无人问)

    那时候农村一家一年凭票供应2斤豆油。谁能想象这二斤豆油怎么吃能够吃呀?就是用刷子蘸着豆油往锅上刷也不够呀!实在没有办法了,我妈让我去我老舅家要一瓶豆油去。那时候农场主食就是大米、白面,豆油等生活必需品都是按月供应的。我就硬着头皮去我老舅家要豆油去了,我老舅家离我家不远,走路也就十分钟。老舅这样说着,也伸手接过罐头瓶,打开装豆油的缸,打满了一罐头瓶。

  • 积健为雄的意思是什么(积健为雄的意思)

    积健为雄的意思是什么?

  • 香脆炸酥家常做法(外脆里嫩味道好极了)

    以下内容大家不妨参考一二希望能帮到您!香脆炸酥家常做法猪肉洗净,切条,将水倒入炸鸡粉中,搅拌成均匀糊状,放入猪肉,拌匀,腌制半小时以上。锅中倒油,烧热,一块块放入拌好糊的肉条,炸至金黄,捞出控油,再次放入锅中,复炸30秒。捞出,控油,装盘,用香菜点缀。

  • 黄丽多肉怎么养殖方法(黄丽多肉的养殖方法)

    黄丽多肉怎么养殖方法准备盆土养殖黄丽多肉时,要提前用腐叶土、沙土、珍珠岩、园土混合配制土壤,确保土壤的肥沃、透气、保湿,花盆则以陶瓷盆为宜,并在底部铺一层碎瓦片,提高盆土的通透性。控制温度黄丽多肉在适宜的温度环境下生长更加迅速,养护期间最好将温度维持在15-28度之间,夏季温度不能超过30度,可以为植株喷水降温,冬季则为其套上塑料袋,防止多肉被冻伤。注意事项黄丽多肉在生长过程中。

  • 一个男人是穷是富看他这三个特征(判断一个男人以后穷还是富)

    尤其是单身男人。有的男人,乘坐公共交通从不让座,有的男人会额外照顾老人小孩和女士。当她的男人失意时,她从不责骂,而是柔声抚慰,鼓励他东山再起;当她的男人得意时,她微笑颔首,提醒他别得意忘形。有这样一朵解语花在身边,男人的成功自然手到擒来。在这五点上品味都不俗的男人,注定有着非同一般的人生。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本网联系,我们将及时更正、删除,谢谢。

  • 梦见天鹅什么意思(梦见天鹅什么预兆)

    以下内容希望对你有帮助!梦见天鹅什么意思在中国传统观念里,梦见天鹅,预示会见到失散的朋友。梦里听到天鹅的叫声,可能象征亲人的离去,或一段伤感恋情的结束。梦见天鹅在蓝色的天空飞翔,预示你正大逐渐成熟,并会越来越有气质,美好的日子即将来临。梦中看到清澈水域附近的黑天鹅,表示你所享受的快乐大多与法律格格不入。梦见死去的天鹅,预示你会因某事而心怀抱怨和不满。

  • 赞美元始天尊(微言道学冬至日)

    称其为“主持天界之祖”,居于清微天的玉清境。冬至是“二十四节气”之第二十二个节气,斗指子,于每年公历十二月二十一至二十三日交节。又称日南至、冬节、亚岁等,兼具自然与人文两大内涵,既是二十四节气中一个重要的节气,也是中国民间的传统祭祖节日。在南方地区,有冬至祭祖、宴饮的习俗。冬至节,民间历来十分重视。在北方地区,则是有吃饺子的习俗。画九习俗所谓的画九,实则是冬至后计算春暖日期的图。

  • 重装系统后不能上网怎么办(解决方法有哪些)

    以下内容希望对你有帮助!重装系统后不能上网怎么办重装系统后无法上网的一个原因是未下载网卡驱动。如果是以上原因,可以下载一个3驱动大师,安装完成之后打开。此时就会开始自动检测驱动,检测完成后,点击“一键安装”,等待安装完成之后重启电脑即可。还有一种情况是重装系统后不能自动识别网络首先点击控制面板,进入网络和internet界面。点击更改适配器设置,点击:属性。

  • 白银TD是什么意思(白银TD的意思)

    白银TD是什么意思白银TD:T是Trade的简写,D是Delay的简写,也可以称为白银延期交易。T+D合约附件与T+D合约具有同等法律效力。这种买卖是由转移价格波动风险的生产经营者和承受价格风险而获利的风险投资者参加的,在交易所内依法公平竞争而进行的,并且有保证金制度为保障。