软件堆栈和操作系统有什么区别?为什么Android不是操作系统而是软件堆栈?

AZ_*_*AZ_ 15 operating-system terminology

Android是一个软件堆栈,但不是操作系统.正如developer.android.com所述

什么是Android?Android是移动设备的软件堆栈,包括操作系统,中间件和关键应用程序.Android SDK提供了使用Java编程语言开始在Android平台上开发应用程序所需的工具和API.

我不明白软件堆栈是OS与应用程序一起工作,因此Windows是一个操作系统,但如果我在其上安装应用程序,我应该将其称为软件堆栈吗?

那么软件堆栈和操作系统有什么区别,Android包含内核,为什么不是它的操作系统呢?

Dav*_*vid 19

操作系统是系统的核心内核,软件堆栈是位于内核之上的软件,它增强和扩展了系统的功能.

Windows倾向于模糊一点线,但Linux使它更加明显.

在Linux中,内核是操作系统.位于内核之上的软件堆栈可包括以下内容:

  • X窗口系统
  • Gnome窗口管理器
  • 管理系统的应用程序
  • 等等...

因此,用于编辑系统设置的控制面板应用程序等操作系统不属于操作系统.它们是操作系统之上的软件堆栈的一部分.

你可能拥有一个非常小的操作系统,它没有运行很多软件堆栈.就其本身而言,它不会提供太多可用性,而是增加可用性的基础.

Android的软件堆栈建立在Linux内核之上,它负责将电源管理作为设备其他硬件部分之间的接口.这是一个链接,可以帮助您了解有关Android架构的更多信息

  • @Algo:因为Windows中的软件堆栈与操作系统捆绑在一起,并没有真正替换为其他选项.例如,Linux中的窗口管理器可以与任意数量的备用选项交换出来.在Windows中,你可以得到他们给你的东西,就是这样.但是,Windows中有软件堆栈的示例.从技术上讲,最初的Windows(95之前版本)是一个位于MS-DOS之上的软件堆栈.Microsoft Bob是另一种软件堆栈. (4认同)
  • @Algo:真的,这有点模糊和广泛.不同的书籍侧重于软件的不同方面和学科.我想如果我要从帽子中挑选一个喜欢的人,请从Clean Code和The Clean Coder(都是Robert C. Martin)开始,然后从那里开始.(这两本书内部都参考了其他好书等) (2认同)