Operating system 为什么Windows有本机API?

Operating system 为什么Windows有本机API?,operating-system,Operating System,为什么现代操作系统实现了一种调用内部函数的欺骗? 就像在windows中,当您调用ReadFile函数时,您会实际调用NtReadFile。 为什么windows不直接调用NtReadFile 如果操作系统直接调用内部函数会发生什么 解耦和遗留问题。您必须记住,NT最初设计为一个支持多个API的应用程序,默认API当然是已经建立的WIN32 API 如果直接调用NtReadFile,则不再使用WIN32 API。解耦和旧版。您必须记住,NT最初设计为一个支持多个API的应用程序,默认API当然是

为什么现代操作系统实现了一种调用内部函数的欺骗? 就像在windows中,当您调用ReadFile函数时,您会实际调用NtReadFile。 为什么windows不直接调用NtReadFile


如果操作系统直接调用内部函数会发生什么

解耦和遗留问题。您必须记住,NT最初设计为一个支持多个API的应用程序,默认API当然是已经建立的WIN32 API


如果直接调用
NtReadFile
,则不再使用WIN32 API。

解耦和旧版。您必须记住,NT最初设计为一个支持多个API的应用程序,默认API当然是已经建立的WIN32 API


如果直接调用
NtReadFile
,您将不再使用WIN32 API。

当前版本的Windows基于1989年启动的。当时他们不知道什么OS/API会流行,所以他们将Windows NT设计成具有通用本机API(
NtReadFile
)和多个子系统(Windows、POSIX、OS/2),将调用转换为该本机API


1989年,Windows并不流行,设计者打算将其作为主要子系统。直到微软离开了与IBM的OS/2合作伙伴关系,并于1990年面世,并且变得非常流行之后,他们才决定制造一个Windows子系统。因此,创建Win32子系统是为了将像
ReadFile
这样的调用转换为
NtReadFile

Windows当前版本所基于的调用,该调用于1989年启动。当时他们不知道什么OS/API会流行,所以他们将Windows NT设计成具有通用本机API(
NtReadFile
)和多个子系统(Windows、POSIX、OS/2),将调用转换为该本机API


1989年,Windows并不流行,设计者打算将其作为主要子系统。直到微软离开了与IBM的OS/2合作伙伴关系,并于1990年面世,并且变得非常流行之后,他们才决定制造一个Windows子系统。因此,创建Win32子系统是为了将像
ReadFile
这样的调用转换为
NtReadFile

因为我不认为这是一个坏问题,所以它被投票支持。不过,这可能属于程序员。我投了赞成票,因为我认为这不是一个坏问题。不过,它可能属于程序员。