V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  codehz  ›  全部回复第 100 页 / 共 135 页
回复总数  2695
1 ... 96  97  98  99  100  101  102  103  104  105 ... 135  
2019-12-28 14:55:06 +08:00
回复了 different 创建的主题 Linux 关于 websocket 协议,使用 cdn 加速的情况有问。
关于第一个问题,你可以试试用 curl 测试一下(别告诉我这玩意没实现 HTTP 服务器功能,直接裸 websocket
然后除此之外,连接上还得注意以下问题:在 cloudflare 后台把 websocket 功能打开( network 那个选项卡找一下
其次:发送升级请求的时候带上 Host 和 UA(或者去 cf 后台设置下防火墙等级,以及具体 UA 也可以在那里设置下白名单)
Host 的必须的,不然 CF 不知道到底是哪个用户的网站,也没法请求了(
2019-12-27 18:34:42 +08:00
回复了 Tengwait 创建的主题 宽带症候群 上海的 IP 不挂网站,解析都不行了
@no1xsyzy 需要实际访问记录,其实只要搞一个自定义 DNS,把 IP 地址编码到子域名里,然后写个脚本批量发请求)
这不是行为主义心理学的观点么(
不过要做到楼主的说法,起码得有观测手段收集全部历史信息吧
2019-12-26 13:59:18 +08:00
回复了 squancher 创建的主题 程序员 请问编程语言中阻塞机制在操作系统最底层是如何实现的?
@squancher 没有黑魔法,一切都是循环(
2019-12-26 13:36:56 +08:00
回复了 squancher 创建的主题 程序员 请问编程语言中阻塞机制在操作系统最底层是如何实现的?
其实不去实现操作系统也不是不能了解这个阻塞调用机制
你可以自己实现一个协程
然后看看不使用系统调用的情况下如何实现 timer
(是不是只能一个死循环,最多优化优化检查策略)
然后我这里就做了一个模仿操作系统的协程模型 https://github.com/codehz/ctxco
其中 poller 函数可以理解为系统调用的处理函数(然后自己实现如何将请求异步提交给系统,并返回调度具体协程)
2019-12-26 13:26:54 +08:00
回复了 squancher 创建的主题 程序员 请问编程语言中阻塞机制在操作系统最底层是如何实现的?
@squanche 内核也有线程,定时器会专门开一个线程管理,然后他就可以做一个操作:依次排列各个定时器事件,循环检查第一个定时器有没有触发,然后循环内每次检查后都主动放弃执行绪切到另一个内核线程处理别的事务(
2019-12-26 13:09:19 +08:00
回复了 squancher 创建的主题 程序员 请问编程语言中阻塞机制在操作系统最底层是如何实现的?
判断的过程有非常多的选项,对于同步的系统调用来说,最简单了,就是遍历一个候选列表,然后一个一个判断过去(没错,就是链表)
你以为的实时只是假象,看起来很快,但起码有个几千个时钟周期的“浪费”,根本不是实时的
2019-12-26 13:05:17 +08:00
回复了 squancher 创建的主题 程序员 请问编程语言中阻塞机制在操作系统最底层是如何实现的?
@squancher 中断是硬件实现,等于强行跳转到另一个执行逻辑(所谓中断处理函数,实际并不是手动调用过去的,而是硬件暴力跳转过去),软件层面无法改变也没法预测
2019-12-26 10:57:10 +08:00
回复了 squancher 创建的主题 程序员 请问编程语言中阻塞机制在操作系统最底层是如何实现的?
其实了解一些基本硬件提供的机制就可以理解这个问题了(当然要具体实现那是另一个问题)
首先我们知道硬件有中断,其中包括时钟中断和 IO 中断(和别的)
于是我们可以做什么呢,时钟中断可以用来切换运行中的线程(抢占式调度)
对应的 IO 中断就可以用来唤醒由于特定 IO 请求而睡眠的线程了!
(所以为什么要阻塞队列?因为有可能同时有好多线程有 IO 请求,总得设计一个结构去保存吧,然后请求来了就扫描一下看看谁可以被唤醒做事)
当然具体实现要复杂的多,比如 IO 中断怎么解析就是一个非常复杂的事情,解析好了也不是立即就唤醒的,除非是无阻塞 poll 模式,不然内核还要帮你把收到的数据填充到缓冲区(以 read 为例)
@Buges 但是 windows 安装器会拒绝在 legacy 模式下安装 UEFI 的 Windows
然后 legacy 模式下没法修改 UEFI 的相关记录,导致 Linux 即使装上了,也得修一下 UEFI 条目(
2019-12-21 14:33:08 +08:00
回复了 jackpot 创建的主题 Ubuntu 关于 WSL 下 Ubuntu 防火墙的问题
wsl 不支持 ufw.
2019-12-18 13:53:37 +08:00
回复了 CSGO 创建的主题 宽带症候群 除了 ping 以外还有什么方式可以探测服务器?
nmap?直接扫描端口
2019-12-15 17:00:39 +08:00
回复了 b00tyhunt3r 创建的主题 程序员 win10 怎么让键盘默认打出下划线 _ 而不是横杠 -
理论上可以修改键盘布局,这里有个官方提供的工具创建自定义键盘映射
https://www.microsoft.com/en-us/download/details.aspx?id=22339
但是我没用过,也不确定是否有效
有,用 proot 里面的模拟 mount bind 功能对文件进行 bind -b xxx:/etc/my.conf 原理是通过 ptrace 拦截系统调用
当然如果系统支持,也可以用 user namespace + mount bind 的方法(用我的 github.com/codehz/nsroot 理论上比 ptrace 要稳一点,性能影响也少一点
2019-12-12 15:29:55 +08:00
回复了 yujianwjj 创建的主题 Go 编程语言 GO os.File 的疑问
原因已经在注释里了:os specific
不同操作系统的文件结构体可能不同,导致结构体大小也不一致,加一个间接指针以后,大小就确定了。
然而真正流行的几个"现代"命令行程序都是 Rust 写的。。
比如 fd rg(ripgrep) exa bat
还有就是用 c 写的,如 jq 和 htop
以及就是 golang,比如 fzf
就算是脚本语言,也是以 python 为主,如 mycli (以及啥 youtube dl 一类的)
2019-12-10 21:48:12 +08:00
回复了 JCZ2MkKb5S8ZX9pq 创建的主题 JavaScript 请教一个页面跳转的监听问题
@JCZ2MkKb5S8ZX9pq 所以为啥要绕一圈发个事件,不能直接在 hook 处做你的逻辑么
2019-12-10 13:42:39 +08:00
回复了 JCZ2MkKb5S8ZX9pq 创建的主题 JavaScript 请教一个页面跳转的监听问题
@JCZ2MkKb5S8ZX9pq 你可以 hook 掉 push state 的(
其实这事就是这么个事:electron 降低了开发桌面软件的难度,导致很多小白涌入桌面开发领域。
这个意义上说,所有能降低开发门槛的事物都有这个效果,这就和社区经营一样
> 一开始,社区门槛很高,讨论质量很棒。
> 接着,由于某些原因,社区开放了入口
> 然后大量“小白”涌入社区,
> 社区讨论质量降低
这意味着什么,降低门槛是好事还是坏事呢?
那么到底是降低门槛的人道德有问题,还是后期进入的人的道德有问题呢?
“人民群众喜闻乐见,你不喜欢,你算老几”
之所以这类软件大行其道,说明用户还是对其有需求的,至少这个需求压过了“粗制滥造”的问题。不然即使作者再怎么推广,也不过是一个必然埋没在历史垃圾堆里的东西,也不至于使得这么多人愤慨了。
当然了,作为有一定追求的开发者,的确不应该停留在人民群众喜闻乐见的层面上开发,而是需要追求一些高级的作品(比如前面提到的内存占用和性能),当然这并不意味着低级的软件是在作恶,起码没人逼着你用这些软件。
再说了,如果你真的对那些垃圾软件看的不爽,可以自己做一个比下去的,这不就皆大欢喜了么。
1 ... 96  97  98  99  100  101  102  103  104  105 ... 135  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2583 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 53ms · UTC 06:54 · PVG 14:54 · LAX 22:54 · JFK 01:54
Developed with CodeLauncher
♥ Do have faith in what you're doing.