1

Тема: Як програми взаємодіють з операційною системою?

Як програми взаємодіють з операційною системою?

2

Re: Як програми взаємодіють з операційною системою?

Я чомусь завжди думав, що це ОС взаємодіє з виконуваними файлами відповідного формату.

Подякували: Kizyak1

3

Re: Як програми взаємодіють з операційною системою?

я зробив собі таке правило "на всяку роботу ОС, чи то протоколу є правила і стандарти, а саме найголовніше документація", крлись я теж такі питання задавав, але з орієнтувався шо до чого, наприклад файл з форматом ELF в UNIX подібних ОС https://uk.wikipedia.org/wiki/Executabl … ble_Format

Подякували: Kizyak, leofun012

4

Re: Як програми взаємодіють з операційною системою?

Через API же.

Подякували: Kizyak1

5

Re: Як програми взаємодіють з операційною системою?

Через API же.

ще до цього додати системні виклики типу int 80h, int 2ch (windows здається, вжей забув)

Подякували: Kizyak1

6 Востаннє редагувалося Kizyak (18.10.2015 15:32:58)

Re: Як програми взаємодіють з операційною системою?

В мене таке запитання. В мене стоїть лінукс, але деякі програми потрібно запускати через термінал( бо так він не відкриється). А коли й сама відкривається, то не з'являється чорний екран з курсором, а гарне віконечко. Ось. Дививсь код ядра лінукса, але там багато мороки. Да й ще потрібно до ядра встановити X Window System. Так мені не зрозуміло, як ця система взаємодіє з ядром. Вибачте, якщо ви подумаєте, що це дурне запитання, але це просто заради цікавості.

7

Re: Як програми взаємодіють з операційною системою?

Kizyak написав:

В мене таке запитання. В мене стоїть лінукс, але деякі програми потрібно запускати через термінал( бо так він не відкриється). А коли й сама відкривається, то не з'являється чорний екран з курсором, а гарне віконечко. Ось. Дививсь код ядра лінукса, але там багато мороки. Да й ще потрібно до ядра встановити X Window System. Так мені не зрозуміло, як ця система взаємодіє з ядром. Вибачте, якщо ви подумаєте, що це дурне запитання, але це просто заради цікавості.

Тут немає запитання. Ядро - це перше, що починає працювати в системі, без ядра не будуть працювати Ікси.

Подякували: Kizyak1

8

Re: Як програми взаємодіють з операційною системою?

Kizyak написав:

В мене таке запитання. В мене стоїть лінукс, але деякі програми потрібно запускати через термінал( бо так він не відкриється). А коли й сама відкривається, то не з'являється чорний екран з курсором, а гарне віконечко. Ось. Дививсь код ядра лінукса, але там багато мороки. Да й ще потрібно до ядра встановити X Window System. Так мені не зрозуміло, як ця система взаємодіє з ядром. Вибачте, якщо ви подумаєте, що це дурне запитання, але це просто заради цікавості.

Там все куди цікавіше і заплутаніше. Мені цікаво, що саме шукаєте.. бо в мільйонах строк коду лише ядра можна заблукати на десяток років, а якщо ще згадати що є модулі то на все життя.

Подякували: Kizyak1

9

Re: Як програми взаємодіють з операційною системою?

HetmanNet написав:
Kizyak написав:

В мене таке запитання. В мене стоїть лінукс, але деякі програми потрібно запускати через термінал( бо так він не відкриється). А коли й сама відкривається, то не з'являється чорний екран з курсором, а гарне віконечко. Ось. Дививсь код ядра лінукса, але там багато мороки. Да й ще потрібно до ядра встановити X Window System. Так мені не зрозуміло, як ця система взаємодіє з ядром. Вибачте, якщо ви подумаєте, що це дурне запитання, але це просто заради цікавості.

Там все куди цікавіше і заплутаніше. Мені цікаво, що саме шукаєте.. бо в мільйонах строк коду лише ядра можна заблукати на десяток років, а якщо ще згадати що є модулі то на все життя.

Добре, що там є цитати. На вигляд в йому заблукати не важко. Там ж інструкції є. Самому зкомпілювати - не важко.

10

Re: Як програми взаємодіють з операційною системою?

Так мені не зрозуміло, як ця система взаємодіє з ядром.

є простір корситувача і ядра і між собою викликами працюють
орієнтуватись потрібно на такі малюнки
https://wiki.tizen.org/w/images/5/50/Graphicsarchitecture.png
а якщо детально розмалювати то тут фіг знає який формат має бути бумаги

Подякували: Kizyak, Torbins2

11

Re: Як програми взаємодіють з операційною системою?

reverse2500 написав:

Так мені не зрозуміло, як ця система взаємодіє з ядром.

є простір корситувача і ядра і між собою викликами працюють
орієнтуватись потрібно на такі малюнки
https://wiki.tizen.org/w/images/5/50/Graphicsarchitecture.png
а якщо детально розмалювати то тут фіг знає який формат має бути бумаги

На малюнку є деякі незначні помилки.. бо якщо не розмалювати схему повністю на папір з динамічно визначуваними розмірами помилки неминучі, крім того як показують практичні досліди папір для схеми функціонування ОС linux має мати не 2 а 4 виміри, інакше при 3 отримаєте будь-який unix (freebsd, macos, solaris і т.д.), а при 2 - ms-dos, а при одному Windows. Саме відсутність 100% доведення що окрім 4 вимірів є ще 7 стримує створення ще свіжішої ОС за Linux яка так само як він поєднає найкращі досягнення попередніх. Також відсутність чотирьох вимірного паперу пояснює чому незважаючи на поєднання найкращих досягнень всіх ОС Linux не може монополізувати ринок. Так як відсутність носія на якому можна від образити функціональну структуру всієї ОС неможливо надати розробникам без помилково опис як має все виглядати в результаті їхньої роботи. Ці неточності породжують помилки та недоведені до кінця задуми, що складає враження про незавершеність та неготовність ОС. Також це породжує міф, що linux створили інопланетяни.. та те ніби останні хочуть впровадити linux всюди і тим самим позбавити тупеньких землян можливості користуватися засобами обчислень, що не дасть останнім розробити засоби протидії інопланетянам коли буде викрито їх задум. Тож не треба хвилюватися та намагатися розібратися у принципах функціонування ОС Linux, просто користуйтеся.

Подякували: Kizyak1

12

Re: Як програми взаємодіють з операційною системою?

reverse2500 написав:

Так мені не зрозуміло, як ця система взаємодіє з ядром.

є простір корситувача і ядра і між собою викликами працюють
орієнтуватись потрібно на такі малюнки
https://wiki.tizen.org/w/images/5/50/Graphicsarchitecture.png
а якщо детально розмалювати то тут фіг знає який формат має бути бумаги

якась дивна схема,що "GPU Driver" не є модулем, тобто частиною ядра??

Подякували: Kizyak, HetmanNet2

13

Re: Як програми взаємодіють з операційною системою?

тобто частиною ядра??

от коли Торвальд чи хтось подібне напише і в несе в ядро, то тоді буде, а так треба дивитись вже на більш детальну картинку з стрілками і взаємодії мііж цими компонентами

Подякували: Kizyak1

14 Востаннє редагувалося Kizyak (19.10.2015 15:01:16)

Re: Як програми взаємодіють з операційною системою?

Там якісь книжки Таненбаума є про це.
Так ось. Програма на Сі, що просто пише "хело" займає 8 кб, а така ж, тільки на паскалі - 156 кб. Чому так?

15 Востаннє редагувалося reverse2500 (19.10.2015 16:17:28)

Re: Як програми взаємодіють з операційною системою?

Програма на Сі, що просто пише "хело" займає 8 кб, а така ж, тільки на паскалі - 156 кб. Чому так?

де код ? Яка версія паскаля і яка версія С ?
янапишу ше більше, то що скомпільований код 8 кб, це ще не означає що в ОС він буде займати 8 кб, він може займати і більше з приєднанними бібліотеками і так дальше.

Подякували: koala, Kizyak2

16 Востаннє редагувалося cheappi386 (19.10.2015 17:22:10)

Re: Як програми взаємодіють з операційною системою?

reverse2500 написав:

от коли Торвальд чи хтось подібне напише і в несе в ядро, то тоді буде, а так треба дивитись вже на більш детальну картинку з стрілками і взаємодії мііж цими компонентами

тому від тої схеми ніякого толку, бо вона без стрілок

Kizyak написав:

Там якісь книжки Таненбаума є про це.
Так ось. Програма на Сі, що просто пише "хело" займає 8 кб, а така ж, тільки на паскалі - 156 кб. Чому так?

ELF, PE чи щось інше?

Подякували: Kizyak, HetmanNet2

17 Востаннє редагувалося Kizyak (19.10.2015 18:18:55)

Re: Як програми взаємодіють з операційною системою?

reverse2500 написав:

Програма на Сі, що просто пише "хело" займає 8 кб, а така ж, тільки на паскалі - 156 кб. Чому так?

де код ? Яка версія паскаля і яка версія С ?
янапишу ше більше, то що скомпільований код 8 кб, це ще не означає що в ОС він буде займати 8 кб, він може займати і більше з приєднанними бібліотеками і так дальше.

Який код? В першому випадку функція printf(), а в паскалі - write() чи writeln().
Pascal - free, C - 89.

18

Re: Як програми взаємодіють з операційною системою?

Kizyak написав:

Pascal - free, C - 89.

Ви різницю між стандартом і компілятором розумієте?

Подякували: Kizyak, leofun012

19 Востаннє редагувалося Kizyak (19.10.2015 19:17:41)

Re: Як програми взаємодіють з операційною системою?

koala написав:
Kizyak написав:

Pascal - free, C - 89.

Ви різницю між стандартом і компілятором розумієте?

Компілятор GNU.
Може ще дезасемблювати?
Програма на Сі звертається до якоїсь ситемної бліотеки, так здається.
І що саме цікаве, компілятор вписує інформацію про операційну систему та самого себе.

20

Re: Як програми взаємодіють з операційною системою?

давайте виконувані файли, а ми вже подізассемблуємо

Подякували: Kizyak1