реклама на сайте
подробности

 
 
3 страниц V   1 2 3 >  
Closed TopicStart new topic
> требуется программист STM32
Roman_msk
сообщение Feb 20 2018, 10:55
Сообщение #1


Участник
*

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



Добрый день,
требуется программист на низы, STM32 микроконтроллер ... из перриферии: UART, ADC, COMP, DAC, I2C, Timer.
ТЗ и бюджет обсуждается индивидуально, удаленка допустима!
заинтересованным писать в личку или на почту: furia(dot)fly(гав-гав)gmail.com
Go to the top of the page
 
+Quote Post
hasl
сообщение Feb 20 2018, 10:58
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 199
Регистрация: 11-12-14
Пользователь №: 84 071



Цитата(Roman_msk @ Feb 20 2018, 13:55) *
требуется программист на низы

Простите, но что в вашем понимании "Низы"

"Чукча не дурак, дурак бы не понял"

Сообщение отредактировал hasl - Feb 20 2018, 14:09
Go to the top of the page
 
+Quote Post
Ivan_Petrov
сообщение Feb 20 2018, 13:47
Сообщение #3


Участник
*

Группа: Свой
Сообщений: 43
Регистрация: 12-10-07
Пользователь №: 31 293



Цитата(hasl @ Feb 20 2018, 13:58) *
Простите, но что в вашем понимании "Низы"

"Чукча не дурак, дурак бы не понял"

Если бы это была операционка, то скорее всего имелись бы ввиду драйвера, а тут да, тоже не совсем понятно, т.к. без операционки там почти все низы.
Go to the top of the page
 
+Quote Post
DrGluck
сообщение Feb 20 2018, 15:36
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 340
Регистрация: 25-11-05
Из: Россия
Пользователь №: 11 361



"Ниже" bare metal только heavy metal ! bb-offtopic.gif


--------------------
"... Ищущий вечно, однажды найдя, то, что искал бесконечно, мимо прошёл, совершенно беспечно, с кем-то о вечном шутя ..."
Go to the top of the page
 
+Quote Post
jcxz
сообщение Feb 20 2018, 15:45
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Ivan_Petrov @ Feb 20 2018, 15:47) *
Если бы это была операционка, то скорее всего имелись бы ввиду драйвера, а тут да, тоже не совсем понятно, т.к. без операционки там почти все низы.

В одном из проектов у меня было:
1. Самый нижний уровень: элементарные транзакции по SPI с FLASH/FRAM - чтение непрерывного блока байт, запись непрерывного блока байт, стирание страницы FLASH и т.п.
2. Уровень немного выше: арбитраж доступа к шине SPI - планирование транзакций по приоритету от разных служб, использующих структуры хранения во FLASH и FRAM, анализ чей запрос важнее, какие чипы FLASH сейчас находятся в свободном/занятом состоянии (выполняют внутреннюю запись/стирание) и мониторинг их состояния.
3. Уровень ещё выше: обеспечение атомарного доступа к структурным единицам хранения во FLASH/FRAM. Атомарного - в смысле "непрерывного для событий сброса/выключения_питания процессора".
4. Уровень ещё выше: Логические объекты хранения во FLASH/FRAM - журналы событий (со своим набором методов), файловая система и другие объекты.
5. Ещё более высокий уровень (этим занимался уже другой программист) - методы доступа к журналам и файловой системе с прикладного уровня протокола/протоколов обмена прибора и из служб событий прибора.
Каждый уровень работает через API нижележащего уровня. А не смешано всё в одну кучу.

И операционка тут совсем не при чём. Это называется: "грамотное планирование архитектуры исходного ПО". С ОС или без - без разницы.
У дилетантов обычно вообще никакой архитектуры нет как понятия. Просто всё - одна куча. Поэтому могут решать только самые элементарные задачи.

PS: В контексте запроса ТС можно предположить, что нужен человек, умеющий организовать некие сервисы (хранения, передачи данных и т.п.) через указанную периферию, с определёнными свойствами и определённым уровнем абстрагирования от конкретного железа/интерфейсов. Для программистов более высокого прикладного уровня. Т.е. - системный программист.
Go to the top of the page
 
+Quote Post
DrGluck
сообщение Feb 20 2018, 16:22
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 340
Регистрация: 25-11-05
Из: Россия
Пользователь №: 11 361



Цитата(jcxz @ Feb 20 2018, 19:45) *
В одном из проектов у меня было:
........
PS: В контексте запроса ТС можно предположить, что нужен человек, умеющий организовать некие сервисы (хранения, передачи данных и т.п.) через указанную периферию, с определёнными свойствами и определённым уровнем абстрагирования от конкретного железа/интерфейсов. Для программистов более высокого прикладного уровня. Т.е. - системный программист.


Такое ощущение, что ТС-ы никогда не научатся четко озвучивать "хотелки" и "пожелалки" ...


--------------------
"... Ищущий вечно, однажды найдя, то, что искал бесконечно, мимо прошёл, совершенно беспечно, с кем-то о вечном шутя ..."
Go to the top of the page
 
+Quote Post
Эдди
сообщение Feb 20 2018, 17:09
Сообщение #7


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Цитата(DrGluck @ Feb 20 2018, 18:36) *
"Ниже" bare metal только heavy metal ! bb-offtopic.gif

Видимо, нужен программист, который прошивку будет сразу в машкодах писать.
Go to the top of the page
 
+Quote Post
smk
сообщение Feb 20 2018, 17:27
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



"Нижний уровень" это термин из автоматизации. Обозначает программирование ПЛК. А верхний это скада.


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
misyachniy
сообщение Feb 21 2018, 05:33
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 716
Регистрация: 27-05-05
Из: Kyiv
Пользователь №: 5 454



Цитата(smk @ Feb 20 2018, 19:27) *
"Нижний уровень" это термин из автоматизации. Обозначает программирование ПЛК. А верхний это скада.

"Верхи" объявлены здесь:
https://electronix.ru/forum/index.php?showtopic=145882
Go to the top of the page
 
+Quote Post
jcxz
сообщение Feb 21 2018, 05:59
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(misyachniy @ Feb 21 2018, 07:33) *
"Верхи" объявлены здесь:

Нет. Ибо на Cortex-M ни линух ни тем более винда - невозможны.
Go to the top of the page
 
+Quote Post
Molotov
сообщение Feb 21 2018, 06:44
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 70
Регистрация: 17-07-15
Пользователь №: 87 598



Я так понял это ассемблер. Разве нет? Кстати, на ассемблере не пишут для STM32(насколько я знаю), только C++. Ну может вставки там какие-нибудь на ассемблере если только. Или он имел ввиду регистры? - Это все о "низах".

Сообщение отредактировал Molotov - Feb 21 2018, 06:48
Go to the top of the page
 
+Quote Post
jcxz
сообщение Feb 21 2018, 06:54
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Molotov @ Feb 21 2018, 08:44) *
Я так понял это ассемблер. Разве нет?

Нет. См. сообщение #5.
Цитата(Molotov @ Feb 21 2018, 08:44) *
Кстати, на ассемблере не пишут для STM32(насколько я знаю), только C++.

Пишут.
Go to the top of the page
 
+Quote Post
Эдди
сообщение Feb 21 2018, 07:22
Сообщение #13


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Цитата(Molotov @ Feb 21 2018, 09:44) *
на ассемблере не пишут для STM32(насколько я знаю), только C++

На ассемблере пишут. Некоторые даже на С++ пишут. Но подавляющее большинство таки С использует. Потому что ассемблер — слишком долго, а С++ — слишком жирно!
Go to the top of the page
 
+Quote Post
Mihail Gluhowche...
сообщение Feb 21 2018, 07:59
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 732
Регистрация: 24-01-07
Из: Novosibirsk
Пользователь №: 24 710



Цитата(Эдди @ Feb 21 2018, 13:22) *
На ассемблере пишут. Некоторые даже на С++ пишут. Но подавляющее большинство таки С использует. Потому что ассемблер — слишком долго, а С++ — слишком жирно!

bb-offtopic.gif
Вот сейчас вы разжигаете просто. C++ нормально и не жирно работает. Все зависит от удобства и задач. Даже есть RTOS на С++ написанные коллегами с форума. Широко известна в узких кругах как говориться.
Go to the top of the page
 
+Quote Post
Molotov
сообщение Feb 21 2018, 08:20
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 70
Регистрация: 17-07-15
Пользователь №: 87 598



Цитата(jcxz @ Feb 21 2018, 12:54) *
1) Нет. См. сообщение #5.

2) Пишут.
1)- что значит см. сообщение №5? Я от автора темы жду ответа, а не от вас.
2) Не надо тут умничать.
Go to the top of the page
 
+Quote Post
Ivan_Petrov
сообщение Feb 21 2018, 08:43
Сообщение #16


Участник
*

Группа: Свой
Сообщений: 43
Регистрация: 12-10-07
Пользователь №: 31 293



Цитата(jcxz @ Feb 20 2018, 18:45) *
В одном из проектов у меня было:
1. Самый нижний уровень: элементарные транзакции по SPI с FLASH/FRAM - чтение непрерывного блока байт, запись непрерывного блока байт, стирание страницы FLASH и т.п.

Диспетчеры, журналы, атомарный доступ, "разные службы" - это как бы уже часть ОС и подобия файловой системы.
Автор то тут четко выразился что ему нужны только работа с каналами передачи.
1-2 имхо разделять на собственное АПИ если это не высокоструктурированный проект или часть ОС смысла нет, все в один файл, 1 объявить статиком, а 2 сделать в виде АПИ.
Если все разносить по файлам, то у компилятора не будет возможность глубоко оптимизировать все это.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Feb 21 2018, 10:58
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Ivan_Petrov @ Feb 21 2018, 10:43) *
Диспетчеры, журналы, атомарный доступ, "разные службы" - это как бы уже часть ОС и подобия файловой системы.

ОС - это только управление задачами. Всё остальное - дополнительные модули.

Цитата(Ivan_Petrov @ Feb 21 2018, 10:43) *
Автор то тут четко выразился что ему нужны только работа с каналами передачи.

Это где Вы такое узрели в его посте??? wacko.gif Из каналов передачи там только UART.

Цитата(Ivan_Petrov @ Feb 21 2018, 10:43) *
1-2 имхо разделять на собственное АПИ если это не высокоструктурированный проект или часть ОС смысла нет, все в один файл,

Смысл есть ибо это совершенно разные вещи. Находятся они в одном файле или в разных - это никак не относится к разбиению на логические уровни.
Разделение этих двух частей, даёт возможность легко наращивать функциональность при добавлении других устройств на данной SPI-шине: планировщик транзакций (арбитр шины) - отдельно, обработка самих транзакций - отдельно для каждого устройства на шине - своя для каждого устройства.
Своё разбиение я привёл как пример. В другой прикладной задаче/приборе вполне возможно будет другое разбиение.
Go to the top of the page
 
+Quote Post
Ivan_Petrov
сообщение Feb 21 2018, 14:10
Сообщение #18


Участник
*

Группа: Свой
Сообщений: 43
Регистрация: 12-10-07
Пользователь №: 31 293



Цитата(jcxz @ Feb 21 2018, 13:58) *
ОС - это только управление задачами. Всё остальное - дополнительные модули.

ОС это распределение памяти, машинного времени и механизмы доступа и синхронизации.

Цитата(jcxz @ Feb 21 2018, 13:58) *
Это где Вы такое узрели в его посте??? wacko.gif Из каналов передачи там только UART.

I2C, ADC тоже можно считать каналом передачи sm.gif но в целом да, он хочет иметь доступ к разной периферии, не только передавать данные.

Цитата(jcxz @ Feb 21 2018, 13:58) *
Смысл есть ибо это совершенно разные вещи. Находятся они в одном файле или в разных - это никак не относится к разбиению на логические уровни.
Разделение этих двух частей, даёт возможность легко наращивать функциональность при добавлении других устройств на данной SPI-шине: планировщик транзакций (арбитр шины) - отдельно, обработка самих транзакций - отдельно для каждого устройства на шине - своя для каждого устройства.
Своё разбиение я привёл как пример. В другой прикладной задаче/приборе вполне возможно будет другое разбиение.

Ну я свою классификацию тоже привел как пример, ибо писал LockFree OS и она перенесена в том числе под STM32.

Но до конца не понятно где заканчивается его нижний уровень, и что он имеет ввиду под верхним, нужно ему АПИ или интерфейс драйвера для какой то RTOS.
Для кого-то этот нижний уровень вообще не заканчивается внутри камня, для вторых он заканчивается на интерфейсе драйвера, а для третьих за пределами функции работающих с регистрами уже другой уровень.
Go to the top of the page
 
+Quote Post
leocat
сообщение Feb 21 2018, 15:01
Сообщение #19


Частый гость
**

Группа: Участник
Сообщений: 109
Регистрация: 12-10-16
Пользователь №: 93 727



Цитата(jcxz @ Feb 21 2018, 05:59) *
Нет. Ибо на Cortex-M ни линух ни тем более винда - невозможны.

Да ладно?!
http://www.nuttx.org
Go to the top of the page
 
+Quote Post
Эдди
сообщение Feb 21 2018, 15:15
Сообщение #20


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Линукс не установить на систему без MMU. Так что, не надо фантазировать!
Go to the top of the page
 
+Quote Post
ichthyandr
сообщение Feb 22 2018, 12:13
Сообщение #21


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 18-10-06
Пользователь №: 21 420



Цитата(jcxz @ Feb 21 2018, 08:59) *
Нет. Ибо на Cortex-M ни линух ни тем более винда - невозможны.

а freertos ?
Go to the top of the page
 
+Quote Post
jcxz
сообщение Feb 22 2018, 13:51
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(ichthyandr @ Feb 22 2018, 14:13) *
а freertos ?

Конечно да.
Go to the top of the page
 
+Quote Post
one_eight_seven
сообщение Feb 22 2018, 14:28
Сообщение #23


Знающий
****

Группа: Участник
Сообщений: 916
Регистрация: 3-10-08
Из: Москва
Пользователь №: 40 664



Цитата
Линукс не установить на систему без MMU. Так что, не надо фантазировать!

uCLinux

P.S. можно, конечно, ещё эмуляторы писать (и некоторые это делают), но зачем...

Сообщение отредактировал one_eight_seven - Feb 22 2018, 14:31
Go to the top of the page
 
+Quote Post
Aldec
сообщение Feb 22 2018, 14:56
Сообщение #24


Частый гость
**

Группа: Участник
Сообщений: 160
Регистрация: 21-06-16
Пользователь №: 92 272



Цитата
из перриферии: UART, ADC, COMP, DAC, I2C, Timer.

Может оказаться что это драйвер двигателя, тюнер SDR, анализатор спектра или вибродатчиков.... линукс и ртос там не очень требуется.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Feb 22 2018, 15:45
Сообщение #25


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(one_eight_seven @ Feb 22 2018, 16:28) *
uCLinux

uCLinux != Linux
Go to the top of the page
 
+Quote Post
=pcb=
сообщение Feb 22 2018, 16:49
Сообщение #26


Местный
***

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



Цитата(Эдди @ Feb 21 2018, 20:15) *
Линукс не установить на систему без MMU. Так что, не надо фантазировать!

Можно.
1) ucLinux на ядре 2.6. версии
2) Linux на ядре от 4.6 версии на жирные камни, а ля 429, с недавних пор.

так что можно уже фантазировать открывшиеся новые возможности...
Go to the top of the page
 
+Quote Post
jcxz
сообщение Feb 22 2018, 17:20
Сообщение #27


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(=pcb= @ Feb 22 2018, 18:49) *
2) Linux на ядре от 4.6 версии на жирные камни, а ля 429, с недавних пор.

Ну-ну... с недавних пор в "а ля 429" самопроизвольно возник MMU??? biggrin.gif

Цитата(=pcb= @ Feb 22 2018, 18:49) *
так что можно уже фантазировать открывшиеся новые возможности...

Фантазировать можно сколько угодно, но реальность безжалостна..... laughing.gif
Go to the top of the page
 
+Quote Post
Эдди
сообщение Feb 22 2018, 18:05
Сообщение #28


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Цитата(=pcb= @ Feb 22 2018, 19:49) *
ucLinux

Это никак к линуксу не относится!
Еще раз: нет MMU == нет линукса!
Хватит меня уже бредом кормить!
Go to the top of the page
 
+Quote Post
one_eight_seven
сообщение Feb 22 2018, 18:23
Сообщение #29


Знающий
****

Группа: Участник
Сообщений: 916
Регистрация: 3-10-08
Из: Москва
Пользователь №: 40 664



Цитата
Это никак к линуксу не относится!

Это форк линукса. Более того, много наработок uCLinux'а пошли в основную ветку. Так что относится и ещё как относится

Цитата
Еще раз: нет MMU == нет линукса!
Хватит меня уже бредом кормить!

Есть только два мнения - моё и неправильное. Очень правильная позиция, да.

Цитата
uCLinux != Linux

Debian != Linux
Fedora != Linux.
Linux != Linux.

Ваши слепые верования не имеют ничего общего с реальным положением вещей.
Go to the top of the page
 
+Quote Post
Эдди
сообщение Feb 22 2018, 20:02
Сообщение #30


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Ну хватит уже чушь нести!!!
Почитайте хотя бы, что такое линукс!
И да, дебилиан уже не линукс, а тем более — федора! Все, что перестало подчиняться требованиям UNIX-way, можно смело называть мастдайкой и топить в унитазе.
Эдак вы, батенька, такое откровенное дерьмище, как ондроед, линуксом обзовете!

Сообщение отредактировал Эдди - Feb 22 2018, 20:03
Go to the top of the page
 
+Quote Post
one_eight_seven
сообщение Feb 22 2018, 22:21
Сообщение #31


Знающий
****

Группа: Участник
Сообщений: 916
Регистрация: 3-10-08
Из: Москва
Пользователь №: 40 664



Цитата
Все, что перестало подчиняться требованиям UNIX-way, можно смело называть мастдайкой и топить в унитазе.

В жизни всё произошло наоборот.
Go to the top of the page
 
+Quote Post
leocat
сообщение Feb 23 2018, 03:09
Сообщение #32


Частый гость
**

Группа: Участник
Сообщений: 109
Регистрация: 12-10-16
Пользователь №: 93 727



Цитата(Эдди @ Feb 22 2018, 20:02) *
Ну хватит уже чушь нести!!!
Почитайте хотя бы, что такое линукс!
И да, дебилиан уже не линукс, а тем более — федора! Все, что перестало подчиняться требованиям UNIX-way, можно смело называть мастдайкой и топить в унитазе.
Эдак вы, батенька, такое откровенное дерьмище, как ондроед, линуксом обзовете!


https://ru.wikipedia.org/wiki/Linux

Linux — семейство Unix-подобных операционных систем на базе ядра Linux, включающих тот или иной набор утилит и программ проекта GNU, и, возможно, другие компоненты.

Т.е. следуя официальному определению - именно так! Ведроид есть Линкус. Кстати, об этом на одной из конференций сам Товальдс сказал. С ним спорить будете?
Go to the top of the page
 
+Quote Post
jcxz
сообщение Feb 23 2018, 06:29
Сообщение #33


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(leocat @ Feb 23 2018, 05:09) *
операционных систем на базе ядра Linux

А теперь почитайте что входит в это самое ядро.
Go to the top of the page
 
+Quote Post
Эдди
сообщение Feb 23 2018, 07:04
Сообщение #34


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Помимо состава ядра пусть товарищ еще расскажет, что за гнутые утилиты есть в ондроеде!
Что-то я там такого не замечал. Где там баш и coreutils? Одна бессмысленная оболочка на жабе, от которой 0 толку!
Go to the top of the page
 
+Quote Post
leocat
сообщение Feb 23 2018, 07:25
Сообщение #35


Частый гость
**

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post
Grizzzly
сообщение Feb 23 2018, 11:48
Сообщение #36


Знающий
****

Группа: Свой
Сообщений: 565
Регистрация: 22-02-13
Пользователь №: 75 748



Linux kernel запросто можно собрать без поддержки MMU: https://unix.stackexchange.com/questions/19...l/190358#190358
Так что это всё по-прежнему Linux sm.gif
Go to the top of the page
 
+Quote Post
Эдди
сообщение Feb 23 2018, 12:47
Сообщение #37


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



И что это будет за линукс такой без MMU? Как он будет распределять память среди процессов и потоков?
Go to the top of the page
 
+Quote Post
one_eight_seven
сообщение Feb 23 2018, 18:17
Сообщение #38


Знающий
****

Группа: Участник
Сообщений: 916
Регистрация: 3-10-08
Из: Москва
Пользователь №: 40 664



Цитата
И что это будет за линукс такой без MMU? Как он будет распределять память среди процессов и потоков?

С помощью page table, например.
Кроме того, ядро и так этого не делает. Это делают модули ядра.

Сообщение отредактировал one_eight_seven - Feb 23 2018, 18:18
Go to the top of the page
 
+Quote Post
jcxz
сообщение Feb 23 2018, 21:38
Сообщение #39


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(one_eight_seven @ Feb 23 2018, 20:17) *
Кроме того, ядро и так этого не делает. Это делают модули ядра.

Дело не в выделении памяти.
Я не знаю как организовано адресное пространство в linux-приложениях, но думаю, что подобно винде: каждое запускаемое приложение имеет своё виртуальное адресное пространство, в которое, кроме того, отображаются какие-то системные пространства адресов (DLL и т.п.). Уже не говоря про защиту адресных пространств.
Всё это - благодаря MMU.
И как в таком случае запустить приложение, скомпилённое для работы в виртуальном адресном пространстве, без MMU???
Есть одно приложение, скомпилённое для работы по адресу скажем 0x40000, и есть другое приложение, тоже скомпилённое для работы по адресу 0x40000. Как обеспечить их одновременную работу без MMU?
А если приложение использует большой объём памяти, за счёт подкачки с диска? Опять-же - как без MMU?
Go to the top of the page
 
+Quote Post
gerber
сообщение Feb 24 2018, 09:07
Сообщение #40


Знающий
****

Группа: Участник
Сообщений: 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 или менеджер памяти, не суть важно


--------------------
"... часами я мог наблюдать, как люди работают." (М. Горький)
Go to the top of the page
 
+Quote Post
Roman_msk
сообщение Mar 5 2018, 07:48
Сообщение #41


Участник
*

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



Благодарю всех откликнувшихся, исполнитель найден!
Go to the top of the page
 
+Quote Post
jcxz
сообщение Mar 5 2018, 10:37
Сообщение #42


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(gerber @ Feb 24 2018, 11:07) *
Поэтому ничто не мешает разместить 2 приложения в едином адресном пространстве. Нужен соответствующий ELF Loader, и хватило бы памяти в принципе по объему.

Ну если можно генерить исполняемые файлы и с таблицей перемещения - то пойдёт.
А если я хочу вычислить адрес целевой переменной используя скажем - операции побитового OR или AND или сдвига над адресом? В варианте с линейным виртуальным адресным пространством, перемещаемым при помощи MMU - да никаких проблем! А вот если попробуем слинковать это в перемещаемый загрузочный образ, то я думаю получим ошибку компоновщика, так как не допускается обычно при этом никаких операций кроме сложений и вычитаний. laughing.gif

Цитата(gerber @ Feb 24 2018, 11:07) *
Даже на "взрослых" машинах с MMU вполне себе существует Linux без swap-файла и подкачки памяти с диска. MMU тут не при деле, кто будет генерировать исключение при нехватке памяти - MMU или менеджер памяти, не суть важно

Менеджер памяти - это кто? Это тот, кто выделяет динамическую память из пула? malloc()/free()?
А при чём тут "исключение при нехватке памяти"? Если сумме работающих в данный момент приложений нужно больше памяти, чем есть физически, то это и решается подкачкой, когда страницы памяти, к которым давно не было обращения, вытесняются из физической памяти в своп, и это место физической памяти используется для хранения других страниц виртуальной памяти. А когда приложению потребуется вытесненная память, оно просто обратиться по данным адресам, MMU сгенерит исключение и страница будет возвращена из свопа в физическую память. И делается это силами MMU. Приложение про всю эту кухню не знает, и не обращается к менеджеру памяти вообще после того как получит весь необходимый объём от malloc().
Без MMU такой механизм организовать невозможно. Соответственно те задачи, которые нормально выполняются в среде с виртуальной памятью, не могут быть выполнены никак без неё - только переписыванием алгоритма работы приложения.
Опять-же - как без MMU отображать в память процесса какие-то общие ресурсы? Например библиотеки? (есть в линухе аналог DLL?) Или файлы (чтобы работать с ними просто как с областями памяти)?
Далее - как полноценно защитить адресное пространство одного приложения от другого без MMU? Да никак.
Если всё это вычесть из полноценного линуха на ядре с MMU, то останется он при этом линухом или это будет уже совсем другая ОС? Да нет конечно - это совсем другая уже ОС будет.
Go to the top of the page
 
+Quote Post
one_eight_seven
сообщение Mar 6 2018, 10:23
Сообщение #43


Знающий
****

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post
Cvetaev
сообщение Mar 6 2018, 18:40
Сообщение #44





Группа: Участник
Сообщений: 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



Еще актуально ?
Go to the top of the page
 
+Quote Post

3 страниц V   1 2 3 >
Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 14:40
Рейтинг@Mail.ru


Страница сгенерированна за 0.01845 секунд с 7
ELECTRONIX ©2004-2016