1)Linux怎么来的?

  • Linus 为了方便访问大学服务器中的资源 ,在自己的机器上写了一个文件系统和硬盘驱动,这样就可以把自己需要的资源下载到自己的机器中。随后linus把这款操作系统雏形开源,成千上万的程序员敲出了linux操作系统。

2)为什么很多公司企业网络把linux当作服务器来使用?

  • Linux 系统性能稳定且开源

3)Linux系统中基本思想是什么?

  • 一切都是文件:每个文件都有确定的用途,包括用户数据、命令、配置参数、硬件设备等对于操作系统内核而言,都被视为各种类型的文件。

4)Linux能发展到今天仅仅是靠一群黑客吗?

  • 由很多世界级的顶尖科技公司联合开发,如 IBM、甲骨文、红帽、英特尔、微软,它们开发 Linux 并向 Linux 社区提供补丁,使 Linux 工作在它们的服务器上,向客户出售业务服务。

5)Linux 内部的全景图长什么样?

6)现阶段我们需要把上图掌握到什么程度?

  • 知道大概有5个组件,好几十模块,每个模块完成什么功能

7)这么多模块,模块与模块之间是如何通信的?

  • 之间的通信主要是函数调用

8)直接使用函数调用来通信有什么缺点?

  • 一旦有一个函数出现问题,那就系统崩溃。

9)既然确定这么明显,那为什么还要采用这种方式?

  • 因为它的性能极高,操作系统好不好,性能说了算。

10)苹果操作系统的内核Darwin长什么样?

  • 它有两个内核层——Mach 层与 BSD 层。

  • Mach 内核是卡耐基梅隆大学开发的经典微内核,提供最基本的操作系统服务

  • BSD 则是伯克利大学开发的类 UNIX 操作系统,提供一整套操作系统服务。

11)为什么两套内核会同时存在呢?

  • Mach是最开始的,但是随着发展它的性能不能很好的完成业务。为了兼容之前的Mach开发的应用和设备驱动,就保留了它,同时引入新的BSD内核。

12)应用如何使用 Darwin 系统的服务呢?

  • 通过用户层的框架和库来调用 Darwin 系统 API。

13)那我Darwin 系统如何区分用户要调用的是Mach层的服务还是BSD层的服务?

  • 调用时,传一个号码进来,如果小于0,则是调Mach内核的服务。如果大于0,则是调BSD内核的服务。

14)Mach 中的组件 Libkern是什么?

  • 一个库,提供了很多底层的操作函数,同时支持 C++ 运行环境。

15)IOKit又是什么?

  • 依赖Libkern库,管理所有的设备驱动和内核功能扩展模块。

16)Windows 的内核 NT怎样来的?

  • 一开始windows的内核是MS-DOS,没有界面,它也没有硬件保护机制,后来微软基于它研发的图形界面不稳定,动不动就死机。竞争对手也用上了类UNIX操作系统,所以微软必须搞一套自己的操作系统来上市竞争--Windows NT就诞生了。

17)什么是Windows NT?

  • 微软于 1993 年推出的面向工作站、网络服务器和大型计算机的网络操作系统,也可做 PC 操作系统。是一款全新从零开始开发的新操作系统,并应用了现代硬件的所有特性,“NT”所指的便是“新技术”(New Technology)。

18)NT 内核架构图长什么样?

  • 上图中我们只关注内核模式下的东西,也就是传统意义上的内核。

18)为什么内核之下是硬件抽象层 HAL?

  • 不同的硬件平台只要提供对应的 HAL 就可以移植系统了

19)NT内核的精妙之处在哪里?

  • 各层次分明,各个执行体互相独立,这种“高内聚、低偶合”的特性,正是检验一个软件工程是否优秀的重要标准。

20)Linux、Darwin-XNU 和 Windows 的区别是什么?

  • Linux 性能良好,结构异常复杂,不利于问题的排查和功能的扩展。

  • Darwin-XNU 和 Windows 结构良好,层面分明,利于功能扩展,不容易产生问题且性能稳定。

21)Windows NT 内核属于哪种架构类型?

  • NT是混合内核,内核相较于linux来说小,但是仍有一些模块在内核,也有相当多的模块在用户态。 架构额外清晰,也难怪几十年迭代都未曾大改大变

震撼的Linux全景图:业界成熟的内核架构长什么样?的更多相关文章

  1. linux下TCP/IP及内核参数优化调优(转)

    Linux下TCP/IP及内核参数优化有多种方式,参数配置得当可以大大提高系统的性能,也可以根据特定场景进行专门的优化,如TIME_WAIT过高,DDOS攻击等等. 如下配置是写在sysctl.con ...

  2. 如何在Linux上通过grub添加内核参数

    转自Linux中国 我们可以在linux内核启动时为其提供各种各样的参数.这些参数可以自定义内核默认的行为,或者通知内核关于硬件的配置信息.内核参数应在内核启动时通过引导装载程序,如GRUB或LILO ...

  3. Linux从用户层到内核层系列 - GNU系列之glibc介绍

    题记:本系列文章的目的是抛开书本从源代码和使用的角度分析Linux内核和相关源代码,byhankswang和你一起玩转linux开发 轻松搞定TCP/IP协议栈,原创文章欢迎交流, byhankswa ...

  4. Linux内核架构与底层--读书笔记

    linux中管道符"|"的作用 命令格式:命令A|命令B,即命令1的正确输出作为命令B的操作对象(下图应用别人的图片) 1. 例如: ps aux | grep "tes ...

  5. Linux内核入门到放弃-无持久存储的文件系统-《深入Linux内核架构》笔记

    proc文件系统 proc文件系统是一种虚拟的文件系统,其信息不能从块设备读取.只有在读取文件内容时,才动态生成相应的信息. /proc的内容 内存管理 系统进程的特征数据 文件系统 设备驱动程序 系 ...

  6. 漫画赏析:Linux 内核到底长啥样(转)

    知乎链接:https://zhuanlan.zhihu.com/p/51679405 来自 http://TurnOff.us 的漫画 “InSide The Linux Kernel” 本文转载自: ...

  7. 搭建《深入Linux内核架构》的Linux环境

    作者 彭东林 pengdonglin137@163.com 软件 Host: Ubuntu14.04 64 Qemu 2.8.0 Linux 2.6.24 busybox 1.24.2 gcc 4.4 ...

  8. Linux内核模块编程可以使用的内核组件

    2.2.2 在阅读<深入Linux内核架构与底层原理> 作者:刘京洋 韩方,发现一些错误,有些自己的理解,特以此记录 1.工作队列(workqueue) 队列是一种可以先进先出的数据结构, ...

  9. 删除LINUX更新后多余的内核

    删除LINUX更新后多余的内核 本人使用的时fredoa 21 之前为了搞网卡驱动不知不觉升级了几次系统,每次启动后都有好几个内核让我选,真的非常头疼阿,尤其像博主这样的有点强迫的人,看着就心烦,所以 ...

随机推荐

  1. ApacheCN Kali Linux 译文集 20211020 更新

    Kali Linux 秘籍 中文版 第一章 安装和启动Kali 第二章 定制 Kali Linux 第三章 高级测试环境 第四章 信息收集 第五章 漏洞评估 第六章 漏洞利用 第七章 权限提升 第八章 ...

  2. Android下数据库操作——增删改查

    Android下数据库第一种方式增删改查     1.创建一个帮助类的对象,调用getReadableDatabase方法,返回一个SqliteDatebase对象     2.使用SqliteDat ...

  3. centos安装Libzip

    2018年06月29日 11:12:15 oxiaobaio 阅读数 4827   wget https://nih.at/libzip/libzip-1.2.0.tar.gztar -zxvf li ...

  4. 【转】zabbix监控mysql

    纯属搬家收藏,原文链接 https://www.cnblogs.com/shenjianyu/p/6627843.html 注意: 1.关注的重点在agent端部分 2.zabbix_get命令没有, ...

  5. Linux-标准输入标准输出

    标准输入(代码为0) 标准输出(代码为1) 标准错误输出(代码为2) 将标准输出重定向到一个文件 find /etc -name fileA >list 等同于 find /etc -name ...

  6. 关于synchronized(this)中this指的是什么意思

    public class SynchronizedDEmo { public static void main(String[] args) { TestThread tt = new TestThr ...

  7. 微信小程序开发提升效率

    http://www.ifanr.com/minapp/790017 微信小程序的 API 实现需要兼顾方方面面,所以仍然使用 callback 写法. 众所周知,Callback-Hell(回调地狱 ...

  8. TCP的报文详细解读

    这张图好像挺有名的,其实一开始我看见的时候是一脸懵逼的,但是通过翻书(大学时代最害怕的计算机网络),查阅他人博客等等办法,最后终于有了一个系统的了解,当然,这里知识点多而杂,大家可以多看几遍,结合上面 ...

  9. CentOS卸载自带的JDK

    一般在配置JDK之前要卸载CentOS自带的openjdk,接下来演示如何卸载自带的openjdk 进入root模式 查看jdk是否已经安装jdk rpm -qa | grep jdk 3. 卸载op ...

  10. Solution -「洛谷 P4389」付公主的背包

    \(\mathcal{Description}\)   Link.   容量为 \(n\),\(m\) 种物品的无限背包,求凑出每种容量的方案数,对 \(998244353\) 取模.   \(n,m ...