所以我在网上冲浪,偶然发现了这篇文章。它基本上表明FreeBSD从版本 10 及更高版本开始将弃用GCC以支持Clang/LLVM。
从我目前在网上看到的情况来看,Clang/LLVM是一个相当雄心勃勃的项目,但在可靠性方面它无法与GCC 相提并论。
FreeBSD 选择 LLVM 作为他们的编译器基础设施是否有任何技术原因,或者整个问题归结为永恒的 GNU/GPL 与 BSD 许可证?
虽然我很长一段时间都知道Hurd的存在,以及它作为官方 GNU 操作系统内核的使命,但我想知道为什么 Linux 多年来没有被接受为官方 GNU 内核,因为它处于更好的状态比赫德?
到目前为止,Linux 或多或少已经担任了 20 多年的角色,但是可以看出 GNU 项目在 Linux 方面一直保持着距离。为什么会这样?是因为梦想赫德(在未来的某个时候)达到生产质量水平吗?是不是因为 GNU 项目没有看到它的使命在 Linux 中得到了充分体现?是不是出于其他政治原因?
我最近在浏览我的 Fedora/bin文件夹时注意到一个名为[. 我确实尝试在互联网上搜索有关这方面的更多信息,但找不到任何有用的信息。运行它strace似乎也不会产生任何对仔细检查有用的东西。
那是什么?我应该惊慌吗?这可能是系统妥协的结果吗?我应该运行它吗?它属于任何包吗?
我想在我的各种虚拟机上做一些缓冲区溢出的实验,包括(但不限于)Debian 6、Ubuntu 12.04、Fedora 16,但是每次我尝试执行缓冲区溢出漏洞时,我都会收到以下消息:
stack smashing detected (core dumped)
Run Code Online (Sandbox Code Playgroud)
在完成我的研究后,我读到它是在编译器中实现的称为缓冲区溢出保护的功能。GCC例如使用GCC堆栈溢出保护(ProPolice) ,锵/ LLVM使用两个缓冲溢出探测器,SafeCode和AddressSanitizer。
我的问题是:既然我真的想检查我的机器上的缓冲区溢出攻击,有没有办法(编译器标志,也许是一个 linux 配置文件?)来停用缓冲区溢出保护?
我想为这个(稍微)偏离主题和非技术性的问题道歉,但我最近开始进入 Linux 的美妙世界,并开始深入研究一些发行版,其中最后一个是Debian。
所以我的问题是(对于那些可以启发我的人):通常首选哪种发行版,为什么?
我知道每个发行版都有自己的优点和优势,并且不希望看到这因任何可能的原因变成一场激烈的战争。我期待的答案是在什么情况下可以选择一个发行版,或者选择一个发行版而不是另一个发行版的用户的“杀手”功能是什么。
尝试cat /var/log/daemon.log不会产生任何输出,而cat /var/log/daemon.log.1会。为什么守护进程将日志存储到/var/log/daemon.log.1文件而不是/var/log/daemon.log?他们存储在另一个文件中是否有特定原因?
注意: ls -l /var/log显示这两个文件具有相同的权限,并且都由名为的用户拥有admin