Форум программистов, компьютерный форум, киберфорум
Наши страницы

C для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.69
aekuznecov
33 / 33 / 11
Регистрация: 25.03.2013
Сообщений: 514
Записей в блоге: 5
#1

Написание собственной ОС, Антивируса и компилятора - C (СИ)

17.10.2014, 13:01. Просмотров 2204. Ответов 44
Метки нет (Все метки)

Привет всем. решили с друзьями изучить C и написать собственную ОС(на подобии KolibriOS на асме), написать под нее свой антивирус,компилятор(в дальнейшем задумывалась разработка собственного эзотерического языка) и, возможно, браузера ну и драйверов,куда без них. Так вот. Помогите советом/направьте на путь истинный:
1. Что почитать для освоения C?(в данный момент читаем книгу Как программировать на C за авторством Дейтелов)
2. Что почитать для реализации выше описанного функционала?
3. Что почитать касательно разработки собственного эзотерического языка(может кто сталкивался/создавал сам)?

Буду благодарен за советы и наставления
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.10.2014, 13:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Написание собственной ОС, Антивируса и компилятора (C (СИ)):

Написание собственной функции - C (СИ)
Упрощенная задача из книги Дейтла. За стоянку до 3-х часов парковочный гараж запрашивает плату минимум $2.00. В случае стоянки более трех...

На каком языке объясняется написание компилятора в книге? - C (СИ)
Скачал книгу Дракона, Читал пока не пришел к вопросу, НА КАКОМ ЯЗЫКЕ ОБЪЯСНЯЕТСЯ НАПИСАНИЕ КОМПИЛЯТОРА В КНИГЕ????????!!!!!!!!!

Вывод массива из собственной функции - C (СИ)
Ребят, такая проблема, допустим, у меня совя функция, которая записывает в массив (10 элементов) рандомные числа. Как мне все эти элементы...

Написание собственной ОС - Pascal
Доброго времени суток! Задался вопросом написать свою ОС на каком-либо языке высокого уровня. Думаю воспользоваться для этих целей языком...

Написание собственной процедуры - Lazarus
Конечно чуствуется очень глупый вопрос задам, но всеже нужно... Дан оператор if. Нужно сделать так чтобы при его исполнении...

Написание собственной поисковой системы - PHP
Вот решили с другом написать поисковую систему типо рамблера. Но для начала хотим написать хотя бы простую с поисковой формой и добавлением...

44
_Ivana
3206 / 1834 / 153
Регистрация: 01.03.2013
Сообщений: 5,054
Записей в блоге: 4
20.10.2014, 13:49 #31
Одному парню в Древней Греции тоже все хором говорили, что он не полетит, что видали и более скилловых и те не летали А он не слушал и правильно делал.

ЗЫ и Evg, зря вы так отозвались о нашей "недоООС" - она вполне решает стоящие перед ней задачи и не претендует на "порвать весь мир". Но претендует на "легкую, быструю и занимающую мало памяти", что нам было важнее. И была приведена только в качестве контрпримера категоричному утверждению Убежденный, чтобы показать, что под термином ООС можно понимать широкий спектр программ.

Добавлено через 4 минуты
ЗЗЫ перепутал с прямым углом - не ООС (отрицательная обратная связь, оговорка по Фрейду ) а ОС - "палка, на которой вертится Земля"
0
aekuznecov
33 / 33 / 11
Регистрация: 25.03.2013
Сообщений: 514
Записей в блоге: 5
20.10.2014, 13:50  [ТС] #32
Я вполне адекватный Просто решили написать свою ОС в качестве именно учебной задачи, как заметил castorsky. И да, у меня иногда бывают проблемы с поиском информации в интернете, поэтому я и решил задать вопрос на форуме. Пусть он и кажется нелепым/глупым/стебом, но я попросил помощи, т.к. она действительно нужна
0
Evg
Эксперт CАвтор FAQ
18702 / 6670 / 471
Регистрация: 30.03.2009
Сообщений: 18,676
Записей в блоге: 29
20.10.2014, 14:02 #33
Цитата Сообщение от _Ivana Посмотреть сообщение
И была приведена только в качестве контрпримера категоричному утверждению Убежденный, чтобы показать, что под термином ООС можно понимать широкий спектр программ
Я, честно говоря, так и не понял, в чём выражается контрпримерность твоего примера с написанием собственной специализированной ОС. Убеждённый ничего не говорил про невозможность самому написать ОС (недоос, прототип ос, облегчённую ос, неважно как назвать). Он всего лишь выразил здоровый скепсис в адрес конкретно ТС'а (ТС'ов), в чём я с ним полностью солидарен

Добавлено через 5 минут
Цитата Сообщение от aekuznecov Посмотреть сообщение
но я попросил помощи, т.к. она действительно нужна
Вопрос ведь в том, что считать помощью. Когда вопрос ставится в виде "прочитал описание такого-то алгоритма и не могу понять вот такой-то момент" это одно. А когда вопрос ставится в виде "я сам ничего не умею, скажите мне, где прочитать такой-то алгоритм, а ещё лучше, объясните мне его принцип работы" - это совсем другое

Цитата Сообщение от aekuznecov Посмотреть сообщение
Я вполне адекватный
Лично я в этом не сомневаюсь (без подколок и прочего). Если человек в чём-то заблуждается, это ещё не есть неадекватность. Некоторые считают вас неадекватным из-за того, что в понятных терминах постановка ваше задачи звучит примерно так:

1. Научите работать топором и молотком.
2. Дайте мне чертёж эйфелевой башни, и я построю её, пользуясь своим умением работать топором и молотком
1
aekuznecov
33 / 33 / 11
Регистрация: 25.03.2013
Сообщений: 514
Записей в блоге: 5
20.10.2014, 14:07  [ТС] #34
Evg, это я понимаю)) Да и скептицизм большинства мне тоже понятен)) Просто хотелось услышать совета в плане того, какую литературу стоит прочесть, чтобы изучить тот или иной аспект предмета данной темы)
0
Evg
Эксперт CАвтор FAQ
18702 / 6670 / 471
Регистрация: 30.03.2009
Сообщений: 18,676
Записей в блоге: 29
20.10.2014, 14:08 #35
Ни из одной книги ты не сможешь внятно прочувствовать всю глубину задницы, в которую вы хотите залезть. А уж когда нет большого практического опыта - и подавно
1
aekuznecov
33 / 33 / 11
Регистрация: 25.03.2013
Сообщений: 514
Записей в блоге: 5
20.10.2014, 14:11  [ТС] #36
Это понятно, что без практики и с одной теорией там будет туговато, но мы хотели делать это не прям здесь и сейчас, а в течение продолжительного времени, нарабатывая по ходу получения практического опыта, подкрепляющего теоретические знания
0
Evg
Эксперт CАвтор FAQ
18702 / 6670 / 471
Регистрация: 30.03.2009
Сообщений: 18,676
Записей в блоге: 29
20.10.2014, 14:16 #37
Цитата Сообщение от aekuznecov Посмотреть сообщение
но мы хотели делать это не прям здесь и сейчас, а в течение продолжительного времени
Точно так же можно рассчитывать в течение времени построить эйфелеву башню. Но пока ты в реальности не сделаешь сотню матрёшек, десятки табуреток и скворечников, желательно ещё одноэтажный дом, то браться за эйфелеву башню нет даже смысла. Потому что с уровня нулевого скилла проблема выглядит так, как нужно только иметь уровень мастерства по работе с топором и молотком. И лишь после многолетней практики начнёшь понимать, что на самом деле нужно понимать физику, математику, сопрамат и чёрт-те сколько других знаний, потому что топор и молоток - это всего лишь инструменты, а эйфелева башня держится на совсем других науках
0
aekuznecov
33 / 33 / 11
Регистрация: 25.03.2013
Сообщений: 514
Записей в блоге: 5
20.10.2014, 14:24  [ТС] #38
Evg, я Вас прекрасно понимаю) можете что-нибудь посоветовать про
Цитата Сообщение от Evg Посмотреть сообщение
сотню матрёшек, десятки табуреток и скворечников
?

Добавлено через 2 минуты
Evg, хотя бы не литературу, а то ПО, которое в дальнейшем может понадобиться для ОС?
0
Evg
Эксперт CАвтор FAQ
18702 / 6670 / 471
Регистрация: 30.03.2009
Сообщений: 18,676
Записей в блоге: 29
20.10.2014, 14:29 #39
Мой совет - на несколько лет забудь про написание ОС, компилятора и прочего системного софта. Просто научись для начала программировать, научись работать с файлами, с потоками, с устройствами. Научись понимать, что относится к языку программирования, что относится к библиотечной поддержке, что относится к поддержке со стороны операционной системы. Пойми на уровне подсознания бредовость вопросов типа "как на языке Си узнать, сколько процессоров установлено в системе"
2
aekuznecov
33 / 33 / 11
Регистрация: 25.03.2013
Сообщений: 514
Записей в блоге: 5
20.10.2014, 14:35  [ТС] #40
Evg, хорошо)) спасибо за совет))
0
tolimadokara
743 / 405 / 61
Регистрация: 24.10.2012
Сообщений: 3,001
20.10.2014, 14:57 #41
Афонин С.М.
PHP для начинающих.
Обучение и решение задач.
стр. 247
... Напоследок хотелось бы отметить тот факт, что не смотря на тривиальность задачи, которую решает гостевая книга, обьем кода составил 9Кб и 370 строк. Для того чтобы набрать его, потребуется около часа. Придумывание алгоритма работы и воплощение его в жизнь на PHP может занять день. Чтобы код получился красивым и безопасным, на его отладку потребуется потратить целую неделю. К любой, даже самой простой, на первый взгляд, задаче нужно подходить очень серьезно, ведь буквально от каждой строки зависит надежность, безопасность скрипта и всего сервера.
Это ^ сказал Афонин С.М. после полного изложения своего скрипта сайта гостевой книги.

Операционная система это много кода, много работы. А драйвера будете сами писать? Можно готовые драйверы скачать.

Посмотрите <Герберт Шилдт - Полный спрвочник по С>.
Посмотрите <Танненбаум - Архитектура ПК>.
Книги по ассемблеру надо поискать Вам.

А жить за что будете пока будете разрабатывать ОС? Надо ведь еще на работу ходить и деньги зарабатывать.

Существуют вроде ОС которые помещаются на дискету... но ведь они там целиком на Ассемблере написаны. 1.44 Мб машинного кода это ОЧЕНЬ МНОГО.

Добавлено через 12 минут

Не по теме:

Цитата Сообщение от Evg
как на языке Си узнать, сколько процессоров установлено в системе
А что разве не можно?

Можно открыть системный блок и сосчитать сколько там квадратных черных камней - это и будет количество процессоров. Контроллер это тоже процессор.

0
Evg
20.10.2014, 16:30
  #42

Не по теме:

Цитата Сообщение от tolimadokara Посмотреть сообщение
А что разве не можно?
Такие вопросами решаются далеко за пределами языка Си

0
easybudda
20.10.2014, 17:54
  #43

Не по теме:

Цитата Сообщение от tolimadokara Посмотреть сообщение
А что разве не можно?
C
1
2
3
4
#include <stdlib.h>
/*...*/
system("cat /proc/cpuinfo | grep -m1 cores");
/*...*/

0
Evg
Эксперт CАвтор FAQ
18702 / 6670 / 471
Регистрация: 30.03.2009
Сообщений: 18,676
Записей в блоге: 29
20.10.2014, 18:29 #44
easybudda, только засада заключается в том, что сей код будет работать только на линухе. Ровно как и любой другой способ. Потому что выяснение количества процессоров - этим занимается API операционной системы, а не язык Си
0
easybudda
Модератор
Эксперт CЭксперт С++
9917 / 5840 / 976
Регистрация: 25.07.2009
Сообщений: 11,014
20.10.2014, 21:04 #45
Цитата Сообщение от Evg Посмотреть сообщение
easybudda, только засада заключается в том, что сей код будет работать только на линухе. Ровно как и любой другой способ. Потому что выяснение количества процессоров - этим занимается API операционной системы, а не язык Си
Ну я вообще и пытался показать, что это не та задача, которая средствами языка С решается. Библиотечной функции cpu_cores_number() я что-то не припомню. Ну и само собой, решение для виндовс на линухе не отработает...
0
20.10.2014, 21:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.10.2014, 21:04
Привет! Вот еще темы с ответами:

Написание компилятора на C++ - C++
Хочу написать компилятор на С++ под свой язык. Ни в одной книге не описывается, как создать exeшник без TASM,MASM,WASM, только анализаторы,...

Написание простого компилятора - C++
Хотел бы попробовать написать простенький компилятор, но не знаю с чего начать, помогите ссылкой на какой нибудь урок или советом.

Написание компилятора на паскале - Pascal
Помогите написать компилятор на паскале. Для проверки одной строчки паскаля. на примере: var a,b,c,d: integer;

Написание простого компилятора - Java EE
Пишу простой компилятор использующего грамматику Pascal Реализую проверки строк кода на ошибки, код считываю из файла и выполняю...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
45
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru