LINUX.ORG.RU

Избранные сообщения burial

Похоже, микроядра прокляты

Форум — Talks

Гугл сокращает порядка 400 разработчиков фуксии, это 16% от всех

https://www.opennet.ru/opennews/art.shtml?num=58528

Фуксия это микроядерная ос, которая должна похоронить андроид, но пока работает только на фоторамках

 , , ,

alex1101
()

Теория почему сжатие данных дальше сокращения избыточности возможно

Форум — Development

В своей основе вопрос сжатия это принцип Дирихле: вот у нас строки большого размера, их больше, вот у нас строки меньшего размера, их соответственно меньше. количество клеток не совпадает с количеством голубей, ничего не получается, все расходимся? А вот и нет, можно добиться равенства, причем двумя путями: или меньше голубей, или больше клеток.

1)меньше голубей: Вот у нас множество всех строк, или файлов - вопрос интерпретации, длинны N. Мощность такого множество соответственно 2^N. Теперь посмотрим на множество всех строк длин (N-1) и (N-2) и…(1). Мощность этого множество будет ∑2^N, где N от (N-1) до (1), и равно это 2^N-2. Сравниваем мощности множеств, первое больше на два элемента. Ну а теперь финт ушами - мы просто берем и выкидываем два элемента из первого множества, для удобства это строки состоящие только из 0 или 1. И опаньки, биекция, если не верите можете прям на бумажке нарисовать и сравнить. И что получили в итоге? Получили что любую, кроме двух, строк можно переписать в виде минимум на один бит короче. Убрали бы больше элементов, сократили бы еще сильнее, это просто самый простой вариант.

2)больше клеток: Возьмем множество всех строк длинны от N до 1. Зададим функцию F(n), и обратную ей G(n), которая берет на вход один элемент и выдает другой. Во общем то все. F(n) функция абсолютно арбитрарная, просто применяешь F(n) несколько раз, пока нужный результат не получишь и все. Другое дело что хотелось бы побыстрее, поэтому -

2.1)столько же клеток, но в другом порядке: Вот возьмем множество всех строк размера N и упорядочим его следующим образом. Для этого мы берем функцию X(n), делает она следующие - берет бинарную строку и возвращает натуральное число от 1 до 2^N. Как она должна его считать честно не знаю, но она должна делать что-то приблизительно следующие: строим бинарное дерево(?) сравнений, сначала сравниваем половинки строки друг с другом. потом четвертинки, и вот тут уже не знаю, нужно ли сравнивать каждую с каждой или хватит сравнений 1 к 2, и 3 к 4. потом осьмушки итд. в конце сравниваем соседние биты, вот тут каждый с каждым точно лишнее. Потом переводим эти сравнения в значения с весами, например строки в которых есть повторения половинок должны быть ниже чем те у которых повторяются четвертинки, а те у которых нет повторений ни четвертинок ни половинок должны стоять выше, ближе к началу, к числу 1. Потом делаем над этими значениями некие операции и ВЖУХ! получаем натуральное число, он же порядковый номер. К примеру если N=8, то строка 11111111 должна иметь номер 256, строка 00000000 номер 255, строка 11111110 номер 254 итд. Вот что это за ВЖУХ! и нужно выяснить. Сначала я думал что можно просто обойтись тем что можно представить строку как число сочетаний из количества единиц по N, и все сочетания, где количество единиц приближается к половине длинны, просто поставить спереди, но потом прикинул что например строка 00001111 при таком подходе будет стоять выше чем строка 00101001, а это фатальный недостаток. Ну вот, допустим выясняли как ВЖУХ! выглядит, нашли порядковый номер в упорядоченном по повторениям списке. А теперь просто подставляем вместо этой строки другую строку с тем же номером, но в списке упорядоченном просто лексикографически. Ну а дальше например отправляешь данную строку в метод 1).

Остается только реализовать это все в софте. А вот это я не умею. Может кто-нибудь напишет?

 , ,

q250
()

Использование времени прибытия данных для их кодирования

Форум — Development

Решил не мелочиться, и продолжить парад хороших идей. В этот раз мы разбираем модель передачи данных позволяющую их сжимать. Суть метода в заглавии: нам интересны не только сами данные но и время их прибытия, и в зависимости от времени их кодирование будет меняться. Для лучшего понимания смотрим на пример с картиночки:

https://imgur.com/a/aDnPMUF

Рассмотрена простейшая модель сети. Есть сервер, к серверу подключены два клиента, клиенты не сообщаются друг с другом. В некий момент времени сервер начинает передавать одинаковые данные своим клиентам. Ширина канала по сути 2бита в сек. Как бы сервер передавал без схемы сжатия? Просто бы поделил канал на количество клиентов и подал все как есть. Конкретно для этой последовательности 16 бит: каждый клиент получает 16 бит за 16 секунд, общее количество переданных данных 32 бита. А теперь представим что у клиентов есть таблица перевода, допустим её когда-то передали им отдельно. Тогда, смотрим на картиночку, получается что используя подобную схему кодирования каждый клиент получает 8 бит за 9 секунд, а общее количество переданных данных будет 16 бита. Данная схема не самая оптимальная, самая передала бы за 8 сек. Оптимальность таблицы зависит от самих данных, строятся оптимальные таблицы обратным образом, просто прикидываешь что в какую секунду и кому должно было передаться. Ну это по времени оптимальное, если оптимизировать по общему количеству переданных бит для данной последовательности то получиться: передано 2 бита, по биту на каждого, за где-то в районе 2^16 секунд. Почему это работает: мы передаем одни и те же данные в одно и то же время, а это избыточно, и её можно сократить

Ну что, как идея? Не у кого нет желания разработать теорию полностью, для любой ширины канала и любого количества клиентов? Я этого делать не буду, ибо мне не платят и Phd защищать мне тоже не нужно.

Кстати, факт из разряда очевидного-невероятного: для передачи\обработки высокого сигнала «1» нужно больше энергии чем для низкого «0». Буквально можно проверить, взять и забить всю оперативку в одном случае нулями а в другом единицами и сравнить энергопотребление.

 , , , ,

q250
()

велосипедим физику

Галерея — Скриншоты

на скриншоте мой велосипед для рассчёта разряда в канале ионного двигателя с анодным слоем. будет время — приведу код в презентабельный вид и выложу на сырцфордж. а пока просто делаю рассчёты и пытаюсь разобраться как геометрия анода влияет на устойчивость разряда. в остальном — обычный icewm и zsh и бубунта 12.04.

 ,

thunar
()

Считаем плазму

Галерея — Скриншоты

На фоне в ssh крутится самописная (c++/openmp) программа для расчёта горения разряда в холловском двигателе в аксиально-азимутальном приближении. На графиках — нарисованная с помощью matplotlib визуализация градиентно-дрейфовой неустойчивости. Эта неустойчивость возникает при сравнительно небольших концентрациях плазмы и в отсутствие столкновений. В результате, азимутальная симметрия разряда нарушается, а электроны формируют вихри и ненулевой ток в сторону анода. В целом, это похоже на формирование сгустков в магнетронах. При большой концентрации плазмы (и наличии столкновений) вихри разрушаются, но возбуждаются более короткие ионно-звуковые волны.

В остальном, обычный Debian8.1 с Xfce4; на числодробилке — ScientificLinux6.1.

 , , ,

thunar
()

systemd и upstart ~= linux и minix

Форум — Talks

Да, собственно, в заголовке все сказано.

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

Кстати, вы знаете, что одним из аргументов Таненбаума была непортируемость Linux на другие архитектуры? Ничего не напоминает?

Да и стратегия «все рядом с PID 1» против «минимальный init» напоминает срач про монолитность против микроядерности.

За сим предлагаю ввести понятие «linux-way» и бить systemd-хейтеров палками.

 , , ,

derlafff
()

А как там Minix поживает?

Форум — Talks

Есть ли на форумчане использующие minix 3? Стоит ли установить посмотреть? Как там с поддержкой железа обстоит?

 

int13h
()

Горение от libc в Minix

Форум — Development

Код:

#define TEST_SPEED_FABS_LOOPS  ((U32_MAX >> 3) + bxi_randu8())

static void check_fabs_speed(void)
{
    u32 i;
    f64 iterator = 1.1;
    f64 value    = 0.0;
    f64 sum_org   = 0;
    f64 sum_new   = 0;
    u32 loops = TEST_SPEED_FABS_LOOPS;

    test_time_start();
    {
        for (i = 0; i < loops; i++)
        {
            iterator *= -1.5;
            value    += iterator;
            sum_org  += fabs(value - 50.0);
            if (value > 1e8)
                value = 0.0;
            if (iterator > 1e8)
                iterator = 1.1;
        }
    }
    test_time_finish();
    test_time_print("fabs");

    iterator = 1.1;
    value    = 0.0;
    test_time_start();
    {
        for (i = 0; i < loops; i++)
        {
            iterator *= -1.5;
            value    += iterator;
            sum_new  += bxi_fabs(value - 50.0);
            if (value > 1e8)
                value = 0.0;
            if (iterator > 1e8)
                iterator = 1.1;
        }
    }
    test_time_finish();
    test_time_print("bxi_fabs");

    printf("%f\n%f\n", sum_org, sum_new);

    if (sum_org != sum_new)
        test_failed();
}
+ rand добавлен для того, чтобы компилятор это не свернул в `mov eax 24355184302566256`.

Суть кода - проверяет скорость и точность самописного fabs. Два блока кода почти идентичны, за исключением имени функции. Запускаем на Ubuntu 16.04, libc-2.23, x86_64:

24355184302566256.000000
24355184302566256.000000
То есть функция работает точно, различия только в скорости. Теперь переносим это на машину с Minix, libc-12-187, x86:
24355184305680488.000000
24355184302566256.000000
А теперь собственно, вопрос - А КАКОГО ФИГА? Первое число - сумма вычисленная системным fabs. Самописный посчитал одинаково на обоих платформах. Что там можно было сделать не так? Там нет математических вычислений, fabs(x) = |x|! Там 2 условия должно быть:
if (isnan(x)) return -x; 
return x > 0 ? x : -x;

В общем у меня подгорает - автоматические тесты фейлятся, система говорит что я дурак, а баг на самом деле в разработчиках Minix.

Что делать? Как это решить? Почему разный результат?

 , ,

PPP328
()

Suckless

Галерея — Скриншоты
  • dwm
  • st
  • nvim

Вроде бы всё

 , , ,

rk-d
()

Переход с Linux на FreeBSD. Успех, но...

Галерея — Скриншоты

Этот небольшой пост не порадует вас обилием картинок, он скорее объявление о намерениях.

Под новый год сдох последний SSD в рейде, и я наконец перешел с Oracle Linux 6 (с 2013 года) на FreeBSD (да, у меня много времени). И вот хочу бороться с мифами на форуме и всеми этими постами «стоит ли переходить», а «какого цвета трава по вашу сторону забора» и т.д. Обычно на эти вопросы отвечают фанаты FreeBSD, а я предлагаю ниже краткое описание от линуксоида. Посвящено оно в основном звуку. Это при том, что я уже два года пробую FreeBSD на личных серверах.

Сначала о постановке целей.

1) Недостижимый идеал темы выглядит вот так https://www.gnome-look.org/p/1120849/ Недостижим он по той причине, что исходники иконок в SVG недоступны, а темы QT и GTK изрядно переписаны в сторону метросексуальности. Так что пока скриншот только с консолью.

2) Основные требования к софту:

2.0 стабильность
2.1 Urxvt/bash/mc
2.2 Google Chrome
2.3 Thunderbird
2.4 VirtualBox
2.5 rtorrent/mplayer (mpv/moc)
2.6 LibreOffice
2.7 Контейнерная виртуализация.

3) Основные требования к ОС:

3.0 мышь и клавиатура
3.1 Firewall, маркировка по портами, маршрутизация вместе с NAT.
3.2 No Pottering, No pulseaudio, No systemd, No gstreamer, No avahi
3.3 FS live snapshots. Не ZFS.
3.4 nvidia proprietary driver
3.5 PA like functionality.

--------------
Реальность:
2.0 Во-первых, надо полностью развеять миф о бОльшей стабильности FreeBSD по сравнению с Linux. За время своего знакомства я наступил на кернел паник в стабильном, ванильном, оттестированом и т.д. выпуске, сегфолт пакетного менеджера (знаю, как повторить), сегфолт утилиты из базы (jails, зафиксировано в багтреке), сегфолт fsck (зафиксировано в багтрекере). И нет в шестом редхате такого не было, а с манжаро, арчами, федорами и гентами сравнивать не берусь, там все бывает. Во-вторых, везде кода меньше, система легче. Порядка немного больше. Это что касается базы. В прикладном софте примерно также.

2.1 bash. Я держу набор .bashrc файлов для всего набора линуксов, с которыми сталкивался, чтобы унифицировать поведение в консоли. Ес-но, FreeBSD отличается сильнее, консольные утилиты просто менее функциональны, дурацкое требование слеша на конце при использовании cp -r dir1/ dir2... Поэтому я просто заинсталировал все, что было в репозиториях из гнутого консольного софта и обмотал это альясами. Жить можно и даже неплохо. Из неудобного: все пути длинее, т.к. /usr/local/, блин:( Из странного каждый терминал считается залогиненым юзером в w. Это очень странно.

2.2 Google Chrome. Поломано определение Memory Footprint в Task Manager. Теперь не прибъешь вкладки, которые много отожрали. Хотя кто-то мне доказывал со скриншотами, что это только у меня. хз.

2.3 Thunderbird + (все также)

2.4 VirtualBox - отсутствует коммерческий пак от оракла, стало быть не работает быстрое USB2.0 (буду пробовать прокидывать контроллер) и не работает RDP (не решаемо). Проблемы со звуком, см. ниже.

2.5 mplayer - проблемы со звуком. см. ниже.

2.6 LibreOffice - от RH GTK не избавишься, т.к. программисты с freedesktop хуже поддерживают qt, чем gtk. на QT поломан размер шрифтов. неюзабельно.

2.7 контейнеры jails. Это то, к чему я привык во времена OpenVZ. Все есть, все хорошо. Но рестарт контейнера возможен только через минуту-две. Не освобождает ресурсы. Досадный глюк.

3.0 Из того, что работало на Linux десятилетней давности, но перестало на FreeBSD - это мышь и клава. У FreeBSD традиционно сложные отношения с определением устройств. Они не могу определиться, развивать свое или копировать с линукса udev. В итоге они делают и то, и то и в результате по-умолчанию нифига не работает, конфигурация Xorg'a превращается в разбор внутренней кухни этих заморочек. Плюс они что-то там намудрили, что мультимедийные кнопки на клаве - это как бы отдельная клавиатура (которая не работает). И в добавок, эти мультимедийные клавиши просто не могут работать, т.к. для них указаны ошибочные кейкоды в каком-то махровом году. Два года назад я это выяснил и пропатчил демон, который их определяет. Руки дойдут - сделаю снова.

Почему не определился Genius MX Master, я пока так и не понял, воткнул самую простую USB мышь.

3.1 Firewall - самая грустная часть FreeBSD:( При том, что он существует в трех(!) инкарнациях, они все глубоко в *опе. ipfw - основной и самый функциональный, застрял в середине 90х. Документации просто недостаточно. Сложные штуки с маркировкой трафика по портам и натами на нем невозможно выполнить. pf - устаревшая версия из OpenBSD. сама OpenBSD ее уже выкинула. и также с соляровским вариантом. Солярис тоже его давно выкинул в пользу OpenBSDшного. И хуже всего то, что внутриядерная часть фвола очень простая. Все пакеты падают в одно ведро, там перемешиваются и по факту невозможно их сепарировать. Короче говоря, я пытался три раза хотя бы спародировать какие-то простые места из своей огромной портянки iptables и все это заканчивалось ненавистью и фрустрацией. Так что придется просто поднимать виртуальную машину со старым Linux+iptables.

3.2 No Pottering, No pulseaudio, No systemd, No gstreamer, No avahi - тут полный успех. Но только, если собирать из портов.

3.4 live snapshots. Я говорю об аналоге lvm на линуксе. Я уже много лет использую эту схему, чтобы очень эффективно бекапить террабайты данных. В отличие от всех этих поделок с tar, которые приносят сюда ньюфаги, такая схема позволяет бекапить шифрованные данные, много, не выключая систему, а ZFS на сервере еще и позволяет всем этим свободно манипулировать. Очень круто. Я не знаю, появились ли в Linux offline snapshots, но лучше ZFS я тут ничего не видел.

У меня получилось собрать полный аналог слоеного пирога encryption layer+volume manager+fs. FreeBSD традиционно использует fs soft updates вместо журналирования. В чем принципиальная разница так и не понял, ну и ладно. Просто пришлось отказаться от soft update, включить журналирование посредством geom, словить баг в gjournal, зарапортовать, подождать два года. По-моему он пофикшен, но так ко мне и не прилетел. Но работает.

Вроде

Потому что в первую же ночь система стала колом с ошибками в журнал при распаковке архива!

Я уже хотел спустить это все в мусорку, когда случайно нашел пару sysctl сетингов, которые это решают. Ни в каких хваленых фрибздешных хендбуках вы это, конечно, не найдете. FreeBSD с одной стороны не имеет адекватных для современного оборудования лимитов по-умолчанию, а с другой хаутушек, чтобы это фиксить, поэтому этим всем можно заниматься только, если вот вам прямо хочется FreeBSD и вы такой весь олдфаг и готовы читать мейл-листы.

Короче, неожиданный успех. Если кому интересно, почему я не использую здесь ZFS, спросите меня.

3.4 FreeBSD - это единственная ОС из других *BSD с проприетарными драйверами. Полный успех.

3.5 PA like functionality. Да, это большая тема, в которой я к тому же понимаю слабо. Я использую USB-звуковуху, которая пригодна для записи звука и может работать с повышенной дискретизацией или что-то типа того. Считается, что FreeBSD изначально имела более качественный аудио-стек, чем Linux. И судя по количеству и качеству ручек, я в это верю. Такое впечатление, что инженеры, которые это писали, увлекались аудиозаписью. А вот сохранять уровни громкости для приложений она не может:( Поэтому ей нужна надстройка, аналог PA - sndiod.

Естественно, FreeBSD развивается очень медленно, а на линуксе тем временем тяп-ляп глючный пульсаудио. Сейчас к 15ой версии он, наверное, уже не доставляет столько гемороя, и в нем море фич. Я исторически использовал PA 8.0. Звук в VirtualBox заикался. Глючило при разных уровнях громкости для каналов. Рестарт пульсаудио - часть моего воркфлоу с 2013 года, но регулятор громкости для приложений - это прикольно и не имеет аналогов во FreeBSD.

Во FreeBSD нас встречает утилита в 10 раз меньше. Она не требует портянок конфигов, в ней нет блютуса и еще каких-то новомодных штук. Но она тут же сделала все, что мне нужно. Она принимает поток по tcp. Она объединяет каналы в моно, как мне нужно. Она выставляет нужную частоту дискретизации. Первое, что я заметил звук стал чище. Как будто новую аудиокарту взял. Очень круто.
Но
Но теперь звук в mplayer заикается при нагрузке на диск! Я не понимаю, это баг системы или конкретного софта. Вроде напрямую в OSS не заикается. Но так мне не надо.

VirtualBox теперь играет звук чисто. Но недолго. Он не может выводить в sndio, отправляет в OSS и скоро затыкается.

На этом со звуком все.

 , , ,

crypt
()

Как правильно «слезть» со скомпрометированной системы?

Форум — Security

Сразу оговорюсь, для начала, что я не специалист в компьютерной безопасности и в GNU/Linux. Единственной ОС на ноутбуке Линукс стал два года назад.

Недавно я задался вопросом, а так ли все безопасно на моем ноутбуке. Я не настолько профан, чтобы чувствовать себя в безопасности, просто осознавая, что «стоит линукс, вирусов под него почти нет, это же не дырявое корыто от Майкрософт». Отчасти потому, что имел неприятное общение с сотрудниками ЦПЭ и ФСБ. Также был осужден, тоже благодаря им, но это другая история. Сейчас я живу в другой стране, не занимаюсь никакой деятельностью, которая подпадает под криминал. Но при этом, абсолютно понимаю, что внимание может быть и вне факта совершения различных преступлений или намерений их совершить.

Посему, в ущерб праздному просмотру фильмов и прочей прокрастинации, я взял, да и прогнал анализ системы rkhunter'ом и lynis. Получив невнятный, с первого взгляда, набор варнингов и прочих отчетностей, я задумался (особенно после того, как rkhunter сообщил о восьми возможных руткитах), о том как же хоть немного себя обезопасить. Собственно вопрос:

Посоветуйте порядок действий, при котором, можно будет сохранить большую часть личных данных и переустановить систему. Вот какой алгоритм я себе представляю (пардон заранее за, может быть, излишнюю наивность):

  • Хочу часть своих данных сохранить в облаке.
  • Переустановить систему.
  • Выполнить минимальные меры по безопасности (по-дилетантски - найти статью, где описывается данный процесс и повторить).
  • Потом сменить все учетки на сайтах, начиная с почтовых ящиков.

Но тут же вопрос, насколько безопасно можно это сделать из возможно скомпрометированной системы? Начиная с закачки образа дистрибутива (гарантирует ли сверка контольных сумм безопасность в полной мере) и создания загрузочной флешки.

С благодарностью приму от вас полезные рекомендации.

 ,

bluerose
()

Расскажите, пожалуйста, как отключают Minix

Форум — Admin

 

Einstok_Fair
()

Как компилировать на Minix?

Форум — Development

Я поставил на виртуалку Minix 3.3.0, скачал Clang, а он мне пишет, что файл ld не найден. Как мне это исправить?

 , , ,

Anatoloy6463
()

MINIX3 сдох, пока неофициально

Форум — Talks

Там это, в узких кругах ограниченных людей обсуждают как MINIX3 сдох: никаких новостей с 2016 года, никаких комитов с 2018.

https://news.ycombinator.com/item?id=26451540

Помянем.

 , ,

Camel
()

linux-0.01 скомпилированный в minix-386 и запущенный в эмуляторе 86box

Галерея — Скриншоты

Я люблю старые программы, мне нравится их изучать и смотреть как они развивались, и во что они сейчас превратились или умерли так и не дожив до современных дней. И по той же самой причине, мне нравится смотреть различных авторов Youtube каналов посвященные ретро тематике в котором авторы рассказывают о корнях программ, игр, приставок или старых компьютерах. И на волне этого, мне захотелось попробовать собрать и запустить, что-то относительно старое, но которое живет и развивается до сих пор. Мой выбор пал на первую версию Linux, версии 0.01.

Те кто знаком с историй создания Linux и её ранних дней, знают, что она писалась Линусом Торвальдсом на 386 машине на которой работала пропатченнная версия Minix 1.5. И не смотря на, то, что есть проект (и не один) позволяющий скомпилировать linux-0.01 на современных версия компиляторов мне же хотелось побыть немного в шкуре самого Линуса и самому собрать ядро в ее родной среде, а именно в Minix и древними версиями GCC.

Те, что интересуется подобной историей (да или просто пользуются гуглом), знают, что такое уже проделывали многократно (посмотрите хотя бы сайт oldlinux.org), но я хотел сделать это всё сам. И вот вооружись энтузиазмом, эмулятором 86Box, старыми версия ПО (многие их которых взяты с вышеупомянутого сайта), а главное ядра Linux, я пошел по стопам Линуса, ну или почти по стопам… :)

Первым делом необходимо было установить классический 16-битный Minix 1.5.10 (верхний левый скрин). При наличии дистрибутива (17 дискет), а также Reference Manual делается это не сложно. Просто необходимо внимательно читать manual Танненбаумана. Единственное замечание по установке в эмуляторе 86Box, так это то, что необходимо в настройках эмулятора (и BIOS) выставить тип 360к для 5 1/4 дисковода, иначе Minix сможет грузится с загрузочной дискеты, но root’овую уже не увидет.

Далее необходимо очень внимательно следовать прекраснейшему руководству от Джона Наллома по превращению в minix-386. На этом этапе каких-либо подводных камней нет (опять же внимательно читаем), единственное необходимо установить тип 1.2M для 5 1/4 дисковода. Также необходимо будет перекомпилировать все бинарные файлы в /bin и /usr/bin. В самом руководстве Джон компилирует только часть их них (сам Брюс Эванс в README на bcc писал, что достаточно только sh :) ). Я же перекомпилировал почти всё.

Затем качаем и ставим готовый компилятор GCC 1.37.1 от Alan W Black’а. Нужно как минимум 3 архива с самим gcc, библиотеками и заголовочными файлами. Главное, ОБЯЗАТЕЛЬНО, необходимо пропатчить ядро Minix (kernel) иначе при компиляции ядра Linux, получите сообщение, что-то типа fp stack overflow.

Ну и под финал всего это необходимо скомпилировать сам Linux-0.01. Линус писал, что он использовал пропатченный им же gcc-1.40 c поддержкой -mstring-insns, но он также писал, что возможно подойдет 1.37.1 и да, им можно скомпилировать ядро Linux. Нужно только убрать вышеупомянутую опцию из нескольких Makefile (об этом писал Линус), а также отредактировать под себя boot.s (под нужный тип дискеты) и include/linux/config.h (параметры жесткого диска). Плюс в Makefile надо добавить путь до gnulib (об этом тоже писал). О чем Торвальдс не писал, так это то, необходимо в Makefile добавить команду конвертации бинарного файла в формат, который мог бы исполняется на Minix-386 (на нижнем левом скрине эти команды можно увидеть). Линус не делал подобной конвертации и могу предположить, что у него был патч который позволял запускать бинарные файлы gcc нативно (aka gnutoo).

Осталось только подготовить свободный раздел жесткого диска, создать несколько устройств в /dev и /bin скопировать bash (+ сделать ссылку на sh) и update. Запись ядро на дискету и как писал Линус «Use the three-finger-salute to reboot you machine».

 , linux-0.01, ,

OlegSL
()

Какие книги читает Ричард Столлман?

Форум — Talks

Смотря его интервью «рассиан тудай» нельзя было не заметить на фоне книжный шкаф с большим количеством потрёпанных книг, в связи с этим стало интересно что он читает.

Перемещено Zhbert из general

 ,

jhonathan
()

Насколько сложно смоделировать молекулу на самом фундаментальном уровне?

Форум — Development

Я не физик, в некоторых терминах могу ошибаться.

Из личного любопытства я хочу смоделировать молекулу (самую простую, как мне кажется H2, или хотя бы один атом водорода), на самом фундаментальном (то есть моделируя не протоны и электроны, а кварки из которых состоят протоны и нейтроны) уровне.

У меня есть несколько вопросов

а) насколько это легко, мне, как программисту который физику знает лишь поверхностно б) насколько это легко моему компьютеру с i7-4770, 16Gb, если я хочу смоделировать скажем момент соиденения двух атомов в молекулу в) в какую сторону копать?

Для сравнения примитивное моделирование гравитации для меня было простым занятием. Берем N точек, даем им координаты и массу, каждый тик времени вычисляем силу притяжение по формуле

F = m1*m2 / R^2. 
a = f/m; 
x += dx; 
dx += a;
для y аналогично

Дальше построив по координатам график можно было увидеть как тела движутся по эллипсу.

Сейчас же все выглядит для меня заметно сложнее.

  1. Насколько я понимаю привычных x,y координат ни у кварков, ни у протон/электрон не существует, мне нужна пси функция?
  2. Электрон в атоме крутится на около световых скоростях, следовательно мне нужно СТО/ОТО и привычные формулы типа dx += a перестают работать?
  3. Сложно будет визуализировать?
  4. Начальные условия нужно тщательно подобрать? (В случае с гравитацией все просто - одно тело неподвижно, второе движется не в сторону первого)

 , ,

abs
()

Вот и выросло поколение ...

Форум — Talks

Тут один молодой «программист» у меня на днях спросил: а вы что самоучка что ли, вас никто не учил программированию ? При том, что у меня мехмат лет 15 назад был.

Я даже не знал, что ответить … - всегда думал что для программирования в приоритете математическая база, а не «обучение»

 

Jopich1
()

Ричард Столлман анонсировал мануал по Си

Форум — Talks

Собственно, сабж. Сам анонс: https://lists.gnu.org/archive/html/info-gnu/2022-09/msg00005.html .

Скачать можно при помощи команды

git clone https://git.savannah.gnu.org/git/c-intro-and-ref.git

 , ,

saahriktu
()

dwm, ranger, geany...

Галерея — Скриншоты

Настало время попробовать очередной тайловый оконный менеджер. Выбор пал на dwm. Долго не решался его попробовать, т. к. он отпугивал своей специфичной настройкой. На деле оказалось все намного проще.

  • На верхнем скрине ranger с превью обоины и пара терминалов

  • На среднем geany с открытым конфигом dwm

  • На нижнем slock с патчем логотипа dwm

  • ШГ: st - Terminus, dwm и редактор geany - JetBrains Mono

  • Статус бар - slstatus

  • Обоина тут

  • Конфиги тут

 , , ,

sergio1204
()