Post:#471944 Date:06.06.2015 (00:41) ... 21 августа 1991 года закончился августовский путч в СССР-
24 августа 1991 в центре Киева. Люди приветствуют провозглашение независимости
25 августа 1991 года Линус Товальдс опубликовал ядро Linux Date: 25 Aug 91 20:57:08 GMT
Просто совпадение? Можно быть, но есть еще много других совпадений.
Главное- это одинаковая методика зомбирования адептов Линукса и Нэзалежной.
Линуксоидов в мире точно столько же сколько и укропов- около 1 %.
О чем не спросишь линуксоида- ответ : хто нескаче тотмастдай
Вот чудо то какое....
Дед, поиск неизвестно чего неизвестно где.... Это очень интересная задача!
И логика методом исключений это конечно же хорошо, но правильно ли?
Можно было бы и чего нить другое придумать?
dedivan Пост: 472516 От 14.Jun.2015 (01:38)
Ну ты еще расскажи нам как работает компилятор.
Может чего пропустил?
Компиляция — трансляция программы, составленной на исходном языке высокого уровня, в эквивалентную программу на низкоуровневом языке, близком машинному коду. Понятно, что при компиляции какие то функции подхватываются из библиотеки, но они там в машинном коде уже хранятся, в чем траблы дед?
xx0 Пост: 472599 От 14.Jun.2015 (18:19)
в чем траблы дед?
Так дальше давай- вот в ядре сотня модулей на си, обращаются к одной и той же библиотечной функции. Компилятор вставляет код этой функции в каждый модуль или как?
DevilR Пост: 472606 От 14.Jun.2015 (22:47)
. Вызов функции - это "положить входные параметры в стек
Адрес функций лежит в заранее заготовленной таблице.
Так стек общий или нет? А что там еще в стеке лежит?
А как ты можешь посмотреть что там положил модуль ядра перед тобой?
Простые команды ассемблера знаешь для этого?
DevilR Пост: 472606 От 14.Jun.2015 (22:47)
В защищенном режиме подобное поведение просто вызовет исключение и процесс убьется целиком.
Это абстракция. На разных уровнях абстракции можно говорить о защищенной памяти или просто о содержании регистра в процессоре.
В одной абстракции нельзя выйти за границы памяти, потому что ты обращаешься к модулю менеджера памяти. он смотрит- что тебе отведено, и если разрешено- то что то записывает в регистр, а в другой абстракции можешь сам изменить этот регистр, процессору все равно кто меняет. Это как паровоз- ему все равно кого везти, с билетом или без билета- билеты проверяет кондуктор а не паровоз.
инлайны в основном применяются в том случае, если функция вызывается во всей программе только один раз,
тогда есть смысл копировать код фунции в текст программы, а не делать отдельный вызов.
при этом и программа работает быстрее, и размер кода не увеличивается.
DevilR Пост: 472614 От 14.Jun.2015 (23:36)
. Как эмбедчик говорю.
Это хорошо. Значит можно и поконкретнее поговорить.
Вот есть платка- это целый ком на уровне первого пенька. только пошустрее.
Камень в корпусе бга. печатка пятислойная- не для домашнего утюжного исполнения. Есть консоль загрузчика, есть житаг, задача залезть в программу.
Понятно, что тут никакие защищенные памяти не защищают.
Это просто по пути возник разговор, что не только при аппаратном доступе, и програмно можно залезать куда хочешь, используя как раз особенности линуха.
DevilR Пост: 472637 От 15.Jun.2015 (01:29)
А насчет инлайнов в линуксе - врете вы, дедушка!
Только что посмотрел в своем ядре 4.0.5 - 5460 штук.
Это хорошо- значит грамотный. Теперь смотри что они вводят и сколько раз.
Даже сайты специальные есть для поиска в ядре линуха.
Для примера-static inline struct cgroup- один раз во всем тексте.
Это и есть правило использования инлайнов.
Все остальное делается через вызовы библиотек.
DevilR Пост: 472642 От 15.Jun.2015 (01:45)
Но говорить за весь линух... вы бы дали конкретный код - я бы проверил. Хоть на одноплатках, хоть на настольном компе.
Это пока на уровне идеи. Просто она возникла не на пустом месте,
а как раз в процессе разбора особенностей ядра линукса и его компиляторов.