首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅内核模式操作系统

仅内核模式操作系统
EN

Stack Overflow用户
提问于 2022-11-06 19:43:43
回答 1查看 47关注 0票数 0

普通的x86 CPU有两种不同的模式(这里我们可以再细分为保护环)。一种是用户模式,另一种是内核模式。

内核模式可以完全访问硬件。基本上你应该小心地在这里执行一些事情。

出于安全原因,您可以为正常应用程序(如web服务器)选择用户模式。

例如,要调用内核函数,必须进行昂贵的上下文切换。

现在来问我的问题:除了在内核模式下运行一个正常的应用程序是不负责任的事实之外,理论上可以在内核模式下运行一个应用程序,比如一个简单的HTTP服务器。

然而,系统必须是完美的: HTTP服务器是无缺陷的.这在实践中基本上是不可能的。此外,CPU可能有一个安全漏洞,这使得这更加悲惨。

现在我们假设系统将是100%完美的,我们将在内核模式下运行一个应用程序。这种性能差异明显吗?

有没有人尝试过并发表过基准测试?

EN

回答 1

Stack Overflow用户

发布于 2022-11-06 22:34:54

是的,Linux已经有了一段时间的TUX web服务器。几年前,当CPU速度较慢,安全威胁较轻时,它可能有一些生产用途。仅用于服务静态内容。来自维基百科,浓缩:

TUX web服务器是在(GPL)许可下授权的Linux内核中未维护的web服务器。它由Ingo Molnár维持。 ..。 TUX与其他网络服务器的主要区别包括:

  • TUX部分在Linux内核的自定义版本中运行,部分作为用户空间守护进程.(使用tux(2)系统调用)运行。
  • 使用有能力的网卡,TUX可以将DMA从页面缓存直接收集到网络。
  • TUX只能为静态网页服务。

据推测,守护进程可以是一个“内核线程”,而不是用户空间,这是一个可调度的任务,在环0中运行。

kHTTPd我也这么想吗?它说,它可以将非静态内容的请求传递给像Apache这样的完整的web服务器。该站点有一些基准,比如来自K6-2的350 The的请求,显示每秒的请求与并发请求,Apache的峰值是大约500个请求/秒(对于一个100 with与apachebench连接的1K文件)。宙斯管理着大约1900年雷克/秒,但kHTTPd最多只能处理2300雷克/秒,并发性不是很大。

我相信你可以谷歌其他基准的Tux / kHTTPd,既然你知道要搜索什么。

由于有了多核CPU,现代系统甚至可以使10 10Gbit网络链路与运行在用户空间中的正常服务器更加接近饱和。因此,这一想法大多被抛弃,转而使用网络服务。

对于本地文件共享,NFSd仍然主要是在内核中完成的.

服务器说,实际上有这样的实现为多个不同的OSes,包括Solaris和HP。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74339186

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档