epoll 是为了克服 select 和 poll 在处理大量并发连接时性能低下的问题而设计的,特别适合高并发网络服务器应用。
epoll 最早出现在 Linux 内核 2.5.44 版本(2002年),是 Linux 特有的高性能 I/O 事件通知机制。
more >>在 Socket 出现之前,网络编程需要直接处理复杂的 TCP/IP 协议栈细节,不同厂商的 API 也不尽相同。
1983 年,加利福尼亚大学伯克利分校在发布的 4.2BSD(Berkeley Software Distribution)版本 Unix 系统中,做了一件影响深远的事:正式引入了 Socket(套接字)接口。
有了 Socket,但早期的网络程序很快遇到了新问题:如何处理多个连接?最初的模型是“阻塞 I/O”,一个线程只能处理一个连接。当它从一个 socket 读取数据时,如果没有数据,整个程序就会卡在那里,无法响应其他连接。
为了解决这个问题,select 系统调用 在 1983 年随着 4.2BSD 一同被创造了出来。
select 系统调用 允许程序同时监视多个文件描述符,检测它们的状态变化(如数据可读或可写),从而高效地管理多个 I/O 操作而不需为每个操作创建独立线程或进程。这种能力尤其在网络通信和服务器编程中提高了并发性能。select 系统调用 还支持非阻塞 I/O,允许程序在等待 I/O 事件的同时执行其他任务,有效利用 CPU 资源。
自 select() 面世以来,在各种 Unix 变体(System V、AIX、SunOS、HP-UX 等)中被广泛实现,但每个系统的实现细节略有差异。1990 年,POSIX 标准(POSIX.1-1990)统一了相关规定。
📢 传统的桌游就是把一堆卡牌和Token拿来移去,好耗时好麻烦,而桌游模拟器就是在传统的桌游上加入脚本好好玩!!!📢
桌游模拟器(Tabletop Simulator,简称 TTS)不仅提供了桌游卡牌、Token等操作的物理模拟,还提供了一个 Lua 脚本运行环境,Lua 操作接口使得线下无法做到的自动Setup、拿取/分发物品、终局结算等等电子游戏的功能得以实现。此功能可以大大简化玩家操作,让玩家更加专注于策略层面。
但是除了官方的API文档,和桌游模拟器脚本相关的中文资料十分稀少,所以在这里做一些总结,以供大家参考。(有任意一门编程语言基础的学起来应该都不难,对于会 Python/JavaScript 等脚本语言的来说就更简单了)
适验版本:TTS v14.1.8,Lua 版本 v5.2。
more >>上一篇解决了无线连接的问题,图穷匕首现,用这个板子做 USB over Network 的主控,解决我远程使用 3D 打印机、HP 打印机的问题。经测试,USB Camera、U盘也可以使用。
USB/IP 是一种基于网络的设备共享机制,可将电脑A(Server端)连接的USB设备通过网络共享给远程电脑B(Client端)。
试验环境:
绿联的USB无限网卡,在 Windows 上用是比较简单的:插上网卡,会作为存储盘弹出,其中包含了驱动软件安装包,驱动软件安装后,系统会将网卡自动设备为WiFi设备,就直接可以使用系统软件连接 WiFi 了。
想在 TLT113 这个 ARM 板上使用这张网卡,就比较麻烦了。需要在 kernel、rootfs、驱动 这3个层面进行适配,使用也需要使用命令行工具。
试验环境:
more >>基于 iTOP-4412 POP 1G 精英板 + linux-4.19.323,学习一下 gpio-leds 驱动。
more >>Busybox,是一个未完全实现的Unix系统,可以裁剪为最小的一个运行系统,可以包含一些简单的命令。
制作环境:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent:
meta: false
pages: false
posts:
title: true
date: true
path: true
text: false
raw: false
content: false
slug: false
updated: false
comments: false
link: false
permalink: false
excerpt: false
categories: false
tags: true