Статьи, которые добавил Freddy:

VFS. Виртуальная файловая система. Часть 1


VFS. Виртуальная файловая система. Часть 2
Общий краткий обзорВиртуальная файловая система (VFS) - это подсистема в Линуксе, прослойка, благодаря которой системные вызовы, такие как open, read, write работают одинаково, независимо от того, как реализована конкретная файловая система, будь то ФС на жёстком диске, на носителе (CD, DVD, дискеты и т. д.), в оперативной памяти, сетевая ФС и так далее. VFS определяет интерфейс, который должны реализовать конкретные файловые системы, чтобы работать в Линуксе. Благодаря такой обобщённости, казалось бы разные файловые системы могут сосуществовать вместе. К примеру, в Линуксе всегда существует корневая ФС типа rootfs ("/"), а в её поддиректории /home может быть смонтирована...
Продолжить

Рейтинг:  4  (За: 4 | Против: 0)
Добавил: Ginosaji

Комментарии (4)

VFS. Виртуальная файловая система. Часть 2


VFS. Виртуальная файловая система. Часть 1
dentryКак уже говорил, что каталоги представляются так же, как и файлы. В имени пути /bin/bash, и элемент bin, и элемент bash — это файлы, только bin — это специальный файл, который является каталогом, a bash — это обычный файл. Объекты inode служат для представления обоих этих компонентов. Несмотря на такую полезную унификацию, VFS также необходимо выполнять операции, специфичные для каталогов, такие как поиск компонента пути по его имени, проверка того, что указанный элемент пути существует, и переход на следующий компонент пути.
Для решения этой задачи в VFS реализована концепция элемента каталога (directory entry или dentry). dentry — это определенный...
Продолжить

Рейтинг:  5  (За: 5 | Против: 0)
Добавил: Ginosaji

Комментарии (4)

Mockito и Behavior Driven Development


Когда разработчик только начинает изучать принципы тестирования, он, как правило, знакомится в первую очередь с тестированием, основывающемся на проверке данных. То есть, чтобы протестировать функцию сложения чисел разработчик пишет, например, такой тест: “Заданы числа 2 и 3, в качестве результата ожидается 5”, и по тому, выполнилось ли это утверждение или нет, он делает вывод о верной или неверной реализации тестируемой функции.
Такой подход хорошо работает, когда код достаточно прост, результат предсказуем, и его проверка не займёт относительно много времени. Но на практике часто функции сложные, тяжело покрыть тестами каждый возможный исход, либо подготовка исходных или проверка конечных данных для теста занимает много времени. Можно, конечно, подумать: “Это сложно тестировать...
Продолжить

Рейтинг:  8  (За: 8 | Против: 0)
Добавил: Freddy

Комментарии (32)

container_of подробно


http://annimon.com/code/?act=comm&id=4693 Поскольку возникли вопросы, как эта магия работает, разберём макрос подробнее.

task.png
Итак, есть задача: зная адрес вложенной структуры child (на рисунке выделен светло-зелёным оттенком, так я обозначаю известный адрес), нужно получить адрес структуры parent (выделено цветом, близким к оранжевому, неизвестный адрес), содержащей child. Можно было бы хранить указать на parent в child, но есть несколько проблем. Для примера были даны простейшие структуры, но в реальных задачах структуры могут содержать много элементов и хуже, если есть полный (или почти полный) граф указателей между ними, тогда можно запросто забыть проинициализировать указатель во вложенной структуре на структуру-контейнер, тем более когда вложенных структур...
Продолжить

Рейтинг:  6  (За: 6 | Против: 0)
Добавил: Freddy

Комментарии (9)

ThreadPoolExecutor в Java ME


Для выполнения асинхронного кода программисту приходится создавать новый поток и переопределять метод run. Но что будет, если мы захотим выполнить 10, 100, 1000 задач? В этом случае на каждую задачу будет создан новый поток, и всё больше и больше времени система будет не на выполнение каждой задачи непосредственно, а на создание и уничтожение потоков и на переключение между ними, и таким образом мы можем потерять в производительности приложения даже больше, чем однопоточный вариант программы.
Чтобы избежать подобной проблемы, используется следующая идея: пусть некий объект создаст за нас некоторое количество потоков и хранит очередь задач, Любой свободный в данный момент времени поток извлекает из очереди задачу и исполняет её; во время выполнения задачи поток считается занятым, а после завершения...
Продолжить

Рейтинг:  9  (За: 10 | Против: 1)
Добавил: Freddy

Комментарии (19)
Всего: 5
Категории


Пожертвования

Аноним2800 р.
Freddy1700 р.
NaruTrey800 р.
vlavolk522 р.
mr-demiurg200 р.
  © aNNiMON (Melnik Software)
 
Яндекс.Метрика