Questions tagged «linux»

这些问题通常与Linux有关-并非特定于特定发行版。如果问题恰好在Linux环境中,请在问题正文中指定Linux发行版,但不要使用/ linux标记。


7
线程是否在Linux上实现为进程?
我正在阅读 Mark Mitchell,Jeffrey Oldham和Alex Samuel 所著的 Advanced Linux Programming。是2001年的,所以有点旧了。但是无论如何我都觉得很好。 但是,当它与Linux在shell输出中产生的结果有所不同时,我到了一个地步。在第92页(查看器中为116)上,第4.5章GNU / Linux线程实现始于包含以下语句的段落: GNU / Linux上的POSIX线程实现与其他许多类UNIX系统上的线程实现有一个重要的区别:在GNU / Linux上,线程被实现为进程。 这似乎是关键点,以后将用C代码进行说明。本书的输出为: main thread pid is 14608 child thread pid is 14610 在我的Ubuntu 16.04中是: main thread pid is 3615 child thread pid is 3615 ps 输出支持这一点。 我猜在2001年到现在之间一定有所改变。 下一页的下一个子章节4.5.1 Signal Handling建立在上一条语句的基础上: 信号和线程之间的交互行为在一个类UNIX系统之间有所不同。在GNU / Linux中,行为是由将线程实现为进程这一事实所决定的。 看起来这在本书的后面将变得更加重要。有人可以解释这是怎么回事吗? …

4
如何从头开始编译C编译器,然后从头开始编译Unix / Linux
假设我在美国/英国以外的大型服务机构工作。我们广泛使用UNIX和Linux服务器。 通读本文时,提到将后门插入C编译器很容易,然后使用该编译器编译的任何代码也将包含后门。现在,鉴于最近有关NSA / GCHQ要求在所有加密方法,硬件和软件中放置后门/弱点的漏洞,编译器现在是失败的关键点。可能所有标准UNIX / Linix发行版都可能受到损害。我们无力让流氓政府破坏我们的系统,数据和客户数据。 有了这些信息,我想从头开始构建一个受信任的编译器,然后就可以建立一个安全的基础,这样我就可以使用该编译器从源代码构建操作系统和应用程序。 题 从源代码编译编译器(看似鸡蛋的场景)然后从头开始编译受信任的Unix / Linux发行版的正确(安全方式)是什么? 您可以假设我或其他人具有阅读和理解源代码的安全漏洞的能力,因此在编译之前将首先对源代码进行审查。我真正需要的是一个工作指南,可以从头开始安全地生产此编译器,并且可以用于编译内核,操作系统和应用程序的其他部分。 如果我们要对在该堆栈上运行的操作系统或应用程序有信心,则安全堆栈必须从基本级别开始。是的,我知道可能存在硬件后门,这些后门可能会在构建编译器时向编译器中插入一些微代码。目前我们对此无能为力,只能使用非美国设计的芯片。让我们首先对这一层进行排序,并假设我可以在插入任何后门之前将其构建在旧计算机上。 正如布鲁斯·施耐尔(Bruce Schneier)所说:“我向工程师说:我们建立了互联网,我们中的一些人已经颠覆了互联网。现在,那些热爱自由的人必须加以修复。” 额外链接: http://nytimes.com/2013/09/06/us/nsa-foils-much-internet-encryption.html?pagewanted=all&_r=0 http://theguardian.com/commentisfree/2013/sep/05/government-betrayed-internet-nsa-spying

14
mount.nfs:在Ubuntu机器上挂载时服务器拒绝访问?
我有三台机器正在生产- machineA 10.66.136.129 machineB 10.66.138.181 machineC 10.66.138.183 所有这些机器都安装了Ubuntu 12.04,并且我具有对这三台机器的root访问权。 现在我应该在上面的机器中做下面的事情- Create mount point /opt/exhibitor/conf Mount the directory in all servers. sudo mount <NFS-SERVER>:/opt/exhibitor/conf /opt/exhibitor/conf/ /opt/exhibitor/conf如上所述,我已经在所有这三台计算机上创建了目录。 现在,我试图创建一个挂载点。所以我遵循以下过程- 在以上三台机器上安装NFS支持文件和NFS内核服务器 $ sudo apt-get install nfs-common nfs-kernel-server 在以上三台机器上创建共享目录 $ mkdir /opt/exhibitor/conf/ 编辑了,/etc/exports并在上述所有三台机器中添加了这样的条目- # /etc/exports: the access control list for filesystems which may be exported …
64 linux  ubuntu  mount  nfs 


1
在最近的公司计算机上启动期间崩溃
经过一些最近的更新后,我的计算机不再启动!这是我可以确定的: 这是公司IT向我提供的最新计算机。它具有最新的Intel CPU(Skylake一代)。 该计算机运行Ubuntu 16.04。 上一次在三月份的某个时间正确启动了计算机。该问题可能是由于软件更新或硬件错误引起的。 我有一台运行16.04的计算机,安装了几乎相同的软件(我使用过apt-clone),并且工作正常。它具有不同的硬件(也为amd64,但具有不同的CPU,不同的GPU等)。 内核确实启动,initrd正常工作。在图形模式下使用启动屏幕启动时,系统提示输入dm-crypt卷的密码,最后我看到的是它已成功安装。 挂起发生在我得到登录提示之前。当计算机挂起时,这很困难。甚至Alt+ SysRq都没有回应。由于风扇完全爆炸,因此CPU显然固定在100%。 重新启动之前,我仍然有运行中的内核。当我在Grub菜单中选择此内核时,我得到了相同的锁定。因此,这似乎是一个预先存在的内核错误,该错误由其他原因触发-但是呢? 如果我关闭了启动画面(splash从linuxGrub中的命令行删除),则看到许多服务正在启动,然后它将锁定。 我可以通过添加得到一个root shell init=/bin/sh到linux在GRUB命令行。我什至可以通过添加进一步 systemd.unit=basic.target systemd.shell 这将启动许多服务,并在tty9上运行根shell。 如果我systemctl start multi-user.target从该根外壳运行,则计算机将锁定。因此,大概是这些服务之一触发了问题。 我跑去systemctl list-dependencies multi-user.target看什么服务开始。我一一手动启动了列出的依赖项,一切开始正常。 因此,这看起来像是由某些软件触发的硬件错误(因为它发生在一台计算机上,而不是另一台计算机上)。但是什么软件?由于计算机锁定非常困难,因此无法获取任何日志。我什至无法获得任何有用的控制台输出。 有用的调试技术: Alt+ SysRq:魔术SysRq键,可让您执行紧急重启之类的操作。它以非常低的级别访问内核,因此除了最严重的崩溃外,它都能正常工作。就我而言,Alt+ SysRq不会响应,这表明崩溃的程度。 要修改启动参数,请Shift在打开电源后按住几秒钟。在BIOS初始化键盘之后,但在操作系统引导之前,您需要按一下它。这将使Grub菜单出现。 在Grub菜单上,按e编辑菜单项的命令行。要更改Linux引导参数,请导航至以开头的行linux。在现代Ubuntu上,您会在“ Ubuntu的高级选项”下找到旧内核。对命令行进行所需的更改后,请按Ctrl+ x引导。您在此处所做的任何更改仅用于此引导,它们不会保存到磁盘。 linux命令行上一些有用的选项: quiet nosplash隐藏几乎所有引导消息。删除它们以在启动期间在控制台上获取消息,这对于诊断问题是必须的。 recovery为您提供了几乎没有服务的root shell。您需要知道root密码。“恢复模式”菜单项使用此选项。 init=/bin/sh为您提供了根本没有服务的root shell。要恢复正常引导,请运行exec init。您可以在此时传递systemd选项,例如exec init --unit=basic.target,启动init和一些服务(请注意,这不会以任何方式启动登录,因此最好在另一个控制台上运行shell)。注意,根文件系统是只读安装的;运行mount -o remount,rw /以能够对其进行写入。 systemd.unit=basic.target启动一组非常基本的服务。请注意,这不包括任何登录方式!您可以通过systemctl set-default basic.target在根目录提示符下运行将其设置为默认值。要恢复原始的默认目标,请运行systemctl set-default …

11
禁用透明的大页面
我们正在RAID机器中安装SAP HANA 。作为安装步骤的一部分,提到: To disable the usage of transparent hugepages set the kernel settings at runtime with echo never > /sys/kernel/mm/transparent_hugepage/enabled 因此,如果要永久更改而不是运行时,是否应该在/proc/vmstat文件中添加以上行?
63 linux  kernel  sysctl 

3
执行ifconfig命令时显示网关IP地址
当前,使用该ifconfig命令时,显示以下IP地址:自己的IP,广播和掩码。 有没有办法显示相关的网关IP地址(与其他所有屏幕都显示在同一屏幕上,而不是使用“ route”命令)?
63 linux  ip 

9
正确确定Linux中的内存使用情况
我对从ps和free看到的一些结果有些困惑。 在我的服务器上,这是由于 free -m [root@server ~]# free -m total used free shared buffers cached Mem: 2048 2033 14 0 73 1398 -/+ buffers/cache: 561 1486 Swap: 2047 11 2036 我对Linux如何管理内存的理解是,它将磁盘使用情况存储在RAM中,以便以后进行每次访问都更快。我相信这是由“缓存”列指示的。此外,各种缓冲区存储在RAM中,如“缓冲区”列中所示。 因此,如果我理解正确,那么“实际”用法应该是“-/ +缓冲区/缓存”的“已使用”值,在这种情况下为561。 因此,假设所有这些信息都是正确的,那么让我吃惊的部分是的结果ps aux。 我对ps结果的理解是,第六列(RSS)代表进程用于内存的千字节大小。 因此,当我运行以下命令时: [root@server ~]# ps aux | awk '{sum+=$6} END {print sum / 1024}' 1475.52 结果不应该是来自“-/ …
63 linux  memory 


5
使用awk根据另一列的值求和一列的值
我正在尝试使用将某列中的某些数字相加awk。我只想对“史密斯”的第3列求和,从而得出总数为212。我可以对整个列进行求和,awk而不仅仅是“史密斯”。我有: awk 'BEGIN {FS = "|"} ; {sum+=$3} END {print sum}' filename.txt 我也在用腻子。感谢您的任何帮助。 smiths|Login|2 olivert|Login|10 denniss|Payroll|100 smiths|Time|200 smiths|Logout|10
63 linux  awk 


2
需要居民集大小/虚拟大小的解释
我发现这pidstat将是监视流程的好工具。我想计算特定进程的平均内存使用率。这是一些示例输出: 02:34:36 PM PID minflt/s majflt/s VSZ RSS %MEM Command 02:34:37 PM 7276 2.00 0.00 349212 210176 7.14 scalpel (这是的输出的一部分pidstat -r -p 7276。) 我应该使用常驻集大小(RSS)或虚拟大小(VSZ)信息来计算平均内存消耗吗?我已经在Wikipedia和论坛上阅读了一些内容,但是我不确定是否完全了解这些区别。另外,似乎它们都不可靠。那么,如何监视进程以获取其内存使用情况? 在此问题上的任何帮助将是有用的。
61 linux  process  memory 



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.