In welke talen zijn Windows, Mac OS X en Linux geschreven?

Ik vroeg me gewoon af wie weet uit welke programmeertalen Windows, Mac OS X en Linux bestaan ​​en welke talen worden gebruikt voor elk onderdeel van het besturingssysteem (dwz: kernel, plug-in-architectuur, GUI-componenten, enz.).

Ik neem aan dat er meerdere talen voor elk zijn en ik weet natuurlijk dat de Linux-kernel in C is geschreven.

Ik gok hier helemaal dat Mac OS X veel Objective-C-code bevat, aangezien het Apples taal is die is afgeleid van NeXT.

Windows, ik heb gehoord dat het C, C++ en Intel Assembly bevat. Bevat Linux of Mac OS Assembly-code?

Zijn er ook scripttalen zoals Ruby, Python, enz. die door de OS-ontwikkelaars worden gebruikt voor het scripten van delen van het OS? Welke delen van het besturingssysteem zouden in elke taal worden geschreven?


Antwoord 1, autoriteit 100%

  • Windows: C++, kernel is in C
  • Mac: Doelstelling C, kernel bevindt zich in C (IO PnP-subsysteem is Embedded C++)
  • Linux: de meeste dingen zijn in C, veel userland-apps zijn in Python, KDE is allemaal C++

Alle kernels zullen ook wat assembly-code gebruiken.


Antwoord 2, autoriteit 31%

Linux: C. Sommige onderdelen in assemblage.

[…] Het is meestal in C, maar de meeste mensen zouden wat ik schrijf geen C noemen.
Het gebruikt elke denkbare functie van de 386 die ik kon vinden, zoals het was
ook een project om me over de 386 te leren. Zoals al vermeld, het
gebruikt een MMU, zowel voor paging (nog niet naar schijf) als segmentatie. Zijn
de segmentatie die het ECHT 386 afhankelijk maakt (elke taak heeft een
64Mb-segment voor code & data – max 64 taken in 4Gb. Iedereen die nodig heeft
meer dan 64Mb/taak – taaie cookies). […] Enkele van mijn “C”-bestanden
(specifiek mm.c) zijn bijna net zoveel assembler als C. […] In tegenstelling tot
minix, ik hou ook van interrupts, dus interrupts worden afgehandeld
zonder te proberen de reden erachter te verbergen. (Bron)

Mac OS X: cacao meestal in Objective-C. Kernel geschreven in C, sommige delen in assembly.

Mac OS X, in de kernellaag, is meestal een ouder, gratis besturingssysteem genaamd BSD (met name Darwin, een soort hybride van BSD, Mach en een paar andere dingen)… bijna volledig C, met een beetje assembler erbij. (Bron)

Een groot deel van Cocoa is geïmplementeerd in Objective-C, een objectgeoriënteerde taal die is gecompileerd om met ongelooflijke snelheid te werken, maar die toch een echt dynamische runtime gebruikt waardoor het uniek flexibel is. Omdat Objective-C een superset van C is, is het gemakkelijk om C en zelfs C++ in je Cocoa-applicaties te mengen.
(Bron)

Windows: C, C++, C#. Sommige onderdelen in assembler.

We gebruiken bijna volledig C, C++ en C# voor Windows. Sommige codegebieden zijn met de hand gestemd/handgeschreven montage. (Bron)

Unix: C. Sommige onderdelen in assemblage. (Bron)


Antwoord 3, autoriteit 5%

Mac OS X gebruikt grote hoeveelheden C++ in sommige bibliotheken, maar het wordt niet openbaar gemaakt omdat ze bang zijn dat de ABI wordt verbroken.


Antwoord 4, autoriteit 4%

Ik begrijp dat dit een oud bericht is, maar Windows is zeker niet geschreven in C++. Er zit veel C++ in, maar wat we technisch definiëren als een besturingssysteem is niet in C++. De Windows API, de Windows-kernel (beide zijn in wezen wat een besturingssysteem is) zijn geschreven in C. Jaren geleden kreeg ik wat gelekte code voor zowel Windows 2000 als Windows XP. De code was lang niet compleet genoeg om de kernel of API te compileren, maar we waren in staat om individuele programma’s en services te compileren. We waren bijvoorbeeld in staat om Notepad.exe, mspaint.exe en de spoolsv.exe-service (printspooler) met succes te compileren. Allemaal geschreven in C. Ik heb niet opnieuw gekeken, maar ik weet zeker dat gelekte code nog steeds overleeft als torrent-bestanden die mogelijk nog steeds beschikbaar zijn.


Antwoord 5, autoriteit 3%

Wauw!!! 9 jaar vragen, maar ik ben zojuist een reeks interne artikelover de geschiedenis van de Windows-opdrachtregel en ik denk dat een deel ervan relevant kan zijn voor de Windows-kant van de vraag:

Voor degenen die om zulke dingen geven: velen hebben gevraagd of Windows in C of C++ is geschreven. Het antwoord is dat – ondanks het objectgebaseerde ontwerp van NT – zoals de meeste besturingssystemen, Windows bijna volledig in ‘C’ is geschreven. Waarom? C++ introduceert kosten in termen van geheugenvoetafdruk en overhead voor code-uitvoering. Zelfs vandaag de dag kunnen de verborgen kosten van code geschreven in C++ verrassend zijn, maar eind jaren negentig, toen geheugen ~$60/MB kostte (ja $60 per MEGABYTE!), waren de verborgen geheugenkosten van vtables enz. was aanzienlijk. Bovendien kunnen de kosten van indirecte aanroepen van virtuele methoden en object-dereferentie resulteren in zeer aanzienlijke prestaties & schaal boetes voor C++ code op dat moment. Hoewel je nog steeds voorzichtig moet zijn, is de prestatieoverhead van moderne C++ op moderne computers veel minder zorgwekkend, en is het vaak een acceptabele afweging gezien de voordelen op het gebied van beveiliging, leesbaarheid en onderhoudbaarheid … daarom zijn we gestaag upgraden van de consolecode naar modern C++.


Antwoord 6, autoriteit 3%

Windows: Meestal C en C++, sommige C#


Antwoord 7, autoriteit 3%

  • vensters: C++
  • linux: C
  • mac: Doelstelling C
  • Android: JAVA, C, C++
  • Solaris: C, C++
  • iOS 7: Objective-C,Swift,C, C++

Antwoord 8, autoriteit 2%

Je hebt gelijk MacOSX heeft Objective-C in de kern.

Windows C++

Linux C

Over de scripttalen, nee, die zijn van vrij hoog niveau.


Antwoord 9, autoriteit 2%

Ik heb gelezen of gehoord dat Mac OS X voornamelijk in Objective-C is geschreven met enkele van de lagere delen, zoals de kernel, en stuurprogramma’s voor hardwareapparaten geschreven in C. Ik geloof dat Apple zijn eigen hondenvoer”, wat betekent dat ze Mac OS X schrijven met hun eigen Xcode Developer Tools. De GCC(GNU Compiler Collection)compiler-linker is de Unix-opdrachtregeltool die xCode gebruikte voor het grootste deel van zijn compilatie en/of het koppelen van uitvoerbare bestanden. Naast andere mogelijke talen weet ik dat GCC broncode compileert uit de talen C, Objective-C, C++ en Objective-C++.


Antwoord 10

De Linux-kernel is meestal geschreven in C (en een beetje assembler, kan ik me voorstellen), maar enkele van de belangrijke hulpprogramma’s (programma’s) voor gebruikersruimten zijn shellscripts die zijn geschreven in de Bash-scripttaal. Verder is het een beetje moeilijk om “Linux” te definiëren, omdat je in feite een Linux-systeem bouwt door stukjes en beetjes te kiezen die je wilt en ze samen te voegen, en afhankelijk van wat een individuele Linux-gebruiker wil, kun je vrijwel elke taal gebruiken. (Zoals Paul al zei, spelen Python en C++ een belangrijke rol)


Antwoord 11

Als aanvulling op de kern van Mac OS X was Finder vóór Snow Leopard niet geschreven in Objective-C. In Snow Leopard was het geschreven in Cocoa, Objective-C


Antwoord 12

Zie onder het kopje Eén besturingssysteem dat op meerdere platforms draaitwaar staat:

Most of the source code for Windows NT is written in C or C++.

Antwoord 13

Windows is duidelijk niet geschreven in C# (!)

Kijk gewoon de broncode van Windows en je zult zien…


Antwoord 14

Windows c c++ 10% C# Perl
Linux C
MAC Doelstelling c
Android Java c++
Solaris c c++

Ik hoop dat je het antwoord krijgt.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

five − two =

Other episodes