freebsd

我为什么从macOS迁移到FreeBSD?

浪尽此生 提交于 2021-01-03 11:23:09
Python实战社群 Java实战社群 长按识别下方二维码, 按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群 ▲ 作者 | antranigv 译者 | 张健欣 策划 | 万佳 来源公众号丨InfoQ(ID:infoqchina) 本文不是一篇如何从 macOS 迁移到 FreeBSD 的技术文档。而是从较高的层次,解释我为什么要从 macOS 迁移到 FreeBSD。 不久前,macOS 还是我的日常工作必备之一。我购买了一台 macbook 笔记本,原因是底层的 BSD Unix 和它漂亮的图形界面。另外,我还有一个 iPhone 手机。但是,我放弃 macOS 也是因为这些相同的原因。 我不想在迁移后马下就写这篇文章。我想慢慢来,每天使用 FreeBSD,看看我是否会怀念 macOS。 这是我 8 个月前的一个推文: 1macOS 的槽点 我们可以这样看。macOS 每年都变得越来越没有 Unix 风格, date(1) 已经过时,在系统启动时,有 100 多 Unix 进程运行,其中大部分对于普通用户是没用的,它没有本地的包管理器(至少还有 MacPorts/homebrew/pkgsrc),而对于一个高级用户,没有合适的文档。你看过 FreeBSD 的手册吗?所有的东西都在里面写得很清楚! 关于漂亮的图形界面部分。你看过最新最棒的

Linux与Unix到底有什么区别?

試著忘記壹切 提交于 2020-12-25 14:05:59
作者:Phil 来源: https://opensource.com/article/18/5/differences-between-linux-and-unix 如果你是一名20多岁或30多岁的软件开发人员,那么你已成长在一个由Linux主导的世界中。数十年来,它一直是数据中心的重要参与者,尽管很难找到明确的操作系统市场份额的报告,但Linux在数据中心操作系统上的份额可能高达70%,而Windows变体几乎涵盖了所有剩余的比例。使用任何主流公共云的开发人员可以假定目标系统将运行Linux。近些年来,随着Android和基于Linux的嵌入式系统在智能手机、电视、汽车和其他设备中的应用,Linux随处可见的证据比比皆是。 即便如此,大多数软件开发人员,甚至是那些在这场古老的“Linux革命”中成长的软件开发人员,也至少听说过Unix。这听起来与Linux类似,你可能已经听说过人们可以互换地使用这些术语。或者你也许听说过Linux被称为“类Unix”操作系统。 那么这个Unix是什么呢? 一些漫画种讲到的是坐在发绿光的屏幕后面的精灵般的“老人”,他编写C代码和shell脚本,由老式的滴灌咖啡所驱动。但除了那些1970年代那些老去的C程序员以外,Unix有更丰富的历史。 Unix开端 Unix的历史起始于二十世纪六十年代的AT&T贝尔实验室,在那时,一小组程序员正在为PDP

UNIX 之父和 Linux 之父:创造新系统真的只是个意外 | 赠书

℡╲_俬逩灬. 提交于 2020-12-09 15:32:40
导语: 《UNIX/Linux系统管理技术手册》是系统管理领域内的“圣经”,其封面中的每一个元素都代表了特殊的含义,比如蟒蛇、大乌贼等等,这些都和开源软件有关。 如今,《UNIX/Linux系统管理技术手册(第5版)》面世,新版本的封面里到底有多少秘密呢?一起来探索吧! 《UNIX/Linux系统管理技术手册(第5版)》 今天给大家讲的是站在船头甲板眺望的两位领航人,一位是UNIX系统的编写者——肯·汤普森,另一位是Linux内核的编写者——林纳斯·托瓦兹。 为了玩游戏,一个人编写了一套操作系统 1966年,毕业后的肯·汤普逊加入贝尔实验室,肯·汤普森(Ken Thompson)1943年出生于美国新奥尔良,17岁就读于加州大学伯克利分校主修电气工程,并取得电子工程硕士的学位。 1966年,这一年汤普森刚23岁,他得到了进入贝尔实验室工作的机会。 那个时期的计算机系统还处在批处理阶段,技术不发达导致了运算速度十分缓慢,也使得程序员工作效率低下。当时他们只能在运算速度缓慢笨重的大型机器上工作,操作也十分繁琐:需要先将程序卡片装入设备,然后等一个多小时才能获取运算结果。 为了改变这种局面,贝尔实验室联合麻省理工学院以及通用电气公司想建立一套可供多人使用的多任务、多层次的操作系统,他们将其命名为——Multics。 汤普森也加入到了研发Multics系统的项目组中

How to get first N parts of a path?

烂漫一生 提交于 2020-11-29 10:15:54
问题 Imagine a path like this: /a/b/c/d/e/... Where ... could be any number of levels further deep, i.e., I don't know, ahead of time, whether there will be 2, 3, or 13 more level deep. How can I, using a FreeBSD shell, e.g., /bin/sh , extract the first "N" parts of this path? e.g., first 4 levels, so that I would get /a/b/c/d ? 回答1: You can use cut : s='/a/b/c/d/e/f/g/h/i/j/k' echo "$s" | cut -d/ -f1-5 /a/b/c/d Or if you are using BASH then you can use shell array: IFS=/ arr=($s) Then print

How to get first N parts of a path?

耗尽温柔 提交于 2020-11-29 10:14:04
问题 Imagine a path like this: /a/b/c/d/e/... Where ... could be any number of levels further deep, i.e., I don't know, ahead of time, whether there will be 2, 3, or 13 more level deep. How can I, using a FreeBSD shell, e.g., /bin/sh , extract the first "N" parts of this path? e.g., first 4 levels, so that I would get /a/b/c/d ? 回答1: You can use cut : s='/a/b/c/d/e/f/g/h/i/j/k' echo "$s" | cut -d/ -f1-5 /a/b/c/d Or if you are using BASH then you can use shell array: IFS=/ arr=($s) Then print

Python psutil 库查看当前进程的内存消耗及系统内存情况

笑着哭i 提交于 2020-11-28 09:27:07
参考: https://www.liaoxuefeng.com/wiki/1016959663602400/1183565811281984 https://www.cnblogs.com/zhangxinqi/p/9106265.html https://blog.csdn.net/qq_40723803/article/details/105097401 psutil 是个跨平台库,主要应用于信息监控,分析和限制系统资源及进程的管理,能够轻松实现获取系统运行的进程和系统利用率,包括CPU、内存、磁盘、网络等信息。它实现了同等命令命令行工具提供的功能,如:ps、top、lsof、netstat、ifconfig、who、df、kill、free、nice、ionice、iostat、iotop、uptime、pidof、tty、taskset、pmap等。目前支持32位和64位的linux、windows、OS X、FreeBSD和Sun Solaris等操作系统。 安装 git clone https://github.com/giampaolo/psutil.git cd psutil python3 setup.py install 或 pip3 install psutil 内存信息 mem = psutil.virtual_memory() #获取内存完整信息

Linux版本

妖精的绣舞 提交于 2020-11-28 08:41:31
![] 1.RedHat家族 主要包括RedHat企业版,CentO S版本,Fedara RedHat企业版:这个需要授权费,主要用在高要求的服务器商用系统,在版本上注重了性能和稳定性以及对硬件的支持。由于企业版系统的开发周期较长,注重性能、稳定性和服务端软件支持,因此版本更新较慢。 CentOS:全名”社区企业操作系统“,它对最终用户免费提供。CentOS社区将RedHat的网站上的所有源代码下载下来,进行重新编译。因此,必须将所有RedHat的Logo和标识改成CentOS标识。 Fedara:被红帽公司定位为新技术的实验场地,去多新的技术都会在FC中检验,如果稳定会加入RedHat中;一般在服务器不推荐采用Fedara。 2、Debian Debian运行起来极其稳定,在服务器和桌面领域都有着广泛的应用。Debian是一个纯开源计划并着重在一个关键点上,稳定性。Debian这款操作系统派生出了多个Linux发行版。它同时也提供了最大的和完整的软件仓库给用户。 主要基于 Debian的版本如下: Debian Ubuntu Linux Mint Knoppix MEPIS sidux CrunchBang Linux Chromium OS Google Chrome OS 重点推荐:Ubuntu是Debian的一款衍生版,也是当今最受欢迎的免费操作系统

为什么 Redis 单线程能支撑高并发?

社会主义新天地 提交于 2020-11-27 10:56:40
点击上方蓝色“ 后端面试那些事儿 ”,选择“设为星标” 学最好的别人,做最好的我们 来源:draveness.me/redis-io-multiplexing 几种 I/O 模型 Blocking I/O I/O 多路复用 Reactor 设计模式 I/O 多路复用模块 封装 select 函数 封装 epoll 函数 子模块的选择 总结 最近在看 UNIX 网络编程并研究了一下 Redis 的实现,感觉 Redis 的源代码十分适合阅读和分析,其中 I/O 多路复用(mutiplexing)部分的实现非常干净和优雅,在这里想对这部分的内容进行简单的整理。 几种 I/O 模型 为什么 Redis 中要使用 I/O 多路复用这种技术呢? 首先,Redis 是跑在单线程中的,所有的操作都是按照顺序线性执行的,但是由于读写操作等待用户输入或输出都是阻塞的,所以 I/O 操作在一般情况下往往不能直接返回,这会导致某一文件的 I/O 阻塞导致整个进程无法对其它客户提供服务,而 I/O 多路复用 就是为了解决这个问题而出现的。 Blocking I/O 先来看一下传统的阻塞 I/O 模型到底是如何工作的:当使用 read 或者 write 对某一个**文件描述符(File Descriptor 以下简称 FD)**进行读写时,如果当前 FD 不可读或不可写,整个 Redis

Linux中一个高效的资源监控器 – Bpytop

断了今生、忘了曾经 提交于 2020-11-26 16:22:17
对于终端爱好者来说,能够监控系统资源的使用也是至关重要的。了解系统的资源利用率可以帮助您在一般的系统维护中做出明智的决策。有一些选项,比如top和htop,但是它们只显示一些系统指标,比如CPU和内存使用情况。Bpytop是一个高效的、视觉上很吸引人的基于终端的资源监视器。 准备工作 在开始安装Bpytop之前,请确保系统满足以下要求: Python3 Psutil模块。安装方式 python3 -m pip install psutil 安装Bpytop 您可以通过两种方式安装Bpytop:从github下载源码包进行编译安装和从各个发行版系统的仓库中安装。让我们看看以下每种安装方式: 源码安装 首先需要从github克隆: [root@localhost ~]# git clone https://github.com/aristocratos/bpytop.git Cloning into 'bpytop'... remote: Enumerating objects: 121, done. remote: Counting objects: 100% (121/121), done. remote: Compressing objects: 100% (72/72), done. remote: Total 501 (delta 73), reused 95 (delta

写给大忙人看的操作系统

依然范特西╮ 提交于 2020-11-22 06:52:32
文章主要结构图如下 操作系统 现代计算机系统由一个或多个处理器、主存、打印机、键盘、鼠标、显示器、网络接口以及各种输入/输出设备构成。 然而,程序员不会直接和这些硬件打交道,而且每位程序员不可能会掌握所有计算机系统的细节,这样我们就不用再编写代码了,所以在硬件的基础之上,计算机安装了一层软件,这层软件能够通过响应用户输入的指令达到控制硬件的效果,从而满足用户需求,这种软件称之为 操作系统 ,它的任务就是为用户程序提供一个更好、更简单、更清晰的计算机模型。 我们一般常见的操作系统主要有 Windows、Linux、FreeBSD 或 OS X ,这种带有图形界面的操作系统被称为 图形用户界面(Graphical User Interface, GUI) ,而基于文本、命令行的通常称为 Shell 。下面是我们所要探讨的操作系统的部件 这是一个操作系统的简化图,最下面的是硬件,硬件包括芯片、电路板、磁盘、键盘、显示器等我们上面提到的设备,在硬件之上是软件。大部分计算机有两种运行模式: 内核态 和 用户态 ,软件中最基础的部分是 操作系统 ,它运行在 内核态 中,内核态也称为 管态 和 核心态 ,它们都是操作系统的运行状态,只不过是不同的叫法而已。操作系统具有硬件的访问权,可以执行机器能够运行的任何指令。软件的其余部分运行在 用户态 下。 用户接口程序(shell 或者 GUI)