Search
Write a publication
Pull to refresh
1
0
Send message

Почему Windows 95 подвисала при форматировании дискеты?

Reading time4 min
Views102K
Рэймонд Чен отвечает на известную шутку:
— Папа, покажи, какая винда многозадачная!
— Сейчас, сынок, только дискету доформатирую...

Кто же целыми днями форматирует дискеты? Оказывается, многие гики только этим и заняты. (Вообще-то, можно покупать дискеты уже отформатированными, только тссс!) Но почему Windows 95 подвисала при форматировании дискеты?

Всё дело в совместимости с MS-DOS.

Как мы видели немного раньше, MS-DOS в Windows 95 выступала как слой для старых 16-битных драйверов. Несмотря на то, что в итоге операции ввода-вывода обрабатывались 32-битной файловой подсистемой, все они проходили через 16-битный код, чтобы 16-битные драйверы, TSR и подобные обработчики видели «нормальные 16-битные операции» и работали в привычном им окружении.

В 16-битном мире форматированием занималось программное прерывание 13h, и многие программы использовали этот факт, перехватывая прерывание так, чтобы получать управление при форматировании дискеты. Так делали некоторые TSR, программы для бэкапов (программы для бэкапов, разработанные для Windows 3.0, включали в себя 32-битные драйверы под Windows 3.x, называемые VxD, для отслеживания операций с дискетами). Но это объясняет не всё. В конце концов, Windows 95 прогоняла весь дисковый ввод-вывод, а не только форматирование дискет, через 16-битный код. Почему же форматирование дискет так существенно влияло на систему?

Читать дальше →

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

Reading time19 min
Views258K
Есть один курс, который я бы добавил в программу обучения по всякой инженерной специальности, и он не о компиляторах или сложности алгоритмов. Это “Введение в реальность индустрии”, ибо об этом не говорят и это приводит к никому не нужным обломам. Эта статья претендует стать README.txt для молодого инженера в деле построения карьеры. Ее цель — сделать вас счастливее, заполнив пробелы в образовании относительно того, как работает реальный мир. Я не призываю следовать написанному как подробному руководству, но я надеюсь, что эта информация окажется для вас более ценной, чем то ничто, что вам рассказали об этом в университете.
Читать дальше →

OS/2 четверть века спустя: почему IBM проиграла, а Microsoft выиграла

Reading time20 min
Views218K
Двадцать пять лет назад IBM представила генеральный план восстановления контроля над рынком PC. В ноябре 1987 года в магазины отправились первые дискеты с OS/2 версии 1.0. Microsoft разрабатывала ее вместе с IBM и в случае успешной реализации этих планов мир был бы совсем иным. И мир уже начал меняться.

Сейчас о OS/2 обычно вспоминают только в связи с той ролью, которую она сыграла в промышленной войне, окончившейся триумфальной победой Microsoft. На момент выпуска OS/2 в Microsoft работало 1800 человек, меньше, чем сейчас работает в ливерпульском телемагазине QVC. Microsoft даже не была крупнейшим производителем программ для PC. Но всего через несколько лет компания стала не только крупнейшим игроком отрасли, но и одной самых дорогих компаний в мире; один лишь слух о выходе Microsoft в новую нишу вызывал панику у существующих игроков.

Согласно традициям нашего издания я вернул старые программы к жизни и оценил OS/2 с современной точки зрения. Но гораздо интереснее вновь задать иной вопрос: могла ли IBM победить? Если именно OS/2 стала причиной поражения Синего Гиганта, то смогли бы они остановить Microsoft с помощью более хитрых планов? Давайте вернемся в те времена, когда мир еще не знал слов «платформа» и «экосистема» и вспомним, как выглядела отрасль информационных технологий в середине 1980-х.


Читать дальше →

«Хабрахабр» представляет Geektimes

Reading time4 min
Views223K
Анонсируя внесение «Хабрахабра» в реестр распространителей информации, мы дали понять, что планируем перенести часть контента на новый проект. Решение о вынесении непрофильных хабов в другое, изолированное от «Хабрахабра» место, давно зрело внутри компании. Но для принятия решения начать действовать чего-то не хватало. Внесение «Хабра» в реестр распространителей информации послужило толчком для начала решительных действий.


Читать дальше →

«VALS Semester of Code» после «Google Summer of Code», или «У Вас opensource проект? — Халявные разработчики идут к Вам!»

Reading time2 min
Views4.3K
Если Вы являетесь автором, соавтором или активным разработчиком opensource проекта, то, скорее всего, Вы уже слышали о программе Google Summer of Code (если нет — на Хабре есть хорошая статья). Программа проводится уже 10 лет подряд, каждое лето, и совсем недавно (18 августа) закончился её 10-й сезон, Google Summer of Code 2014, в котором приняли участие целых 190 организаций (включая проект KolibriOS).

Воодушевлённое примером Google завидуя успеху США, агенство Европейского Союза Virtual Alliances for Learning Society (сокр. VALS) решило «запилить» свой Summer of Code с блэкджеком и шлюхами, и назвало его VALS Semester of Code. В противовес GSoC, студенты-участники здесь будут писать код не в период летних каникул, а во время семестра, и платить им будут не деньгами, а слониками академическими кредитами.
Читать дальше →

Грозный пират утонул из-за протекающей капчи

Reading time1 min
Views85K
image

Как вы можете помнить, в октябре 2013 ФБР закрыли Silk Road и нашли его администратора — Росса Уильяма Уильбрихта. Многие строили догадки, как же так могло получиться, как такой серьезный человек мог так просто деанонимизироваться.

Оказалось все чрезвычайно просто: Росс не настроил свой сервер для выхода в обычный интернет через Tor (запросы в интернет шли напрямую), а капча, которая использовалась на странице логина, подгружала данные из интернета, таким образом раскрывая не только факт показа капчи, но и IP-адрес сервера, на котором хостится Silk Road.
Читать дальше →

Выход KolibriN9

Reading time3 min
Views17K
Спустя полтора года разработки, вышла новая версия сборки KolibriOS — KolibriN9!

KolibriN9 — это неофициальная сборка, выпускаемая лично Leency. В ней он развивает свое видение дизайна KolibriOS и того, каким должна быть дружелюбная для простого пользователя ОС, которое расходится с мнением основной команды разработчиков. Также отличием данной сборки от официальных ночных является поставка по умолчанию практически всех программ и игр, написанных для KolibriOS.
Читать дальше →

Простой USSD-запрос в Android 4.0+

Reading time3 min
Views39K
В Android до сих пор нет API для USSD-запросов. Баг висит уже 6 лет!
Я находил разные способы создания и получения информации из USSD запросов, но в итоге ни один не устроил.
Затем я нашел упоминания о том, что с помощью обновленных в Android 4.0 служб спец. возможностей можно легко получать содержимое окон и так получить текст из окна и результатом USSD запроса. Попробовал — получается отлично! Без перезагрузок и надежно.
Читать дальше →

Пишем на языке С/C++ в Windows под KolibriOS

Reading time7 min
Views22K
image
KolibriOS – миниатюрная операционная система, ядро и большинство программ которой написано на языке ассемблер. Это, конечно же, не означает, что другим языкам программирования путь в KolibriOS закрыт. К примеру, за время эволюции этой операционной системы было несколько попыток разработать инструментарий или адаптировать библиотеки для создания приложений на языке C/C++. В репозитории KolibriOS до сих пор есть работающие примеры, использующие ранние наработки адаптации C/C++ кода, например (root)/programs/games/kosilka или (root)/programs/system/shell, использующие разные подходы и обертки C/Asm.

На текущее время самой перспективной из существующих библиотек, на мой взгляд, является newlib. Она состоит из адаптированной libc, C-оберкой над основными coreAPI функциями и toolchain’а для сборки.

К сожалению, в KolibriOS нативного компилятора C/C++ еще не существует, текущий toolchain предполагает сборку приложений в ОС Windows или Linux.

Данная статья является инструкцией по настройке newlib для ОС Windows.

Читать дальше →

Дайджест KolibriOS #5: мы снова с вами

Reading time2 min
Views12K
Дайджест за май был пропущен, пропущен по моей вине. Но это не значит, что он полностью прекратил свое существование, и потому хочу представить вам новый дайджест за май и июнь. Всем, кому интересно, добро пожаловать под кат.
Мне интересно

Потрясающая, но невидимая глубина

Reading time5 min
Views173K


Вы только что зашли на страницу Google.

Просто, не так ли?

Что же на самом деле произошло?

Ну, если вы немного понимаете, как работают браузеры, то все не так просто. Вы только что задействовали HTTP, HTML, CSS, ECMAscript и прочее. В действительности, это такие невероятно сложные технологии, что от них у любого инженера голова пойдет кругом, стоит лишь попробовать поглубже вникнуть в них. И нет ни одной компании, которая могла бы справиться с ними в одиночку.

Давайте упростим.

Вы только что установили соединение с www.google.com.

Просто, не так ли?

Что же на самом деле произошло?
Читать дальше →

Автосборка загрузочных образов KolibriOS в Linux на отдельно взятой машине

Reading time5 min
Views8.5K
Предлагаем Вашему вниманию статью, написанную righthearted, одним из наших четырёх студентов на Google Summer of Code в этом году. Статья рассказывает о том, как он настраивал автосборку KolibriOS в Linux на своём компьютере. Задача не совсем тривиальная.

image
Этот пост будет полезен для тех, кто хочет проверить возможность добавления своей программы в официальную автосборку KolibriOS, при этом не ломая сервер. Наглядным примером этому является сам автор этой статьи. При попытках сдать квалификационное задание для Google Summer of Code, многократно ломалась итальянская версия автосборки, и один раз даже завис сервер, на котором хранятся исходники всей системы. Чтобы такое не повторялось, в данной статье приводится инструкция по настройке автосборки загрузочных образов KolibriOS. Всё описанное проверялось на 64-разрядной версии Ubuntu. Для остальных дистрибутивов процедура не должна сильно отличаться. По возможности, я буду расписывать каждый шаг, чтобы не упустить ничего важного.
Читать дальше →

Дайджест KolibriOS #4: и весна нам не помеха

Reading time2 min
Views13K
По множеству причин (в том числе, постоянные DDoS Хабра) подготовка дайджеста за апрель затянулась, за что приношу свои извинения. Но он все же был подготовлен, и теперь я хочу представить вам результаты труда наших программистов. А показать действительно есть что.
Подробности

Организация многозадачности в ядре ОС

Reading time22 min
Views81K
Волею судеб мне довелось разбираться с организацией многозадачности, точнее псевдо-многозадачности, поскольку задачи делят время на одном ядре процессора. Я уже несколько раз встречала на хабре статьи по данной теме, и мне показалось, что данная тема сообществу интересна, поэтому я позволю себе внести свою скромную лепту в освещение данного вопроса.
Сначала я попытаюсь рассказать о типах многозадачности (кооперативной и вытесняющей). Затем перейду к принципам планирования для вытесняющей многозадачности. Рассказ рассчитан скорее на начинающего читателя, который хочет разобраться, как работает многозадачность на уровне ядра ОС. Но поскольку все будет сопровождаться примерами, которые можно скомпилировать, запустить, и с которыми при желании можно поиграться, то, возможно, статья заинтересует и тех, кто уже знаком с теорией, но никогда не пробовал планировщик “на вкус”. Кому лень читать, может сразу перейти к изучению кода, поскольку код примеров будет взят из нашего проекта.
Ну, и многопоточные котики для привлечения внимания.

Читать дальше →

WebView или история о том, как в KolibriOS браузер писался

Reading time4 min
Views29K
Пожалуй каждый, кто интересуется KolibriOS, знает, что единственным способом выйти в глобальную сеть был и есть и посей день текстовый браузер написанный одним из наших разработчиков практически с нуля. Этот браузер пожалуй является одной из «достопримечательностей» ОС, и потому было решено поведать его историю: как он появился, развивался, и каковы планы на ближайшее будущее. Кому интересно, добро пожаловать под кат.
Читать дальше →

Radare2 собирает денежные средства на проведение своего Summer of Code

Reading time2 min
Views14K


Свободный фреймворк для дизассемблирования и реверс-инжиниринга radare2 запустил краудфандинговую
кампанию
с целью собрать 12000 EUR на проведение собственного Summer of Code.

В этом году radare2 не прошел отбор в Google Summer of Code, что не остановило нас, и мы решили всё равно выполнить задуманное (web интерфейс, бинарные шаблоны, миграция на sdb, ROP-компилятор, ESIL — Evaluable Strings Intermediate Language, парсер PDB и протокола Windbg, сигнатурный анализ, bokken — графический интерфейс на PyGtk, поддержка новых архитектур).
Читать дальше →

Дайджест KolibriOS #3: начало весны

Reading time2 min
Views6.2K
Несмотря на то, что за окном уже весна, наши программисты продолжают неустанно работать над KolibriOS. И в этом месяце им есть чем похвастаться, особенно в области прикладного ПО.
Читать дальше →

Определение локальных IP-адресов через WebRTC

Reading time1 min
Views47K
Через WebRTC можно получить список всех локальных (находящихся за NAT) интерфейсов в системе.

Пример кода на JavaScript jsfiddle.net/GZurr

Работает только в браузерах поддерживающих WebRTC, на текущий момент это Firefox и Chrome.

Это можно использовать для получения более точного фингерпринта браузера или, например, разоблачения персонажей, сидящих за VPN, чтобы ВЫЧИСЛИТЬ ПО АЙПИ И НАБИТЬ Е**ЛЬНИК

Для удобства использования я изготовил js-сниффер, который можно вставить на страницу и удобно просматривать результат его работы: zhovner.com/jsdetector

Достаточно вставить на страницу код:

<script src="//zhovner.com/jsdetector.js?name=test"></script>


Где test нужно заменить на слово, по которому будет доступен результат работы сниффера: zhovner.com/jsdetector/test

Читать дальше →

Дайджест KolibriOS #2: что нам принёс февраль

Reading time2 min
Views8.8K
Прошел месяц с момента выхода первого выпуска нашего дайджеста. Весь этот месяц, не взирая ни на что, наше сообщество трудилось над KolibriOS.
Читать дальше →

Shell – консольный Just for fun

Reading time6 min
Views16K
Значительная часть операционной системы КолибриОС (ядро и большинство драйверов и программ) написаны на языке ассемблера. Тем не менее, программы на языках высокого уровня также есть. Сегодня пойдёт речь об одной из них.

До создания программы командной строки Shell у меня уже был опыт написания программ для КолибриОС. В основном, это были игры – Piton, Donkey, порт эмулятора ZX Spectrum, названный мною e80, порты консольных пятнашек и порт виртуального собеседника Eliza. Я развлекался, как мог.

Читать дальше →

Information

Rating
Does not participate
Date of birth
Registered
Activity