|
требуется программист STM32 |
|
|
|
Feb 22 2018, 22:21
|
Знающий
   
Группа: Участник
Сообщений: 916
Регистрация: 3-10-08
Из: Москва
Пользователь №: 40 664

|
Цитата Все, что перестало подчиняться требованиям UNIX-way, можно смело называть мастдайкой и топить в унитазе. В жизни всё произошло наоборот.
|
|
|
|
|
Feb 23 2018, 03:09
|
Частый гость
 
Группа: Участник
Сообщений: 109
Регистрация: 12-10-16
Пользователь №: 93 727

|
Цитата(Эдди @ Feb 22 2018, 20:02)  Ну хватит уже чушь нести!!! Почитайте хотя бы, что такое линукс! И да, дебилиан уже не линукс, а тем более — федора! Все, что перестало подчиняться требованиям UNIX-way, можно смело называть мастдайкой и топить в унитазе. Эдак вы, батенька, такое откровенное дерьмище, как ондроед, линуксом обзовете! https://ru.wikipedia.org/wiki/LinuxLinux — семейство Unix-подобных операционных систем на базе ядра Linux, включающих тот или иной набор утилит и программ проекта GNU, и, возможно, другие компоненты. Т.е. следуя официальному определению - именно так! Ведроид есть Линкус. Кстати, об этом на одной из конференций сам Товальдс сказал. С ним спорить будете?
|
|
|
|
|
Feb 23 2018, 07:25
|
Частый гость
 
Группа: Участник
Сообщений: 109
Регистрация: 12-10-16
Пользователь №: 93 727

|
Цитата(jcxz @ Feb 23 2018, 06:29)  А теперь почитайте что входит в это самое ядро. Да собственно ядро оно и есть ядро... По поводу спора лицензий, так у "верхних" ребят холивар покруче тутошнего. Например: ведроид распространяется под лицензией апачи... и... Совместимость с GPL Фонд Free Software Foundation объявил все версии лицензии Apache несовместимыми со второй версией GPL. Apache Software Foundation, начиная с 2004 года, настаивает на своём праве решать вопрос совместимости Apache лицензии с GPL. Согласно Free Software Foundation, GPLv3 совместима с Apache License v2.0. Как следствие, разработчики всегда имеют возможность свои программы под Apache License v2.0 перевести под GPL v3.0, чтобы быть уверенными в том, что производные их разработок (форки) останутся свободными. Однако смена лицензии с GPL на Apache невозможна, поэтому совместимость односторонняя. И хотел бы уточнить, что вы имеете ввиду под словом ядро? В моем понимании ядро это Linux kernel.
Сообщение отредактировал leocat - Feb 23 2018, 07:27
|
|
|
|
|
Feb 23 2018, 18:17
|
Знающий
   
Группа: Участник
Сообщений: 916
Регистрация: 3-10-08
Из: Москва
Пользователь №: 40 664

|
Цитата И что это будет за линукс такой без MMU? Как он будет распределять память среди процессов и потоков? С помощью page table, например. Кроме того, ядро и так этого не делает. Это делают модули ядра.
Сообщение отредактировал one_eight_seven - Feb 23 2018, 18:18
|
|
|
|
|
Feb 23 2018, 21:38
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(one_eight_seven @ Feb 23 2018, 20:17)  Кроме того, ядро и так этого не делает. Это делают модули ядра. Дело не в выделении памяти. Я не знаю как организовано адресное пространство в linux-приложениях, но думаю, что подобно винде: каждое запускаемое приложение имеет своё виртуальное адресное пространство, в которое, кроме того, отображаются какие-то системные пространства адресов (DLL и т.п.). Уже не говоря про защиту адресных пространств. Всё это - благодаря MMU. И как в таком случае запустить приложение, скомпилённое для работы в виртуальном адресном пространстве, без MMU??? Есть одно приложение, скомпилённое для работы по адресу скажем 0x40000, и есть другое приложение, тоже скомпилённое для работы по адресу 0x40000. Как обеспечить их одновременную работу без MMU? А если приложение использует большой объём памяти, за счёт подкачки с диска? Опять-же - как без MMU?
|
|
|
|
|
Feb 24 2018, 09:07
|
Знающий
   
Группа: Участник
Сообщений: 750
Регистрация: 1-11-11
Пользователь №: 68 088

|
Цитата(jcxz @ Feb 24 2018, 00:38)  Есть одно приложение, скомпилённое для работы по адресу скажем 0x40000, и есть другое приложение, тоже скомпилённое для работы по адресу 0x40000. Как обеспечить их одновременную работу без MMU? Размещение программных сегментов в конкретных адресах (виртуальных или физических) происходит на этапе загрузки приложения, посмотрите формат ELF-файлов и ELF Loader. Поэтому ничто не мешает разместить 2 приложения в едином адресном пространстве. Нужен соответствующий ELF Loader, и хватило бы памяти в принципе по объему. Цитата(jcxz @ Feb 24 2018, 00:38)  А если приложение использует большой объём памяти, за счёт подкачки с диска? Опять-же - как без MMU? Даже на "взрослых" машинах с MMU вполне себе существует Linux без swap-файла и подкачки памяти с диска. MMU тут не при деле, кто будет генерировать исключение при нехватке памяти - MMU или менеджер памяти, не суть важно
--------------------
"... часами я мог наблюдать, как люди работают." (М. Горький)
|
|
|
|
|
Mar 5 2018, 07:48
|
Участник

Группа: Участник
Сообщений: 63
Регистрация: 7-01-15
Пользователь №: 84 447

|
Благодарю всех откликнувшихся, исполнитель найден!
|
|
|
|
|
Mar 5 2018, 10:37
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(gerber @ Feb 24 2018, 11:07)  Поэтому ничто не мешает разместить 2 приложения в едином адресном пространстве. Нужен соответствующий ELF Loader, и хватило бы памяти в принципе по объему. Ну если можно генерить исполняемые файлы и с таблицей перемещения - то пойдёт. А если я хочу вычислить адрес целевой переменной используя скажем - операции побитового OR или AND или сдвига над адресом? В варианте с линейным виртуальным адресным пространством, перемещаемым при помощи MMU - да никаких проблем! А вот если попробуем слинковать это в перемещаемый загрузочный образ, то я думаю получим ошибку компоновщика, так как не допускается обычно при этом никаких операций кроме сложений и вычитаний. Цитата(gerber @ Feb 24 2018, 11:07)  Даже на "взрослых" машинах с MMU вполне себе существует Linux без swap-файла и подкачки памяти с диска. MMU тут не при деле, кто будет генерировать исключение при нехватке памяти - MMU или менеджер памяти, не суть важно Менеджер памяти - это кто? Это тот, кто выделяет динамическую память из пула? malloc()/free()? А при чём тут "исключение при нехватке памяти"? Если сумме работающих в данный момент приложений нужно больше памяти, чем есть физически, то это и решается подкачкой, когда страницы памяти, к которым давно не было обращения, вытесняются из физической памяти в своп, и это место физической памяти используется для хранения других страниц виртуальной памяти. А когда приложению потребуется вытесненная память, оно просто обратиться по данным адресам, MMU сгенерит исключение и страница будет возвращена из свопа в физическую память. И делается это силами MMU. Приложение про всю эту кухню не знает, и не обращается к менеджеру памяти вообще после того как получит весь необходимый объём от malloc(). Без MMU такой механизм организовать невозможно. Соответственно те задачи, которые нормально выполняются в среде с виртуальной памятью, не могут быть выполнены никак без неё - только переписыванием алгоритма работы приложения. Опять-же - как без MMU отображать в память процесса какие-то общие ресурсы? Например библиотеки? (есть в линухе аналог DLL?) Или файлы (чтобы работать с ними просто как с областями памяти)? Далее - как полноценно защитить адресное пространство одного приложения от другого без MMU? Да никак. Если всё это вычесть из полноценного линуха на ядре с MMU, то останется он при этом линухом или это будет уже совсем другая ОС? Да нет конечно - это совсем другая уже ОС будет.
|
|
|
|
|
Mar 6 2018, 10:23
|
Знающий
   
Группа: Участник
Сообщений: 916
Регистрация: 3-10-08
Из: Москва
Пользователь №: 40 664

|
Цитата Без MMU такой механизм организовать невозможно. Возможно. По сути MMU - это просто аппаратный ускоритель. Эмуляторы MMU существуют и работают. Медленнее, конечно, но работают. P.S.: http://www.infradead.org/~mchehab/kernel_d...nommu-mmap.html
Сообщение отредактировал one_eight_seven - Mar 6 2018, 10:31
|
|
|
|
|
Mar 6 2018, 18:40
|
Группа: Участник
Сообщений: 5
Регистрация: 6-03-18
Пользователь №: 102 170

|
Цитата(Roman_msk @ Feb 20 2018, 11:55)  Добрый день, требуется программист на низы, STM32 микроконтроллер ... из перриферии: UART, ADC, COMP, DAC, I2C, Timer. ТЗ и бюджет обсуждается индивидуально, удаленка допустима! заинтересованным писать в личку или на почту: furia(dot)fly(гав-гав)gmail.com Еще актуально ?
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|