本篇文章个人在青岛游玩的时候突然想到的...今天就有想写几篇关于内核操作系统的博客,所以回家到以后就奋笔疾书的写出来发表了

Jack:什么是操作系统?

我:你买了一台笔记本,然后把整块硬盘彻底格式化,然后再自己编译出一块代码,这块代码能让这台笔记本具有任务(task)管理或者文件管理功能、或者两者兼而有之——这段代码就是操作系统了。

Jack:这类解释比拟妖孽啊。

我:你可以以为我的说法比拟妖孽,不过这是我自己的说法,是我的。这比只会背书、没有自己的想法要好。你可以出错,每个人都市出错,但是不能始终被意淫。

Jack:那,从你的角度来说,Linux内核的开展是什么模样的呢?未来它会怎么走呢?

我:这是一个非常难答复的问题。因为Linux的文化是自在(free),它并不像OpenBSD那样专一于安全,也不想netBSD那样专一于网络,Linux是自在的,只要你有idea并实现它,Linus就会斟酌是否把它加入内核包里,即便Linus不容易把它加入官方内核包,你也可以自在宣告出去。所以,功能性预测几乎是不可能做出来的,不过,在慷慨向上,可以泛泛而谈。

Jack:你泛泛地谈一下呢。

我:首先,不问可知的,它会对既存在的功能进行维护(maintain)和加固(enhancement)。举个例子,Linux的文件系统ext3到ext4的enhancement大概增加了13种功能,其中extent的功能基本上是从Oracle的extent里鉴戒过来的。这样的事情还会一直发生,直到有人宣告Linux内核项目不再继续(?)。其次,IEEE这样的权威机构每一年都在制定新的标准、规程,自然而然会有新的代码产生(无论是驱动层次还是协议层次),这样的代码自然而然会添加到以自在著称的Linux内核里。

Jack:你说的这些都不是本质的操作系统的核心。在本质的操作系统的核心上,会有哪些开展空间呢?

我:你说的本质的操作系统核心是指任务管理、文件系统?

Jack:是的。

我:在任务管理、文件系统这两块,只能做maintain、enhancement。因为这是Linux操作系统的基本、基石,15年前就已奠基好了,不可能再有什么大的创新和修改——除非操作系统理论上有伟大的理论反动。不过,即便是有伟大的操作系统理论反动,也几乎不可能有什么修改了。

    每日一道理
只有启程,才会到达理想和目的地,只有拼搏,才会获得辉煌的成功,只有播种,才会有收获。只有追求,才会品味堂堂正正的人。

Jack:为什么?

我:因为任务和文件系统是操作系统的根基,这两块一出现反动,上层的数据库、web server等都市出现相应的反动,整个IT行业既定利益格局将会打破、洗牌重来。

Jack:这不是挺好吗?也是技巧反动的最好结果。

我:理想是美妙的,不过,既得利益体不会答应洗牌重来的事情发生,简单的说,即便有这么完善的理论出现,也不会有资金投入将这理论付诸事实,更别说实现出来的代码能否大面积应用到生产中占领市场。典范的例子是——互联网的OSI七层模型与tcp/ip模型。前者在理论上更完善,不过,这么多年来基本只停留在意淫阶段,而后者则真正占领了市场,成为了事实标准。

Jack:按照你的意思,Linux内核其实已绝对是比拟饱和了,不会再有伟大的打破了吗?

我:是否会有伟大的打破,是个技巧层面的问题。而是否朝伟大的打破方向走,是个利益问题。从目前情况来看,Linux内核在服务器市场上的功能性组件已够用了,仅仅是稳定性、高端市场份额与AIX等还有些差距。假设内核开发人员开收回一些核心组件功能,而这些功能又能给企业带来哪些伟大的利益呢?如果没有伟大的利益,这些功能就是多余的,你认为内核开发人员会去做一些多余的事情吗?

Jack:额。

我:在嵌入式领域,专业的嵌入式操作系统已够多了,如vxworks、uclinux等,其功能也已够用了,缺乏的,只是针对详细的应用的项目流程管理而已。

Jack:那岂不是Linux内核研发能做的事情已很少很少了。

我:相比于20年前,内核研发做的事情是少很多了——每一个行业都是这样,开展了20年以后,能做的事情肯定比刚开始要少很多——在天朝特别如此。不过,操作系统、数据库内核等是基础软件,每个国度为了巩固基础,都市投入伟大的资金,我国的核高基投入大概在1000亿rmb左右。

Jack:那么,搞基础软件岂不是很挣钱?

我:如果你有能力搞操作系统内核、数据库内核等基础软件,这辈子都不用愁吃穿了,国度会养着你的。

文章结束给大家分享下程序员的一些笑话语录:

火车
一个年轻的程序员和一个项目经理登上了一列在山里行驶的火车,他们发现 列车上几乎都坐满了,只有两个在一起的空位,这个空位的对面是一个老奶 奶和一个年轻漂亮的姑娘。两个上前坐了下来。程序员和那个姑娘他们比较 暧昧地相互看对方。这时,火车进入山洞,车厢里一片漆黑。此时,只听见 一个亲嘴的声音,随后就听到一个响亮的巴掌声。很快火车出了山洞,他们 四个人都不说话。
那个老奶奶在喃喃道, “这个年轻小伙怎么这么无礼, 不过我很高兴我的孙女 扇了一个巴掌”。
项目经理在想,“没想到这个程序员居然这么大胆,敢去亲那姑娘,只可惜那 姑娘打错了人,居然给打了我。”
漂亮的姑娘想,“他亲了我真好,希望我的祖母没有打疼他”。
程序员坐在那里露出了笑容, “生活真好啊。 这一辈子能有几次机会可以在亲 一个美女的同时打项目经理一巴掌啊”

---------------------------------
原创文章 By
内核和操作系统
---------------------------------

内核操作系统Linux内核变迁杂谈——感知市场的力量的更多相关文章

  1. Android内核和Linux内核的区别

    1.Android系统层面的底层是Linux,并且在中间加上了一个叫做Dalvik的Java虚拟机,从表面层看是Android运行库.每个Android应用都运行在自己的进程上,享有Dalvik虚拟机 ...

  2. 【原创】解BUG-xenomai内核与linux内核时间子系统之间存在漂移

    版权声明:本文为本文为博主原创文章,转载请注明出处.如有问题,欢迎指正.博客地址:https://www.cnblogs.com/wsg1100/ 一.问题起源 何为漂移?举个例子两颗32.768kH ...

  3. 【内核】Linux内核Initrd机制解析,内核更新步骤,grub配置说明

    什么是Initrd initrd的英文含义是 boot loader initialized RAM disk,就是由boot loader初始化的内存盘.在 linux内核启动前, boot loa ...

  4. Linux内核分析——Linux内核学习总结

    马悦+原创作品转载请注明出处+<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 Linux内核学习总结 一 ...

  5. 【内核】linux内核启动流程详细分析

    Linux内核启动流程 arch/arm/kernel/head-armv.S 该文件是内核最先执行的一个文件,包括内核入口ENTRY(stext)到start_kernel间的初始化代码, 主要作用 ...

  6. 【内核】linux内核启动流程详细分析【转】

    转自:http://www.cnblogs.com/lcw/p/3337937.html Linux内核启动流程 arch/arm/kernel/head-armv.S 该文件是内核最先执行的一个文件 ...

  7. 《Linux内核--分析Linux内核创建一个新进程的过程 》 20135311傅冬菁

    20135311傅冬菁 分析Linux内核创建一个新进程的过程 一.学习内容 进程控制块——PCB  task_struct数据结构 PCB task_struct中包含: 进程状态.进程打开的文件. ...

  8. 操作系统 linux 内核的三种进程调度方法

    1.SCHED_OTHER 分时调度策略: 2.SCHED_FIFO 实时调度策略.先到先服务: 3,SCHED_RR 实时调度策略,时间片轮转 . 实时进程将得到优先调用,实时进程依据实时优先级决定 ...

  9. Linux内核分析-Linux内核如何装载和启动一个可执行程序

    ID:fuchen1994 实验要求: 理解编译链接的过程和ELF可执行文件格式,详细内容参考本周第一节: 编程使用exec*库函数加载一个可执行文件,动态链接分为可执行程序装载时动态链接和运行时动态 ...

随机推荐

  1. MonkeyImage API 实践全记录

    1.    背景 鉴于网上使用MonkeyImage的实例除了方法sameAs外很难找到,所以本人把实践各个API的过程记录下来然自己有更感性的认识,也为往后的工作打下更好的基础.同时也和上一篇文章& ...

  2. C# FileSystemWatcher 监视磁盘文件

    C# FileSystemWatcher 监视磁盘文件变更 简化需求:有一个简化了的需求是这样的:有一个拍照程序在运行,一旦抓拍之后则将图片文件存储至某目录,然后图片要上传至远程服务器并update数 ...

  3. Python开发工具Wing IDE发布5.0.1版本

    Wing IDE是一个跨平台的Python IDE,提供了一个专业代码编辑.自动编辑.自动完成.重构.强大的图形调试器.版本控制.单位测试.搜索及其他功能.目前已经成为最全面.最综合.最先进的智能化P ...

  4. [译]内存中的Java数组是怎么样的

    (文章翻译自What does a Java array look like in memory?) Java中的数组存储了两个中的一个类型:原始类型的类或则是引用类型(比如指针) 当一个对象通过Ne ...

  5. 方向梯度直方图(HOG)和颜色直方图的一些比較

    近期在学习视频检索领域的镜头切割方面的知识,发现经常使用的方法是直方图的方法,所以才专门有时间来学习下.查看到这两种直方图的时候,感觉有点接近,好像又不同,放在这做个比較.大部分还是百科的内容,只是对 ...

  6. sql 事务日志传输

    原文:sql 事务日志传输 概述 可以使用日志传送将事务日志不间断地从一个数据库(主数据库)发送到另一个数据库(辅助数据库).不间断地备份主数据库中的事务日志,然后将它们复制并还原到辅助数据库,这将使 ...

  7. cocos2d-x3.0 经常使用绘图方法

    HelloWorldScene.h 例如,下面的代码被添加: protected: void onDraw(const kmMat4 &transform, bool transformUpd ...

  8. Windows 7上使用HP QC的问题

    C(Quantity Center)是一款不错的测试管理工具,最近把公司的操作系统从Windows XP升级到Windows 7之后,发现登录到QC Server的Addin页面,很多客户端组件不能正 ...

  9. Oracle汇总笔记

    http://gzf_PC:1158/em数据库配置文件已经安装到 D:\WorkC,同时其他选定的安装组件也已经安装到 D:\WorkC\oracle.iSQL*Plus URL 为:http:// ...

  10. 一步一步实现基于Task的Promise库(四)无参数的WorkItem

    接着上一篇我直接给出代码,现在支持了new Task(), then(), all(), any() 这些不传参的调用方式. (function(){ var isFunction = functio ...