суббота, 26 марта 2016 г.
четверг, 17 марта 2016 г.
Начала STL и контейнеры C++ (обновление)
Большое обновление серии заметок "Начала STL и контейнеры C++".
Только ссылки...
Архив примеров кода на на Google
И сами тексты:
Массивы со статической и динамической размерностью. Часть 1
Редакция 06, от 25.02.2016, на на Google
Контейнеры STL. Часть 2
Редакция 06, от 25.02.2016, на Google
Контейнеры STL. vector. Часть 3
Редакция 07, от 02.03.2016, на Google
Контейнеры STL. list. Часть 4
Редакция 08, от 16.03.2016, на Google
Классы string и wstring. Часть 5
Редакция 06, от 19.02.2016, на Google
Ассоциативные контейнеры STL. Часть 6
Редакция 06, от 07.03.2016, на Google
Контейнеры STL: map. Часть 7
Редакция 03, от 19.02.2016, на Google
Контейнеры STL: multimap. Часть 8
Редакция 03, от 19.02.2016, на Google
Контейнеры STL: set и multiset. Часть 9
Редакция 03, от 19.02.2016, на Google
Итераторы ввода-вывода. Часть 9A
Редакция 02, от 15.03.2016, на Google
(некоторых частей не было вообще в предыдущих редакциях, они вставные, чтобы не нарушать порядок именования частей они идут с буквенным индексом)
Алгоритмы. Часть 10
Редакция 04, от 21.02.2016, на Google
Функциональные объекты. Часть 11
Редакция 04, от 20.02.2016, на Google
Сортировка. Часть 12
Редакция 03, от 20.02.2016, на Google
Сортировка структур. Часть 13
Редакция 03, от 20.02.2016, на Google
Обобщённые численные алгоритмы. Часть 14
Редакция 03, от 20.02.2016, на Google
Скалярное произведение, фильтрация. Часть 14B
Редакция 03, от 20.02.2016, на Google
Другие обобщённые алгоритмы. Часть 14C
Редакция 03, от 20.02.2016, на Google
Обобщённые алгоритмы на массивах. Часть 14Z
Редакция 03, от 20.02.2016, на Google
Адаптеры. Часть 15
Редакция 03, от 20.02.2016, на Google
Указатели в контейнерах. Часть 16
Редакция 03, от 20.02.2016, на Google
Что почитать?. Часть 17
Редакция 03, от 23.02.2016, на Google
Только ссылки...
Архив примеров кода на на Google
И сами тексты:
Массивы со статической и динамической размерностью. Часть 1
Редакция 06, от 25.02.2016, на на Google
Контейнеры STL. Часть 2
Редакция 06, от 25.02.2016, на Google
Контейнеры STL. vector. Часть 3
Редакция 07, от 02.03.2016, на Google
Контейнеры STL. list. Часть 4
Редакция 08, от 16.03.2016, на Google
Классы string и wstring. Часть 5
Редакция 06, от 19.02.2016, на Google
Ассоциативные контейнеры STL. Часть 6
Редакция 06, от 07.03.2016, на Google
Контейнеры STL: map. Часть 7
Редакция 03, от 19.02.2016, на Google
Контейнеры STL: multimap. Часть 8
Редакция 03, от 19.02.2016, на Google
Контейнеры STL: set и multiset. Часть 9
Редакция 03, от 19.02.2016, на Google
Итераторы ввода-вывода. Часть 9A
Редакция 02, от 15.03.2016, на Google
(некоторых частей не было вообще в предыдущих редакциях, они вставные, чтобы не нарушать порядок именования частей они идут с буквенным индексом)
Алгоритмы. Часть 10
Редакция 04, от 21.02.2016, на Google
Функциональные объекты. Часть 11
Редакция 04, от 20.02.2016, на Google
Сортировка. Часть 12
Редакция 03, от 20.02.2016, на Google
Сортировка структур. Часть 13
Редакция 03, от 20.02.2016, на Google
Обобщённые численные алгоритмы. Часть 14
Редакция 03, от 20.02.2016, на Google
Скалярное произведение, фильтрация. Часть 14B
Редакция 03, от 20.02.2016, на Google
Другие обобщённые алгоритмы. Часть 14C
Редакция 03, от 20.02.2016, на Google
Обобщённые алгоритмы на массивах. Часть 14Z
Редакция 03, от 20.02.2016, на Google
Адаптеры. Часть 15
Редакция 03, от 20.02.2016, на Google
Указатели в контейнерах. Часть 16
Редакция 03, от 20.02.2016, на Google
Что почитать?. Часть 17
Редакция 03, от 23.02.2016, на Google
суббота, 13 февраля 2016 г.
Начала STL и контейнеры C++
P.S. Как оказалось, редактор сообщений этого блога (вместе с его авторами) - полное говно. Так что я приношу прощения за слабую читаемость этого сообщения, или полную его нечитаемость... не за свою вину. Опасаясь вообще за сохранность даже ссылок для самого себя, любимого - я уношу этот цикл полностью (пока?) в форум: Начала STL и контейнеры C++ . Ссылки ниже на 20.02 актуальны, но дальше я их корректировать не буду, и дополнять список не стану - нельзя бесконечно работать на сортир! Буду ли продолжать этот блог? Не знаю...=
Это вот такой цикл коротеньких заметок по массивам C & C++, контейнерам STL, использованию их с применением новых синтаксических конструкций стандартов последнего времени: C99 и C++11 - всё это там сильно переплетается ... ну и всяких сопутствующих вопросов.
Этот цикл заметок, первоначально, появился по просьбе одного из сайтов, по обучению C++ начального уровня ... для пионеров, школьников и других нерадивых студентов... Но со временем заметки стали обрастать подробностями, а заказчики мягко выражать неудовольствие, что всё это становится слишком длинно и заумно. Упрощать описание до уровня "на пальцах" не хочется, но и потерять сделанное жалко, независимо от того, опубликует ли это обучающий сайт и в каком виде. Тем более, что материал стал обрастать интересными подробностями (жить своей жизнью), особенно на стыке с выразительными средствами стандартов C99 и C++11, позволяющих значительно упростить использование. А в литературе этого не найти, потому что очень свежие вещи.В итоге, решил я это всё хозяйство задублировать сюда в блог. Тем более, что всплывают всякие нетривиальные детали, каждая из частей обрастает обновлениями (и ещё будут), и это уже далеко не тот текст, который появился первоначально. Может кому-то ещё это покажется интересным.
Естественно, все заметки сопровождаются короткими примерами иллюстрирующего кода. Весь код написан "с нуля" под эти тексты. Поскольку кода не много, все примеры кода, ко многим частям собственно заметок, собраны в один архив. Но соответствие кода частям текста очень легко восстановить по именам файлов примеров, которые фигурируют в тексте. Архив кодов можете взять на Google (архив будет обновляться, но эти ссылки будут корректироваться на актуальную версию).
Вопрос (спрашивают): почему названия, ссылки и даты последних редакций там сильно "пляшут", даже давно размещённые части, из самых первых?
Ответ: потому, что, идя навстречу пожеланиям трудящихся, я делаю то, что никогда не делал - выверяю и корректирую коды примеров в виртуальной машине с Windows 7, в IDE Code::Blocks 2013.
Вопрос (спрашивают): почему названия, ссылки и даты последних редакций там сильно "пляшут", даже давно размещённые части, из самых первых?
Ответ: потому, что, идя навстречу пожеланиям трудящихся, я делаю то, что никогда не делал - выверяю и корректирую коды примеров в виртуальной машине с Windows 7, в IDE Code::Blocks 2013.
А сами тексты - вот они (ссылки бeдут помещаться и обновляться по мере выверки и размещения):
Массивы со статической и динамической размерностью. Часть 1
Редакция от 19.02.2016, ссылка на Google
Контейнеры STL. Часть 2
Редакция от 19.02.2016, ссылка на Google
Контейнеры STL: vector. Часть 3
Редакция от 19.02.2016, ссылка на Google
Контейнеры STL: list. Часть 4
Редакция от 19.02.2016, ссылка на Google
Классы string и wstring. Часть 5
Редакция от 19.02.2016, ссылка на Google
Ассоциативные контейнеры STL. Часть 6
Редакция от 19.02.2016, ссылка на Google
Контейнеры STL: map. Часть 7
Редакция от 19.02.2016, ссылка на Google
Контейнеры STL: set и multiset. Часть 9
Редакция от 19.02.2016, ссылка на Google
Контейнеры STL: set и multiset. Часть 9
Редакция от 19.02.2016, ссылка на Google
Алгоритмы. Часть 10
Редакция от 20.02.2016, ссылка на Google
Функциональные объекты. Часть 11
Редакция от 20.02.2016, ссылка на Google
вторник, 29 декабря 2015 г.
Задачи по программированию на языке C++, часть 2
Это подолжение обещанного в предыдущем сообщении "Задачи по программированию на языке C, часть 1" : так же задачи, но уже на языке C++.
Язык C++ намного объёмнее, чем C, поэтому и примеров здесь могло бы быть на порядок больше. Но я сознательно не хочу касаться вопросов собственно проектирования, отображения реальных сущностей в конструкции C++ - это значит, что из рассмотрения уводятся большинство вопросов наследования, полиморфизма, и уж конечно множественного наследования. "Нельзя объять необъятное".
Немного, но есть пересечения по формулировкам задач с 1-й частью - некоторые задачи любопытно посмотреть в сравнении: как это делается на C и что нового привносит C++.
Как и раньше, ссылки даются на последнюю актуальную редакцию - ссылки будут меняться без какого-либо уведомления. Скачать свободно последнюю актуальную редакцию текста и архива кодов можно здесь:
Google: текст, архив кодов
Сейчас это редакция 38 от 13.09.2016, стр. 85.
(после достаточно продолжительного перерыва произошло весьма обстоятельное обновление)
В отношении авторских прав повторю:
Ничто из представленного в этом тексте не заимствовано ни из каких источников (кроме, возможно, идей постановок некоторых задач). Все представленные варианты решений - авторские, со всеми возможными ошибками и неточностями.
Как и всё опубликованное ранее, этот текст и все сопутствующие ему материалы представляется под лицензией: Creative Commons Attribution ShareAlike (http://legalfoto.ru/licenzii/) ("общественное достояние"):
... допускается копирование, коммерческое использование произведения, создание его производных при чётком указании источника, но при том единственном ограничении, что при использовании или переработке разрешается применять результат только на условиях аналогичной лицензии.
Язык C++ намного объёмнее, чем C, поэтому и примеров здесь могло бы быть на порядок больше. Но я сознательно не хочу касаться вопросов собственно проектирования, отображения реальных сущностей в конструкции C++ - это значит, что из рассмотрения уводятся большинство вопросов наследования, полиморфизма, и уж конечно множественного наследования. "Нельзя объять необъятное".
Немного, но есть пересечения по формулировкам задач с 1-й частью - некоторые задачи любопытно посмотреть в сравнении: как это делается на C и что нового привносит C++.
Как и раньше, ссылки даются на последнюю актуальную редакцию - ссылки будут меняться без какого-либо уведомления. Скачать свободно последнюю актуальную редакцию текста и архива кодов можно здесь:
Google: текст, архив кодов
Сейчас это редакция 38 от 13.09.2016, стр. 85.
(после достаточно продолжительного перерыва произошло весьма обстоятельное обновление)
В отношении авторских прав повторю:
Ничто из представленного в этом тексте не заимствовано ни из каких источников (кроме, возможно, идей постановок некоторых задач). Все представленные варианты решений - авторские, со всеми возможными ошибками и неточностями.
Как и всё опубликованное ранее, этот текст и все сопутствующие ему материалы представляется под лицензией: Creative Commons Attribution ShareAlike (http://legalfoto.ru/licenzii/) ("общественное достояние"):
... допускается копирование, коммерческое использование произведения, создание его производных при чётком указании источника, но при том единственном ограничении, что при использовании или переработке разрешается применять результат только на условиях аналогичной лицензии.
четверг, 24 декабря 2015 г.
Задачи по программированию на языке C, часть 1
Здесь я собрал большой набор вопросов и задач по программированию на языке C. Это систематизированная подборка тех материалов, которые обсуждались на протяжении нескольких лет на форуме (жалко стало, если затеряется). В составе: текст описания (задачи и решения) и архив кодов решений задач. Все решения проверены и делались в Linux, но, в основной своей части, не должны зависеть от операционной системы (некоторые проверялись в VirtualBox в Windows).
Спектр задач достаточно широкий получается: начиная от простых (но не очевидных) вопросов (которые с подтекстом), и заканчивая задачами, написание решений которых могут потребовать 2-3 дня плотной работы. Главным образом, этот материал предназначен для изучающих язык C. Но некоторые задачи потребуют пошевелиться и профессионалов в C, чтобы "не застаиваться" (как этюды для пианиста). Часть задач мне подбрасывали в разные годы те, кто изучали C (под моим ... кураторством, или каким другим образом), и борьба с частью таких задач вызывала азарт интереса.
Работа в процессе. Объём задач будет прирастать. Поэтому я даю ссылки на актуальные (последние) редакции текста и архива для скачивания, но ссылки будут обновляться и указывать на следующие редакции (можно видеть по номеру редакции в именах файлов).
И последнее ... почему "часть 1"? Потому что в работе находится такой же сборник, но по языку C++. Я являюсь последовательным сторонником точки зрения, рассматривающей язык C++ не как некоторое абсолютно автономное изобретение, а как надмножество языка C. И того, что изучать C++ лучше через изучение C с дальнейшим расширением до C++ (Существует другая, противоположная точка зрения). Так вот, "Задачи по программированию на языке C++" - это и будет часть 2.
Скачать свободно последнюю актуальную редакцию текста и архива кодов можно здесь:
Google: текст, архив кодов
Сейчас это редакция 23 от 12.01.2016, страниц 82.
Как и всё опубликованное ранее, этот текст и все сопутствующие ему материалы представляется под лицензией: Creative Commons Attribution ShareAlike (http://legalfoto.ru/licenzii/) ("общественное достояние"):
... допускается копирование, коммерческое использование произведения, создание его производных при чётком указании источника, но при том единственном ограничении, что при использовании или переработке разрешается применять результат только на условиях аналогичной лицензии.
Спектр задач достаточно широкий получается: начиная от простых (но не очевидных) вопросов (которые с подтекстом), и заканчивая задачами, написание решений которых могут потребовать 2-3 дня плотной работы. Главным образом, этот материал предназначен для изучающих язык C. Но некоторые задачи потребуют пошевелиться и профессионалов в C, чтобы "не застаиваться" (как этюды для пианиста). Часть задач мне подбрасывали в разные годы те, кто изучали C (под моим ... кураторством, или каким другим образом), и борьба с частью таких задач вызывала азарт интереса.
Работа в процессе. Объём задач будет прирастать. Поэтому я даю ссылки на актуальные (последние) редакции текста и архива для скачивания, но ссылки будут обновляться и указывать на следующие редакции (можно видеть по номеру редакции в именах файлов).
И последнее ... почему "часть 1"? Потому что в работе находится такой же сборник, но по языку C++. Я являюсь последовательным сторонником точки зрения, рассматривающей язык C++ не как некоторое абсолютно автономное изобретение, а как надмножество языка C. И того, что изучать C++ лучше через изучение C с дальнейшим расширением до C++ (Существует другая, противоположная точка зрения). Так вот, "Задачи по программированию на языке C++" - это и будет часть 2.
Скачать свободно последнюю актуальную редакцию текста и архива кодов можно здесь:
Google: текст, архив кодов
Сейчас это редакция 23 от 12.01.2016, страниц 82.
В отношении авторских прав повторю:
Ничто из представленого в этом тексте не заимствовано ни из каких источников (кроме, возможно, идей постановок некоторых задач). Все представленные варианты решений - авторские, со всеми возможными ошибками и неточностями.
Как и всё опубликованное ранее, этот текст и все сопутствующие ему материалы представляется под лицензией: Creative Commons Attribution ShareAlike (http://legalfoto.ru/licenzii/) ("общественное достояние"):
... допускается копирование, коммерческое использование произведения, создание его производных при чётком указании источника, но при том единственном ограничении, что при использовании или переработке разрешается применять результат только на условиях аналогичной лицензии.
вторник, 20 октября 2015 г.
Планирование параллельного исполнения в Go
О некоторых особенностях языка Go я уже писал здесь в блоге (Go конспект). Но одно из самых интересных мест Go - это как-раз то, как организуются параллельные ветви выполнения (и на различных процессорах в SMP). Утверждается, что после версии GoLang 1.1 (2012г.-2013г.) этот механизм Go-рутин радикально переделан, улучшен и сделан ещё существенно более эффективным, чем ранее.
Теперь используется алгоритм планирования с заимствованием работ (в оригинале даже "воровством работ", но в русскоязычной терминологии уже установился благозвучный термин заимствование). Обстоятельнейший (на 29 страниц) анализ самих принципов, на которых построен этот механизм, описан в Scheduling Multithreaded Computations by Work Stealing. Там же проведе сложнейший и детальный математический анализ производительности.
Коротко ("на пальцах") механизм описан в заметке The Go scheduler (by Daniel Morsing 30 June 2013). Это настолько интересно, что мной сделан перевод этой заметки, который вы можете найти на странице Диспетчер Go.
Утверждается (и это подтвердают эксперименты), что механизм Go-рутин (параллельного исполнения фрагментов кода) позволяет эффективно выполнять в параллель десятки, если не сотни, тысяч ветвей. К детальному рассмотрению этих механизмов ещё придётся не раз возвращаться.
Теперь используется алгоритм планирования с заимствованием работ (в оригинале даже "воровством работ", но в русскоязычной терминологии уже установился благозвучный термин заимствование). Обстоятельнейший (на 29 страниц) анализ самих принципов, на которых построен этот механизм, описан в Scheduling Multithreaded Computations by Work Stealing. Там же проведе сложнейший и детальный математический анализ производительности.
Коротко ("на пальцах") механизм описан в заметке The Go scheduler (by Daniel Morsing 30 June 2013). Это настолько интересно, что мной сделан перевод этой заметки, который вы можете найти на странице Диспетчер Go.
Утверждается (и это подтвердают эксперименты), что механизм Go-рутин (параллельного исполнения фрагментов кода) позволяет эффективно выполнять в параллель десятки, если не сотни, тысяч ветвей. К детальному рассмотрению этих механизмов ещё придётся не раз возвращаться.
4 способа писать в защищённую страницу
Паказанные в предыдщем сообщении несколько заметок, о внесении изменений в работу системных вызовов Linux, были готовы к сентябрю, но как-то руки не доходили разместить их здесь вовремя. За это время на Хабрахабр, где они были показаны, развернулось достаточно активное обсуждение ... но, главным образом, не обсуждение для достижения конструктивного результата, а из области любимой народной забавы "подбрасывание говна на вентилятор". Главным предметом обсуждений и сомнений стала необходимость записи в страницы оперативной памяти, отмеченные как защищённые от записи, и то, как это лучше сделать. Один из способов, которым я пользуюсь больше 10 лет, уже был показан в примерах кода к упоминаемым выше заметкам (да и в тексте есть об этом пара слов). Но предмет этот отдельно интересен, а в информационном пространстве есть целый ряд публикаций последних лет о том, как решать подобную задачу.
Перечислению, опробыванию и корректировке предлагаемых способов и посвящена очередная заметка "4 способа писать в защищённую страницу". Поскольку она не такая уж и маленькая (8 страниц), а, главное, требует для подтверждения предоставления подтверждающего кода, то я не вкопирываю текст сюда, а как и раньше просто даю ссылки где это всё можно взять.
Скачать текст можно здесь.
А код, соответственно, здесь.
Предмет действительно интересен для разработчиков драйверов Linux, и показан он здесь в качестве приглашения к обсуждению как это сделать лучше и наиболее безопасным способом (не безопасное исполнение в данном случае чревато серьёзными последствиями).
Перечислению, опробыванию и корректировке предлагаемых способов и посвящена очередная заметка "4 способа писать в защищённую страницу". Поскольку она не такая уж и маленькая (8 страниц), а, главное, требует для подтверждения предоставления подтверждающего кода, то я не вкопирываю текст сюда, а как и раньше просто даю ссылки где это всё можно взять.
Скачать текст можно здесь.
А код, соответственно, здесь.
Предмет действительно интересен для разработчиков драйверов Linux, и показан он здесь в качестве приглашения к обсуждению как это сделать лучше и наиболее безопасным способом (не безопасное исполнение в данном случае чревато серьёзными последствиями).
суббота, 17 октября 2015 г.
4 статьи о системных вызовах Linux
Статьи посвящены тому, как из модулей ядра (которые вы подгружаете динамически) могут изменяться или даже создаваться новые системные вызовы Linux в интересах вашего собственного проекта.
Статьи достаточно большие, чтобы их пересказывать. Кроме того, каждая из них содержит пример кода, который можно непосредственно перенести в свой проект. Поэтому я даю только ссылки, где всё это можно скачать совершенно свободно.
1. Делаем
доступным все символы ядра.
Здесь мы учимся использовать даже те символы ядра (функции, структуры данных), к которым разработчики ядра не считают нужными давать нам доступ. Это основа всего дальнейшего обсуждения.
Скачать здесь.
Это о том, как вы можете изменить стандартное поведение любого системного вызова Linux.
Скачать здесь.
Сетевые (сокетные) системные вызовы в Linux обрабатываются не так, как сотни прочих системных вызовов. Это достаточно мало известно.
Скачать здесь.
А это на тот случай, если вы захотите динамически добавлять новый системный вызов в Linux для своего целевого проекта.
Скачать здесь.
Код здесь.
среда, 25 февраля 2015 г.
Практикум по Linux Kernel (продолжение)
Результат той работы, которая была начата предыдущим сообщением, он как-то более-менее готов, т.е. пока затормозится на некоторое время в таком промежуточном состоянии.
Чтобы тем, кому это интересно, не дёргать код примеров и задач из достаточно хаотичного форума, здесь и сам текст, и коды примеров (к тексту), и задачи, и решения большинства задач - всё это собрано в текстовые файлы для чтения и архив кодов для прогонов.
Выкладываю ссылки на последние актуальные версии:
Номер последней редакции: 245
Размер файла текста: 1039294
Размер файла ответов задач: 67501
Размер архива кодов: 1001433
Дата обновления: 18 марта 2015
В обновлении редакции 245 сформулированы порядка 56 задач и вопросов по технике программирования модулей ядра, которые прямо не обсуждаются в тексте. Возможные варианты ответов (или указание на соответствующий каталог архива примеров) могут быть найдены в файле ответов.
Скачать свободно последнюю актуальную редакцию текста, архива кодов и ответов на задачи можете здесь:
Google: текст, архив кодов, варианты решений
Yandex: текст, архив кодов
Всё, что хотелось бы обсудить, уточнить, замечания и предожения по тексту, какие бы ещё примеры и задачи включить в рассмотрение - обсуждаем здесь: Linux изнутри.
P.S. Есть ещё один маленький ньюансик, связанный с программированием для ядра Linux: разработчики ядра не связаны никакими соглашениями, типа POSIX для пользовательского пространства. Поэтому, через 5-6 последовательных версий ядра, то, что компилировалось и работало, перестаёт даже компилироваться из-за ошибок (изменения в API). Такие случаи особенно заслуживают указания и обсуждения, чтобы внести изменения в код примеров.
Чтобы тем, кому это интересно, не дёргать код примеров и задач из достаточно хаотичного форума, здесь и сам текст, и коды примеров (к тексту), и задачи, и решения большинства задач - всё это собрано в текстовые файлы для чтения и архив кодов для прогонов.
Выкладываю ссылки на последние актуальные версии:
Номер последней редакции: 245
Размер файла текста: 1039294
Размер файла ответов задач: 67501
Размер архива кодов: 1001433
Дата обновления: 18 марта 2015
В обновлении редакции 245 сформулированы порядка 56 задач и вопросов по технике программирования модулей ядра, которые прямо не обсуждаются в тексте. Возможные варианты ответов (или указание на соответствующий каталог архива примеров) могут быть найдены в файле ответов.
Скачать свободно последнюю актуальную редакцию текста, архива кодов и ответов на задачи можете здесь:
Google: текст, архив кодов, варианты решений
Yandex: текст, архив кодов
Всё, что хотелось бы обсудить, уточнить, замечания и предожения по тексту, какие бы ещё примеры и задачи включить в рассмотрение - обсуждаем здесь: Linux изнутри.
P.S. Есть ещё один маленький ньюансик, связанный с программированием для ядра Linux: разработчики ядра не связаны никакими соглашениями, типа POSIX для пользовательского пространства. Поэтому, через 5-6 последовательных версий ядра, то, что компилировалось и работало, перестаёт даже компилироваться из-за ошибок (изменения в API). Такие случаи особенно заслуживают указания и обсуждения, чтобы внести изменения в код примеров.
четверг, 5 февраля 2015 г.
Практикум по Linux Kernel
Я начал составлять (не важно для каких целей) набор вопросов и задач, относящихся к Linux Kernel и программированию модулей ядра в Linux.
Спектр задач там очень широкий получается: начиная от простейших вопросов, но которые с подтекстом, но разобраться с ними требуется 15 минут - и заканчивая задачами написания реальных драйверов (упрощённых, естественно, насколько можно), которые могут потребовать 2-3 дня плотной работы.
Если кого интересует этот предмет - присоединяйтесь к обсуждению. Найти его можно на форуме Linux, вот здесь: практикум по Linux Kernel
Работа только в самом начале. Объём примеров и задач будет прирастать...
Пока что, если у кого-то возникнет интерес "а как сделать нечто?" - формулируйте, и это станет очередной задачей, и найдёт своё решение.
Спектр задач там очень широкий получается: начиная от простейших вопросов, но которые с подтекстом, но разобраться с ними требуется 15 минут - и заканчивая задачами написания реальных драйверов (упрощённых, естественно, насколько можно), которые могут потребовать 2-3 дня плотной работы.
Если кого интересует этот предмет - присоединяйтесь к обсуждению. Найти его можно на форуме Linux, вот здесь: практикум по Linux Kernel
Работа только в самом начале. Объём примеров и задач будет прирастать...
Пока что, если у кого-то возникнет интерес "а как сделать нечто?" - формулируйте, и это станет очередной задачей, и найдёт своё решение.
Подписаться на:
Сообщения (Atom)