![]() |
1
9
“kernel32.dll”也将转换为libc.so.6。由于Windows不是最低级别的POSIX,它需要额外的一层将POSIX libc调用转换为本机Win32调用。这就是msvcrt.dll的用途。Kernel32.dll包含最低级别的调用。在Linux上,这些系统调用已经是POSIX,因此不需要额外的库。 |
![]() |
2
4
MSVCR.DLL与LBC相比,实际上不是6。因为第一个是VC++的专用DLL(MVCRT & Gt;微软Visual C++运行时)。 系统调用(打开、关闭、读取、写入等)也在libc中。它们只是用汇编语言编写的软件中断的简单包装。 |
![]() |
3
2
编辑: 只是澄清一下——内核本身导出了许多以称为syscalls的特殊方式调用的函数;这些系统调用由实际函数包装;在Linux上,这是在libc中完成的,在Windows上是两次,一次是由ntdll(即NtCreateFile)完成的,然后是由Kernel32(CreateFileW/A)完成的。 Kernel32还提供了许多其他非系统调用的函数(即100%保持用户模式),就像libc一样。 |
![]() |
4
1
我想你可能在寻找:
这是Linux内核的“虚拟库”链接。 您的内核头将为您提供API详细信息。
|
![]() |
5
0
您必须在kernel32.dll中手动查找要使用的win32函数,并在linux/gnu中找到替换函数。linux使用了大量的共享库。并不是所有的操作系统都在同一个位置直接替换。有些图书馆确实负责跨平台的工作。 |
![]() |
user3732361 · 读取大文件时如何选择块大小? 7 年前 |
![]() |
Sector · 将参数传递给自己的execv内核实现 7 年前 |
![]() |
Arka Pal · 关闭管道中未使用的端部 7 年前 |
![]() |
Nat · 释放malloc内存时程序停止工作 7 年前 |
![]() |
Mengfan Ma · 作者所说的操作系统中的目录结构是什么意思? 7 年前 |
![]() |
Mengfan Ma · 在何处执行磁盘调度 7 年前 |