Por que o software usa o nome Win32?


31

Se um software / biblioteca tem algum suporte para a plataforma Windows, quase sempre nomeia seus diretórios e variáveis ​​como win32. Isso é mais prevalente em projetos C / C ++. Até o objetivo triplo do projeto MinGWwin32 . Existe uma razão para isso? Por que não usar um nome próprio como Windows ou Microsoft Windows? Existe um problema legal em torno da escolha de nomes?

Esta pergunta não é sobre a API, mas a convenção de nomenclatura em uso. Quando uma biblioteca suporta outros sistemas operacionais, geralmente usa os nomes próprios como linux, freebsdou qualquer outro suporte especial necessário. Mas quando se trata do Windows, muitas vezes é abreviado como o win32que parece um pouco estranho em comparação com o resto.


11
Como os aplicativos de 32 bits são diferentes dos aplicativos de 64 bits?
Oded

52
Win32 é o nome da API do Windows , semelhante à função do POSIX em sistemas Unix / Linux. O nome pode ter se originado de processadores de 32 bits, mas isso deve ser visto como um artefato histórico.
29517 amon

4
Por que o bin é tradicionalmente usado para indicar um diretório com executáveis ​​binários? É apenas uma convenção. O win32 é apenas uma abreviação de um programa em execução no Windows com 32 bits. Se você preferir chamá-lo de flimflam, poderá fazê-lo, embora possa não ser muito claro em seu projeto.
Neil

37
Muita informação incorreta nos comentários aqui ... O Win32 não implica código de 32 bits desde o início dos anos 90, quando estabeleceu uma distinção entre o Windows 3 de 16 bits e as versões posteriores de 32 bits. As versões modernas de 64 bits do Windows implementam uma API nativa de 64 bits e se chama "Win32". Ele mantém o mesmo nome porque é compatível com a API de 32 bits, mas é uma implementação nativa de 64 bits e faria todo o sentido para uma biblioteca de 64 bits chamar-se "Win32". "Win64" significaria realmente a arquitetura Itanium, não x86-64 / AMD64.
Cody Gray

6
@Oded: win32 é uma recuperação de quando o Windows fez a transição de 16 para 32 bits.
Whatsisname 29/08/17

Respostas:


61

Win32 é o nome habitual para a API do Windows. Esta API especifica como os aplicativos podem interagir com o sistema operacional. É aproximadamente comparável com o padrão POSIX no Unix, mas o Win32 também abrange GUIs e muitos outros recursos.

A API do Win32 não se limita às instalações do Windows de 32 bits.

No Windows Dev Center :

A interface de programação de aplicativos (API) do Windows permite desenvolver aplicativos de desktop e servidor que são executados com êxito em todas as versões do Windows, aproveitando os recursos e capacidades exclusivos de cada versão.

A API do Windows pode ser usada em todos os aplicativos de área de trabalho baseados no Windows, e as mesmas funções geralmente são suportadas no Windows de 32 e 64 bits. As diferenças na implementação dos elementos de programação dependem dos recursos do sistema operacional subjacente. Essas diferenças são observadas na documentação da API.

Nota Isso foi chamado anteriormente de API do Win32. O nome API do Windows reflete com mais precisão suas raízes no Windows de 16 bits e seu suporte no Windows de 64 bits.

Você não precisa usar a API do Win32 para desenvolver para o Windows. Alternativas são as classes .NET ou a interface do Windows RT.

Tecnicamente, existe uma variante Win64. Mas difere do Win32 principalmente no modelo de dados (o tamanho dos ponteiros). Não é um conjunto distinto de APIs:

O ambiente da API Win64 é quase o mesmo que o ambiente da API Win32 - diferente da grande mudança do Win16 para o Win32. As APIs Win32 e Win64 agora são combinadas e chamadas de API do Windows. Usando a API do Windows, você pode compilar o mesmo código-fonte para executar nativamente no Windows de 32 bits ou no Windows de 64 bits. Para portar o aplicativo para o Windows de 64 bits, basta recompilar o código.

Os arquivos de cabeçalho do Windows são modificados para que você possa usá-los para códigos de 32 e 64 bits. ( fonte )

Como o Win64 não é substancialmente diferente, você quase nunca verá projetos direcionados win64no nível do código-fonte, embora os projetos mais recentes possam direcionar em winapivez do tradicional win32. Mas, para todos os fins práticos, todos esses nomes se referem à mesma API.


5
Além disso, a API do Win32 é / foi suportada em outros sistemas operacionais, por exemplo, OS / 2, ReactOS e também o Wine, que também é uma implementação da API do Win32.
Jörg W Mittag

6
@UnmannedPlayer, bem, Win32 é o nome da plataforma que está sendo direcionada. Win32 é o Windows como o conhecemos. Como a citação acima explica hoje em dia, o nome adequado é "API do Windows", mas descreve a mesma coisa.
amon

8
"Para portar o aplicativo no Windows de 64 bits, basta recompilar o código." ... riiiiiiiiiiiiiiiiiiiiiiiight.
Daniel Kamil Kozar

7
@DanielKamilKozar Isso é menos louco do que parece - é a mesma API. Claro, esse poderia ter sido o departamento de marketing. Falando. Mas com um pouco de disciplina e testes suficientes, não é fundamentalmente difícil escrever código portátil. A diferença importante é que no Win32, int, long e tipos de ponteiros são 32 bits grandes. Essa suposição não é mais válida no Win64, que quebra o código que tentou ser inteligente. Mas uma vez que o código foi tornado portátil, a diferença entre o Win32 e o Win64 acaba sendo pouco mais que uma opção de compilador.
29517 amon

4
@amon: Infelizmente, a Microsoft decidiu, por algum motivo bizarro, fazer com que aplicativos de 32 e 64 bits usem áreas diferentes do registro, dificultando desnecessariamente o compartilhamento de configurações por um grupo de aplicativos relacionados, a menos que todos sejam de 32 ou 64 bits. pouco. Sim, existem soluções alternativas, mas nenhuma é tão fácil quanto simplesmente usar o mesmo armazenamento.
Supercat 29/08

29

Como a API do Windows tem mais de 30 anos e existe quando os PCs tinham 16 bits, surgiram 32 bits, Win32s e win64. Há dependência de plataforma no desenvolvimento do Windows, e você precisa do seu código para corresponder às bibliotecas do SO (dll) na arquitetura.

https://en.wikipedia.org/wiki/Windows_API#Versions

Um aplicativo do Windows criado no win32 será executado em arquiteturas de 32 bits e será executado em 64 bits em virtude do sistema operacional Windows que fornece um subsistema win32 para que os aplicativos win32 sejam executados em um sistema operacional Windows de 64 bits moderno.

Enquanto as versões do win32 estão se tornando cada vez menos com o passar do tempo, o win32 provavelmente não desaparecerá completamente tão cedo. Quando as compilações do win32 terminarem, provavelmente haverá um win128 e o win64 será o novo win32.


3
A nova API do Windows é chamada WinRT. Tem muito em comum com o Win32, mas também muito diferente - assim como o Win32 fez com o Win16 (?).
user253751

10
@immibis WinRT é o tempo de execução que a Microsoft provavelmente queria ser o "novo". É o tempo de execução dos aplicativos da Windows Store, executando no Windows 8+, Windows RT e Windows Phone 8+. Você sabe, para aqueles aplicativos que ninguém gosta.
Metallkiller

Obrigado por adicionar a API WinRT a esta resposta. Acho que faço parte do grupo de pessoas que não gostam dos aplicativos não desktop do Win 8+. Mas parece que a Microsoft renomeou o Win32 como "API do Windows": msdn.microsoft.com/en-us/library/windows/desktop/… Respondi à pergunta no contexto de por que você vê referências "win32" no software existente etc.
Thomas Carlisle

Algumas votações negativas no mês passado sem comentários para sugerir como essa resposta pode ser melhorada. A resposta aceita basicamente responde à pergunta "por que é chamado win32" dizendo "porque é chamado de win32". Eu mantenho a minha resposta, porque o ponto principal é que, nos dias de 16 bits ainda era a maioria, as pessoas que compravam computadores com capacidade de 32 bits não queriam ver ou ouvir "16" em qualquer lugar da arquitetura de hardware ou software . Portanto, a API foi nomeada de acordo, provavelmente não pensando nesta década, quando 32 bits se tornou o novo 16 bits.
9788 Thomas
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.