AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-23692

PSkocik's questions

Martin Hope
Petr Skocik
Asked: 2024-04-28 23:28:52 +0800 CST

新 Linux 中系统调用调用约定发生变化的理由是什么?

  • 13

引用自https://www.kernel.org/doc/Documentation/process/adding-syscalls.rst:

至少在 64 位 x86 上,从 v4.17 开始,不调用内核中的系统调用函数将成为硬性要求。它对系统调用使用不同的调用约定,struct pt_regs 在系统调用包装器中即时解码,然后将处理交给实际的系统调用函数。这意味着在系统调用入口期间仅传递特定系统调用实际需要的参数,而不是始终用随机用户空间内容填充六个 CPU 寄存器(这可能会导致调用链出现严重问题)。

最后一个带括号的子句指的是调用链中的什么严重问题?

对我来说,不将六个寄存器加载到系统调用的通用引导中似乎很愚蠢。强制每个系统调用包装器这样做会使它们变得更大,并且系统调用函数成为一种新的特殊情况,所以我想知道在未使用的参数寄存器中存在无意的用户内容的“严重问题”是什么。

linux
  • 1 个回答
  • 341 Views
Martin Hope
PSkocik
Asked: 2022-11-23 06:57:14 +0800 CST

如何将带有随附消息的补丁发送到 Linux 内核?

  • 8

所以我发现了一个错误,修复了它,并想为它发送补丁。

我按照编写并提交你的第一个 Linux 内核补丁youtube 视频,设置 git-email,格式化所有内容等,并想发送它。

我的问题:我不想单独发送它,而是随附消息和由补丁修复的示例用户空间代码。两者似乎都不适合提交消息。

我要通过单独的电子邮件发送吗?那是否也需要以某种方式进行特殊格式化?

linux
  • 1 个回答
  • 56 Views
Martin Hope
PSkocik
Asked: 2022-02-23 06:05:43 +0800 CST

将现有文件/目录的权限与将要创建的文件/目录的权限进行比较

  • 0

假设我正在使用系统调用创建具有某些名称和模式参数的文件或目录,并且操作失败并显示EEXIST.

假设我知道我当前umask的euid、 和egid,如何判断现有文件/目录是否具有与操作成功时系统调用所创建的权限等效的权限。

AFAIK,对于经典权限,如果 .st_gid == egid && .st_uid == euid && (.st_mode & 07777) == (RequestedMode & 07777 & ~CurrentUmask)发现/预期的文件类型匹配,答案将是真实的。

如何将其扩展到具有访问控制列表的系统?

permissions acl
  • 1 个回答
  • 24 Views
Martin Hope
PSkocik
Asked: 2019-09-04 04:04:03 +0800 CST

POSIX 是否保证任何标准实用程序的路径?

  • 25

从 C 语言中,运行标准实用程序(例如 ps)最简单的方法是什么?

例如,POSIX 是否保证有一个标准ps,/bin/ps或者我应该将 PATH 环境变量重置为我得到的confstr(_CS_PATH, pathbuf, n);,然后通过 PATH-search 运行该实用程序?

c path
  • 2 个回答
  • 3416 Views
Martin Hope
PSkocik
Asked: 2019-03-03 16:19:50 +0800 CST

MacOS 对应 Linux 的 unshare(2)

  • 4

MacOS 是否有对应于 Linux 的unshare(2)?

我希望以下两个系统都失败。

#define _GNU_SOURCE
#include <stdlib.h>
#include <sched.h>
int main()
{
#if __linux__
    if(0>unshare(CLONE_NEWNET)) return EXIT_FAILURE;
#elif __APPLE__
    /*?*/
#endif
    //this should fail on either system
    if(0!=system("curl www.google.com")) return EXIT_FAILURE;
}
networking osx
  • 1 个回答
  • 1235 Views
Martin Hope
PSkocik
Asked: 2019-01-31 12:23:35 +0800 CST

直接与间接背景儿童的阅读行为

  • 1

当我做

( sleep 1; read x ; echo x=$x; echo done ) & 

然后使用默认终端设置,作业被停止SIGTTIN。

如果我做

( ( sleep 1; read x ; echo x=$x; echo done ) & )

里面的read系统调用read得到EOF(返回0)`并且不会发生SITTIN停止。

这些行为的解释是什么

shell terminal
  • 1 个回答
  • 44 Views
Martin Hope
PSkocik
Asked: 2018-11-03 02:05:10 +0800 CST

字符串替换:如果为空则替换,否则为空

  • 4

我想知道这种东西是否有简写。

目前我可以做到。

var_empty=; [ -n "$var" ] || var_empty=1; #intermediary variable
echo "REPL_if_var_empty_otherwise_empty=${var_empty:+REPL}"

这在没有中介的情况下可行吗?

我试过了

sh -c 'readonly SAME=SAME; var=; echo test0=${var:-SAME} test1=${SAME:+REPL}; echo REPL_if_var_empty_otherwise_empty=${${var:-SAME}:+REPL}'

但这会导致bad substitution最后一个错误echo(test0=SAME test1=REPL)。这是为什么?还有其他方法吗?

shell posix
  • 2 个回答
  • 3463 Views
Martin Hope
PSkocik
Asked: 2018-10-05 06:51:48 +0800 CST

nc 意外卡住

  • 0

我期待这个:

nc -l localhost 7000 </dev/null &
nc localhost 7000 </etc/profile

和这个

nc -l localhost 7000 </etc/profile &
nc localhost 7000 </dev/null

在打印完 my 后完成,/etc/profile 但两个命令组最终都卡住了(第一种情况下的两个进程;在第二种情况下,服务器完成但客户端没有完成)。

为什么命令没有完成?

这是我的nc/Linux (4.15) 中的错误吗?我在 MacOS 和 Cygwin 上尝试过,只有 Linux 命令没有完成。

linux networking
  • 1 个回答
  • 2396 Views
Martin Hope
PSkocik
Asked: 2018-09-17 00:02:29 +0800 CST

在 Cygwin 中不能 chown 0 (root)

  • 5

这个命令:

rm -f testfile && touch testfile && chown 0 testfile

在 Cygwin 中失败并出现错误:

chown: changing ownership of 'testfile': Invalid argument

为什么?

root cygwin
  • 1 个回答
  • 523 Views
Martin Hope
PSkocik
Asked: 2018-09-02 05:21:29 +0800 CST

用 xargs 修复了最后一个参数

  • 5

是否可以使用 xargs 调用命令以固定命令的最后一个参数?

我的尝试:

printf '%s\n' a b c d | xargs -I{} echo {} LAST

最终做

echo a LAST  
echo b LAST  
echo c LAST  
echo d LAST  

我想让 xargs 调用

echo a b c d LAST
#fit as many as you can but always finish wiht LAST

这可能吗,最好以便携的方式?

xargs
  • 2 个回答
  • 1954 Views
Martin Hope
PSkocik
Asked: 2018-08-31 02:18:32 +0800 CST

测试变量是否未设置

  • 9

是否有一个可移植测试变量(其名称在脚本中静态已知)是否未设置(与空不同)?

shell
  • 2 个回答
  • 4138 Views
Martin Hope
PSkocik
Asked: 2018-07-29 08:40:15 +0800 CST

在启动时运行简单脚本的便携方式

  • 0

我试图在启动时以 root 身份运行脚本。

(只需在/tmp中设置一个根拥有的目录)。

目前,我正在使用这个脚本来设置引导挂钩,它似乎可以完成工作:

#!/bin/sh -eu
if [ 0 -eq $((${1:-0})) ]; then
    #install
    [ -x /etc/init.d/tmpsetup ] ||  {
        cat > /etc/init.d/tmpsetup <<'EOF'
#!/bin/sh -eu
[ $(id -u) -eq 0 ]
umask 0222
mkdir -p /tmp/u/
EOF
        chmod a+rx /etc/init.d/tmpsetup
        update-rc.d tmpsetup defaults 99
        }
else
    #uninstall
        rm -f /etc/init.d/tmpsetup
        update-rc.d tmpsetup remove
fi

有没有更便携/更好的方法来做到这一点?

(它是为每个用户实现一个 /tmp 功能。应该是适应现有系统的安装脚本的一部分。)

startup init
  • 1 个回答
  • 62 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve