• Что учить с начала Архитектуру или ОС?

    toxicmt
    @toxicmt
    CTO at hexlet.io
    Начните с книги "КОД. Тайный язык информатики". Это лучшее введение в архитектуру. Интересно настолько, что понравилось даже моей жене.
    Ответ написан
    1 комментарий
  • Область применения C, C++, C#?

    @jackroll
    Сверхразум
    Ты сейчас делаешь следующее: "сейчас я хорошенько поузнаю, что мне нужно учить, а учить буду потом". Когда этот этап пройдёт, ты будешь думать "так сейчас надо найти самые лучшие книжки и курсы, а потом буду их читать и учить". Когда найдёшь - "так, нужно почитать программач ещё разок, чтобы быть в курсе, не изменилось ли чего". Потом "ага, надо ещё работы посмотреть на данный момент и сделать проекцию в будущее, чтобы предположить свой заработок". И после ещё десятка таких типа-как-небесполезных откладываний ты либо найдёшь какую-то другую великую цель для себя, либо попробуешь начать изучать то, что подготовил, но не протянешь дольше недели.

    Это я к тому, что из этого паттерна прокрастинации и фантазий нужно выбираться прямо сейчас, а не потом. Если ещё более прямо надо - бери любой язык и учи его месяц, не тратя время на всякую чушь. Иначе гроб.
    Ответ написан
    1 комментарий
  • Правильно ли я разделил сеть на подсети?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Маска подсети занимает 16 бит, но в третьем октете есть бит, который не попадает под неё. Что мне делать с этим битом?

    Задание - конечно, бредовое. 201.111.32.0/16 - это адрес хоста, а не сети, потому что адрес имеет единичные биты в области нулевых битов маски:
    Host 11001001 01101111 00100000 00000000
    Mask 11111111 11111111 00000000 00000000

    Но к тому, что преподаватели сами безграмотны, мы уже привычные... посему попробуем интерпретировать задание так: выделение производить в подсети, в которой находится узел 201.111.32.0/16 (это подсеть 201.111.0.0/16), выделяемые подсети должны располагаться не ранее указанного адреса узла, и допускать количество хостов не менее заданного.

    Начать надо с определения минимальной маски конечной подсети.
    Хостов Маска
     170     /24
     590     /22
    1500     /21
     800     /22
     254     /24

    Далее, чтобы заполнять диапазон оптимальным образом, надо выделять подсети так, чтобы они занимали наиболее широкую возможную подсеть полностью либо по максимуму. Т.е. берём заданную границу host 201.111.32.0 mask /16 и начинаем "откусывать" требуемые подсети. С целью минимизации расхода адресного пространства мы на каждом шагу распределяем самую "широкую" из подсетей, которая укладывается в текущее место.

    Сначала определяем максимальную маску для данного узла. Это будет маска /19:
    Host 11001001 01101111 00100000 00000000
    Mask 11111111 11111111 11100000 00000000

    Значит, с данного адреса мы можем сразу распределить подсеть 3. Она будет иметь адрес 201.111.32.0/21 и занимать диапазон адресов 201.111.32.0 - 201.111.39.255, последний адрес является бродкастом.

    Теперь мы распределяем оставшиеся подсети с первого свободного после уже выделенной подсети адреса 201.111.40.0. Максимальная маска для этого узла - /21. Соответственно распределяем здесь самую крупную из оставшихся подсетей. Это подсеть 2. Она будет иметь адрес 201.111.40.0/22, займёт диапазон адресов 201.111.40.0-201.111.43.255.

    Далее мы распределяем оставшиеся подсети с первого свободного после уже выделенной подсети адреса 201.111.44.0. Максимальная маска для этого узла - /22. Соответственно распределяем здесь самую крупную из оставшихся подсетей. Это подсеть 4. Она будет иметь адрес 201.111.44.0/22, займёт диапазон адресов 201.111.44.0-201.111.47.255.

    Далее мы распределяем оставшиеся подсети с первого свободного после уже выделенной подсети адреса 201.111.48.0. Максимальная маска для этого узла - /20. Соответственно распределяем здесь самую крупную из оставшихся подсетей. Это подсеть 1. Она будет иметь адрес 201.111.48.0/24, займёт диапазон адресов 201.111.48.0-201.111.48.255.

    Далее мы распределяем оставшиеся подсети с первого свободного после уже выделенной подсети адреса 201.111.49.0. Максимальная маска для этого узла - /24. Соответственно распределяем здесь самую крупную из оставшихся подсетей. Это единственная оставшаяся подсеть 5. Она будет иметь адрес 201.111.49.0/24, займёт диапазон адресов 201.111.49.0-201.111.49.255.
    Ответ написан
    2 комментария
  • Что нужно для Системного Программирования?

    Vapaamies
    @Vapaamies
    Разработчик будущей ОС для ПК размером 250 МБ
    Ассемблер понадобится в основном для чтения исходников ассемблерного вывода компилятора или дизассемблера. Писать на нем приходится не так часто, в основном ассемблерные вставки/процедуры внутри ЯВУ.

    Насчет объема кода спросите GNU или Microsoft. Если же только адаптировать существующие разработки, много писать не придется. Но и нового ничего не будет ← это намек на случай, если возьметесь разрабатывать собственную ОС.
    Ответ написан
    1 комментарий
  • Листинг программного кода?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    Странный вопрос. Надо. - делайте... Можно не все печатать, - все равно никто смотреть не будет.
    Но лучше спросите своего руководителя. Он точнее скажет, чем рандомный человек из интернета.
    Ответ написан
    Комментировать
  • Есть ли какое то практическое руководство по программированию контроллера жестких дисков?

    @res2001
    Developer, ex-admin
    Диск же, видимо SATA? Значит вам нужен не контроллер диска, а SATA контроллер - это несколько разные вещи.
    Смотришь какой у тебя SATA контроллер, идешь на сайт производителя и качаешь документацию.
    SATA контроллер может быть встроенным в ЦП в SoC системах. Тогда ищешь документацию по SoC и там раздел по SATA. У производителя можно попытаться найти исходники драйверов SATA под какую-то ОСь.
    У некоторых производителей эта информация может быть закрыта и исходников драйверов то же нет.
    Реализацию драйвера SATA можно посмотреть в исходниках ядра Линукс.
    Ответ написан
    2 комментария
  • Почему я не могу производить запись в зарезервированные участки памяти?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    Этот участок памяти может быть только для чтения, и там храниться - к примеру информация о производителе, серийном номере, системных статусах флешки.
    То есть физически записать туда ничего не получится.
    Ответ написан
    Комментировать
  • Как правильно проинициализировать контроллер прерывания?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    По сути pic должен генерировать прерывания 18 раз в секунду

    По сути не PIC, а таймер. А в твоём коде не видно ни как ты инициализировал таймер, ни что таймерное прерывание разрешено в PIC.
    Ответ написан
    2 комментария
  • Как sizeof вычисляет размер массива?

    @res2001
    Developer, ex-admin
    sizeof - это не функция (хоть и выглядит похоже) - это операция взятия размера.
    sizeof всегда вычисляется на этапе компиляции, т.е. в исполняемом файле вместо вызова sizeof уже будет вычисленная константа.
    Когда компилятор знает размер массива, как в вашем примере, он вернет полный размер массива.
    Но если передать в sizeof произвольный указатель (именно указатель, а не статический массив), он вернет размер указателя.

    Статический массив - это не указатель. Указатель - на этапе выполнения занимает в памяти место для хранения адреса. Статический массив занимает в памяти место для хранения данных массива.
    Поэтому статический массив - это не указатель. Хотя часто компилятор работает с именем статического массива как с указателем.
    Ответ написан
    8 комментариев
  • Может ли это работать?

    @VT100
    Embedded hardware & software.
    адрес должен достать значение и с этим значение должно что-то произойти. Возможно ли это реализовать?

    Возможно, если времена двойного чтения из памяти и расчёта в АЛУ не превоссходят период тактового сигнала. Приблизительно - так.
    Но это неявно подразумевает, что есть сигналы с временами/периодами меньше, чем у тактового сигнала.
    Ответ написан
    1 комментарий
  • Масштабирование windows 7?

    @rPman
    В свойствах ярлыка к игре включай режим совместимости
    Ответ написан
    Комментировать
  • Куда поступать на программиста по программе "Программной инженерии"?

    sgjurano
    @sgjurano
    Разработчик
    Выбирайте лучший вуз из тех, которые можете осилить — МФТИ, МГУ, ВШЭ, Бауманка. Хорошее образование лишним не будет никогда.

    А пока начните с чтения книг Столярова "Программирование. Введение в профессию", это поможет понять чем именно вы собираетесь заниматься :)

    stolyarov.info/books/programming_intro
    Ответ написан
    1 комментарий