Результаты поиска по запросу «

распределенные системы

»

Запрос:
Создатель поста:
Теги (через запятую):



Windows Операционная система Windows 11 новости 

Microsoft случайно засветила новый интерфейс. Да, они сделали третий гном.

Windows,Операционная система,Windows 11,новости

Мелкодрист очередной раз решила всё испортить для любителей клавомыши (кто вообще пользуется клавомышью на десктопе пффф) и угодить своим сраным сенсорным сюрфейсам. Ебаные индусы, дайте мне возможность пользоваться компьютером именно как компьютером, а не телефоном. Блядь ну реально уже невозможно, чем дальше - тем хуже. Что это за пиздец на пикриле? Гном 3 давно в своё время показал, что он нахуй никому не нужен с такими выкрутасами, но на винде схавают потому что нам очередной раз отрежут нахуй все драйвера и придется этим пользоваться, пока еще более пиздецовый пиздец не выпустят. У меня горит жопа, просто полыхает, всем спасибо. Новость ниже.

В новой Windows Microsoft постарается сделать интерфейс более удобным для сенсорного ввода

Во время мероприятия Ignite Keynote 2022 Microsoft (случайно или намеренно) засветила интерфейс следующего большого обновления Windows. Ожидается, что такая версия выйдет в 2024 году и, ввиду большого количества новшеств, получит свой собственный порядковый номер – 12 (примерно как это было с Windows 11).

 70°F Partly Cloudy « here to search 1^ Next Valley Prototype Design 1 ^ m> Fri 09/13 12:12 a AutoSave £ |j§ Next Valley Prototype Design • Saving... P Search $ File Home Insert Draw Design Layout References Mailings Review View Help Zac Bowden ^ £? P Comments $ Editing X ifi

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

Следующее крупное обновление Windows пока находится на стадии прототипа, но источники, знакомые с ситуацией, сообщили, что показанный во время Ignite прототип отражает то, к чему стремится Microsoft в следующей версии Windows. Разумеется, сейчас показана только часть возможных новшеств – в реальности их будет больше. Так, ожидается, что в Windows 12 появится новый экран блокировки, новый цент уведомлений и т.д.

Глобальная цель по части интерфейса – сделать его более удобным для сенсорного ввода. У Microsoft пока все не очень хорошо с балансом по этой части: так, если Windows 8 была сильно ориентированной именно на «тач-взаимодействие», то Windows 10, наоборот, более удобна для работы с мышь и клавиатурой. В Windows 11 Microsoft попыталась найти золотую середину, но не получилось: все-таки удобство управления при помощи мыши на первом месте.

Развернуть

Отличный комментарий!

26994 2699424.12.202222:03ссылка
-8.4
Нет, вот ты с win xp
Твой Дед Твой Дед24.12.202222:09ссылка
+49.6

Linux Операционная система беды с башкой 

Linux,Операционная система,беды с башкой
Развернуть

geek it-юмор Linux Операционная система 

□ <r r/AskReddit Posted by u/Elastic_Quatsch • 10h 1 Д 57 & 57 @ 51 $ 69 Тебя похитили. Через 30 минут похититель тебя бросает на улице, потому что ты, не замолкая, говоришь о...? ^ 61.4к СР 33.Ok < Share £+) Ú BEST COMMENTS - CapitanFlama 9h 0* 0 11 Awards О том, что линукс самая
Развернуть

Отличный комментарий!

Я просто начну зачитывать ему свои комментарии на реакторе. Их у меня много.
Mactep XyeB Mactep XyeB01.10.202111:43ссылка
+65.4

it-юмор geek Linux Операционная система песочница 

л archlinux Terms of Service Устанавливая Arch Linux, вы соглашаетесь с тем, что будете говорить "кстати, я использую arch" каждый раз, когда кто-то упоминает что-то связанное с Linux, а также соглашаетесь защищать терминал всякий раз, когда кто-то упоминает графический интерфейс. Вы также
Развернуть

Отличный комментарий!

Там установщик запилили, теперь не иллитарный (кстати я использую arch)
wonderhorse wonderhorse08.07.202116:42ссылка
+7.2
AlligatorUA AlligatorUA08.07.202116:45ссылка
+30.7

SpaceX Crew Dragon Илон Маск Linux Операционная система 

SpaceX,Space Exploration Technologies Corporation, Американский Батут Корпорейшен,Crew Dragon,Илон Маск,Linux,Операционная система

Как выяснилось, SpaceX в качестве операционной системы для сверхсовременных ракет использует модифицированную сборку Linux.Кстати до этого момента в ракетах юзали только спец ПО, закрытое за семью печатями.

Тот момент, когда на Linux работает всё (от телефонов (Android) и роутеров до космических ракет), а нормальных AAA игр под Linux можно на пальцах сосчитать... Маркетинг?

Кстати, Linux уже который месяц подряд демонстрирует рост, увеличив свою долю до 2,87% в апреле, а затем до 3,17% — в мае.

Источник https://futurism.com/the-byte/spacex-nasa-astronauts-linux



Развернуть

пидоры помогите geek programming программирование линукс Операционная система песочница 

Разработка на C/C++ под Slurm кластер на CentOS.

Почти весь универ кодил на C# под windows: многопоточные приложения, ASP.net, WPF, системное программирование с использованием библиотек с/с++ в шарпе через pInvoke. Есть небольшой опыт с С/С++ под windows и еще меньший под Linux. И тут в аспирантуре я сталкиваюсь со Slurm кластером с CentOS. И мне нужно заниматься разработкой на C/C++, MPI под Linux. Ни руководитель мой, по ряду причин, ни человек, что настройкой кластера занимается мне помочь не могут. Второй просто скорее всего не хочет и как я с разговоров с ним понял вообще особо не шарит. Гугл меня в этих вопросах завел в еще большую растерянность. Вот и обращаюсь к реакторчанинам. У меня складывается впечатление, что как-то оно все через одно место работает, но я наверное зажрался. Привык к visual studio и документации по с++/с# от майкрософта.

Сейчас я пользуюсь VS Code на windows для удаленной работы с кластером через ssh. Запуск и отладка как я понял только через терминал. Настроить отладку через VS Code у меня не получилось. Может что-то из отладчиков посоветуете? Когда я учил с++ под линукс, то использовал gdb. А что можно еще использовать и может более удобное для подобных систем? Терминал и отладка в нем конечно бесит после visual studio, но тут или я его или он меня. И так-как я знаю только азы в с/c++ и то не особо (из того что помню с таймерами работал, ассемблерными вставками и азами графики на первом и втором курсе универа), может что-то из книг посоветуете? Не хочу прям лютый говнокод писать. И вот лучше начинать изучать с С/С++ под линукс или под винду, но с поправкой на линукс? У кого есть опыт в данном направлении поделитесь чем пользуетесь для разработки. Слышал где-то, что можно заставить работать на подобной машине шарп с mpi, но имеет ли это смысл?

Глобально и если вкратце, то я должен написать моделирующую среду для динамических процессов. И как я понял мне придется совмещать разные языки. Тоже этой темы я еще не касался.

И как быть с документацией по С/С++ под линукс? man и им подобные юзать или документацию от майкрософт, но с поправкой на линукс?

Извиняюсь, за такие тупые вопросы. Просто это направление в котором я не шарю, но которое мне интересно и хочу разобраться.

КУПОН
НА 1 помощь,пидоры помогите,реактор помоги,geek,Прикольные гаджеты. Научный, инженерный и  айтишный юмор,programming,программирование,линукс,Операционная система,песочница
Развернуть

программирование geek OSDev Операционная система разработка ассемблер песочница 

Урок ОСдева №5: подготовка к работе с файловой системой FAT12.

В прошлый раз мы инициализировали сегментные регистры и обеспечили загрузчику безопасную среду

обитания. Сегодня будем готовить почву для работы с файловой системой FAT12. Для начала стоит

поподробнее ознакомиться с её структурой. В FAT12 пространство носителя можно разделить на

несколько областей. Они могут быть разного размера, но идут всегда в следующем порядке:


ЗАГРУЗОЧНЫЙ СЕКТОР - ЗАРЕЗЕРВИРОВАНО - FAT - КД - ОБЛАСТЬ ДАННЫX


Наша задача - вычислить начало и размер каждой области на нашем носителе. Эта информация понадобится

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

а не байтами. То есть, когда я пишу "размер", я имею в виду количество секторов, занятыx

областью.


Загрузочный сектор - место, где обитает наша программа. Это всегда сектор

номер 1 на носителе, и занимает он ровно 1 сектор. Было несложно.


Далее, зарезервированныx секторов у нас нет. Вернее, есть один, загрузочный. Общее число

зарезервированныx секторов включая загрузочный можно найти в переменой BPB_reserved блока

параметров BIOS.


FAT, таблица распределения файлов. Будет чуть сложнее. Размер FAT в секторах xранится в переменной

BPB_FATsize. Но, как я уже писал ранее, часто на диске может быть дублирующая FAT на случай

повреждения данныx. Количество FAT на диске указано в переменной BPB_numFATs. Для вычисления

общего размера всех FAT на диске нам нужно умножить размер FAT на число FAT.


Дальше у нас идёт корневая директория. Это набор записей о размещении файлов. Размер записи КД

в FAT12 - 32 байта. Количество записей указано в переменной BPB_RDentries. Берём размер записи

и умножаем на число записей. Всё? Нет. Так мы получим размер в байтах, его нужно перевести

в секторы. Для этого резльтат делится на размер сектора в байтах, который хранится в переменной

BPB_bytespersec.


Вот теперь всё. Вспомним, как выглядела программа в конце прошлого поста:


.386p

CSEG segment use16

ASSUME cs:CSEG, ds:CSEG, es:CSEG, fs:CSEG, gs:CSEG, ss:CSEG


begin:                    jmp short execute                    ;Точка входа. Перейти к исполняемой части.

                            nop                                         ;Пустой оператор. Заполняет 3-й байт перед BPB.




;БЛОК ПАРАМЕТРОВ BIOS======================================================================;


;=======================================;

;Блок параметров BIOS, 33 байта.;

;Здесь хранятся характеристики;

;носителя. Должен быть в 3 байтах;

;от начала загрузочного сектора.;

;=======================================;

          BPB_OEMname db 'BOOTDISK'          ;0-7. Имя производителя. Может быть любым.

          BPB_bytespersec dw 512                  ;8-9. Размер сектора в байтаx.

          BPB_secperclust db 1                        ;10. Количество секторов в кластере.

          BPB_reserved dw 1                          ;11-12. Число зарезервированныx секторов (1, загрузочный).

          BPB_numFATs db 2                          ;13. Число FAT.

          BPB_RDentries dw 224                     ;14-15. Число записей Корневой Директории.

          BPB_sectotal dw 2880                      ;16-17. Всего секторов на носителе.

          BPB_mediatype db 0F0h                   ;18. Тип носителя. 0F0 - 3,5-дюймовая дискета с 18 секторами в дорожке.

          BPB_FATsize dw 9                           ;19-20. Размер FAT в сектораx.

          BPB_secpertrack dw 18                    ;21-22. Число секторов в дорожке.

          BPB_numheads dw 2                        ;23-24. Число головок (поверxностей).

          BPB_hiddensec dd 0                        ;25-28. Число скрытыx секторов перед загрузочным.

          BPB_sectotal32 dd 0                        ;29-32. Число секторов, если иx больше 65535.


;===============================================;

;Расширенный блок параметров BIOS, 26 байт.;

;Этот раздел используется в DOS 4.0.;

;===============================================;

          EBPB_drivenumdb 0                         ;0. Номер привода.

          EBPB_NTflagsdb 0;1. Флаги в Windows NT. Бит 0 - флаг необxодимости проверки диска. Бит 1 - флаг необходимости диагностики поверхности.

          EBPB_extsigndb 29h;2. Признак расшренного BPB по версии DOS 4.0.

          EBPB_volIDdd 0;3-6. "Серийный номер". Любое случайное число или ноль, без разницы.

          EBPB_vollabeldb 'BOOTLOADER ';7-17. Название диска. Устарело.

          EBPB_filesysdb 'FAT12   ';18-25. Имя файловой системы.




;ИСПОЛНЯЕМЫЙ БЛОК========================================================================;


;Шаг 1. Исправить значения сегментных регистров.

execute:

         ;DS, ES, FS, GS.

                   mov ax,07C0h                    ;Сегмент загрузчика.

                   mov ds,ax                          ;Поместить это значение во все сегментные регистры.

                   mov es,ax

                   mov fs,ax

                   mov gs,ax


          ;СЕГМЕНТ СТЕКА.

                   cli                                      ;Запретить прерывания перед переносом стека.

                   mov ss,ax                           ;Поместить в SS адрес сегмента загрузчика.

                   mov sp,0FFFFh                   ;Указатель стека - на конец сегмента.

                   sti                                      ;Разрешить прерывания.


          ;СЕГМЕНТ КОДА.

                   push ax                              ;Поместить в стек сегмент.

                   mov ax,offset stop               ;Указатель на инструкцию после retf.

                   and ax,03FFh                      ;Обнулить 6 старших бит (аналогично вычитанию 7C00h, если смещение больше 7C00h).

                   push ax                              ;Поместить в стек смещение.

                   retf                                    ;Дальний возврат для смены CS.


stop:            cli

                   hlt


          org 1FEh;Заполняет память нулями до 511-го байта.

          dw 0AA55h;Байты 511 и 512. Признак загрузочного сектора.


CSEG ends

end begin



Как всегда я написал максимально подробные комментарии к каждому действию. Теперь после retf добавьте

следующий код вместо cli и hlt:


stop:           mov byte ptr EBPB_drivenum,dl


                  mov ax,BPB_RDentries

                  shl ax,5

                  div BPB_bytespersec

                  mov cx,ax

                  xor ax,ax

                  mov al,byte ptr BPB_numFATs

                  mul BPB_FATsize

                  mov total_FATs_size,ax

                  add ax,BPB_reserved

                  mov datasector,ax

                  add datasector,cx


                  cli

                  hlt



Давайте разбираться. С инструкцией mov мы уже знакомы, так что первая строка должна быть понятна:

команда помещает содержимое регистра DL в переменную EBPB_drivenum. Но что за byte ptr?

Это префикс смены разрядности. Так как мы работаем в 16-битном режиме, TASM предполагает, что

и разрадность всех ипользуемых ячеек памяти - 16 бит. Если мы хотим работать с 8-битной

переменной, её разрядность нужно указать вот таким способом.


И зачем вообще мы сохраняем DL как номер привода, с которого была загружена программа? Дело в

том, что по идее BIOS должна вернуть его в DL. В принципе, доверять этому значению не стоит,

и использовать его мы не будем, так что делать это не обязательно. Просто я педант.


Далее команда mov ax,BPB_RDentries считывает в AX число записей в корневой директории,

а команда shl ax,5 умножает его на 32. Команды shl и shr сдвигает биты числа влево и, соответственно,

вправо (сокращение от shift left и shift right). Сдвиг числа влево на 1 эквивалентен умножению

на 2. Сдвиг на 5 эквивалентен умножению на 32. На старых процессорах сдвиг выполнялся быстрее,

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


div BPB_bytespersec делит результат предыдущей операции на число байтов в секторе. Вы наверное

заметили, что регистр ax в команде нигде не указан: операция DIV всегда выполняется на этом

регистре. В результате деления мы получаем чсло секторов, которые занимает КД. mov cx,ax

сохраняет результат в cx, а xor ax,ax обнуляет ax, выполняя на нём "исключающее или" с ним же.


mov al,byte ptr BPB_numFATs считывает в регистр al количество FAT на диске. Кстати! Регистров

al и dl не было в списке, который я приводил на прошлом уроке. Сейчас поясню.

Четыре регистра общего назначения ax,bx,cx и dx делятся на две 8-битные половины.

ax на al и ah, bx на bl и bh, ... l в данном слуае значит low, то есть младшие 8 бит.

h, соответственно, старшие high. Так вот, получив число FAT в al, мы умножаем его на

BPB_FATsize (размер FAT в секторах). Обратите внимание, операция умножения выполняется

на всём регистре ax, а значение мы поместили в al. Для этого мы и обнуляли ax операцией

раньше. Получив в результате общий размер всех FAT на диске, сохраняем его в переменной

total_FATs_size.


Добавив к ax BPB_reserved, получим общий размер FAT и зарезервированных секторов.

Сохраним его в переменной datasector, а затем прибавим к ней cx, в котором хранится

размер КД. Теперь в datasector хранится общий размер КД, FAT и зарезервированных

секторов, то есть номер сектора, с которого начинается область данных. Обратите внимание,

с точки зрения быстродействия правильнее было бы сначала сложить ax и cx, а уже потом

сохранить результат в переменной, так как обращения к памяти занимают намного больше

времени, чем операции надрегистрами. Зачем я сделал именно так, станет понятно в

следующий раз. А на сегодня всё! Сегодня мы вычислили важные значения, которые помогут

в дальнейшем, и познакомились в общих чертах со структурой FAT12.


В качестве ДЗ предлагаю самостоятельно объявить использованные нами переменные total_FATs_size и

datasector. Обе 16-битного формата. Переменные можно объявлять где угодно до тех пор, пока они не

встревают в исполняемый код. Например, можно вставить между dw 0AA55h и CSEG ends

Развернуть

программирование geek ассемблер Операционная система разработка OSDev песочница 

Уроки ОСдева №3: блок параметров BIOS

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


1. При попытке открыть образ дискеты Wndows говорит, что она не отформатирована.
2. BIOS не воспринимает дискету как загрузочную и пишет что-нибудь вроде "no bootable device found".

Давайте разбираться. Если помните, в конце прошлого поста наша будущая программа-загрузчик выглядела так:

.386p

CSEG segment use16

ASSUME cs:CSEG, ds:CSEG, es:CSEG, fs:CSEG, gs:CSEG, ss:CSEG

begin:                    cli

                             hlt

CSEG ends

end begin


По сути это просто заглушка, которая при запуске должна останавливать процессор. Причина ругани Виндоус в том, что в нулевом секторе на отформатированном носителе хранится важная структура данных - блок параметров BIOS (BPB). Записав туда же нашу программу, мы его пот+ёрли. Для того, чтобы этого избежать, нам придётся воссоздать BPB в тексте программы. Для этого нужно знать геометрию носителя. К счастью, в наше время сохранился только один тип дискет.


Непроверенный метод: возможно, если с помощью утилиты debug записать программу не в начало сектора, а со смещением, достаточным, чтобы пропустить оригинальный BPB, то он не пострадает, но я не проверял. По-моему, debug всё равно забьёт остатки сектора каким-то мусором.


Во-первых, измените программу вот так:


.386p

CSEG segment use16

ASSUME cs:CSEG, ds:CSEG, es:CSEG, fs:CSEG, gs:CSEG, ss:CSEG

begin:                     jmp short execute

                             nop

execute:                 cli

                             hlt

CSEG ends

end begin


У нас появились две новые инструкции: jmp short и nop. Последняя - просто пустой оператор. Процессор пропускает его, не выполняя никаких действий. Занимает 1 байт. jmp - инструкция перехода. jmp short - переход в пределах 127 байт от текущего положения. Исполняется гораздо быстрее jmp, так что везде где возможно - используйте его. Занимает 2 байта. execute - название метки, на которую указывает инструкция jmp short.


Зачем всё это и зачем nop? BPB должен располагаться строго в трёх байтах от начала нулевого сектора. Эти три байта и занимают инструкции jmp short execute и nop. Таким образом, когда программа начнёт исполняться, первой инструкцией, которую выполнит процессор, будет пропустить BPB. В противном случае он бы попытался исполнить его как код, что привело бы к катастрофе.

Теперь давайте вставим сам блок параметров BIOS между nop и меткой execute.


.386p

CSEG segment use16

ASSUME cs:CSEG, ds:CSEG, es:CSEG, fs:CSEG, gs:CSEG, ss:CSEG

begin:                     jmp short execute

                             nop


                BPB_OEMname          db    'BOOTDISK'

                BPB_bytespersec       dw    512

                BPB_secperclust        db     1

                BPB_reserved            dw    1

                BPB_numFATs           db     2

                BPB_RDentries          dw    224

                BPB_sectotal             dw    2880

                BPB_mediatype         db     0F0h

                BPB_FATsize             dw     9

                BPB_secpertrack        dw     18

                BPB_numheads         dw     2

                BPB_hiddensec          dd     0

                BPB_sectotal32          dd     0

                EBPB_drivenum         db     0

                EBPB_NTflags            db     0

                EBPB_extsign            db     29h

                EBPB_volID               dd     0

                EBPB_vollabel            db     'BOOTLOADER '

                EBPB_filesys              db     'FAT12   '


execute:                 cli

                             hlt


CSEG ends

end begin


BPB - это блок данных, и здесь мы впервые объявляем переменные. В TASM это выглядит так: BPB_OEMname (имя) -пробел- db, dw, dd или dq -пробел- 'BOOTDISK' (значение). Имени может и не быть, но тогда к переменной нужно будет обращаться по смещению, это не очень удобно. DB, DW, DD и DQ - сокращение от define byte (word, double word или quad word) - обозначают размер переменной. Соответственно, 1, 2, 4 или 8 байт. Инстркция этого типа позволяют объявлять целые серии значений через запятую: myvalue dw 2, 5, 165, 776. С помощью инструкции db можно объявлять строки: mytext db 'Allo, Yoba!' Обратите внимание, что в плоском бинарнике переменные при компиляции не выносятся в какую-то специальную область данных. В исполняемом файле они будут именно там, где вы их объявили в тексте программы. Ещё важный момент: имена переменных только для вашего личного пользования, в исполняемый файл они не попадут, так что вы не обязаны копировать названия у меня. Теперь давайте посмотрим, что за информация хранится в BPB.


BPB_OEMname - 8 байт: по идее здесь должно быть название производителя, но по факту вы можете писать что угодно, никто на это значение не смотрит.

BPB_bytespersec - 2 байта: размер сектора в байтах, для дискет как правило 512.

BPB_secperclust - 1 байт: число секторов в кластере. Про кластеры мы поговорим позже, но в случае с дискетами секторы и кластеры соответствуют друг другу.

BPB_reserved - 2 байта: число зарезервированных секторов, недоступных файловой системе. В нашем случае такой один, это наш загрузочный сектор.

BPB_numFATs - 1 байт: количество FAT (file allocation table), таблиц распределения файлов. Так как носители информации (особенно дискеты) подвержены порче, а FAT - очень важная часть файловой системы, для неё часто делается резервная копия.

BPB_RDentries - 2 байта: количество записей в корневой директории (Root Directory). Про корневую директорию тоже будем говорить в другой раз, но пока можете представить её как список файлов с указанием их физического расположения на носителе.

BPB_sectotal - 2 байта: число секторов на диске, если их не больше 65535. Если больше, здесь должен быть 0.

BPB_mediatype - 1 байт: тип носителя. F0 - код для 3,5-дюймовой дискеты с 18 секторами в дорожке.

BPB_FATsize - 2 байта: размер одной FAT в секторах.

BPB_secpertrack - 2 байта: число секторов в дорожке.

BPB_numheads - 2 байта: число головок.

BPB_hiddensec - 4 байта: количество скрытых секторов перед загрузочным, в нашем случае 0.

BPB_sectotal32 - 4 байта: число секторов, если их больше 65535. Если меньше, здесь должен быть 0.


Здесь стандартный BIOS Parameter Block заканчивается и начинается расширенный, который появился в поздних версиях DOS.


EBPB_drivenum - 1 байт: бесполезная переменная, хранящая номер привода, в который был вставлен носитель при форматировании.

EBPB_NTflags - 1 байт: флаги Вин НТ. Если установлен бит 0, необходимо проверить носитель на битые секторы. Значения других флагов не знаю.

EBPB_extsign - 1 байт: признак расширенного BPB. Для нашей версии должно быть 29h.

EBPB_volID - 4 байта: случайный номер, который присваивается при форматировании. В общем бесполезен.

EBPB_vollabel - 11 байт: имя носителя.

EBPB_filesys - 8 байт: имя файловой системы.


Если вы теперь заново скомпилируете программу и запишите на дискету, то она отлично откроется в Windows. Первая проблема решена, но осталась вторая: дискета всё ещё не опознаётся как загрузочная. Вспоминаем: для этого последние 2 байта загрузочного сектора должны иметь значения AAh и 55h. Добавим ещё две строчки в нашу программу:


.386p

CSEG segment use16

ASSUME cs:CSEG, ds:CSEG, es:CSEG, fs:CSEG, gs:CSEG, ss:CSEG

begin:                     jmp short execute

                             nop


                BPB_OEMname          db    'BOOTDISK'

                BPB_bytespersec       dw    512

                BPB_secperclust        db     1

                BPB_reserved            dw    1

                BPB_numFATs           db     2

                BPB_RDentries          dw    224

                BPB_sectotal             dw    2880

                BPB_mediatype         db     0F0h

                BPB_FATsize             dw     9

                BPB_secpertrack        dw     18

                BPB_numheads         dw     2

                BPB_hiddensec          dd     0

                BPB_sectotal32          dd     0


                EBPB_drivenum         db     0

                EBPB_NTflags            db     0

                EBPB_extsign            db     29h

                EBPB_volID               dd     0

                EBPB_vollabel            db     'BOOTLOADER '

                EBPB_filesys              db     'FAT12   '


execute:                 cli

                             hlt


               org 510

                dw 0AA55h


CSEG ends

end begin


Команда org 510 заполнит нулями место от текущей позиции до 510 байта, а в последние два мы поместили метку загрузочного сектора. Вуаля, проблема 2 решена.


Выражалось мнение, что всё это ебучее легаси и современные пацаны предпочитают UEFI, но UEFI не даст вам того интимного, я бы сказал, понимания железа, на котором работает ваша ось, так что основная серия будет продолжена по старинке.


Нужны ли туторы по UEFI?
Да
88 (69.3%)
Нет
8 (6.3%)
Я не знаю, заебал свою гиковскую xуйню сюда постить, вали на гитxаб!
31 (24.4%)
Развернуть

coub Операционная система Россия Linux 

Развернуть

Отличный комментарий!

Открываешь встроенный браузер, гуглишь *то что ты обычно гуглишь*, через 10 минут:
Сэр Пидор Сэр Пидор05.01.201903:52ссылка
+38.4

гифки распределение углекислого газа в атмосфере земли 

Развернуть
В этом разделе мы собираем самые смешные приколы (комиксы и картинки) по теме распределенные системы (+1000 картинок)