В наборе инструментов General MIDI принято иметь специальные инструменты, называемые «Drum Set». Они отличаются от обычных инструментов тем, что имеют отдельный звук (сэмпл) на каждую ноту. Например вот так.
Отличие в том, что классические ОС позволяют пользовательским процессам манипулировать регистрами процессора напрямую, а также используют больше особенностей архитектуры (всё, что связано с переключением задач и защитой памяти).
Можно придумать и ручное управление памятью для managed языков, например инвалидировать указатели и выполнять проверки в момент free (а если язык хорошо поддаётся статическому анализу, то можно проверки и опустить). А ещё можно съесть много памяти и отложить GC «на потом». Privilege escalation возможен и в случае обнаружения ошибок в процессоре — хотя, конечно же, это гораздо менее вероятное событие.
Если все приложения написаны на неком managed языке, то ОС контролирует все указатели. Т.е. можно, например, взять и внезапно сделать COW на всю память — заменить указатели на настоящую память другими, обращение к которым будет вызывать исключение, обрабатываемое ядром (которое будет копировать старые блоки памяти). После этого можно спокойно записать все старые блоки на диск (приложения теперь не могут портить память, которая уже записалась). А потом наложить изменённую память и высвободить ненужные старые блоки (в случае их полной замены новой версией). Остаётся проблема с сохранением целостности данных во время изменения состояния самим приложением, то тут можно поступить так же, как в современных РСУБД — ввести понятие транзакции (которые тоже можно реализовать через COW).
> Опять-таки непонятно, как хранятся снепшоты памяти на диске, если нет файловой системы.
Это можно сделать, например, так же, как в Линуксе (mkswap). Хотя swapfs и можно назвать файловой системой, но файлов там нет :)
> Отсутствие файловой системы с хранением всех файлов в памяти, с передачей их между процессами — это мне кажется еще большим бредом. Как эти процессы будут взаимодействовать с имеющимися накопителями данных?
> И тем более непонятно, откуда берутся программы, чтобы их запускать.
Можно написать программу (инсталлятор), которая умеет читать файловые системы на внешних носителях, вытаскивать оттуда байт-код программ и загружать его в память. Если такая программа будет находится в системе сразу после установки, то пользователю будет откуда брать программы, чтобы их запускать.
> Для этого все равно придется реализовывать нечто (модуль, процесс, драйвер — не знаю, как в этой операционке оно будет назыаться) для работы с файловой системой.
Это значит, что это нечто можно будет легко выгрузить/обновить/загрузить обратно. Если в этой реализации драйвера ФС будет допущена ошибка, то это не приведёт к фатальным последствиям, как в «обычных» ОС.
Попробовал воспользоваться ссылками и посчитать оптимальный тариф для себя по детализации за 3 месяца, но обнаружил, что все эти сервисы не учитывают того, что мой текущий тариф включает в себя абонентскую плату.
Это гигабитный свитч, который заставили работать с VLANами. Вряд ли он пассивный и хаб — ему нужно питание, он читает ethernet-заголовки, хранит ARP-таблицу и даже умеет управляться по I²C.
На восьмибитные микроконтроллеры прекрасно влезает веб-сервер. А для кейлоггера и вовсе не нужен TCP — можно использовать UDP, либо ICMP. В случае PPPoE и прочих (нешифрованных) туннелей можно паразитировать на существующем трафике, модифицируя его — для этого достаточно иметь таблицу заголовков, позволяющих эти туннели опознавать и править чексуммы пакетов.
Чтобы узнать, как называется нужная команда, можно сделать apropos.
uname — UNIX name; which — which binary would be executed if you type "..."?
Пароли и до сих пор могут лежать в /etc/passwd (более того, на embedded устройствах они часто лежат именно там). Воспринимайте «x» в парольном поле /etc/passwd как ссылку на /etc/shadow, как будто кто-то стёр его оттуда и перенёс в другой файл для безопасности.
Конечно, многие вещи не очевидны, а интерфейсы программ (опции, форматы входных данных) совершенно разные. Но решив эти проблемы мы получим другую крайность — сравните ps и grep с Get-Process и Select-String.
Это можно сделать, например, так же, как в Линуксе (mkswap). Хотя swapfs и можно назвать файловой системой, но файлов там нет :)
> Отсутствие файловой системы с хранением всех файлов в памяти, с передачей их между процессами — это мне кажется еще большим бредом. Как эти процессы будут взаимодействовать с имеющимися накопителями данных?
> И тем более непонятно, откуда берутся программы, чтобы их запускать.
Можно написать программу (инсталлятор), которая умеет читать файловые системы на внешних носителях, вытаскивать оттуда байт-код программ и загружать его в память. Если такая программа будет находится в системе сразу после установки, то пользователю будет откуда брать программы, чтобы их запускать.
> Для этого все равно придется реализовывать нечто (модуль, процесс, драйвер — не знаю, как в этой операционке оно будет назыаться) для работы с файловой системой.
Это значит, что это нечто можно будет легко выгрузить/обновить/загрузить обратно. Если в этой реализации драйвера ФС будет допущена ошибка, то это не приведёт к фатальным последствиям, как в «обычных» ОС.
uname — UNIX name;
which — which binary would be executed if you type "..."?
Пароли и до сих пор могут лежать в /etc/passwd (более того, на embedded устройствах они часто лежат именно там). Воспринимайте «x» в парольном поле /etc/passwd как ссылку на /etc/shadow, как будто кто-то стёр его оттуда и перенёс в другой файл для безопасности.
Конечно, многие вещи не очевидны, а интерфейсы программ (опции, форматы входных данных) совершенно разные. Но решив эти проблемы мы получим другую крайность — сравните ps и grep с Get-Process и Select-String.
Unable to connect to your database server using the provided settings.