• Что из себя представляет сегмент код программы в процессе?

    @Karpion
    Для начала Вам надо освоить понятие "адресное пространство" - чем оно отличается от "памяти". Узнать, чем "адресное пространство компьютера" отличается от "адресное пространство процесса" (в частности - у каждого процесса есть собственное адресное пространство).

    Дальше хорошо бы узнать сегментную систему адресации процессоров *86 - значительная часть терминологии идёт оттуда, хотя реально после появления 32-битной адресации на процессоре i386 сегменты практически не задействуются.

    Ну и надо иметь понятие о программировании на ассемблере.

    В первом приближении запуск процесса выглядит так:
    • Ядро создаёт структуры данных для процесса. В т.ч. - распределение адресного пространства.
    • Ядро смотрит в файл программы и выделяет место под программный код программы (тут я рассуждаю в контексте "процесс есть исполняющаяся программа"). Это место (и/или помещённый туда код) входит в "сегмент кода". Если одну программу запустили несколько раз - её сегмент кода попадает в несколько процессов.
    • Ядро смотрит список разделяемых библиотек, прописанный в файле программы. Если эти библиотеки не загружены ранее запущенными процессами - под эти библиотеки тоже выделяется адресное пространство; и это адресное пространство тоже входит в сегмент кода. Но надо понимать, что адресное пространство каждой библиотеки попадает во все процессы, которые используют эту библиотеку. В идеале - библиотека во всех процессах должна находиться на одном и том же адресе адресного пространства; но иногда это не так.
    • По ходу дела в процессе работы программа может подгружать новые библиотеки. Их адресное пространство тоже попадёт в сегмент кода.
    • Как правило, код программы и код каждой библиотеки - непрерывный. Но между ними - бывают разрывы.
    • Для работы нужно выделить адресное пространство под стек. В идеале - одно д.б. непрерывным. Но иногда - приходится извращаться и делать его разрывным. Это = сегмент стека. Активно используется при вызове подпрограмм/процедур/функций - через стек передают аргументы, на стеке располагают локальные данные подпрограмм/etc. Особенно активно стек используется при рекурсии; тогда как в древних языках с запретом рекурсии нередко обходились статическим размещением аргументов и локальных переменных.
    • Для данных, размещаемых в областях, резервируеммых функцией malloc() - используется куча. Ей разрешается быть не непрерывной, т.е. состоять из разорванных кусков.


    Фраза "поток берет информацию на выполнение" говорит о том, что Вы читали плохие книги (извините за прямоту).
    Инструкции программного кода - берёт процессор (или ядро - если процессор многоядерный), т.е. железка. Ядро операционки лишь подготавливает инструкции программного кода для того, чтобы процессор мог их брать. Ядро делает это один раз при старте процесса; ну и вносит поправки при свопинге/пейджинге. А процессор исполняет каждую инструкцию кода; ну, чтобы Вы лучше поняли: каждое сложение или иная арифметическая операция, каждая пересылка данных - является инструкцией.
    Кстати, всё, что делает ядро операционки - записано аналогичными инструкциями кода. Но ядру дополнительно позволены особые инструкции.

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

    @Karpion
    Ну, называйте - если собеседники Вас поймут. Законы это не запрещают.
    Ответ написан
    Комментировать
  • Подтормаживает компьютер, в чем дело?

    @Karpion
    Ну, я бы начал с проверки конденсаторов на вздутие и с удаления пыли. Я всегда с этого начинаю.

    Далее я бы попробовал отключить один из дисков и посмотреть, изменится ли скорость работы операционки на втором диске. И наоборот.

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

    @Karpion
    Занумеруем цвета произвольным простейшим образом. При загрузке страницы - некой статической переменной присвоим номер, соответствующий зелёному.

    При наведении курсора - присваиваем фону цвет, соответствующий этой переменной. А саму переменную переводим в следующее состояние; при этом помним, что состояния закольцованы.

    Если цвета занумерованы, начиная с нуля - то переход к следующему делается по формуле n = (n+1) mod 3, где три = количество цветов в цикле; а mod = остаток от деления.

    Думаю, д.б. понятно.
    Ответ написан
    Комментировать
  • Как округлить число до сотых в input?

    @Karpion
    Умножить на сто. Округлить до целого - тут есть несколько вариантов. И разделить на сто.

    Округлять лучше до ближайшего целого. Это можно так:
    Прибавить 0.5. Округлить до целого вниз. Вычесть 0.5.

    Или можно преобразовать число в строку и оперировать со строкой. Но надо помнить - число может оказаться в плавающей форме.
    Ответ написан
    Комментировать
  • Загрузочная запись в ISO образе?

    @Karpion
    При записи ISO - надо указать, какой файл там загрузочный.
    Ответ написан
    Комментировать
  • Как отследить появление http трафика на сервере?

    @Karpion
    Если есть два хоста - то трафик может очень часто переключаться. Вплоть до одновременного выполнения разных запросов там и тут. Так что идея сбрасывать кэш - так себе; особенно в силу того, что неясно, на каком из хостов Вы сбрасываете кэш, и зачем это вообще надо делать.
    Ответ написан
    Комментировать
  • Почему network дублирует файлы?

    @Karpion
    По моим ощущениям - эти файлы закачаны из разных мест (с разных серверов, из разных папок). Проверьте.
    Ответ написан
    4 комментария
  • Почему возникает ошибка 403 Apache?

    @Karpion
    Читаю в конфиге:
    <IfModule mod_dir.c>
    	DirectoryIndex index.php index.pl index.cgi index.html index.xhtml index.htm
    </IfModule>
    А модуль mod_dir.c Вы точно подключили?
    Ответ написан
    1 комментарий
  • 3D "window" в браузере?

    @Karpion
    Ну, я бы сделал примерно так:
    Создаём невидимый объект, куда помещаем содержимое окна. Располагаем там элементы, заставляем систему отрендерить их, а картинку выносим на 3D-объект.
    Далее все действия с 3D-объектом типа клика мышкой - переадресуем в невидимое окно. И при его изменении - снова переносим изображение в 3D-объект.
    Как-то так. Не факт, что оптимально.
    Ответ написан
    Комментировать
  • От чего может быть странный звук возле проца?

    @Karpion
    Хорошо бы потрогать пальцем разные детали и по вибрации определить источник звука.
    Как обычно, я в таких случаях советую проверять конденсаторы на мат.плате и в блоке питания - не вздулись ли. Иногда звон происходит из-за того, что конденсаторы не сглаживают колебания напряжения.
    Ответ написан
  • Как запустить команду на сервере, чтобы она работала после отключения?

    @Karpion
    Когда юзер подключается к серверу удалённо или входит локально с консоли - в процессе входа запускается шелл, ассоциированный с терминалом /dev/tty* . Когда шелл по указаниям юзера запускает программы - эти программы тоже ассоциированы с этим же терминалом. Когда юзер завершает сессию - процессы, ассоциированные с соответствующим терминалом, получают сигнал GigHup. Процессы, которые не настроили обработку этого сигнала - умирают.

    Чтобы процессы работали в фоновом режиме после завершения сессии - их можно запустить через программу nohup, которая отвязывает себя и своих потомков от терминала. Если надо запускать сложную последовательность команд - то лучше запихнут её в скрипт.

    Ну и есть продвинутые решения - про них говорили выше.
    Ответ написан
    1 комментарий
  • Почему для защиты от XSS опасные символы нужно экранировать, а не удалять?

    @Karpion
    Поясню на примере шелла - мне кажется, это проще всего.

    Допустим, есть некая программа, запускаемая с командной строки. И эта программа интерпретирует свои аргументы так, что звёздочка имеет какое-то особое значение. Например, find откуда_искать -name маска_для_поиска - и маска_для_поиска вполне может содержать звёздочку.
    Однако, если я напишу маску_для_поиска просто так - то шелл увидит там звёздочку и станет интерпретировать её по-своему, в результате чего find получит не то, что я хотел ему передать, а что-то иное. И чтобы шелл не своевольничал - я должен экранировать звёздочку и прочие спец.символы.

    Другой пример - форум с хранением содержимого в SQL-DB:
    Понятно, что юзеры имеют законное право использовать в тексте любые печатные символы; в т.ч. и те, которые являются спец.символами в SQL. Соответственно, при формировании SQL-запроса - спец.символы надо экранировать, иначе возможна SQL-инъекция.
    Ответ написан
    Комментировать
  • Как понять входит ли точка в квадрат?

    @Karpion
    Если это ровный квадрат - то x1=x4, и остальные параметры тоже равны попарно. В таком случае напишите нормально.
    Для ровного квадрата - надо убедиться, что X-координата точки находится между X-координатами левой и правой границы; и аналогично - для Y-координаты.
    А можно посчитать среднюю точку. И потом убедиться, что отклонение координат X и Y отличаются от средней точки не более чем на половину стороны квадрата - по абсолютной величине. Это хорошо тем, что можно не бояться перепутать правую и левую стороны квадрата.

    Или квадрат м.б. повёрнут - тогда его надо задают немного совсем иначе, есть несколько вариантов.
    Тут вычисления немного сложнее.
    Ответ написан
    Комментировать
  • Как настроить debian до первого подключения к сети?

    @Karpion
    Как правило, начинать надо с построения модели угроз. Т.е. надо рассматривать возможные атаки на Ваш компьютер.
    Ответ написан
    Комментировать
  • Есть ли какие то расширения для Chrome или Firefox для показа безопасности сайта?

    @Karpion
    А как Вы себе представляете проверку сайта на безопасность? По каким признакам?
    Ответ написан
  • Неправильно установил Ubuntu?

    @Karpion
    Можно поменять загрузочный диск в BIOS.

    Или можно научить Windows_Loader загружать Linux.
    Ответ написан
    Комментировать
  • Как не закончить цикл while?

    @Karpion
    В prompt всегда вводится строка. Эту строку поим можно интерпретировать как число, причём разными способами, в т.ч. как римскую запись: I, II, III, IV, V, VI, VII, VIII, IX, X,...

    Я навскидку не помню, что возвращает prompt при нажатии "Отмена". Читайте документацию.
    Но уж точно не надо преобразовывать возвращаемое значение в число сразу же. Сначала надо проверить на отмену, и если да - то покинуть цикл.
    Ответ написан
    Комментировать
  • Как с бэкенда ловить ошибки на фронтенде?

    @Karpion
    1. Поставьте на фронте проверку корректности полей. Лучше не доводить до ошибки вообще.
    2. Я не понял, кто на бэке определяет ошибку. И что вообще за ошибка.
    Ответ написан
    Комментировать