W jakich językach są napisane systemy Windows, Mac OS X i Linux?

Zastanawiałem się tylko, kto wie, z jakich języków programowania składa się Windows, Mac OS X i Linux i jakie języki są używane dla każdej części systemu operacyjnego (tj.: jądro, Architektura wtyczek, komponenty GUI itp.).

Zakładam, że istnieje wiele języków dla każdego i oczywiście wiem, że jądro Linuksa jest napisane w C.

Całkowicie zgaduję, że Mac OS X zawiera dużo kodu Objective-C, ponieważ jest to język Apple wywodzący się z NeXT.

Windows, mam heard zawiera C, C++ i Intel Assembly. Czy Linux lub Mac OS zawierają jakiś kod montażowy?

Poza tym, czy istnieją języki skryptowe, takie jak Ruby, Python itp., używane przez twórców systemu operacyjnego do skryptowania części systemu operacyjnego? Jakie części systemu operacyjnego byłyby napisane w każdym języku?

Author: Brock Woolf, 2009-02-24

13 answers

  • Windows: C++, kernel jest w C
  • [1]} Mac: Objective C, kernel jest w C (IO PnP subsystem is Embedded C++)
  • Linux: większość rzeczy jest w C, wiele aplikacji użytkownika jest w Pythonie, KDE to C++

Wszystkie jądra będą również używać kodu asemblacji.

 223
Author: Paul Betts,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-18 18:06:41

Linux: C. Niektóre części w assembly.

[...] Jest głównie w C, ale większość ludzi nie nazwałaby tego, co piszę C. Wykorzystuje każdą możliwą funkcję 386, jaką mogłem znaleźć, jak to było również projekt, który nauczy mnie o 386. Jak już wspomniano, to używa MMU, zarówno do stronicowania (jeszcze nie do dysku), jak i segmentacji. On segmentacji, która sprawia, że jest naprawdę zależna od 386 (każde zadanie ma Segment 64MB dla code & data-max 64 zadania w 4Gb. Każdy, kto potrzebuje więcej niż 64MB / zadanie - trudne ciasteczka). [...] Niektóre z moich"C" -plików (konkretnie mm. c) są prawie tak samo asemblerem jak C. [...] W przeciwieństwie do minix, ja też lubię przerywniki, więc przerywniki są obsługiwane bez ukrywania powodu za nimi. (Źródło)

Mac OS X: Cocoa głównie w Objective-C. jądro napisane w C, niektóre części w assembly.

Mac OS X, w warstwie jądra, jest w większości starszym, wolnym systemem operacyjnym o nazwie BSD (konkretnie jest to Darwin, a rodzaj hybrydy BSD, Mach i kilka innych rzeczy)... prawie w całości C, z odrobiną asemblera. (Źródło)

[0]}Większość Cocoa jest zaimplementowana w Objective-C, języku zorientowanym obiektowo, który jest kompilowany do pracy z niewiarygodną prędkością, ale wykorzystuje prawdziwie dynamiczne środowisko wykonawcze, dzięki czemu jest wyjątkowo elastyczny. Ponieważ Objective - C jest supersetem języka C, łatwo jest mieszać C, a nawet c++ z aplikacjami Cocoa. (Źródło)

Windows: C, C++, C#. Niektóre części w asemblerze.

Używamy prawie w całości C, C++ i C# Dla Windows. Niektóre obszary kodu są ręcznie strojone / ręcznie pisane. (Źródło)

Unix: C. Niektóre części w assembly. (Źródło)

 83
Author: Pacerier,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-04 16:21:37

Mac OS X używa dużych ilości C++ wewnątrz niektórych bibliotek, ale nie jest narażony, ponieważ boją się złamania ABI.

 13
Author: alex strange,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-27 06:07:54

Windows: głównie C i C++, trochę C #

 8
Author: Larry Osterman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-24 02:57:40

Rozumiem, że to jest stary post, ale Windows na pewno nie jest napisany w C++. Jest w nim wiele C++, ale to, co technicznie definiujemy jako system operacyjny, nie jest w C++. Windows API, jądro systemu Windows (oba są w istocie tym, czym jest system operacyjny) są napisane w języku C. lata temu dostałem jakiś wyciekły kod zarówno dla Windows 2000, jak i Windows XP. Kod nie był wystarczająco kompletny, aby skompilować jądro lub API, ale byliśmy w stanie skompilować poszczególne programy i usługi. Na przykład udało nam się z powodzeniem skompilować Notatnik.exe, mspaint.exe, oraz spoolsv.usługa exe (print spooler). Wszystko napisane w C. Nie Szukałem ponownie, ale jestem pewien, że wyciekły kod nadal przetrwa jako pliki torrent tam, które mogą być nadal dostępne.

 8
Author: Duke Bishop,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-12-29 03:21:17
  • windows: C++
  • linux: C
  • mac: Objective C
  • android: JAVA, C, C++
  • Solaris: C, C++
  • iOS 7: Objective-C,Swift,C, C++
 7
Author: sonsha,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-22 02:55:12

Masz rację MacOSX ma Objective-C w rdzeniu.

Windows C++

Linux C

Jeśli chodzi o języki skryptowe, nie, są na wysokim poziomie.

 6
Author: OscarRyz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-24 02:57:52

Czytałem lub słyszałem, że Mac OS X jest napisany głównie w Objective-C z niektórymi częściami niższego poziomu, takimi jak jądro i sterowniki urządzeń sprzętowych napisane w C. wierzę, że Apple "je(S) własną karmę dla psów", co oznacza, że piszą Mac OS X przy użyciu własnych narzędzi programistycznych Xcode. GCC(GNU Compiler Collection) compiler-linker jest uniksowym narzędziem wiersza poleceń używanym przez xCode do kompilowania i / lub łączenia plików wykonywalnych. Wśród innych możliwych języków, Wiem, że GCC kompiluje kod źródłowy z języków C, Objective-C, C++ i Objective-C++.

 5
Author: Patrick Cassell,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-25 03:56:44

Jądro Linuksa jest napisane głównie w języku C( i trochę w języku asemblacji, wyobrażam sobie), ale niektóre z ważnych narzędzi (programów) w przestrzeni użytkownika to skrypty powłoki napisane w języku skryptowym Bash. Poza tym, trudno jest zdefiniować "Linuksa", ponieważ zasadniczo budujesz system Linux, zbierając kawałki i kawałki, które chcesz i składając je razem, i w zależności od tego, czego chce indywidualny użytkownik Linuksa, możesz uzyskać praktycznie dowolny język. (Jak powiedział Paweł, Python i C++ grają ważne role)

 3
Author: David Z,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-24 03:00:44

Jako dodatek o jądrze Mac OS X, Finder nie został napisany w Objective-C przed Snow Leopardem. W Snow Leopardzie został napisany w Cocoa, Objective-C

 3
Author: Çağatay Gürtürk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-21 18:22:30

Patrz pod nagłówkiem Jeden System Operacyjny działający na wielu platformach gdzie stwierdza:

Most of the source code for Windows NT is written in C or C++.
 3
Author: pcunite,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-04 01:45:35

Windows oczywiście nie jest napisany w C #(!)

Wystarczy zobaczyć kod źródłowy Windows i zobaczysz...

 1
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-25 15:21:44

Wow!!! 9 lat pytania, ale właśnie natknąłem się na serię wewnętrznego artykułu o historii wiersza poleceń systemu Windows i myślę, że jakaś jego część może być istotna Po Stronie Windows pytania:

Dla tych, którym zależy na takich rzeczach: wielu pytało, czy Windows jest napisany w C czy c++. Odpowiedź jest taka , że-pomimo Obiektowego projektu NT - jak większość systemów operacyjnych, Windows jest prawie w całości napisany w "C". Dlaczego? C++ wprowadza koszt pod względem ilości pamięci, a wykonanie kodu nad głową. Nawet dzisiaj ukryte koszty kodu napisanego w C++ mogą być zaskakujące, ale pod koniec lat 90-tych, kiedy pamięć kosztowała ~$60 / MB (tak ... $60 za megabajt!), Ukryty koszt pamięci vtables itp. to było znaczące. Ponadto koszt wywołania metodą wirtualną i odwoływania się do obiektów może skutkować bardzo znaczącymi karami wydajności i skali dla kodu C++ w tym czasie. Choć trzeba jeszcze uważać, wydajność nowoczesnego C++ na nowoczesne komputery są znacznie mniej niepokojące i często stanowią akceptowalny kompromis, biorąc pod uwagę ich bezpieczeństwo, czytelność i łatwość konserwacji ... dlatego stale aktualizujemy Kod konsoli do nowoczesnego C++.

 1
Author: adem,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-16 09:05:48