终端发展过程及 tty、pty、pts 的区别
终端是一种输入输出设备。把终端连接到计算机上,就可以跟计算机进行交互。当今个人电脑最常用的两种终端设备分别是作为输入终端的键盘以及作为输出终端的显示器。
终端是一种输入输出设备。把终端连接到计算机上,就可以跟计算机进行交互。当今个人电脑最常用的两种终端设备分别是作为输入终端的键盘以及作为输出终端的显示器。
https://github.com/schaepher/keyboard_mouse_emulate_on_raspberry
Bluetooth Keyboard
+------------------------+
| |
| +-----------+ |
| | USB | |
| | keyboard | |
| +-----+-----+ |
| | HID protocol |
| v |
| +-----+-----+ |
| |Linux input| |
| +-----+-----+ |
| | event |
| v |
| +-----+-----+ |
| | evdev | |
| +-----+-----+ |
| | |
| v |
| +-----+-----+ |
| |event code | |
| | to | |
| | HID code | |
| +-----+-----+ |
| | dbus |
| v |
| +-----+-----+ |
| | Bluetooth | |
| | keyboard | | +-----------+
| | service | | | Windows |
| +-----+-----+ | +-----+-----+
| | send | ^ HID protocol
| v | |
| +-----+-----+ | +-----+-----+
| | Bluetooth | | | Bluetooth |
| | service | | +-------> | service |
| +-----------+ | L2CAP +-----------+
| |
+------------------------+
主要做三件事:
在 Go 的 time 库里面,使用 time.ParseInLocation 或者 time.Date 时,都需要传入 time.Location 参数,然后生成 time.Time 对象。
time.Time 底层存储的是秒数、纳秒数以及时区 time.Location,这个秒数和纳秒数的时区必须是 UTC,与 time.Location 的值无关, time.Location 仅在格式化为可读形式的时候有用。如果在上述传的 time.Location 不是 UTC,则需要对生成后的秒数进行校正。
我本来想用“改变”这个词来描述我的 2020。
因为这一年中我有很大的变化:离开了让我感觉很温馨的公司、第一次在省外工作、开始学习并使用新的编程语言和技术栈、开始大量阅读历史和政治相关的内容、开始跑步并保持了一个很好的频率、开始尝试解决单身问题……
分布式锁用于解决分布式系统的资源竞争问题。例如避免多台服务器同时修改一个数据导致数据出错。
一个比较简单的场景是基于 crontab 的定时任务。当系统采用单机时,可以直接把定时任务放到 crontab 触发。但是如果要为系统部署一台热备,就得在主机故障后让备机自动代替主机触发定时任务的功能。
Windows 样式:
右键任务栏 | 模式|高效
任务栏放在屏幕下方:
右键任务栏 | 位置|下
右键任务栏输入法图标
输入法 | 注:仅保留 “拼音” 和 “键盘” 两项