V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  codehz  ›  全部回复第 67 页 / 共 133 页
回复总数  2657
1 ... 63  64  65  66  67  68  69  70  71  72 ... 133  
2021-04-15 02:18:29 +08:00
回复了 emilll 创建的主题 TypeScript 问一个 ts 类型提取问题
windows 快捷键都是软件自己处理的,你即使用 hack 手段干掉了 explorer 的缩放,还得单独处理浏览器的。。
2021-04-14 20:53:14 +08:00
回复了 des 创建的主题 信息安全 Chrome / Edge 新鲜的漏洞没人关注?
@jim9606 微信就是。。。
不过人家是 32 位的,但是也看到有大手子做了 PoC
2021-04-14 13:46:08 +08:00
回复了 des 创建的主题 信息安全 Chrome / Edge 新鲜的漏洞没人关注?
(重点是那些 cef 框架,electron 应用。。。。
2021-04-14 12:42:03 +08:00
回复了 LeeReamond 创建的主题 问与答 Linux 系统使用直接 I/O,是否会产生多线程并发错误?
@LeeReamond 直接写入的意思是,(同步的情况下) read/write 系统调用等待数据落盘之后再返回,系统调用还是那个调用,怎么就减少了系统调用呢(当然你不能说之前都一字节发一个,然后 direct io 这边整理起来一起发这种不公平的对比,这里假设都是按相同的大小发调用,那么同步的情况下,数量完全没差别),但是由于硬件只能按块为单位读写,一旦没有按块对齐的方式发出 direct io 的读写调用,势必会浪费带宽(比如小于一个块)或者产生多次读写(跨越了块边界)以增加延迟,通常来说反而更慢,最差可以相差几个数量级,buffered io 就不一样了,有缓存就可以把一堆读写收集起来,在不对齐的情况下平摊了访问的延迟,效率更高。
上面说的有点问题,竞争条件应该只在读写之间冲突,单纯的写或者读,是不会造成冲突的,驱动同时保证了(逻辑上)只有一个写入的操作,但是由于没内核缓冲和额外的保护机制,读取的时候可能出现交替的新旧内容。
2021-04-14 00:29:03 +08:00
回复了 LeeReamond 创建的主题 问与答 Linux 系统使用直接 I/O,是否会产生多线程并发错误?
@LeeReamond 没有减少系统调用,相反,由于几乎只能配合 native aio 使用(不然比 buffered io 还慢),事实上还略微增加了调用的总个数。。。
提高效率的原因就是省去的内核缓冲区,可以直接从用户缓冲区写到块设备上,于是就会有潜在的竞争状态(如果多个线程同时操作,或者一个线程里提交重叠的异步 io 请求)
(然后,由于直接写入磁盘,所以也不需要额外的文件系统同步了,数据库就需要这个)
2021-04-13 23:10:46 +08:00
回复了 LeeReamond 创建的主题 问与答 Linux 系统使用直接 I/O,是否会产生多线程并发错误?
谁跟你说 direct io 不走内核???
只是没内核缓冲而已,内核还是没绕过,自己管理缓冲以实现更高的效率。。。也就是同步的层次低了点,不能保证单次写入的原子性而已(主要是为了 aio )
2021-04-13 07:59:33 +08:00
回复了 ads123 创建的主题 C++ C++中 static_cast<>做了什么
2021-04-12 21:14:19 +08:00
回复了 liuzhiyong 创建的主题 分享发现 7z vs rar
按楼主的 google news 比较法, tar file 有 10 页
看起来是 udp 53 连接被阻止了,试试+tcp 的选项(附加到后面,另外多测试几种 dns 服务器,难说是抽风了)
应该就是防火墙的配置问题(((
dig 强制指定一个 dns 试试看
dig @8.8.8.8 g.cn +trace
你用 nslookup/dig 测试 dns,别用 ping 测试域名,根本不是一个用途的
2021-04-12 08:08:57 +08:00
回复了 jwenjian 创建的主题 GitHub 警惕仿冒 github 域名的钓鱼网站
@jwenjian 这个不是钓鱼,打开就一句话 You spelled it wrong.
2021-04-12 07:50:56 +08:00
回复了 jwenjian 创建的主题 GitHub 警惕仿冒 github 域名的钓鱼网站
之前打错进 guthib.com 这个(
既然都静态页了,那就别自己托管,丢 cdn 上,然后只要管好各种管理密码就好了。。。
linux 用户组管理整个都是用户态处理的,内核只认识数字,也不会去读取文件什么的,所以按照程序显示去学 linux 机制,是要遇坑的。。。
linux 内核的视角来看,就只能看到如下这些信息(暂时不考虑 euid 等复杂的机制)这些信息都是归属于进程的
uid gid groups
对应的就是用户 id,主组 id,补充组 id
为什么要区分主组和补充组呢,除了历史原因之外,就是为了在使用文件操作的时候有一个唯一的 gid 可用,毕竟文件只能有一个 gid
但是 id 程序,为了用户方便,就把主组也加入补充组的范畴内了,这样就能一眼看出用户加入了哪些组了
@AllenHua 这不就是我说的不遵循约定的后果吗,你的主要组已经是是 dkgroup 了,然后再加入 group 里,id 程序就会显示两个了。。。
id 程序的逻辑你可以理解成这样
主组(/etc/passwd 拿到的)的加入 groups 显示
补充组(/etc/group 拿到的)也加入 groups 显示,然后这里没有做去重处理,就显示出两个了。
你直接 su 登录那个账户,再用 id 命令,此时应该会走另一个逻辑,直接从当前进程获取 gid 和 groups,这样应该不至于显示出两个重复的 dkgroup 了(根据 https://man.archlinux.org/man/getgroups.2 文档,getgroups 可能或不能列出主组,所以应用程序要自己整理,id 程序应该会自己去除重复项目)
(补充组才需要在 /etc/group 里记录,这是约定)
你可以反过来思考下为什么要这样约定
假设不遵循约定会发生什么。。。
简单说就是数据库设计里避免冗余的方法,如果已经在 passwd 里决定了主组,如果还在 group 里重复记录,那么在出现不一致的时候就会产生歧义,到底按哪个记录为准,现在这样设计就很明确了,登录的时候程序只需要读取 passwd 改变程序的 UID gid,读取 group 扫描有对应用户的 group,通过 setgroups 系统调用设置补充组即可
1 ... 63  64  65  66  67  68  69  70  71  72 ... 133  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4915 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 46ms · UTC 05:39 · PVG 13:39 · LAX 21:39 · JFK 00:39
Developed with CodeLauncher
♥ Do have faith in what you're doing.