Подробнее
Советы от гитары 1) Никогда не расстраивайся 2) Не позволяй всем подряд играть на струнах 3) Иши своего музыканта Советы от кирпича 1) Будь твёрдым 2) Знай своё место 3) (охраняй тепло 4) Не подводи товарищей Советы от батарейки 1)Ты полон знергии! 2) Не трать знергию впустую 3) В тебе есть не только плюсы, но и минусы. 4) Ты не вечен. Советы от шаурмы 1)Пишь твой создатель знает, что у тебя внутри. 2) Ты очень полезен для общества 3) Никогда не открывайся перед людьми Советы от синего жрана ОНервные клетки не восстанавливаются 2) Учи английский язык 3) Настало время завести друга-программиста • ШОМ НИ« км« И ИМ1И*. МММ 1>ЙНВ> *4*1 ттгг «я***«. г** «Г чт*п г«« *г »/»•»
советы,вещи,мудрость
- У меня мышка перевернулась! Что с ней?! Посмотри, тыжпрограммист!
- Помоги взломать вконтакт моего парня, тыжпрограммист!
- %%stupid_question%%? Тыжпрограммист.
Когда прочитал, достал свою мышь из клетки и перевернул ее на спину...
Грузимся в DOS или Win PE
cd c:
rename c:\windows\system32\config\system system.old
copy c:\windows\repair\system c:\windows\system32\config\
Грузимся в винду и переустанавливаем все дравйвера с DRPSU
(ну и к посту выше: нервные клетки возобновляются очень медленно и то до определенного возраста)
так что если у тебя будет друг программист, а ты его попросишь разобраться с синим экраном, то высока вероятность что он тебя пошлет.
итого по словам синего экрана в посте: учить англ. нужно, но синий экран к этому отношение не имеет, друг программист, он не этим занимается, так что если он и будет в этом разбираться, то что мешает любому другому человеку в этом разбираться, та и в наше то время, синим экраном уже давно не удивишь, потому нервные клетки от него не страдают.
и я всего лишь сказал, что в обязанности программиста не входит поддержка работоспособности ПК, само собой, программист должен уметь в чем то лишний раз разобраться, а в посте написано, что нужен друг программист чтобы решить проблему с синим экраном, так вот что мешает любому другому человеку разобраться в этом?
и не путай слова "разбираться" и "разобраться", "разбираться" означает, что он должен это знать, а "разобраться" - выучить, потому повторюсь, программист не обязан разбираться в ОСях и всевозможных ПО. так что вместо того чтобы иметь друга программиста, лучше самому не быть имбицилом и разобраться.
"Программист должен во всем разобраться! Он же инженер.".
Ты не застал то время, когда инженер и программист были разные люди. "Оператор ЭВМ". У меня в дипломе так написано. Готовили их ПТУ. Человек знал Basic, Java, Pascal, Fortran. Хорошо понимал логику и имел алгоритмическую базу.
Постановкой задачи занимались люди с инженерным уклоном. А программисты были такие чуваки, которым приносили на бумажке уже готов сформулированную(поставленную) задачу. Осталось только код нашкрябать. Это именно "Программист" во всем своем понимании.
"Понедельник начинается в субботу" Стругацких - там как раз был нужен был программист. Там ничего не говорилось про его супер ум, логику и находчивость с изобретательностью.
Ученые думают, программисты пишут.
Во многих универах физики сами писали код для обработки больших обьемов данных. Всякие хитрые алгоритмы вычислений и тп.
Писалось все это на фортранах и прочих языках. Каждый язык создавался под свою конкретную задачу. Лисп использовалься для исcледования искуственного интелекта. Для Джон Маккарти это будничный день из череды рутины. Просто человек взял и создал язык для своих иследований.
Было это в 60-е годы.
Шанс встретить ученого физкика или другого аккадемика со знаниями языков программирования и тонкостей сего дела очень велика.
Для них это просто еще один день в их кропотливой работе, для вас это смысл жизни.
У моих коллег стаж работы больше 5 лет. До сих пор не знают всех ошибок, которые возвращает COM системы винды. Так называемый HRESULT.
А вы тут начинаете фантазировать. Ну явно я разговариваю со студентами.
BSOD даже самые умудренные сотрудники Microsoft не смогут расшифровать. Ошибка может вылетать по любому поводу. Debug утилиты - наше все.
Даже по коду ошибки со знанием английского, будучи 10-летним С++ программистом с теоритической базой и имея навыки системного прогораммирования ничего вы не поймете.
Так как это обычно ядро ругается, то нужно иметь ввиду, ядро работает с железом напрямую. В железе есть прерывания. Есть там тьма тьмущая. Это раз. Во вторых есть еще внутренние баги самого ядра. Вот и разбирайся в какой момент слетела винда. Может в момент прерывания определенного устройства, или может в ячейку памяти не то записано. В ядре монолитных ОС так много кода и столько процессов происходит, что энтропия высокая и есть все шансы просто напоротся на аппаратную ошибку.
Еще нужно учесть, что ОС не работает с самим устройством, а работает с контролерами. А их может быть много. Только на одной материнской плате их тьма. А чего стоит писать драйвер для USB. Ох там структура.
Да вообще, контроллер FDC(floppy drive) Чего только стоит. Вся тетрадь может быть исписана. Куча таблиц, режимов, примеров на разные случае.
Еще BSOD с легкостью можно получить, просто закоротив все контакты в USB. Два контакта даты, и два контакта питания от шариковой ручки делают чудеса. И потом пускай "супер-программисты" и кулхацкеры попробуют выяснить в слепую почему у меня ошибка по магическому числу.
Драйверы многих ОС, работают самостоятельно с небольшой поддержкой ядра. Например, в Linux, драйвер по сути модуль, который линкуется ядром и работает как часть ядра, имея небольшой набор функционала.
Для студентов, это если вы возьмете exe файл и разделите логически его, бинарно, на две части, а потом соедините вновь с небольшой коррекции адресов функций. Вот и весь принцип.
К чему это я говорю. Если драйвер имеющий прямой доступ ко всей памяти, к ядру и его внутренностям в режиме реального времени просто запишет ну туда лишний бит - системе хана!!! И запишет куда нибудь в менеджер памяти и ОС покажет вам что у вас не в порядке менеджер памяти. Что даст вам синий экран? Ничего. Логи и журнал дрйверы не ведут на каждый бит. Насколько я знаю драйверы винды даже не имеют безопасного механизма выделения памяти.
Вот для этого, начиная с версии 6.0 видео подсистема перемещена ближе к уровню пользовательского режима.
Ребята, снимаем розовые очки. Программист - рутинная и шаблонная работа. Все уже написано. Все алгоритмы посчитаны и математически обоснованы. Это даже хуже конкструктора Lego, там свободы больше. В работе программиста все зарание уже продумано и изобретено. 90% всех людей занимаются складыванием сверх-больших блоков из менее больших блоков.
Яркий пример, складывание купленной мебели дома. Можно переставить местами полки. Можно закручивать шурупы в другом порядке, можно отказаться от дополнительной посдтавке. Можно ее перевернуть на 180 градусов. Можно поменть ящички в столе. Нижний, например, поставить вместо верхнего. Поменять их местами.
С одной стороны вариантов достаточно, но с другой их можно посчитать на пальцах.
Несколько парадигм, 3-4 варианта структуры кода. Пару подходов. И целый арсенал алгоритмов с уже давно посчитанным количесвовм операций, давно отпетыми недостатками и достоинствами.
Весь выбор между - "медленный, но меньше памяти"(пузерковая сортировка или что-то вроде того), "быстрый, но громоздкой"(линейнай сортировка с выделениям памяти под весь диапазон значений) и "компромисс"(quicksort с какими нибудь бинарными деревьми).
>>Было это в 60-е годы.
>>Шанс встретить ученого физкика или другого аккадемика со >>знаниями языков программирования и тонкостей сего дела >>очень велика.
да, верно, только языки тогда были полегче намного чем сейчас, например небыло ООП, лямбда выражений, делегатов, и прочей ололо, они пользовались обычным процедурным языком, для вычисления, что бы посчитать формулу и все такое, они не писали графический интерфейс и всего такого что сейчас понавернуто...
>>BSOD даже самые умудренные сотрудники Microsoft не смогут >>расшифровать.
вы лично с ними общались? ) В подавляющем большинстве все же хватает кода ошибки которая описана в БСОД
>>ядро работает с железом напрямую.
а не через драйвер?
>>Драйверы многих ОС, работают самостоятельно с небольшой >>поддержкой ядра. Например, в Linux, драйвер по сути >>модуль, который линкуется ядром и работает как часть ядра, >>имея небольшой набор функционала.
что значит небольшая поддержка ядра )))) все что запущено в ОС работает под полным ее контролем, задача ОС и состоит в том что б контролировать все ПО которое запущено под ее управлением, драйверу и не надо иметь большой функционал, он просто интрефейс для ОС через который ОС общается с железом, т.е. ОС говорит драйверу скажи этой железке сделать вот это, а уже драйвер говорит железке то что ему сказала сделать ОС
Не потому ли, что в монолитных ОС, есть минимальный набор стандартных. Твоя логика рушится. Получается ядро само по себе имеет дефолтный набор всего и вся.
А еще ты настолько показываешь некомпентентность в вопросе, что даже палишься на слове "монолитный".
Монолитные ОС потому и называют, что и ядро, и драйвер - это одно целое, это один процесс, это одна область памяти, это один сплошной код. Linux создает иллюзию модульной системы. И ты палишься на этом. И даже не задумываешься почему ELF формат, который используется как промежуточный объектный файл в компиляции, используется и ядром. Не потому ли, что ядро Линукс и его концепции, это по сути .obj файлы лежащие отдельно, и которые линкуются в exe на ходу? А?
Для винды, для тех кто педалить на Visual Studio сей момент очень далек, потому что формат DLL, формат .obj файл различны. Если ELF ядра и испольняемого модуля - может ничем не отличатся, то для винды разница ощутима. Потом что винда имеет гибридное ядро, но близкое к идеям монолитных систем, таких Linux.
Для школьников, с точки зрения Windows программиста, который привык к идеями Windows, Linux и драйверы - это одно целое. Некоторые модули кстати в новых версиях уже включены по умолчанию. ДА, да, да.
вот если б ты говорил о QNX, Minix, Gnu/Hurd, Xameleon и пр. Вот тогда, да. Но ты бы снова был бы не прав и в этом случае. BSOD в микроядерных ОС редкое явление, да и он не нужен. Просто потому что все дрова, сервисы и менеджеры, работают как обычные пользовательские программы с некоторыми привилегиями. Краш одного из них сопровождается ошибкой через MessageBox "У вас крашнулся драйвер, необходимо перезапустить" и все. И накакого синего экрана, ядру пофиг, оно лишь дает виртуальные регистры и плодит процессы. Все! Минимум с чем работает ядро - это процессор и прерывания таймера, а работа с памятью прозрачна. Но и тут ты будешь не прав, если процессор отказал в работе или таймер, ты вообще ничего не сможешь сделать. Вообще!!! Так как Если при работающем компе стукнуть молотком по кристалу проца, ни BIOS, ни ядро, ни другие устройства работать не будут и точка.
Кроме некоторых механизмов CMOS и прочих внешних девайсов, типа модемов, и принтеров.
Тролиннг твой обречен на провал, ты разговариваешь с человеком, который занимался этой темой и висит на всяких osdev.ru и ему подобных.
прочитайте как происходит загрузка ОС
>>как ядро может вывести на экран ошибку дров, например, >>для ATI, если сами дрова для Radeon крашнулись? Как >>выводит винда всю эту инфу на экран?
ну дрова могут при крахе вернуть код ошибки, как вариант ОС сама понимает что драйвер такой-то крэшнулся и сообщает об этом
>>А еще ты настолько показываешь некомпентентность в вопросе, что даже палишься на слове "монолитный".
Где я палюсь, где я сказал хоть слово про монолиность? это ваши цитаты )))))))
>>MessageBox "У вас крашнулся драйвер, необходимо >>перезапустить"
Все с вами ясно))))) вы просто преподователь или школьный учитель информатики) начитавшийся теории и немного оторванный от реальности.... какой нахрен мессаже бокс в си ? ))) вы кроме делфи что-нибудь видели?