操作系统开发

服务器操作系统应该选择 Debian/Ubuntu 还是 CentOS?

北城余情 提交于 2020-02-23 11:00:47
来自 http://www.zhihu.com/question/19599986 服务器操作系统应该选择 Debian/Ubuntu 还是 CentOS? 想选择一个 Linux 发行版作为服务器。有没有什么推荐的? 袁昊洋 , IT 运维人员 曾俊瑀 、 岑墨轩 、 姚东旭 等人赞同 //update at 2014-06-06 主要将一些散落在各处的评论,我觉得有价值的,给搬运过来。 我在这个问题下的某个回答的评论居然被删除了!!!!! 我之前根本没想回答这个问题,虽然像目前第一位的 Rio 的回答离谱的一塌糊涂。我也只是赞了一下彭勇的答案。 我被删的评论如下: “不会用就别怪系统不好。推荐 Debian/Ubuntu 跑 Server 是一件很不负责的事情。” 理由是不友善内容?这上面哪个字不友善了?我骂人了么?我讥讽人了么?我指出别人不会用就叫不友善?我开不了飞机,不会开坦克,别人指出我这个技能不足就叫不友善? 既然这样我就好好的说说,题主的问题是服务器采用什么发行版本!所以下面的讨论都是针对服务器的。 首先的首先,我想请各位玩家,你们不要自己最近新玩上什么就觉得什么好,然后大肆的推荐什么好不好!负点责任好不好!人家是服务器,有些时候选错一个发行版本会痛苦死一批人! 是,你现在终于发现有个版本叫 Ubuntu 了,好爽啊,那么多包,随便 apt-get ,

服务器操作系统应该选择 Debian/Ubuntu 还是 CentOS?

匆匆过客 提交于 2020-02-23 10:58:51
编辑推荐!本文来自知乎的袁昊洋,是我见过的关于如何选择服务器操作系统的最有理有据的文章,而且富有实践基础。小编基本上同意全文观点——当然,这并不是说大家就不应该选择其他的操作系统做服务器——甚至你选择Windows XP做服务器都有你的道理。大家有什么选择,希望也发表你的观点。 首先的首先,我想请各位玩家,你们不要自己最近新玩上什么就觉得什么好,然后大肆的推荐什么好不好!负点责任好不好!人家是服务器,有些时候选错一个发行版本会痛苦死一批人! 是,你现在终于发现有个版本叫 Ubuntu 了,好爽啊,那么多包,随便 apt-get , 3万个包躺在仓库里面不用编译。好爽啊!几乎所有软件都有最新版本用!唉?过两天你发现 Ubuntu 原来是从 Debian 来的,Debian 才叫牛啊,完全社区运作,包的数量一点都不少啊。再过两天发现 Gentoo 啦,哇塞,牛啊!性能的极致优化,编译编译再编译,configure , configure 再 configure ,精简到极致。再过两天 Gentoo 玩腻了,不就是编译么~ 唉? 原来还有 Arch 啊,这个不错啊,想编译的编译,不想编译的也有默认包。然后2个月没 pacman 更新过的系统,更新一下全挂了。 你的意识形态,走在任何一个阶段都认为这个阶段是最好的选择。但事实并不是这样的,这只是你的兴趣而已。 要讨论这个问题

服务器操作系统应该选择Debian/Ubuntu还是CentOS?

对着背影说爱祢 提交于 2020-02-23 10:56:37
任何 Linux 发行版本,在理论上都是一样的。只不过操作有的方便,有的麻烦!yum 是比 apt 弱(这就是企业维护和社区维护的区别,企业自己维护不需要这么多功能)但是任何能在 A 发行版本上实现的效果,一定是能在 B 上实现的。 首先,我想请各位玩家,你们不要自己最近新玩上什么就觉得什么好,然后大肆的推荐什么好不好!负点责任好不好!人家是服务器,有些时候选错一个发行版本会痛苦死一批人! 是,你现在终于发现有个版本叫 Ubuntu 了,好爽啊,那么多包,随便 apt-get , 3万个包躺在仓库里面不用编译。好爽啊!几乎所有软件都有最新版本用!唉?过两天你发现 Ubuntu 原来是从 Debian 来的,Debian 才叫牛啊,完全社区运作,包的数量一点都不少啊。再过两天发现 Gentoo 啦,哇塞,牛啊!性能的极致优化,编译编译再编译,configure , configure 再 configure ,精简到极致。再过两天 Gentoo 玩腻了,不就是编译么~ 唉? 原来还有 Arch 啊,这个不错啊,想编译的编译,不想编译的也有默认包。然后2个月没 pacman 更新过的系统,更新一下全挂了。 你的意识形态,走在任何一个阶段都认为这个阶段是最好的选择。但事实并不是这样的,这只是你的兴趣而已。 要讨论这个问题,先要知道两大发行版本的区别在哪里。RedHat 和 Debian。

操作系统的作用以及发展过程

非 Y 不嫁゛ 提交于 2020-02-20 22:01:26
操作系统的目标 在计算机上配置操作系统,主要目标是: 方便性,有效性,可扩充性和开放性 ;其中 方便性和有效性 是设计操作系统时候最重要的两个目标; 操作系统的作用 OS 作为用户和电脑硬件系统之间的接口 OS 作为计算机系统资源的管理者 OS实现了对计算机资源的抽象; 为什么说OS实现了对计算机资源的抽象? OS首先在 裸机 上覆盖一层 I/O设备 管理软件,实现了对计算机硬件操作的第一层次抽 象;在第一层软件上再覆盖 文件管理软件 ,实现了对硬件资源操作的第二层次抽象。OS 通 过在计算机硬件上安装多层系统软件,增强了系统功能,隐藏了对硬件操作的细节,由它们 共同实现了对计算机资源的抽象。 操作系统的发展过程 未配置操作系统的计算机系统 人工操作方式(人工传输穿孔纸带) 脱机输入/输出(Off-Line I/O)方式(外围设备自动传输穿孔纸带) 单道批处理系统 多道批处理系统 (作业保存在外存上排成队列,按照一定算法调入内存,达到利用“ I/O 操作使 CPU 空挡闲置的时间”,从而使 CPU 使用率提升) 可实现并发运行,在微观上是串行运行的;各个作业交替执行; 引入目的:充分利用CPU的资源; 分时系统 (一台计算机被多人使用,但可以获得一定的及时响应) 实时系统 (将时间作为关键参数,必须对接收到的信号做出及时的反应) 微机操作系统 的发展 单用户单任务操作系统

为什么说嵌入式开发比单片机要难很多?谈谈单片机和嵌入式的经验

巧了我就是萌 提交于 2020-02-19 11:37:37
单片机和嵌入式,其实没有什么标准的定义来区分他们,对于进行过单片机和嵌入式开发的开发者来说,都有他们自己的定义,接下来,就谈谈本人对这两个概念的理解和感悟。 首先明确概念,什么是单片机,单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。 比如最经典的51系列单片机,如下图所示,外观只是一块一个拇指大小的长方体芯片,共40个引脚,里面包含了逻辑运算单元。实际上也就是一个cpu。 在最开始接触单片机的时候,还曾经有过一个疑问,为什么单片机是黑色的而不可以是别的颜色,后来才知道是单片机材料的限制。 对单片机而言,其实一个芯片就是全部,其他的比如单片机最小系统都是为了单片机的正常运作而加入其他元件,比如晶振,5v电源,电感电阻等。当然最小系统只能保证单片机正常运行,几乎实现不了基于单片机的任何应用。 为了使单片机实现应用,必须要加入其他外设。比如按键,led灯,led屏,蜂鸣器,各种sensor。这也就是市面上很多公司都在做的单片机开发板。 总结

在 Linux 操作系统中运行 ASP.NET 4 (上)

ⅰ亾dé卋堺 提交于 2020-02-19 01:52:21
目前最流行的 Linux 操作系统发行版是 Ubuntu 。但是我们这次是要在 Linux 操作系统中运行 ASP.NET 的,所以选择了 openSUSE 。我准备在 Oracle VM VirtualBox 中安装 openSUSE 11.3 操作系统。 首先到 openSUSE 官方网站下载 openSUSE-11.3-DVD-x86_64.iso 文件。 然后运行 Oracle VM VirtualBox 4.0,新建一个 openSuse 虚拟机并按下图进行设置: 为了使宿主机能够从网络上访问虚拟机,网络连接方式必须设为 Bridged Adapter,如下图所示: 记下上图的 MAC 地址,然后在宽带路由器为它分配一个静态地址,如下图所示: 点击 Oracle VM VirtualBox 工具栏的“开始”按钮,开始安装 openSUSE 操作系统。 按“F2”键选选择“简体中文”作为默认语言。然后在主菜单中选择“安装”。一路点击“下一步”按钮,直到“桌面选择”: 默认的是“KDE桌面”,我实际选择了“GNOME桌面”,因为 Ubuntu 操作系统默认的桌面就是“GNOME桌面”,用熟了,不想换。从上图中可以看出,如果要安装生产服务器,最好选择“最小化的服务器挑选(文本模式)”。点击“下一步”,现在是规划磁盘分区的时候了: 就使用建议的分区好了,点击“下一步”,进入

嵌入式研发工作划分

别来无恙 提交于 2020-02-17 11:45:04
什么是嵌入式研发 嵌入式研发的标志是:软件研发和硬件研发相互配合。 互联网是固定硬件平台,纯软件开发;机械是没有软件,纯硬件开发。 当今的大部分电子,除去硬件部分就是软件,大到电冰箱,电视,小到遥控里面都是由软件来控制的,为了更通用和自由定制,交由软件控制会越来越多。 工作划分 一个电子产品的研发工作由四部分组成。 硬件研发;主要将硬件平台设计出来。 驱动研发;驱动研发主要工作是在不同系统上驱动硬件工作,不限定于特定系统,驱动研发既需要知道各种硬件知识,各种总线,数据如何传输,也需要知道软件知识,操作系统如何将数据传递给应用层,但是对操作系统的各种纯软件机制不需要过多了解。 平台开发;主要是操作系统开发,稳定,应用支持,纯软件,对操作系统各种机制要了解透彻。 应用层研发;主要实现各种业务逻辑,面向用户。 当前大部分公司情况 当前大部分公司会把工作2和工作3合并,统称为BSP研发。 对于大公司,员工能力较强,做驱动的大部分虽然是学电子的,懂硬件较多点开始,软件知识不足,但是工作中或学习慢慢的对操作系统软件机制也熟系了。 对于中小公司,工作没有划分清晰,员工能力较差,做驱动的电子出身不是很懂操作系统的各种纯软件机制,认为是软件问题;应用层研发认为自己只负责各种业务逻辑,认为操作系统问题是平台问题,应该由驱动解决,工作就会出现互相推脱,研发工作做不大。 来源: CSDN 作者:

什么是真正的实时操作系统(转)

余生颓废 提交于 2020-02-16 17:41:20
转载链接: https://blog.csdn.net/zhourui1982/article/details/5282361 做嵌入式系统开发有一段时间了,做过用于手机平台的嵌入式Linux,也接触过用于交换机、媒体网关平台的VxWorks,实际应用后回过头来看理论,才发现自己理解的肤浅,也发现CSDN上好多同学们都对实时、嵌入式这些概念似懂非懂,毕竟如果不做类似的产品,平时接触的机会很少,即使做嵌入式产品开发,基本也是只管调用Platform team封装好的API。所以在此总结一下这些概念,加深自己的理解,同时也给新手入门,欢迎大家拍砖,争取写个连载,本文先总结一下实时的概念,什么是真正的实时操作系统? 1. 首先说一下实时的定义及要求: 参见 Donal Gillies 在 Realtime Computing FAQ 中提出定义:实时系统指系统的计算正确性不仅取决于计算的逻辑正确性,还取决于产生结果的时间。如果未满足系统的时间约束,则认为系统失效。 http://www.faqs.org/faqs/realtime-computing/faq/ 一个实时操作系统面对变化的负载(从最小到最坏的情况)时必须确定性地保证满足时间要求。请注意,必须要满足确定性,而不是要求速度足够快!例如,如果使用足够强大的CPU,Windows在CPU空闲时可以提供非常短的典型中断响应,但是

云架构师进阶攻略

独自空忆成欢 提交于 2020-02-16 07:56:15
https://mp.weixin.qq.com/s/tHRl5OQHY2mNXqKwACCVWw?utm_source=tuicool&utm_medium=referral 一、架构的三个维度和六个层面 1.1、三大架构 在互联网时代,要做好一个合格的云架构师,需要熟悉三大架构。 第一个是IT架构,其实就是计算,网络,存储。这是云架构师的基本功,也是最传统的云架构师应该首先掌握的部分,良好设计的IT架构,可以降低CAPEX和OPEX,减轻运维的负担。数据中心,虚拟化,云平台,容器平台都属于IT架构的范畴。 第二个是应用架构,随着应用从传统应用向互联网应用转型,仅仅搞定资源层面的弹性还不够,常常会出现创建了大批机器,仍然撑不住高并发流量。因而基于微服务的互联网架构,越来越成为云架构师所必需的技能。良好设计的应用架构,可以实现快速迭代和高并发。数据库,缓存,消息队列等PaaS,以及基于SpringCloud和Dubbo的微服务框架,都属于应用架构的范畴。 第三个是数据架构,数据成为人工智能时代的核心资产,在做互联网化转型的同时,往往进行的也是数字化转型,并有战略的进行数据收集,这就需要云架构师同时又大数据思维。有意识的建设统一的数据平台,并给予数据进行数字化运营。搜索引擎,Hadoop,Spark,人工智能都属于数据架构的范畴。 1.2、六个层面 上面的三个维度是从人的角度出发的

Python中使用多进程来实现并行处理的方法小结

依然范特西╮ 提交于 2020-02-14 00:02:35
Python中使用多进程来实现并行处理的方法小结 进程和线程是计算机软件领域里很重要的概念,进程和线程有区别,也有着密切的联系,先来辨析一下这两个概念: 1.定义 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源. 2.关系 一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行. 相对进程而言,线程是一个更加接近于执行体的概念,它可以与同进程中的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。 3.区别 进程和线程的主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。 简而言之,一个程序至少有一个进程