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

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. Appium Android Bootstrap源码分析之简介

    在上一个系列中我们分析了UiAutomator的核心源码,对UiAutomator是怎么运行的原理有了根本的了解.今天我们会开始另外一个在安卓平台上基于UiAutomator的新起之秀--Appium ...

  2. Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by

    配置php网站的时候,经常会在页首出现Warning: session_start() [function.session-start]: Cannot send session cache limi ...

  3. WebView Android 调用js且须要获取返回结果

    Android webView调用js方法非常easy, webView.loadUrl("javascrpt:yourFunction()"); 可是此方法没有办法获取返回结果 ...

  4. 扩展ToolBarManager、ListView和Grid控件以实现气球式的ToolTip

    原文:扩展ToolBarManager.ListView和Grid控件以实现气球式的ToolTip infragistics是全球领先的UI工具和用户体验的专家,Infragistics开发了一系列的 ...

  5. 用Inno Setup制作WEB程序安装包

    原文 用Inno Setup制作WEB程序安装包 最近做了一个WEB程序的安装包,我把制作的过程做个介绍,贴出源码给大家做个参考 看看inno 的脚本 [Setup] AppCopyright=tes ...

  6. 【SSRS】入门篇(五) -- 设置报表格式

    原文:[SSRS]入门篇(五) -- 设置报表格式 在上一节 [SSRS]入门篇(四) -- 向报表添加数据 我们设置好了报表,并可以预览到数据,如下图: 当报表完成后,有个重要的工作就是美化报表格式 ...

  7. Windows 下安装 Oracle 12c 教程

    原文 Windows 下安装 Oracle 12c 教程 申明:本文原作者:Jmq   本文给大家带来的是 Oracle 12C 的安装教程. 1.准备 1.1 下载 Oracle 12c 安装程序 ...

  8. 使用DateSet下载Excel

    这里我们使用Microsoft.Office.Interop.Excel.dll下载Excel,没有引用可点击下载 关键代码,ExcelHelper类 using System; using Syst ...

  9. C#集合基础与运用

    C#集合基础与运用   C#集合基础与运用 1. 集合接口与集合类型............................................... 1 (1) 集合的命名空间..... ...

  10. SugarSync网盘之XML解析

    iOS的XML解析 刚在应用里支持了SugarSync网盘.其实也是第一次听说这个网盘,不过在国外貌似还蛮有名,这些都不是重点,重点是借此来总结一下iOS的XML解析.Xml想必也不陌生了,但是在iO ...