Ответы пользователя по тегу Операционные системы
  • Как написать терминал на Assembler?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Изучите прерывания биос.

    И вообще, интерпретатор это довольно простая задача, если вы уже научились работать с устройствами ввода-вывода, поэтому может быть стоит потренироваться на более простых программах, чем сразу писать свою ОС?
    Ответ написан
    Комментировать
  • Какие книги прочитать чтобы написать свою операционную систему?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Ну для начала следует разобраться в загрузчике.
    Ставишь виртуалку и делаешь образ, который может загрузиться, что-то вывести на экран и выполнить какую-то манипуляцию (попробуй реализовать текстовое или графическое меню).

    Для этого почитай как работает современный bios и как устроены стандартные разделы дисков, чтобы сделать свой загрузчик и разместить его в первом кластере/блоке.
    Сейчас актуально и MBR и GPT.
    А вот BIOS уже потихоньку заменяется на UEFI.
    https://habr.com/ru/articles/327572/

    Уже потом начинай думать что будешь делать с файловой системой, пробовать писать драйвер под существующую, или придумывать свою. Вполне возможно что на это у тебя уйдет несколько лет и ты забьешь.
    Ответ написан
    Комментировать
  • Можем ли мы быть уверены в несуществовании в каждом компьютере "подпольных" программ?

    saboteur_kiev
    @saboteur_kiev Куратор тега Информационная безопасность
    software engineer
    liiliiilliliiiliiiilllill,
    То, что я описал в вопросе, можно решить чисто технически, а полиция чаще оперирует человеческой психологией


    Почему вы вдруг так считаете, что это технический вопрос?

    Это вообще не технический.
    Это как раз вопрос политический и организационный.

    Вы можете хотя бы представить усилия, которые нужны, чтобы проверить ВЕСЬ КОД в мире?
    Весь код какой-либо операционной системы или популярного софта?

    Сколько для этого нужно специалистов?
    Сколько для этого нужно времени?
    Сколько для этого нужно денег?

    А кто сможет гарантировать, что эти специалисты будут достаточно квалифицированы?
    Что они не будут подкуплены?

    В мире огромное количество аудиторских компаний и продуктов, которые выполняют различные проверки на уязвимость. И как-то все равно уязвимости иногда находятся случайно спустя десятки аудитов и десятки лет. А что-то может быть и не находится.
    Ответ написан
    2 комментария
  • Как реализованы секторы размером не кратных степени 2 в Advanced Format?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Вы неверно прочитали информацию. Дополнительные байты используются на низком уровне контроллером диска для дополнительной коррекции ошибок.
    Пользовательские данные все будут по 4096 на сектор.

    1. ОС вообще с ними не работает, ОС работает с файловой системой и блоками/кластерами, а не секторами.
    2. Чек сумма обычно такая же, но кроме чек суммы могут быть и другие данные для корелляции
    3. 512 в современных устройствах уже не должно встречаться. После 2011 года все производители перешли на AF. Но в 4к секторах можно создавать 512байтные кластера или блоки
    4. ОС практически никогда не занималась секторами. Очень очень давно до секторов можно было докопаться из биоса, но это было во времена, когда контроллер дисков находился на материнке. То есть во времена IDE...

    Нынче все устройства идут с собственным контроллером, и ОС максимум создает разделы с адресацией секторов (но уже получает от контроллера все числа и не может достоверно знать это настоящий адрес или виртуальный), а внутри разделов уже будет файловая система с блоками или кластерами.
    Ответ написан
    7 комментариев
  • Как правильно перенести систему с HDD на SSD?

    saboteur_kiev
    @saboteur_kiev Куратор тега Windows
    software engineer
    вставь ssd, загрузись и посмотри виден ли диск. Чтобы драйвера для него стали.
    Потом попробуй перенести еще раз
    Ответ написан
  • Как языки, исполняемые на ВМ, пишут в консоль?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    stdout это просто дескриптор, который открывает консоль.

    Для каждой консольной программы открывается три дескриптора с номерами 0, 1, 2 (stdin, stdout, stderr), куда они могут писать.

    /dev/fd/1
    Нет, fd это просто файловый дескриптор/1
    правильный путь будет /proc/ID_процесса/fd/1
    то есть у каждого процесса stdout свой.

    Ну и еще. Неважно какой язык. Это про архитектуру операционки, а не язык.
    Ответ написан
    5 комментариев
  • Безопасность данных на жестком диске при использовании двух ОС?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Просто отключаешь на обеих OS права администратора/суперюзера и все. Обычный юзер не сможет отформатировать/подмонтировать диски другой ОС без установки дополнительных драйверов.
    Ответ написан
    Комментировать
  • Чем отличаются Unix- подобные системы от не unix систем?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Читай что такое https://ru.wikipedia.org/wiki/POSIX
    Вкратце - это стандарт, который описывает требования к операционке.
    Если операционка написана так, что этот стандарт она поддерживает, то уже готовую программу можно под нее скомпилировать из существующего кода, а не писать специально для нее с нуля.

    Какие фреймворки? Какие библиотеки - ОС это практически самое низкоуровневое, что есть. Поэтому да, чистый код, с использованием функций биос.

    Какие должны быть атрибуты unix ядра, точнее обратный вопрос как написать не unix подобное ядро.

    Придумываешь что хочешь и пишешь - получится не юникс подобное.
    Ответ написан
    Комментировать
  • Какой язык программирования используется для написания портативных OS и UI?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Да те же языки что и обычно.
    На многих устройствах типа смартчасов может стоять тот же адаптированный линукс, или WebOS, или даже Windows.
    Просто делают специфический дистрибутив, адаптированный под девайс.
    Андроид - это же ОС на Линукс ядре.
    Ответ написан
    Комментировать
  • Как люди пишут операционные системы?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Полную документацию на процессор нужно читать если вы пишете компилятор.

    А для операционной системы нужно читать не столько процессор, сколько работу с устройствами, как минимум экран, клавиатура, дисковая подсистема, и собственно функции BIOS/UEFI
    Ответ написан
    5 комментариев
  • Книги для изучения и написания операционных систем?

    saboteur_kiev
    @saboteur_kiev Куратор тега Книги
    software engineer
    Зачем задавать подобные вопросы, если вы в принципе еще не освоили программирование?
    Начинать писать операционные системы до того, как написали хотя бы несколько рабочих программ сложнее, чем hello world нет смысла.

    Для начала, попробуйте написать свой загрузчик.
    Ответ написан
    5 комментариев
  • Как происходит перемещение файлов между каталогами на физическом уровне?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    На уровне OS нужно выяснить, файл перемещался в пределах раздела, или между двумя разделами.
    Если в пределах одного раздела, то просто меняется путь к файлу. Если между разделами, то выполняется копирование с удалением.
    Ответ написан
    7 комментариев
  • Разработка Операционных Систем (ОС), есть ли такая сфера в программировании?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    ок, на какой ОС посоветуете практиковаться, учиться - новичку, windows, linux, или может специальная minix?


    Windows - проприетарная. ОС там разрабатывать не легко, а системные утилиты или драйвера - можно.
    Линукс - можно ковырять любые части.
    Опять же системное программирование это не только ОС, а и куча системных утилит.
    Ответ написан
    Комментировать
  • Что такое расширение файла на системном уровне?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    На уровне виндовс это два момента.

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

    Второй - для оболочек в виндовс, расширение указывает на тип файла.
    В дос была возможность определить выполняемый файл или не выполняемый,
    В виндовс появилась возможность ассоциирования расширения с разными действиями - открыть, открыть определенной программой, открыть определенной программой на редактирование, и др., работает и на уровне проводника и на уровне консольных оболочек (cmd, powershell), ассоциации хранятся в реестре.
    Ответ написан
    Комментировать
  • Как работают исполняемые файлы?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    .exe это довольно сложный формат.
    Операционная система умеет прочитать необходимый код программы из exe, поместить его в память на предпочтительных адресах, залинковать ссылки на внешние библиотеки и запустить.
    В .exe могут находиться другие ресурсы - иконки, музыка, картинки, которые могут подгружаться по мере необходимости, а не сразу.

    Непосредственно код - это инструкции процессора.
    Ответ написан
    4 комментария
  • Какую ОС выбрать для программирования?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    По нашему мнению, вопрос глупый.
    1. ОС нужно выбирать ту, в которой хоть немного умеешь работать. Иначе вместо основ программирования будешь полгода учиться ее настраивать
    2. Выбирают не столько ОС, сколько ПО для работы. Вот Visual Studio под линуксом собираешься запускать? Уже умеешь как такое замутить?

    Вот почему еще не успел начать учиться, а уже начинает специализироваться. Сперва ходить нужно научиться.
    Ответ написан
    Комментировать
  • Курс введение в IT для гуманитария (не программирование)?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    Использование .bat файлов и уж тем более их написание - это не основы, это уже продвинутый пользователь.
    Поэтому курса, который может охватить все, что пригодится продвинутому пользоватлю не существует.

    Слишком уж много разных моментов, нюансов...
    Научите его для начала гуглить.
    Ответ написан
    Комментировать
  • 2 операционные системы на ПК. VirtualBox?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Зачем вам нужен Линукс?
    Если сидеть в нем программировать - это одно.

    Если просто на Линуксе поднимать ваше приложение, а писать его вы будете в IDE под виндой - то виртуалбокса просто за глаза хватает. Даже CI можно настроить.
    Или вы пишете что-то, что требует работы с видеокартой?
    Ответ написан
    Комментировать
  • Язык программирования для автоматизации администрирования ОС. Какой бы вы выбрали сейчас?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Как вы себе представляете кроссплатформенность в администрировании виндовс и линукс, если у них совершенно другие внутренности? Автоматическая установка драйверов в виндовс и линукс - разные вещи.
    Многие вещи в windows сети ставятся централизованно через global policy, о чем Линукс понятия не имеет.
    Опять же, установка софта - он же разный.

    В принципе,
    Для Линукс конечно лучшее это bash
    Для Windows - powershell/bat

    Можно поставить git на windows, чтобы bash скрипты работали.
    Но все равно, для ряда задач, нужно будет в скриптах делать условные переходы и вызывать либо sysinternals и powershell для windows, либо gnu/bash с sudo на линуксе.

    Для банальных вещей - bash/python/perl должно быть более чем достаточно, но это не столько автоматизация администрирования, сколько общая автоматизация.
    Ответ написан
    2 комментария
  • Какую тему выбрать для курсового по ОС?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    В качестве работы по ОС, задача 2.2 вполне даже интересная.
    Ответ написан
    1 комментарий