1 Востаннє редагувалося 2andnot (29.06.2017 17:56:03)

Тема: можливості Сі

в мене є такий ряд питань,не запитуйте нащо і чому, це не виліковне :D
1) якщо допустити що программа на Сі запущена в режимі реального часу, то чи можу я викликати преривання біосу просто записав у відповідні адресса потрібну інформацію? наскільки правильно я зрозумів всі ці преривання знаходяться у певному відділу пам’яті.
2) чи є реалізація Сі яка дозволяє звертатись до регістрів процессору,напряму ссилатись на адрессу оперативної пам’яті та створювати com программи для різних режимів 16, 32, 64бита? можливо безглузде запитання, але якщо взяти микропроцессори то там можна

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

2 Востаннє редагувалося 0x9111A (30.06.2017 11:32:08)

Re: можливості Сі

http://wiki.osdev.org/Bare_Bones#Writing_a_kernel_in_C

https://github.com/cfenollosa/os-tutorial

Maybe a = Just a | Nothing
Подякували: 0xDADA11C7, leofun012

3

Re: можливості Сі

2andnot написав:

1) якщо допустити що программа на Сі запущена в режимі реального часу, то чи можу я викликати преривання біосу просто записав у відповідні адресса потрібну інформацію? наскільки правильно я зрозумів всі ці преривання знаходяться у певному відділу пам’яті.

Ліл, в режимі реального часу. Реальний режим роботи процесора не дорівнює операційній системі реального часу, у вас в голові мішанка. Преривання викликаються системою або застосунком за допомогою машинної команди int. Напиклад, 0x21 переривання відповідало за хвункції MS DOS, а 0х10 переривання відповідає за ВідеоБіос.

2andnot написав:

2) чи є реалізація Сі яка дозволяє звертатись до регістрів процессору,напряму ссилатись на адрессу оперативної пам’яті та створювати com программи для різних режимів 16, 32, 64бита? можливо безглузде запитання, але якщо взяти микропроцессори то там можна

Зазвичай в Сі є вбудований асемблер, тому прости вчіть цю мову й архітектуру комп'ютера.

всі ці запитання в мене виникли коли мені доказували що зараз на Сі можно написати повністью ОС, за виключеням завантажувача.

На голе залізо не напишеш "чисто" мовою с. Є така річ як HAL (Hardware Access Layer), це частина операційки, яка пишеться здебільшого мовою асемблера та ,відповідно до назви, слугує прошарком для роботи з залізом.

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

Не хочете вчити асмеблер - засуньте в сраку мрію про свій професійний рост в галузі системного програмування, та й роботи з залізяками.

Говорила баба діду: «Я поїду к Білодіду, Ізучу двомовну мову І вернусь обратно знову». А дід бабі: «Не *изди, К Білодіду нєт їзди, — Туди не ходять поїзди»
Подякували: LoganRoss, leofun01, koala3

4

Re: можливості Сі

До речі, оцей код виконається правильно на 98% комп'ютерів, але це скоріше брудний хак який нікому не потрібний, а не промисловий підхід до справи. Тобто кодер дума, що йому вже не потрібно встановлювати відеорежим, бо біос вже про все подбав, що є в корні невірно. Через відмову від асма "оце"(ядром то складно назвати, навіть зачатками) навіть рядок з клавіатури зчитати не може!

0x9111A
Я випадково відредагував ваше повідомлення, будь ласка, відновіть друге посилання.

Говорила баба діду: «Я поїду к Білодіду, Ізучу двомовну мову І вернусь обратно знову». А дід бабі: «Не *изди, К Білодіду нєт їзди, — Туди не ходять поїзди»

5

Re: можливості Сі

0xDADA11C7 написав:

До речі, оцей код виконається правильно на 98% комп'ютерів, але це скоріше брудний хак який нікому не потрібний, а не промисловий підхід до справи. Тобто кодер дума, що йому вже не потрібно встановлювати відеорежим, бо біос вже про все подбав, що є в корні невірно. Через відмову від асма "оце"(ядром то складно назвати, навіть зачатками) навіть рядок з клавіатури зчитати не може!

0x9111A
Я випадково відредагував ваше повідомлення, будь ласка, відновіть друге посилання.

Бачив дописаний варiант який може кнопки читати.
Ну там був виклик 1 команди через мiтку asm (власне так воно i читати може).