The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Опубликван курс видеолекций 'Современный и эффективный С++', opennews (??), 04-Окт-19, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


15. "Опубликван курс видеолекций Современный и эффективный С++"  +1 +/
Сообщение от anonymous (??), 04-Окт-19, 20:08 
Открыл первую лекцию. Где используется c++? В операционных системах. Во встраеваемых системах. Закрыл лекцию. Там используется голый си. И если лектор об этом не в курсе, то зачем его слушать?
Ответить | Правка | Наверх | Cообщить модератору

22. "Опубликван курс видеолекций Современный и эффективный С++"  –1 +/
Сообщение от аноннн (?), 04-Окт-19, 20:39 
> Открыл первую лекцию. Где используется c++? В операционных системах. Во встраеваемых системах.
> Закрыл лекцию. Там используется голый си. И если лектор об этом
> не в курсе, то зачем его слушать?

А пацаны об этом-то как, слышали?
https://github.com/freebsd/freebsd/blob/master/contrib/wpa/w...
https://github.com/freebsd/freebsd/blob/master/lib/libdevdct...
https://github.com/freebsd/freebsd/blob/master/contrib/openc...
https://github.com/freebsd/freebsd/blob/master/sbin/devd/dev...
https://github.com/freebsd/freebsd/blob/master/cddl/usr.sbin...


Ответить | Правка | Наверх | Cообщить модератору

31. "Опубликван курс видеолекций Современный и эффективный С++"  +1 +/
Сообщение от аноним3 (?), 04-Окт-19, 21:13 
нет в большинстве он прав. в низкоуровщине и консоль и правда в основном чистый си. плюсы уже как то большев приложухе ии некоторых других сферах, хотя никто не оспаривает, что некоторые на плюсах и дрова пишут. вон тут недавно умельцы в сравнении языков аж дровишки (сетевые) на питоне написали. и что от этого использование питона не изменилось. а плюсы если их использовать без классов и все этого ООП вполне как чистый си можно использовать. все равно из си вышел))
Ответить | Правка | Наверх | Cообщить модератору

33. "Опубликван курс видеолекций Современный и эффективный С++"  –1 +/
Сообщение от анонн (ok), 04-Окт-19, 21:31 
> нет в большинстве он прав. в низкоуровщине и консоль и правда в основном чистый си.

Тут речь не о большинствах.
Посмотрите еще раз, внимательно:
>> Открыл первую лекцию. Где используется c++? В операционных системах. Во встраеваемых системах.
>> Закрыл лекцию. Там используется голый си. И если лектор об этом не в курсе, то зачем его слушать?

Грубо утрируя: читается как "лектор сморозил глупость, там с++ не используется!".

ОС - это не только ядро, но и обвязка, а тот же бсдшный devd - аналог линуксячего udev, да и wpa_supplicant или zfsd
> zfsd attempts to resolve ZFS faults that the kernel can't resolve by itself.

я бы не назвал абстрактной высокоуровневщиной (да и действительно _низкоуровневые_ вещи на сишке - это практически всегда костыляни^W привязка к определенному компилятору или его расширением ЯП -  __attribute__/pragma aligned, packed, бит-поля и все такое прочее).

Ну и то, что в силу некоторых традиций используется си, не отменяет возможности (и использования) тех же плюсов, начиная с реализации L4 типа Fiasco, Pistachio, той же Google Fuchsia и вплоть до Symbian и BeOS/Гайки https://github.com/haiku/haiku/tree/master/src/system/kernel

Ответить | Правка | Наверх | Cообщить модератору

63. "Опубликван курс видеолекций Современный и эффективный С++"  +1 +/
Сообщение от anonymous (??), 05-Окт-19, 00:28 
Вопрос ведь именно в тонкостях. Я ожидал лекцию для тех, кто знает си и знает старые кресты. Чтобы на этой лекции объяснили тонкости их применения и отличия. Чем отличается си от крестов я знаю, также знаю что стандартный си и реальный две большие разницы, имя которым расширения компилятора. Понимаю, что на крестах можно писать почти как на си, но зачем?

Для всякой низкоуровневости кресты вредны. Там вообще malloc (и уж тем боле new) не используется - статическое распределение памяти или пулы. Простая функция, требуящая невероятной надёжности. А значит простоты и прямолинейности языка, даже если снизится выразительность и удобство поддержки. Поэтому кресты туда лезут плохо.

Опять же клятый UB. Для низкоуровневого программирования, это не есть гуд. Лучше меньше оптимизаций, но больше предсказуемости. Когда-то кресты называли "ассемблер с классами" подразумевая именно прямолинейное преобзование кода в ассемблерные инструкции. Сейчас - фиг вам. Редкий разработчик может предсказать что выйдет после компиляции его кода. И значит для низкоуровневого программирования кресты вредны. И вообще стандарт содержит множество сложностей ради корректной работы многозадочности. А в контроллерах часто бывает единственный поток исполнения. Да и комплияторы си для контроллеров часто вместо стандарта языка поддерживают некий диалект, сфокусированный на этом контроллере.

Так что по факту есть семейство языков си. Теперь вот и кресты начали ветвиться, прям на уровне стандартов. И хотелось бы расширить своё понимание, что и в каких случаях из новых стандартов стоит использовать.

Лекция, если судить по началу, получилась какая-то рекламная "используй язык c++" вместо ожидаемого мной технического обзора ньюансов языков и их применений. В своё время я c++ хорошо знал, но давно не использовал. Мне было любобпытно, что происходит с языком и почему. Искал лекциию для технических специалистов с техническими ньюансами. Для тех, кто уже знает язык, и кому интересны именно обновления. Если кто встречал - поделитесь ссылками

Ответить | Правка | Наверх | Cообщить модератору

152. "Опубликван курс видеолекций Современный и эффективный С++"  +/
Сообщение от Anonymous2 (?), 19-Окт-19, 01:04 
Спасибо!!! Только ради этого коммента стоило читать эту ветку!
Ответить | Правка | Наверх | Cообщить модератору

34. "Опубликван курс видеолекций Современный и эффективный С++"  –1 +/
Сообщение от Аноним (34), 04-Окт-19, 21:44 
Вполне себе можно писать системы на плюсах, нужно только специальный рантайм присобачить и кое какие включить/выключить из компилятора. Хотя конечно зачем трусы через голову... (виндовые kernel space процессы на плюсах написаны, даже маленькая часть самого микроядра плюсах)
Ответить | Правка | К родителю #15 | Наверх | Cообщить модератору

88. "Опубликван курс видеолекций Современный и эффективный С++"  +/
Сообщение от Аноним (87), 05-Окт-19, 13:06 
> виндовые kernel space процессы

Что это?

По-моему, процесс это:
1) адресное пространство (в режиме пользователя, в нём выполняются потоки).
2) объект ядра (для управления вышеупомянутым АП).

> на плюсах написаны, даже маленькая часть
> самого микроядра плюсах)

С какой версии там микроядро?

Ответить | Правка | Наверх | Cообщить модератору

98. "Опубликван курс видеолекций Современный и эффективный С++"  +/
Сообщение от Аноним (34), 05-Окт-19, 18:27 
С NT они его называют hybrid но это по сути просто маркетинговый ход. В винде два мода: кернел и пользовательское пространство. В них выполняются процессы которые называются сервисами и драйверами. Разницы между ними особо нет кроме как формата финарника и у кернел мод процессов есть доступ к HAL и микроядру
Ответить | Правка | Наверх | Cообщить модератору

108. "Опубликван курс видеолекций Современный и эффективный С++"  +/
Сообщение от Аноним (87), 06-Окт-19, 08:38 
> С NT они его называют hybrid но это по сути просто маркетинговый
> ход. В винде два мода: кернел и пользовательское пространство. В них
> выполняются процессы

Поймите одну простую вещь. Если некоторый машинный код в "винде" выполняется, значит имеется Контекст Выполнения. На уровне Win32 API это та самая структура CONTEXT, где сохраняется состояние регистров процессора, и которая возвращается функцией GetThreadContext. При этом нет никакой GetProcessContext.

Вместо этого у процесса есть Working Set -- грубо говоря, набор страниц памяти, в том числе и с отображением образа исполняемого файла. Есть ещё у процесса потоки (треды). При вызова такой высокоуровневой функции, как CreateProcess, сначала создаётся рабочий набор, потом главный тред процесса -- вот он уже "выполняется".

Если мы говорим только об юзермоде, можно сказать "выполняется процесс", имея ввиду всё вышеперечисленное. Как только речь заходит о ядре, подобное заявление является грубой ошибкой.

Код драйвера может выполняться как в контексте треда определённого пользовательского процесса (например, произошел вызов ReadFile и далее по цепочке), таким образом имея доступ к адресному пространству (АП) данного процесса (куда обработчик запроса запишет данные файла). А может выполняться -- в произвольном контексте https://www.osr.com/blog/2014/09/08/arbitrary-thread-context.../
например, когда SATA контрорллер получил данные от накопителя и сгенерировал прерывание. В этом месте нельзя что-то записать в АП пользователя, потому что это наверняка левый процесс.

"Процессом ядра" условно можно назвать несколько рабочих тредов, выполняющих код из ntoskrnl.exe

> которые называются сервисами и драйверами.

В MSDN документировано, что драйвер запускается функцией StartService, соответственно является сервисом (режима ядра, в отличии от работающих в АП процессов svchost.exe; тип службы орпределяется 4-м параметром CreateService).

> Разницы между ними особо
> нет кроме как формата финарника и у кернел мод процессов есть
> доступ к HAL и микроядру

Формат там один -- Portable Executable. Содержимое таблицы импорта, да, различается.

Ответить | Правка | Наверх | Cообщить модератору

124. "Опубликван курс видеолекций Современный и эффективный С++"  +/
Сообщение от Аноним (34), 07-Окт-19, 05:06 
Да а теперь расскажи мне реальную разницу между процессом и потоками со стороны cpu
Ответить | Правка | Наверх | Cообщить модератору

127. "Опубликван курс видеолекций Современный и эффективный С++"  +/
Сообщение от Аноним (87), 07-Окт-19, 06:51 
> Да а теперь расскажи мне реальную разницу между процессом и потоками со
> стороны cpu

Во-первых, ты забыл "пожалуйста".
Во-вторых, сменил предмет с "винды" на "cpu".

У тебя был реальный шанс. Удачи.

Ответить | Правка | Наверх | Cообщить модератору

139. "Опубликван курс видеолекций Современный и эффективный С++"  +/
Сообщение от Аноним (139), 08-Окт-19, 08:36 
кто в лес кто по дрова. Речь про использования плюсов для написания низкоуровневого кода.
Ответить | Правка | Наверх | Cообщить модератору

141. "Опубликван курс видеолекций Современный и эффективный С++"  +/
Сообщение от Аноним (87), 08-Окт-19, 11:04 
> кто в лес кто по дрова. Речь про использования плюсов для написания
> низкоуровневого кода.

Когда кто-то пишет про процессы в ядре винды, это ставит под сомнение доказываемое такой чепухой утверждение. А так то можно даже поддержку C++ исключений на PASSIVE_LEVEL организовать, если найти где список хранить.

Ответить | Правка | Наверх | Cообщить модератору

120. "Опубликван курс видеолекций Современный и эффективный С++"  +/
Сообщение от Аноним (116), 06-Окт-19, 23:23 
>Где используется c++? ... Во встраеваемых системах. ...  Там используется голый си.

С++ во встраеваемых системах - легко. Попробуй, хотя бы, на Atmega и убедись. Сам пробовал в Arduino IDE с наследованием, виртуальными фунциями.

Ответить | Правка | К родителю #15 | Наверх | Cообщить модератору

142. "Опубликван курс видеолекций Современный и эффективный С++"  +/
Сообщение от anonymous (??), 08-Окт-19, 11:29 
А потом часы вместо года работы от батарейки работают два дня.
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру