选择 FreeBSD 而不是 Linux 的技术性原因3 jail FreeBSD Jails 系统是另一个惊人的工程壮举. 在 2000 年 3 月 14 日的 4.0 版本中,FreeBSD 引入了 jails 系统. FreeBSD jail 是一种操作系统级的虚拟化,它允许您将一个 FreeBSD 衍生的系统安装到多个独立的迷你系统中,称为 jails .运行在 jail 中的系统共享相同的内核和系统资源,因此开销非常小. 对 FreeBSD jails 的需求来自于一个小型共享环境主机…
Linux 二进制兼容性 FreeBSD 提供了与 Linux 的二进制兼容.这使得用户可以在 FreeBSD 系统上安装和运行许多 Linux 二进制文件, 而无需首先修改二进制文件.在某些特定情况下,Linux 二进制文件在 FreeBSD 上的表现甚至比在 Linux 上的表现更好.并非所有 Linux 特定的操作系统功能都能在 FreeBSD 上得到支持.例如,如果 Linux 二进制文件过度使用 i386 的特定调用,例如启用虚拟 8086 模式,那么它们将无法在 FreeBSD 上运…
ZFSZFS 文件系统是 FreeBSD 上的一等公民.这不仅意味着可以在 ZFS 上安装根目录,安装程序也支持这一点,而且还意味着很多基础系统工具都已经紧密地集成或构建了对 ZFS 的支持.在 FreeBSD 上运行 ZFS 和在 Linux 上运行 ZFS 是不同的.在 FreeBSD 上,你会得到更多的工具,可以用来研究 ZFS 的性能问题或其他相关问题.ZFS 的一些特点是(摘自维基百科).设计用于长期的数据存储,无限扩展的数据存储大小,零数据丢失,高配置性.对所有数据和元数据进行分层校…
Ports FreeBSD Ports 是一个惊人的工程壮举.NetBSD 的 pkgsrc (package source) 和 OpenBSD 的 ports collection 都源于 FreeBSD ports 系统.通常当您在 Unix 操作系统上安装软件时,您需要找到并下载软件.然后解压软件,通常是压缩的 tar 包.然后在 INSTALL .README 等其他文本文档中找到文档, 并阅读关于如何安装软件的说明.如果软件是以源码格式发布的,你需要编译它,这通常涉及到编辑一个 Ma…
校对:伯乐在线 - 黄利民 链接: 1. Why do most of the developers in Silicon Valley prefer OS X over Linux or Windows? 2. Mike Mikowski's anwser 3. Garry Taylor's anwser 4. Ivan Appel's anwser 5. 为什么很多硅谷工程师偏爱 OS X,而不是 Linux 或 Windows? Why do most of the developers…
自我回归到 Librem 15 已经有段时间了.我一般会选择 FreeBSD 来处理所有的事情,但有时会要访问一个运行在 Librem 平台上的 Linux OS,以便用它来帮助我对一些遗留的设备驱动进行移植 (比如 BYD 鼠标以及控制屏幕亮度的驱动程序). 为了将此进行实现,我安装了一个自己花时间开发的一个设置:那是一个在 ZFS 存储卷上共存的 FreeBSD 和 Gentoo Linux 双引导系统.本文描述了如何实现这项配置. 注意本文是基于 EFI 引导加载程序的.如果你坚持要使用传…
不知道看到这篇文章的Java工程师有没有考虑过这个问题:为什么在企业开发中会选择logback来记录日志,而不是log4j呢? 如果你以前没有考虑过这个问题,那么现在如果让你考虑一下,你可能觉的会是因为什么原因呢?本文就来为你回答这个问题. 无论从设计上还是实现上,Logback相对log4j而言有了相对多的改进.不过尽管难以一一细数,这里还是列举部分理由为什么选择logback而不是log4j.牢记logback与log4j在概念上面是很相似的,它们都是有同一群开发者建立.所以如果你已经对lo…
原则二.为你的常量选择readonly而不是const      Prefer readonly to const 对于常量,C#里面有两个不同的版本:运行时常量(readonly)和编译时常量(const) 编译时常量更快更直接,但在可维护性上不及运行时常量.保留编译时常量是为了满足那些对性能要求克刻,且随着程序运行时间的过去, 其值永远不发生改变的常量使用的(译注:这说明编译时常量是可以不被C#采用的,但考虑到性能问题,还是做了保留). //Compile time constant: pu…
我们知道:0是一个int,而不是一个指针.如果C++在一个只有指针才能够使用的上下文中发现它只有一个0,那么它会勉强将0解释成空指针,但那时一种倒退行为.C++的主要方针是0就是一个int,而不是指针. 实际上来说,对于NULL也是一样.关于NULL还有一些不确定因素,因为其实现允许给NULL一个整型而不必是int(比如说long).这并不常见,但是也无关紧要,因为这里的问题并不是NULL的确切类型是什么,而是0和NULL都不是指针类型. 在C++98中,主要的启示就是对指针和整型分别进行重载可…
如何选择适合自己的Linux版本: 1.Linux桌面系统,首选Ubuntu; 2.服务器端的Linux系统,首选RHEL或CentOS,这两种中首选CentOS,如果公司有钱,不在乎成本也可以选择RHEL; 3.如果对安全要求很高,可选择Debian或FreeBSD; 4.如果需要使用数据库高级服务和电子邮件网络应用可选择SUSE(德国用的多); 5.如果痴迷于新技术,新功能,可选择Fedora,是RHEL和CentOS的一个测试版或预发布版; 6.如果爱国货,喜欢中文版环境支持,选择红旗Li…
转载于:http://www.0553114.com/news/detail-702287.html 不管是个人建站,还是中小型企业建站,选择一款合适的主机是站长朋友们共同的心愿.主机是选择Windows还是Linux是首先考虑的因素. 俗话说“没有最好的,只有最合适的”这句话在选择主机时特别适合,网站编程可以有多重选择,因此对于主机的需求也不可能一枝独秀. 选择Windows主机还是Linux主机,主要还是要根据托管网站的实际需求来进行选择. 在国内,Windows在PC机操作系统中已经深入人…
由于想要实现下载的文件可以进行选择,而不是通过<a>标签写死下载文件的参数,所以一直想要使用JFinal结合ajax实现文件下载(这样的话ajax可以传递不同的参数),但是ajax实现的文件下载并不能触发浏览器的下载文件弹出框,这里通过模拟表单提交实现同样的效果. 1.html代码: <a class="mini-button" iconCls="icon-edit" onclick="output()">导出</a…
.NET 和 Java 是当今社会最受欢迎的两种编程语言, 长期的发展和强大的功能使他们足以在编程界立足. 十余年的争论也没得到结果的一个话题就是——他们哪个更好一些? 今天, 我们不再去讨论JAVA和.NET的利弊因为在项目实施过程中,需要分析项目的具体要求,进而选择合适的平台和技术.相反,我们将探讨Java的优势和特点进而去理解为什么世界的各大公司 ,尤其是搞银行和保险领域的更偏好JAVA而不是.NET的原因. # 1. 开放源代码 2006年,Oracle把Java开源了­——这意味着可以…
[环境]: linux主机:华为企业云 ftp服务端:vsftpd 客户端:ftp命令行工具,安卓端ES文件浏览器 [现象]: 在ES文件浏览器中,使用被动方式没法连接,使用主动方式可以连接,但是没法列出文件(图形界面的工具有一些细节没法看到,反正就是不正常). 使用ftp的命令行连接时也不正常,主动方式时:ls命令提示 Failed to establish connection.被动方式时:ls命令执行后卡在 Entering Passive Mode,最后提示Connnection tim…
[2013年10月12日 51CTO外电头条]什么样的Linux服务器最合适您的企业?简言之,它需要为员工带来工作所需的理想支持效果. 相对于成百上千种Linux桌面系统,Linux服务器系统的数量其实比较有限,但我们仍然很难从中选择真正适合企业需求的理想方案.在本文中,我将尝试运用自己积累了十二年的Linux使用经验帮助大家找到问题的答案. 我认为,选择Linux服务器系统时最重要的一项因素在于,您的IT员工是否拥有娴熟的Linux使用经验.尽管时至今日,Linux专业知识已经不再像过去那样晦…
使用vim的时候,偶尔会碰到vim莫名其妙的僵在那里. 解决方案: 经查,原来Ctrl+S在Linux里是锁定屏幕的快捷键,如果要解锁,按下Ctrl+Q就可以了. 经验总结: 牢记这两个VIM组合键 Ctrl+S 和 Ctrl+Q…
1. 这边功能测试 一个linux服务器 4c 16g的内存 发现总是出现异常. dotnet run 起来的一个 程序 总是会被killed 现象为: 2. 一开始怀疑是 打开的文件描述符过多 引起的 然后 找了一个函数 watch - |lsof -p |wc -l 3 结果开发同事认为跟这个没关系 查看系统日志发现是 oom了 cat /var/log/messages |grep memory 4. 然后安装epel-release 以及htop 进行跟踪 发现内存暴涨 5. 总结一下…
Spring Boot 内嵌容器Undertow参数设置 配置项: # 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程 # 不要设置过大,如果过大,启动项目会报错:打开文件数过多 server.undertow.io-threads=16 # 阻塞任务线程池, 当执行类似servlet请求阻塞IO操作, undertow会从这个线程池中取得线程 # 它的值设置取决于系统线程执行任务的阻塞系数,默认值是IO线程数*8 server.undertow.…
Spring Boot 内嵌容器Undertow参数设置 配置项: # 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程 # 不要设置过大,如果过大,启动项目会报错:打开文件数过多 server.undertow.io-threads=16 # 阻塞任务线程池, 当执行类似servlet请求阻塞IO操作, undertow会从这个线程池中取得线程 # 它的值设置取决于系统线程执行任务的阻塞系数,默认值是IO线程数*8 server.undertow.…
在分布式的应用中,为了防止单点故障,保障高可用,通常会采用主从结构,当主节点挂掉后,从节点可以代替主节点提供服务. Redis通过复制 + sentinel哨兵来实现主从模式. Zookeeper通过replicated mode复制模式来实现主从模式. 单从结构上看,Redis和Zookeeper都是主从架构,那Zookeeper的优势是什么?为什么要选择Zookeeper?难道只是因为Zookeeper是目录结构,Redis是K-V结构吗? 同步机制的不同 Redis Redis在给从节点同…
确保 Windows 和 Ubuntu 的网络能互相 ping 通之后,如果 Ubuntu 无法上网,原因通常有 2 个:路由没设置好,DNS 没设置好. 如果执行以下命令不成功,表示路由没设置好: $ ping 8.8.8.8 connect: Network is unreachable 如果"ping 8.8.8.8"成功,但是"ping www.baidu.com"不成功,则是 DNS 没设置好: $ ping www.baidu.com ping: unk…
1.对于常量,C#里有两个不同的版本: 编译时常量--效率相比更高些,但可维护性不好,保留的目的是为了性能.const关键字申明 public const int _Millennium = 2000; 运行时常量--效率稍低些,可维护性好.readonlyc关键字声明,也叫只读变量. public static readonly int _ThisYear = 2007 2.两者的区别: 编译时常量只能是基本类型,枚举或者是字符串.编译时常量会被目标代码中的值直接取代 运行时常量可以是任何类型…
注意:此程序在win环境下会出现上述描述的问题:在mac环境下第一种方式是正常运行的.Map.erase有3个重载函数: void erase(iterator position); size_type erase(const key_type& x); // 这个如果size_type为int,则返回值为1时代表删除成功,为0代表删除失败. void erase(iterator first, iterator last);   // 相当于map.clean(). 1. 错误示范 备注:ma…
1.文件大小比较 首先从cnd上(http://www.bootcdn.cn/)下载jquery和zepto. jquery下载的是2.2.4版本压缩: zepto下载的是是1.20压缩版本: 二个文件大小比较: jquery.min.js 大小为:83.5k zepto.min.js大小为:25.7k 总结:zepto文件确实小,但是由于目前网民移动设备网络带宽好.流量多,浏览器都会都会缓存js,并且网站一般都会使用gzip对js文件进一步压缩,所以文件大小只会影响用户第一次加载网页. 2.j…
常情况下脚本执行时间几秒完成,如果超过很长时间执行完成,可能是进程等待某些资源引起阻塞(假死状态). 场景:xx.perl读取文件并发送邮件 现象:执行脚本的进程僵死(卡住) 排查:ps -ef |grep “perl xx.perl” 跟踪:strace -p 16634  (跟踪进程执行时的系统调用和所接收的信号(即它跟踪到一个进程产生的系统调用,包括参数.返回值.执行消耗的时间),卡在read(3,位置 查看进程文件描述符目录:查看3进行的是socket操作,也就是卡在通信. 使用nets…
上文:http://www.cnblogs.com/long123king/p/3549701.html 1: static int __init kernel_init(void * unused) 2: { 3: ...... 4:  5: if (!ramdisk_execute_command) 6: ramdisk_execute_command = "/init"; 7:  8: if (sys_access((const char __user *) ramdisk_ex…
原创:Linux中国 https://linux.cn/article-3186-1.html 原创:LCTT https://linux.cn/article-3186-1.html 本文地址:https://linux.cn/article-3186-1.html 译者: MikeCoder Linux 和 BSD 都是免费的,开源的,类Unix系统.他们甚至使用很多相同的软件.他们看上去简直就像是一个操作系统,那么,它们有什么不同吗? 其实,两者之间的不同,远远超出了我们下面提到的这些,尤…
Linux 与 BSD 有什么不同? 这篇文章是别人写的,并做了一点修改. 汉澳sinox就是基于bsd开发的,因此能够理解为一个bsd分支,可是由于sinox不开源,被排除在外.bsd不是商业软件,是比較彻底的自由开源软件. 汉澳sinox做server,作为pc桌面,都表现出色. Linux 和 BSD 都是免费的,开源的,类Unix系统.他们甚至使用非常多同样的软件.他们看上去简直就像是一个操作系统,那么,它们有什么不同吗? 事实上,两者之间的不同,远远超出了我们以下提到的这些,尤其是在构…
Mysql 和 Postgresql(PGSQL) 对比 转载自:http://www.oschina.net/question/96003_13994 PostgreSQL与MySQL比较 MySQL使用太广泛了,以至于我不得不将一些应用从mysql 迁移到postgresql, 很多开源软件都是以Mysql 作为数据库标准,并且以Mysql 作为抽象基础的,但是具体使用过程中,发现Mysql 有很多问题,所以都迁移到postgresql上了,转一个Mysql 和Postgresql 对比的文…
今天我们来聊一聊Redis集群.先看看集群的特点,我对它的理解是要需要同时满足高可用性以及可扩展性,即任何时候对外的接口都要是基本可用的并具备一定的灾备能力,同时节点的数量能够根据业务量级的大小动态的伸缩.那么我们一般如何实现呢? 集群的实现方式 说到集群的实现,我会想到两种方式 第一种是去中心化的集群 整个集群是由一组水平的节点构建 通过给各个节点分配不同的角色实现相互配合,并同步各自状态 对外提供单调的接口 整个集群依靠内部的同步机制来进行伸缩和容错 实现复杂 这种集群,常见的有Zookee…