自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(93)
  • 资源 (4)
  • 收藏
  • 关注

原创 Altium Designer 20 19(入门到精通全38集)四层板智能车PCB设计视频教程AD19 AD20 凡亿----笔记

PCB

2023-02-05 23:01:28 78

原创 数学模型概念

数学

2022-12-04 00:09:24 56

原创 阅读书《电子电路原理》截取的一些最核心的思想,找了个课程上海交通大学 郑益慧主讲做辅助(保证基本的理解是对的)。电路要以基本特性为基础从设计角度理解

1、戴维南定理:2、诺顿定理:每块半导体材料都是电中性的,因为正号数量和负号数量相等 。由热激发产生的自由电子所形成的反向电流称为饱和电流1、有 1、2、3、4、5这组样本,其平均数为(1+2+3+4+5)/ 5 = 3其均方值为(12 + 22 + 32 + 42 + 52)/ 5 = (1+4+9+16+25) / 5= 112、同名端具体指的是:当两个互感线圈通入电流,所产生的磁通方向相同时,两个线圈的电流流入端称为同名端(又称同极性端),反之为异名端。如上图的两个线圈:左边线

2022-11-26 18:39:41 464

原创 网络安全--初识

大家都很快能想到的问题:加密强度、转化表传送。

2022-11-10 00:33:41 128

原创 深入理解Linux内核-第3版 第三章 进程 内核2.6.11

进程是任何多道程序设计的操作系统中的基本概念。通常把进程定义为程序执行的一个实例,因此,如果16个用户同时运行vi,那么就有16个独立的进程(尽管它们共享同一个可执行代码)。在Linux 源代码中,常把进程称为任务(task)或线程(thread)。在这一章,我们将首先讨论进程的静态特性,然后描述内核如何进行进程切换。最后两节研究如何创建和撤消进程。这一章还将讲述Linux对多线程应用程序的支持,正如第一章中所提到的,它依赖所谓的轻量级进程(LWP)。

2022-10-24 18:10:36 284

原创 学习方法揣摩--不断的往此篇文章填一些一时看到听到的只言片语--能分类就整个目录,不能就放在最下面

第一步:选择一个学习主题,开始阅读关于它的所有资料,做必要的笔记。第二步:假装你在教室里向学生解释这个主题,用尽量简单的词汇去描述它,力求学生能听懂。   (听众可以是人,也可以是你的毛绒玩具)。第三步:当你讲解卡壳的时候,再回头阅读资料,弄清楚再继续讲解。第四步:回到第一步,试图用更加简洁、直白的语言去讲述概念。如何确定自己要学习什么,安排一个5年计划,10年计划。明确什么东西要主动反复看,什么东西放置一边,用到时候看https://www.zhihu.com/answer/577913238ht

2022-10-20 12:10:29 428

原创 深入理解Linux内核-第3版 第二章 内存寻址 内核2.6.11 强调:本章出现参见其他章节的地方不做深究,留到看到对应章节时深究

本章介绍寻址技术。值得庆幸的是,操作系统自身不必完全了解物理内存;如今的微处理器包含的硬件线路使内存管理既高效又健壮,所以编程错误就不会对该程序之外的内存产生非法访问。作为本书的一部分,本章将详细描述80x86微处理器怎样进行芯片级的内存寻址,Linux又是如何利用寻址硬件的。我们希望当你学习内存寻址技术在Linux最流行的硬件平台上的详细实现方法时,既能够更好地理解分页单元的一般原理,又能更好地研究内存寻址技术在其他平台,上是如何实现的。关于内存管理有三章,这是其中的第一章;

2022-10-18 23:57:05 151

原创 《BPF( 伯克利数据包过滤器 ) Performance Tools》 第六章 CPU

如果你发现某个程序明显受限于CPU资源(CPU-Bound), 那么你就可以用到本章提到的CPU工具来进一步定位并分析问题。市面上有各种各样的采样式性能剖析:器(SamplingProfiler)以及各种各样的性能指标来帮助你理解程序的CPU用量。不过,(这可能会出乎你的意料),BPF跟踪系统仍然可以在很多地方帮助你进行深度分析。学习目标■理解CPU的运行模式、CPU调度器的行为及CPU缓存。■理解如何使用BPF来分析CPU调度器、CPU用量及硬件性能。

2022-10-15 13:49:25 607

原创 深入理解Linux内核第3版 第一章 诸论 膜拜作者 内核2.6.11

Unix操作系统的设计集中反映在其文件系统上,文件系统有几个有趣的特点。因为在后面的章节中会反复提到这些特点,所以我们先回顾最重要的几个特点。Unix内核提供了应用程序可以运行的执行环境。因此,内核必须实现一组服务及相应的接口。应用程序使用这些接口,而且通常不会与硬件资源直接交互。

2022-10-11 21:20:49 1055

原创 深入理解Linux内核-第3版 译者序、前言、目录 内核2.6.11

如果你对Linux如何工作、其性能又为什么会如此之高怀有强烈的好奇心,你将会从这里找到答案。阅读本书之后,你会通过上千行代码找到自己的方式来区别重要数据结构和次要数据结构的不同,简而言之,你将成为一名真正的Linux高手。可以把我们的工作看作是畅游Linux内核的向导:我们讨论了在内核中使用的很多重要的数据结构、算法和编程技巧。在很多例子中,我们逐行讨论了有关代码片段。当然,你手头应当备有Linux源代码,你还应当乐于花一些功夫去解读那些为简洁起见而未完整描述的函数。

2022-10-10 14:53:32 260

原创 在代码托管平台github上寻找合适的开源项目过程

有一个重要信息:对存储库的贡献应该遵循我们的GitHub社区指南。

2022-10-09 15:07:15 187

原创 BPF( 伯克利数据包过滤器 ) Performance Tools》 第五章 bpftrace

bpftrace是一款基于BPF和BCC的开源跟踪器。和BCC一样,bpftrace自带了许多性能工具和支持文档。它同时还提供了一个高级编程语言环境,可以用来创建强大的单行程序和小工具。比如,下面的单行程序以直方图形式统计vfs_read() 的返回值(读取的字节数或错误码) :Alastair Robertson阿拉斯泰尔·罗伯逊Alastair Robertson于2016年12月创建了bpftrace, 当时它还只是一个业余项目。

2022-10-08 23:42:06 301

原创 《BPF( 伯克利数据包过滤器 ) Performance Tools》 第三章 性能分析

本书介绍的各种工具可用于性能分析、故障排查、安全分析以及其他很多方面。为了帮助你理解如何运用这些工具,本章提供了一份针对性能分析的快速入门指南。学习目标:■理解性能分析的工作目标和工作内容。■对业务负载进行定性分析。■实施USE方法论。■实践下钻分析方法论。■理解清单分析方法论。■使用传统工具和60秒Linux清单快速初步定位性能问题。■使用BCC/BPF工具清单快速定位性能问题。

2022-10-06 20:15:34 847

原创 《BPF( 伯克利数据包过滤器 ) Performance Tools》 第二章 技术背景

下图是Sasha Goldshtein用户态预定义静态跟踪(user-level statically defined tracing, USDT)提供了一个用户空间版的跟踪点机制。BCC的USDT支持是Sasha Goldshtein实现的,bpfrace的USDT支持是由笔者和Matheus Marchini完成的。用户态的软件有很多与跟踪和日志相关的技术,而且许多应用程序自身也内置了自定义的事件日志系统,可以根据需要随时开启。USDT与众不同之处在于,它依赖于外部的系统跟踪器来唤起。

2022-10-05 23:47:11 639

原创 《BPF( 伯克利数据包过滤器 ) Performance Tools》 第一章 引言

并且显示了延迟离群点的存在。有人开发了动态跟踪工具(比如kerninstCambhs99l), 其也包含相应的跟踪语言,但是这些工具实在太过复杂,在实践中很少被使用,还有部分原因是它们会带来较大的运行风险:动态跟踪要求实时修改地址空间中的应用指令,一旦出现任何错误就会导致进程或者内核崩溃。opensnoop.bt 工具可以对出错的软件进行故障排查,也许软件尝试打开了错误的文件位置:也可以用于了解配置和日志文件的具体位置:还可以识别一些性能问题,比如文件打开频次过快,或者反复检查错误文件位置等。

2022-10-03 00:10:04 467

原创 《BPF( 伯克利数据包过滤器 ) Performance Tools》前言和其他

BPF性能工具可以帮助你改进性能、降低开销、解决软件问题,从而使系统和应用的效益最大化。它们能比传统性能工具分析得更多,并允许你向生产环境中的系统随意提出问题,并且能够立刻得到答案。

2022-10-01 15:51:27 1176

原创 Linux内核设计与实现 第20章 补丁、开发和社区

如果一定要让Linux内核社区在现实世界中找到它的位置,那它也许会叫做内核邮件列表(Linux Kernel Mailing List)之家。内核邮件列表(或者简写成lkml)是对内核进行发布、讨论、争辩和打口水仗的主战场。在做任何实际的动作之前,新特性会在此处被讨论,新代码的大部分也会在此处张贴。这个列表每天发布的消息超过300条,所以决不适合心血来潮的玩主。任何想踏踏实实研究、认认真真开发内核的人都应该订阅它(至少要订阅它的摘要或者是它的归档资料)。

2022-09-28 15:43:29 278

原创 Linux内核设计与实现 第19章 可移植性

Linux是一个可移植性非常好的操作系统,它广泛支持许多不同体系结构的计算机。可移植性是指代码从一种体系结构移植到另外一种不同的体系结构上的方便程度。我们都知道Linux是可移植的,因为它已经能够在各种不同的体系结构上运行了。但这种可移植性不是凭空得来的——需要在编写可移植代码时就为此付出努力并坚持不懈。现在,这种努力已经开始得到回报了,移植Linux到新的系统上就很容易(相对来说)完成。本章中我们将讨论如何编写可移植的代码——编写内核代码和驱动程序时,必须时刻牢记这个问题。

2022-09-28 09:05:43 448

原创 Linux内核设计与实现 第18章 调试

调试工作艰难是内核级开发区别于用户级开发的一个显著特点。相比于用户级开发,内核调试的难度确实要艰苦得多。更可怕的是,它带来的风险比用户级别更高,内核的一一个错误往往立刻就能让系统崩溃。驾驭内核调试的能力(当然,最终是为了能够成功地开发内核)很大程度上取决于经验和对整个操作系统的把握。没错,玉树临风可能会对别的事情有帮助,但是调试内核的关键还是在于你对内核的深刻理解。然而我们必须找到可以开始着手的地方,所以,在这一章里我们从调试内核的一种可能步骤开始。

2022-09-27 00:45:32 664

原创 Linux内核设计与实现 第17章 设备与模块

上述所有宏需要包含头文件。

2022-09-26 11:21:51 319

原创 Linux内核设计与实现 第十六章 页高速缓存与页回写

页高速缓存(cache) 是Linux内核实现磁盘缓存。它主要用来减少对磁盘的I/0操作。具体地讲,是通过把磁盘中的数据缓存到物理内存中,把对磁盘的访问变为对物理内存的访问。这一章将页回写:将页高速缓存中的变更数据刷新回磁盘的操作。磁盘高速缓存之所以在任何现代操作系统中尤为重要源自两个因素:第一,访问磁盘的速度要远远低于(差好几个数量级)访问内存的速度一ms 和ns的差距,因此,从内存访问数据比从磁盘访问速度更快,若从处理器的L1和L2高速缓存访问则更快。

2022-09-24 22:18:37 355

原创 Linux内核设计与实现 第十五章 进程地址空间

学生:尊敬的教授,什么是虚拟化?教授:想象我们有一个桃子。学生:桃子?(不可思议)教授:是的,一个桃子,我们称之为【物理】(physical)桃子。但是有很多想吃这个桃子的人,我们希望向每个想吃的人提供一个属于他的桃子,这样才能皆大欢喜。我们把给每个人的桃子称为【虚拟】(virtual)桃子。我们通过某种方式,从这个物理桃子创造出许多虚拟地址桃子。重要的是,这种假象中,每个人看起来都有一个物理桃子,但实际上不是。

2022-09-23 10:19:12 363

原创 Linux内核设计与实现 第十四章 块I/O层

本章的主题就是讨论内核如何对块设备和块设备的请求进行管理。块I/O层表示对块设备和块设备的请求进行管理的那部分。这里只找到了Linux3.3的I/O堆栈图(内含Linux3.3块I/O层),本章描述的是Linux2.6的块I/O层。

2022-09-22 01:08:22 74

原创 Linux内核设计与实现 第十三章 虚拟文件系统(Virtual File System=VFS)

VFS 统一了文件系统的实现框架,使得在linux上实现新文件系统的工作变得简单。目前linux内核中已经支持60多种文件系统,具体支持的文件系统可以查看 内核源码 fs 文件夹下的内容。本章描述了VFS的目的,条论了数据结构,下一章,14章将讨论数据如何从物理上存放在文件系统。

2022-09-20 21:23:47 381

原创 Linux内核设计与实现 第十二章 内存管理

因为内核内存需要节省着用,内核处理内存分配错误比较麻烦等,所以内核中获取内存不用户空间获取内存复杂得多。本章讨论内核是如何管理内存和内核之中获取内存的办法。

2022-09-18 23:36:28 459

原创 Linux内核设计与实现 第十一章 定时器和时间管理

相对时间:如果某个事件在5s后被调度执行,那么系统所需要的是5s这个相对时间。绝对时间:如果要求管理当前日期和当前时间,那么内核不但要计算流逝的时间,而且还要计算绝对时间。系统定时器和时钟中断处理程序是Linux系统内核管理机制中的中枢。动态定时器:内核可以动态创建或撤销。是一种用来推迟执行程序的工具。

2022-09-17 15:35:07 209

原创 Linux内核设计与实现 第十章 内核同步

针对整数的原子操作只能引入一个特殊数据类型atomic_t,让原子函数只接收atomic_t类型的操作数,可以确保原子操作只与这种特殊类型数据一起使用。也确保了atomic_t类型的数据不会chuandi-给任何非原子函数。使用原子整数类型atomic_t,编译器会知道不对原子整数类型的数据进行访问优化。使用原子整数类型atomic_t,在不同体系结构上实现原子操作,可以屏蔽其间的差异。

2022-09-15 00:35:47 81

原创 Linux内核设计与实现 第九章 内核同步与介绍

临界区:访问和操作共享数据的代码段多个线程并发访问一个资源通常是不安全的,为了避免在临界区中并发访问,编程者必须保证这些代码原子地执行。也就是说操作在执行结束前不可被打断。竞争条件是一个bug,是两个执行线程处于同一个临界区时,两个执行线程同时执行了(要解决bug必须2选1,也就出现了竞争)。同步是避免并发和防止竞争条件。

2022-09-12 22:06:31 122

原创 Linux内核发展史和linux发行版

参考链接:https://blog.csdn.net/liucw900716/article/details/105294292。

2022-09-12 10:32:32 1201

原创 Linux内核设计与实现 第八章 下半部和推后执行的工作

中断处理程序抢占的进程可能正在执行重要的代码,中断处理程序执行完前会禁止中断,硬件就无法与操作系统通信,硬件往往要求中断处理程序迅速处理它的事。所以中断处理程序代码量少,让执行时间变短。中断处理程序代码量少,而且不能使用会引起阻塞的函数,这极大的限制了中断处理程序能做的事。由此将中断处理流程分为两部分:a)中断处理程序,即上半部 b)下半部。

2022-09-11 21:37:44 124

原创 Linux内核设计与实现 第七章 中断和中断处理

处理器的速度快过外围硬件设备若干数量级。既然硬件的反应这么慢,那么内核就应该在此期间处理其他事务,等到硬件真正完成了请求的操作之后,再回过头来对它进行处理。轮询:内核定期对硬件设备的状态进行查询,然后做出相应的处理。中断:硬件向内核发出信号,内核根据信号处理硬件设备。

2022-09-07 23:56:16 216

原创 Linux内核设计与实现 第六章 内核数据结构

内核数据结构

2022-09-06 21:34:03 175

原创 Linux内核设计与实现 第五章 系统调用

在现代操作系统中,内核提供了用户进程与内核进行交互的一组接口。这些接口让应用程序受限地访问硬件设备,提供了创建新进程并与已有进程进行通信的机制,也提供了申请操作系统其他资源的能力。

2022-09-05 21:10:58 170

原创 C语言参数类型规定

int的长度,是由硬件和系统共同决定的。当年的dos是运行在16位CPU下的,他的int是两个字节,win95是运行在32位CPU下的,但是win95还是16位的系统设计,所以他的int是2个字节,到2000,NT,XP,cpu是32位的,windows也支持32位,所以他的int是4字节语言并没有规定类型的长度,但是有一些规则,比如:char不论在什么时候都是一个字节(即8个bit),int永远比char长,长整型至少和整型一样长,整型至少和短整型一样长(short

2022-09-05 18:01:53 445

原创 Linux内核设计与实现 第四章 进程调度

进程调度程序(常简称调度程序)可看做在运行态进程之间分配有限的处理器时间资源的内核子系统。最大限度地利用处理器时间的原则是:只要有可执行的进程,那么就总会有进程正在执行。但是只要系统中可运行的进程的数量比处理器的个数多,就注定某一给定时刻会有一些进程不能执行。这些进程在等待运行。在一组处于可运行状态的进程中选择一个来执行,是调度程序所需完成的基本工作。

2022-09-04 22:05:22 542

原创 Linux内核设计与实现 第三章 进程管理

Linux内核设计与实现 第三章 进程管理

2022-09-02 20:50:03 145

原创 Linux内核设计与实现 第二章 从内核出发

Linux内核设计与实现 第二章 从内核出发

2022-09-01 21:22:39 223

原创 Linux内核设计与实现 第一章 Linux内核简介

Linux内核设计与实现 第一章

2022-09-01 13:30:37 468

原创 概述环境变量

概述环境变量

2022-08-31 22:21:16 198

原创 操作系统(linux0.11)的启动

操作系统(linux0.11)的启动

2022-08-23 21:11:35 157

服务机器人应用开发nkm

服务机器人应用开发nkm

2022-12-11

摇杆传感器ky-023

摇杆传感器ky-023

2022-06-21

《工业机器人编程与仿真》实训报告

《工业机器人编程与仿真》实训报告

2022-06-17

从零开始详细介绍CMake

从零开始详细介绍CMake

2022-05-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除