《OSTEP》信号量(chap31) 〇、前言本文是对《OSTEP》第三十一章的实践与总结。 一、信号量以下各个版本都是一个生产者-消费者模型,基于信号量实现,并且逐渐完善。 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768#i 2023-11-13 OS #学习 #笔记 #操作系统
《OSTEP》条件变量(chap30) 〇、前言本文是对《OSTEP》第三十章的实践与总结。 一、条件变量123456789101112131415161718192021222324252627282930313233343536373839404142434445464748#include <pthread.h>#include <stdio.h>#include <assert.h>int 2023-11-11 OS #学习 #笔记 #操作系统
MIT 6.S081学习笔记(第二章) 〇、前言本文主要完成MIT 6.S081 实验二:system call 一、Using gdb (easy)Question requirements In many cases, print statements will be sufficient to debug your kernel, but sometimes being able to single step through 2023-10-05 OS > 系统编程 > Unix/Linux #学习 #笔记 #操作系统 #MIT 6.S081
ngrok内网穿透以及原理 〇、前言如果要想在本地部署一个服务,且要向不在本局域网的用户展示我们的服务,此时就要用内网穿透工具,把我们的服务变成公网服务。ngrok就是一个很好的工具,操作简单,服务稳定。 一、使用 ngrok1. 下载ngrok下载下来后,这是一个命令行程序,直接可以运行。 2. 配置运行下命令会将 authtoken 添加到默认的 ngrok.yml 配置文件中。 1./ngrok config ad 2023-09-29 NetWork Web #Web #内网穿透
什么是P问题、NP问题和NPC问题 〇、前言在解决马踏棋盘问题时,思考马踏棋盘问题的解的个数时,无意间发现了一篇写得很清晰的好文章,转载一下,原文链接 一、原文这或许是众多OIer最大的误区之一。你会经常看到网上出现“这怎么做,这不是NP问题吗”、“这个只有搜了,这已经被证明是NP问题了”之类的话。你要知道,大多数人此时所说的NP问题其实都是指的NPC问题。他们没有搞清楚NP问题和NPC问题的概念。NP问题并不是那种“只有搜才行 2023-09-24 离散数学 经验方法 #数学 #NP #信息学
MIT 6.S081学习笔记(第一章) 〇、前言本章主要是关于实验环境的搭建和完成 LAB UTIL。平台:阿里云 Ubuntu20.04+VScode on macOS(M1 Apple Silicon)。 一、环境搭建1、QEMU QEMU(quick emulator)是一款由法布里斯·贝拉(FabriceBellard)等人编写的通用且免费的可执行硬件虚拟化的(hardwarevirtualization)开源仿真器(Emu 2023-09-10 OS > 系统编程 > Unix/Linux #学习 #笔记 #操作系统 #MIT 6.S081
MIT 6.S081学习笔记(第〇章) 〇、前言 本文涉及 xv6 《第零章 操作系统接口》相关,主要对涉及的进程、I/O、文件描述符、管道、文件等内容产生个人理解,不具有官方权威解释; 文章的目录与书中的目录没有严格的相关性; 文中会有问题 (Question) 字段,这来源于对 xv6 book 的扩展; 文中涉及的代码均能在macOS 12.5 M1 Apple Silicon 运行,文中涉及的所有代码的运行也在该环 2023-09-07 OS 系统编程 Unix/Linux #学习 #笔记 #操作系统 #MIT 6.S081
go Session的实现(一) 〇、前言众所周知,http协议是无状态的,这对于服务器确认是哪一个客户端在发请求是不可能的,因此为了能确认到,通常方法是让客户端发送请求时带上身份信息。容易想到的方法就是客户端在提交信息时,带上自己的账户和密码。但是这样存在着严重的安全问题,可以改进的方法就是,服务器给一个确定的客户端返回一个唯一 id,客户端将这个 id 保存在本地,每次发送请求时只需要携带着这个 id,就可以做到较好的验证 2023-09-02 Golang 前端 Web #网络 #golang #后端 #前端
gin 框架中的 gin.Context 〇、前言Context 是 gin 中最重要的部分。 例如,它允许我们在中间件之间传递变量、管理流程、验证请求的 JSON 并呈现 JSON 响应。 Context 中封装了原生的 Go HTTP 请求和响应对象,同时还提供了一些方法,用于获取请求和响应的信息、设置响应头、设置响应状态码等操作。 在 Gin 中,Context 是通过中间件来传递的。在处理 HTTP 请求时,Gin 会依次执行 2023-08-01 Golang > Golang_框架 > Web #网络 #golang #gin #Context #Web
Redis (一)消息订阅和发送测试 〇、redis 配置1、概况本文基于 Ubuntu20.04 云服务器配置Redis,且在本地进行 Redis 测试。 2、目录概况 一、配置文件位于 /config/app.yml 中,目的用于 Redis 初始化: 123456redis: addr: "39.104.**.28:6379" password: "password" DB: 0 2023-07-31 Golang Web #redis #bootstrap #数据库