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

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. Installshield设置feature为必须选中状态,即必定安装状态

    原文:Installshield设置feature为必须选中状态,即必定安装状态 上一篇: 解决卸载时残留目标文件夹的问题Installation Designer --> Organizati ...

  2. C# 字符串加密解密函数

    原文:C# 字符串加密解密函数 using System; using System.Text;using System.Security.Cryptography; using System.IO; ...

  3. linux 线程回顾

    额,时隔两年重新写博客了. 这次看一下thread_cond_wait(pthread_cond_t * cond, pthread_mutex_t *mutex)和thread_cond_signa ...

  4. 快速构建Windows 8风格应用20-MediaElement

    原文:快速构建Windows 8风格应用20-MediaElement 本篇博文主要介绍MediaElement概述.MediaElement对象介绍.MediaElement常用属性.如何控制媒体播 ...

  5. Objective-C和Swift

    在项目中同时使用Objective-C和Swift 苹果发布的Swift语言可以和之前的Objective-C语言同时存在于一个项目中. 可能有人会认为是同一个类文件中既可以有Objective-C也 ...

  6. Extjs中GridPanel的各个属性与方法

    1.Ext.grid.GridPanel 主要配置项: store:表格的数据集 columns:表格列模式的配置数组,可自动创建ColumnModel列模式 autoExpandColumn:自动充 ...

  7. Bootstrap 模态框

    Bootstrap 模态框(也可以说的弹出层) 最近在尝试使用bootstrap的模态框 使用模态框主要要引入一下几个js和css: bootstrap.css jquery.1.9.1.js(这个可 ...

  8. android通过程序收起通知栏

    1.  添加权限 <uses-permission android:name="android.permission.EXPAND_STATUS_BAR" /> 2. ...

  9. .net实现依赖注入

    .net实现依赖注入 1. 问题的提出 开发中,尤其是大型项目的开发中,为了降低模块间.类间的耦合关系,比较提倡基于接口开发,但在实现中也必须面临最终是“谁”提供实体类的问题.Martin Fowle ...

  10. 设计模式20---设计模式之备忘录模式(Memento)(行为型)

    1.讲解备忘录模式 备忘录模式(Memento Pattern)又叫做快照模式(Snapshot Pattern)或Token模式,是GoF的23种设计模式之一,属于行为模式. 1.1定义 在不破坏封 ...