IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 经典书籍翻译——深入理解Linux内核13 -> 正文阅读

[系统运维]经典书籍翻译——深入理解Linux内核13

The following list describes how Linux competes against some well-known commercial Unix kernels:
Monolithic kernel
It is a large, complex do-it-yourself program, composed of several logically different components. In this, it is quite conventional; most commercial Unix variants are monolithic. (Notable exceptions are the Apple Mac OS X and the GNU Hurd operating systems, both derived from the Carnegie-Mellon’s Mach, which follow a microkernel approach.)
Compiled and statically linked traditional Unix kernels
Most modern kernels can dynamically load and unload some portions of the kernel code (typically, device drivers), which are usually called modules. Linux’s support for modules is very good, because it is able to automatically load and unload modules on demand. Among the main commercial Unix variants, only the SVR4.2 and Solaris kernels have a similar feature.
Kernel threading
Some Unix kernels, such as Solaris and SVR4.2/MP, are organized as a set of kernel threads. A kernel thread is an execution context that can be independently scheduled; it may be associated with a user program, or it may run only some kernel functions. Context switches between kernel threads are usually much less expensive than context switches between ordinary processes, because the former usually operate on a common address space. Linux uses kernel threads in a very limited way to execute a few kernel functions periodically; however, they do not represent the basic execution context abstraction. (That’s the topic of the next item.)
Multithreaded application support
Most modern operating systems have some kind of support for multithreaded applications—that is, user programs that are designed in terms of many relatively independent execution flows that share a large portion of the application data structures. A multithreaded user application could be composed of many lightweight processes (LWP), which are processes that can operate on a common address space, common physical memory pages, common opened files, and so on. Linux defines its own version of lightweight processes, which is different from the types used on other systems such as SVR4 and Solaris. While all the commercial Unix variants of LWP are based on kernel threads, Linux regards lightweight processes as the basic execution context and handles them via the nonstandard clone() system call.

以下列出了Linux能够和那些广为人知的商用操作系统比肩的理由:
宏内核结构
Linux内核是一个庞大而复杂的DIY程序,由几个逻辑上不同的部件组成。在这一点上它是非常传统的,大多数商用Unix变种操作系统都是单块结构的。(值得注意的是苹果的Mac OS X和GNU Hurd操作系统,它们都是基于由卡耐基梅隆大学的Mach实现,Mach采用的则是微内核结构。)
采用编译式和静态链接式的传统的Unix内核
大多数现代内核都能够动态加载和卸载内核源码的部分组件(典型的是设备驱动),通常称这些组件为模块。Linux对模块的支持非常灵便,因为它可以根据需要自动地加载和卸载模块。在主流的商用操作Unix变种操作系统中只有SVR4.2和Solaris内核具有类似的特性。
内核线程
像Solaris和SVR4.2/MP这样的一些Unix内核是被当作一组内核线程组织起来的。一个内核线程是一个可以独立完成调度的执行上下文;一个内核线程可能和一个用户程序关联起来,也可能仅运行一部分内核函数。内核线程之间的上下文切换往往比普通的进程之间的切换更划算(消耗的资源更少——译者按),但是内核线程的上下文切换并不意味着基本的可执行上下文进行了抽象。(这是接下来要讨论的问题)
支持多线程应用
大多数的现代操作系统都有一些支持多线程应用的手段——那就意味着用户程序可以设计成许多相互独立同时相互关联的可执行流,这些可执行流共享程序的大部分数据结构。一个多线程的应用程序可以由许多轻量级进程所组成,这些轻量级进程可以运行在公用的地址空间,公用的内存页甚至运行在公用的打开的文件等。Linux定义了它独有的轻量级进程版本,该版本和其他那些运行在SVR4和Solaris上的版本不同。和LWP的所有商用Unix变种基于内核线程不同,Linux将轻量级进程作为基本的运行上下文并通过clone()这个非标准的系统调用来进行处理。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-11-12 19:59:45  更:2021-11-12 20:02:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 23:51:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码