- 博客(19)
- 收藏
- 关注
原创 第五章 Linux 网络编程
socket(套接字),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个 socket 就是网络上进程通信的一端,提供了应用层的进程利用网络协议交换数据的机制。从所处的地位来讲,socket 上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口,也是应用程序与网络协议根进行交互的接口。socket 可以看成是计算机网络中,各自通信连接中的端点,这是一个逻辑上的概念。它是网络环境中,进程间通信的 API,也是可以被命名和寻址的通信端点。在通信的主机中,
2025-01-04 17:23:40
1383
原创 第三章 Linux多进程开发
相信大家对进程一点都不陌生,当我们打开Windows OS的任务管理器,如下图所示,就能在进程页面看到很多用户进程和系统进程,并且我们还能发现,它是动态占用CPU和内存等硬件资源的,所以,这里得到进程和程序(我们写的代码)的最大区别,也是进程的最主要特征,它是动态的、可以发生状态转换的、有生命周期的。我们也可以简单的理解为进程是程序 + 数据操作系统科普与入门之进程篇linux 中,进程是一个独立的资源分配单元,不同进程之间的资源是相互独立的,不能在一个进程中直接访问另一个进程的资源。
2025-01-04 15:54:11
926
原创 第四章 Linux多线程开发
与进程类似,线程是允许应用程序并发执行多个任务的一种机制。一个进程可以包含多个线程,同一个程序中的所有线程均会独立执行相同程序,且共享同一份全局内存区域,其中包括初始化数据段、未初始化数据段,以及堆内存段(传统意义上的 UNIX 进程只是多线程程序的一个特例,该进程只包含一个线程)。进程是 OS 资源分配的最小单位,线程是 OS 调度执行的最小单位。线程是轻量级的进程(Light Weight Process, LWP),在 Linux 环境下,线程的本质仍是进程。ps -Lf pid。
2024-10-17 16:19:01
742
1
原创 第二章 Linux系统编程入门
看到标题,读者可能会很好奇,这不是网络编程笔记专栏吗,怎么第一篇文章是Linux 系统编程入门,其实原因很简单,在我们学习Linux 网络编程前,需要先学习怎么在 Linux 中进行 C 语言编程,这部分内容属于Linux 系统编程入门的内容,当然,Linux 网络编程也离不开它。一个工程中的源文件不计其数,一般按类型、功能和模块分别放在若干个目录中(例如,源文件存放在src目录,头文件存放在include目录等),Makefile 文件定义了一系列的规则,来指定哪些文件需要先编译,哪些文件需要后编译。
2024-10-12 13:16:40
778
原创 OpenCV4.8 图像与视频分析笔记(二)
接文章OpenCV图像与视频分析笔记 — 图像部分,本文章是视频部分的笔记。包括了视频流的基本操作、角点检测、直方图反向投影、背景替换和光流分析等内容。本文章根据上述视频部分的内容,详细解释和例举了OpenCV4提供的常见10个API是如何进行常见的视频流分析。至此,OpenCV图像与视频分析相关的笔记整理完毕,该系列笔记包含了OpenCV大部分传统的方法,来进行图像处理,非常适合OpenCV的入门。
2024-09-04 12:17:56
2014
原创 OpenCV4.8 图像与视频分析笔记(一)
本篇文章是作者在学习OpenCV图像与视频分析的笔记,或许还会有视频部分。本笔记包括了大部分的图像分析案例,包括图像分割,轮廓操作,霍夫检测API和图像的形态学操作。本文所例举的17个部分,包括了OpenCV图像处理相关API的详细解读和使用例子。
2024-07-26 18:19:47
5006
原创 操作系统科普与入门之进程篇
在日常生活中使用计算机时,大家会不会出现这样一种好奇,为什么我们打开很多应用或者在玩游戏的过程中,会听到主板上中央处理器(Central Processing Unit,CPU)的散热装置轰轰轰的工作声音,而打开一少部分的应用时,CPU的这个散热装置就几乎没有声音,不难想到的是,CPU散热装置声音越大,代表着我们的CPU正在进行着越高强度的工作。那么我们打开这么多的应用(进程),硬件是怎么知道的呢?这一切的功劳都归于我们的操作系统(Operating System,OS)。对于OS,我们可以简单的理解为是。
2024-07-15 23:20:18
7318
原创 OpenCV4.8 入门学习笔记(二)
至此,基于Cpp的OpenCV4.8入门学习笔记到这里就已经结束了,这28个例子非常适合基于Cpp的OpenCV4入门学习。
2024-07-14 12:00:14
1847
原创 VisualStudio2019配置OpenCV4.8.0开发环境
本片文章记录本人在ViusalStudio2019集成开发工具下,配置基于Cpp的OpenCV4.8.0开发环境,并且运行一个OpenCV小Demo作为演示。本文由于图像插入的原因,篇幅较长,但是整体文章的结构基本是有条理的,首先下载OpenCV环境,然后配置环境变量,接着配置VS2019下面的OpenCV环境,最后,编写一个OpenCV程序验证环境是否配置成功,下图是笔者对该篇文章做的笔记整理,仅供参考。
2024-07-10 19:04:12
10058
2
原创 第四章 xv6操作系统中级实验2——实现xv6操作系统信号量机制
本章实验接着第三章实验继续进行下去,关于第三章的实验内容回顾,可以参考前面的链接。在xv6操作系统源码中,提供了自旋锁用于内核程序代码的并发同步,但是,对于我们自己编写的用户程序代码,并没有提供进程同步机制,这次实验我们来动手来实现一个简单的xv6操作系统的信号量机制,从而达到用户程序代码的进程同步,当然,本次实验也是建立在xv6源码的自旋锁实现上,在本次实验实现信号量机制的过程中,还可以很好的了解xv6操作系统自旋锁是怎么实现的。为了实现信号量,除了创建、撤销、P、V操作外,还需要。
2024-05-22 16:33:31
15264
原创 Ubuntu18.04至24.04修改国内下载源并且安装Chrome验证
在学习Linux的过程中,有时候往往需要大家在Linux操作系统中下载各种软件或者环境等,但是,Linux各种发行版的操作系统配置的下载源都是国外的,这就会导致我们的下载速度较慢,有时候甚至直下载失败,这回极大的影响我们学习Linux的效率,这里以Ubuntu18.04为例子(CentOS具体应该也差不多),来教大家如何修改Linux的下载源为国内的服务器(推荐阿里云)。本文提供两种方法,第一种方法通过修改源文件实现,第二种方法通过修改Ubuntu中的软件商店设置实现(推荐)。工欲善其事,必先利其器。
2024-05-15 16:48:11
22282
原创 第三章 xv6操作系统中级实验1——xv6操作系统进程调度
Hello,小伙伴们,经过本专栏的第一章和第二章实验,相信大家对xv6操作系统实验有了一个很好的入门,第一章讲述了对如何根据自己的需求添加一些简单的自定义操作系统功能(其实就是把我们写的C程序代码加入到xv6源码中,并且关联到Makefile文件中),第二章讲述了如何在进程之间共享内核全局变量(这是进程间通信的基础,完成了这个实验,对进程间通信会有一个简单的认识)。需要在更多的xv6源代码文件中添加我们自己的代码块,可以使得我们对xv6操作系统源代码有更加深入的认识,并且巩固对应的操作系统理论知识。
2024-05-13 21:25:05
25886
原创 第二章 xv6操作系统初级实验2——为xv6操作系统定义一个内核全局变量,用于进程间共享
hello,小伙伴们,本篇文章继续接着该专栏第一章的内容写下去,在第一章中,我们做了一个xv6操作系统的入门实验,就是给xv6操作系统源码中添加一个自己编写的C程序,并且通过修改Makefile文件,完成在xv6操作系统中添加新的应用。定义一个内核全局变量,用于进程间的共享设计并实现两个系统调用read_sh_var()和write_sh_var()用于读取和修改该全局变量的值;最后,编写C程序,检验是否能在进程间完成数值的共享。
2024-05-10 18:47:45
26180
7
原创 第一章 xv6操作系统初级实验1——编写一个C语言程序并且添加到xv6源码中
该专栏从本篇文章开始,正式进入xv6操作系统的相关实验,从之前的介绍可以知道,我们的xv6操作系统源码是一个基于教学实验的微内核,整个xv6操作系统源码部分在该专栏的第0章已经给出来了,源码虽然代码量不高,但是实现了基本的操作系统该有的功能。我们用xv6操作系统进行实验的目的是,通过我们自己写的代码,然后将其加入到操作系统源码中,然后修改Makefile文件,让我们自己的代码成为xv6操作系统源码的一部分。
2024-05-09 00:17:16
25378
原创 第0章 xv6操作系统的安装、运行和调试
通过了该专栏上一篇文章的介绍,我们知道了什么是xv6操作系统,本篇文章介绍在Linux的虚拟机下如何安装xv6操作系统。本文章对在Ubuntu18.04操作系统中如何安装虚拟环境QEMU,在虚拟环境QEMU中运行xv6操作系统进行了详细的讲解,只有完成了QEMU和xv6操作系统的安装,才能进行后续的实验。
2024-05-06 15:39:33
25486
2
原创 操作系统之xv6实验介绍
目前,绝大部分高校开设的操作系统课程,比较偏向于理论的教学,常规的比如进程管理、内存管理、文件管理和设备管理等,学生学完此课程之后,通过期末考试的磨练,往往对操作系统比较基础的理论掌握的不错,但是这些理论知识是单一的,学生往往不能将这些知识串联起来理解;操作系统真正的魅力在于,通过理论与实验的结合,让学生能够亲自参与到操作系统的各个内核模块实现。通过操作系统实践的教学,学生能够锻炼C语言编程能力的同时,还可以将操作系统的理论知识进行串联起来,达到更加深入的理解。
2024-04-27 00:27:05
25025
原创 小白在 Windows 操作系统下如何配置 MinGW 环境进行 C++ 或 C 开发
其实绝大多数的环境配置都是基于此步骤的,大家阅读本文的时候,可以尝试去理解每一步干了什么,以后自己配置环境的时候,就可以不用每次都去找配置步骤了。
2024-04-24 23:24:56
21414
2
原创 超详细小白利用阿里云服务器+宝塔linux面板+WordPress搭建个人博客
不知道学习计算机的小伙伴们是否和我一样,想要在学习的过程中,记录学习内容,方便随时随地的在线查看自己的笔记,那么搭建个人博客是一个很好的选择,在第一次搭建个人博客的过程中,可以体验到如何配置云服务器、利用ssh远程操作服务器等相关技术。本文章将会教大家从购买阿里云服务器,为服务器安装宝塔linux面板 &安装所需的系统环境,利用WordPress一键部署个人博客工程三个步骤来创建个人博客。提示:以下是本篇文章正文内容,下面案例可供参考。
2024-04-21 17:07:48
31790
14
全国大学生智能车竞赛(恩智浦杯/飞思卡尔杯)全部开源项目(包括源代码出处)
2024-06-01
基于Python实现的蓝桥杯常见算法模板(源代码+说明文档)-蓝桥杯精品资源
2024-06-01
基于Python实现的大创项目(源代码+说明文档)-中医药知识图谱构建
2024-06-01
基于Matlab的美赛常用模型(源代码实现)-计算机专业精品竞赛资源
2024-06-01
ACM模板和一些题目的代码实现(基于C++源代码)
2024-06-01
2021年全国大学生电子设计竞赛F题-送药小车
2024-06-01
全国计算机等级考试题库和复习资料,包括计算机一级、二级、三级和四级等
2024-06-01
基于JavaScript语言Web项目图书管理系统-计算机专业精品课程设计
2024-06-01
基于C#的WPF项目-离线人脸识别、离线实时语音识别和离线语音合成功能
2024-06-01
基于Go和Vue实现的openLDAP后台管理项目-计算机专业精品课程设计和毕业设计
2024-06-01
基于Delphi的23种设计模式描述
2024-06-01
基于Scratch Blockly的设计模式可视化学习平台
2024-06-01
基于matlab的甲状腺超声图像预处理程序-计算机专业精品课程设计
2024-05-31
基于html的六一儿童节祝福网页
2024-05-31
基于卷积神经网络的甲状腺结节超声波图像自动分割与分类(源代码+说明文档)-机器学习精品课程设计(可以复现)
2024-05-31
基于SQL和Springboot的医护人员排班系统(源代码+论文+说明文档+PPT)-计算机专业精品毕业设计和课程设计
2024-05-28
基于JavaScript语言Web项目图书管理系统(源代码+md说明文档)-计算机专业精品前端课程设计
2024-05-28
基于MySQL和Springboot的学生心理咨询评估系统(源代码+论文+说明文档+PPT)-计算机专业精品毕业设计和课程设计
2024-05-28
基于VB和MySQL的车辆管理系统(源代码+系统+说明文档+论文)-计算机专业精品毕业设计和课程设计
2024-05-26
基于Ruby On Rails框架实现的音乐推荐网站项目(源代码+说明文档)-计算机专业精品Ruby课程设计
2024-05-26
基于Object-C的驾照助手实战项目(源代码)-计算机专业精品课程设计
2024-05-26
基于Swift的仿斗鱼TV项目(源代码+md说明文档)-计算机专业精品课程设计
2024-05-26
基于Fortran的语言学习资源《Fortran语言实战》-计算机专业精品学习资源
2024-05-26
基于Kotlin的仿企鹅FM应用(源代码+md说明文档)-计算机专业精品Kotlin课程设计
2024-05-26
基于汇编语言王爽第三版学习资源(书籍电子版+常见汇编语言实现)
2024-05-24
基于STM32单片机和无线网络技术设计和开发的一款智能空气监测系统(源代码+微信小程序)-计算机专业精品毕业设计和课程设计
2024-05-24
基于Python的华为OD算法面试题-Huawei-OD-Python-master
2024-05-24
python-for-data-analysis-2nd-chinese-version
2024-05-24
基于PHP的学生成绩查询(源代码+论文+说明文档)-计算机专业精品毕业设计和课程设计
2024-05-24
基于C和C++的学生成绩管理系统(源代码+说明文档)-计算机专业精品课程设计
2024-05-24
基于微信小程序的校园二手数码交易平台(源代码+论文+说明文档+PPT)-计算机专业精品毕业设计和课程设计
2024-05-23
基于微信小程序的校园二手交易平台的小程序(源代码+论文+说明文档+PPT)-计算机专业精品毕业设计和课程设计
2024-05-23
一些常见的MySQL死锁案例-mysql-deadlocks-master(源代码+案例+图解说明)
2024-05-23
基于Javaweb的网页时装购物系统(源代码+论文+说明文档+PPT)-计算机专业精品毕业设计和课程设计
2024-05-23
Java经典必备面试题之微服务
2024-05-23
基于SSM和Jsp的实验中心管理系统(源代码+论文+说明文档+PPT)-计算机专业精品毕业设计和课程设计
2024-05-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人