Pull to refresh

Comments 77

Интересно, но слишком сумбурно. Начинаете действительно с «мифов», а потом резко прыгаете к объяснению порядка загрузки.
Потом снова описание того, как пользоваться apt-get. Если я не знаю apt-get, вряд ли мне нужно знать процесс загрузки Linux.
Если же я знаю процесс загрузки Linux, то на зачем мне элементарные команды apt?
Из-за этого половина статьи уместна на Geektimes, а половину было бы интересно более подробно почитать на Хабре.
>К сожалению MS, как монополист рынка офисного ПО пожелал не раскрывать эти форматы.
Открыли формат doc и пр. в 2008 году. Форматы docx и пр. открыты изначально.
Так открыты, что даже MS свои стандарты не соблюдает. Ещё бы, соблюдать стандарт, в 6000 страничном описании которого умудрились описать не всё — это надо быть гением.
Я не листал эти 6000 страниц и могу лишь предположить что это не столько по злому умыслу, сколько по разгильдяйству. Потому что пока ты единственный владелец формата, то можешь его менять на ходу как хочешь. Похожая картина была с IE 6.0
Ядро Linux — не монолит.

Поясните пожалуйста этот момент, т.к. в Wiki написано, что ядро монолитное. И если мне не изменяет память, то именно из-за монолитного ядра и был спор Линуса с Таненбаумом. Хотя я могу и ошибаться.
UFO just landed and posted this here
Мой мир немного треснул. Не уверен, что после вашего объяснения и недолгого гугления понимаю что есть что… Можете предложить разжёванную литературу о ядрах ОС?
> Откуда истории о бубнах и ”сексе с Linux”

На самом деле это выражение пошло с очень давних времен, когда даже простой инсталл не обходился без посещения консоли и вдумчивого выкуривания документации. Я уж не говорю про все остальные аспекты работы (вспоминаю те радостные времена, когда осиливал кастомную сборку ведра 2.0).
Автор, вероятно, не познал радость установки слаквари на пентиум про.
Автор не познал радость слаквари…
ОС Linux нет
ОС Linux есть, много разных, и они основаны на одноимённом ядре.
Может вы имеете в виду ОС GNU/Linux?
Linux (в значении ОС) — это более короткий и более распространённый синоним GNU/Linux.
В том то и дело, что термин «Linux» неоднозначен, когда говорят не о ядре. Так можно и Android назвать. Поэтому обычно либо пишут GNU/Linux, либо изначально уточняют, что будут иметь в виду под «Linux», что автор топика и сделал.
изначально уточняют, что будут иметь в виду под «Linux»
Имхо, автору так и стоило сделать, вместо того, чтобы категорично «развенчивать миф».
А у меня всегда было понимание что UNIX это некое ядро, а Linux это подобие оболочки над ней. Век живи, век учись.
Статья стара как говно мамонта. В ней не описывается, как биос на моём домашнем компьютере проверяет апдейты биоса по wifi, а потом читает файлы с UEFI (и никакого «бут-сектора», внезапно). Большинство программ требует для своей работы не столько ядра, сколько libc, а многим очень хочется видеть dbus.
BIOS, который найдет диск и загрузит 512 байт в память прост. Если бы я знал спецификацию на мою материнскую плату я бы написал его за несколько часов.

Если это так, то я могу прямо тут расписаться в полной свой профнепригодности и ехать собирать бананы в Африку, ибо по всему выходит, что как разработчик прошивок я никуда не годен.
Если серьезно, на средний по сложности проект адаптации BIOSа для CRB под конкретную плату уходит в среднем от 3 до 6 месяцев, и первые пару недель не грузится вообще ничего дальше начальной инициализации RAM, а иногда перестает работать еще раньше. Когда плата смогла загрузить хотя бы DOS — устраевается Boot-Party с шампанским и сладостями во всем отделе RnD, ибо это результат огромного количества работы практически всего отдела. А тут обещают управиться за несколько часов, блин.
Нет в современных ПК вообще ничего простого, даже чтобы UART завести нужна математика с пределителями, а чтобы завести RAM или PEG Gen3 нужна либо куча кода от производителя платформы, либо документация и несколько месяцев работы на полный день.
UFO just landed and posted this here
Автор прочитал описание биоса из книжки начала 90ых. Тогда да, бивис ничего суперского не умел.
П.С.
Распишем процедуры, которые позволят нам реализовать int13h для загрузки с первого жесткого диска на шине SATA на более-менее современной системе (core2duo и никакого UEFI) (гыгыгы).
1) Биос должен понять, что за проц стоит, залить в него микрокод (очень простая задача, тут будет где-то 3 страницы ассемблера), иначе будет очень плохо дальше
2) Далее биос должен настроить контроллер памяти, произвести её калибровку (у нас >=DDR3, там это by design требуется), определиться с размером и кое-как проверить (чтото около 64 кб бинарного кода в итоге, даташыты на это весят… ну гдето около 500стр у штеуда).
3) Далее биос должен врубить PCI мосты (иначе фиг кто до периферии достучится)
4) Тыгдымс, считаем, что дисплей мы не юзаем (ибо биос видеокарты захочет много чего ещё для своего запуска), а будем смотреть в COM порт (если найдем его на своей плате, гыгыгы). Биос должен настроить LPC шину и SIO, который рулит всякими PS/2 клавомышами и ком портами (ещё с 10кб кода), да, даташыты на это дело доходят до 200-300 страниц.
5) Ура, можно написать «Вася — лох» в ком порт
6) Далее биос должен настроить SATA контроллер, который висит за мостом. Вот тут честно скажу — неделя отборного секса и выхлоп в 50 страниц ассемблера, который дал мега-кастрированный int13h, который почти нифига не умел
7) Урааааа, читаем 512 байт в 07C00h и прыгаем туды.
8) Открываем водку и бухаем.
Про процесс загрузки UEFI обзорно я писал уже однажды, но без деталей.
Если писать на С, а не на ассемблере, то нужен стек и сколько-то памяти еще до инициализации RAM. В таком качестве можно использовать кэш L2, переключив его в No-Eviction Mode и запретив компилятору его сбрасывать.
У современных чипсетов есть собственные UART, поэтому можно обойтись без LPC и SuperIO на данном этапе, загружаться можно попробовать с чего-то попроще, чем SATA, с SD-карты, к примеру, несколько каналов SPI тоже есть у почти всех современных чипсетов.
Вот тут несколько интеловских инженеров показывают, как можно ценой выбрасывания почти всего добиться UEFI-загрузки Yocto Linux на Intel Quark прошивкой размером в 64 кб.
Встроенный UART именно в чипсетах, а не в SoCах? Просто по AMD последнее, что было со встроенным UARTом это geode, и то, везде комы торчали на SIO.
Кеш L2 это хорошо, да и на ассемблере он всеравно используется (и для этого какраз и надо сначала залить микрокоды, по крайней мере я везде ловил тонны глюков, когда убирал загрузку микрокодов), иначе MRC/AGESA тупо не запустятся из-за своей сишности, да и вечные mov SP, ENDFUNC+2 и прочие извращенства для работы команды ret слегка напрягают, у меня доходило до того, что адресами «указателя стека» была завалена половина MMX/SSE регистров, что понимание кода сводило к нулю.
Да и в любом случае фразы вида «биос это фигня и будь у меня даташыты яб написал за недельку» ничего кроме конского ржания не вызывает.
У AMD только на SoC'ах, да, а у Intel давно уже по паре UART'ов имееся в чипсете (даташит, 2.17).
Я писал без кэша на ассемблере (в том числе и для x86-64) и тоже скажу, что веселого там мало, но у меня хотя-бы код полностью контролируется мной и не нужно вызывать ничего внешнего.
С тезисом про ржание согласен как никто. Иногда приходится биться неделями над проблемами, о которых большинство авторов подобных статей типа «компьютеры и ОС — это очень просто» даже не слышало никогда, и потому утверждает, что их не существует.
А за ссылку на интеловский эксперимент — огромное спасибо.
UFO just landed and posted this here
Там от ATA было только то, что требовалось самописной операционке. Только чтение/запись LBA, определение наличия носителя и его паспорта. На ассемблере это вышло быстрее + был опыт с переписыванием авардовского usb куска эмуляции этой аты. От нефиг делать было сделано буханка-троллейбус.jpg, которое лежало во флешке биосной. Из готового кода был применен интеловский MRC (т.к. ЭТО писать я в жизни не стану, там полная жэ). Выложить примеров/даташытов не могу, т.к. NDA
UFO just landed and posted this here
UFO just landed and posted this here
Intel'овские документы серии Platform BIOS Writer's Guide, в которых описываются последовательности инициализации процессора и чипсета, редко бывают меньше 600 страниц. Плюс даташиты на CPU, PCH, EC, HWM, LAN, HDA, TPM и SuperIO, плюс схема платы с пояснениями, там только чтения документации на несколько недель вообще без какого-либо кода, если с нуля все писать.
UFO just landed and posted this here
при условии подглядывания и списывания из того же coreboot

<irony>И последующего открытия исходников под той же лицензией, я полагаю?</irony>

Да, к сожалению не все компании понимают ценность открытого и свободного ПО…
На три компа ставил убунту, везде стартует с ошибкой мол не найден swap том или не готов. Причем xubuntu тоже. Но при этом работают достаточно стабильно. В работе напрягают мелкие недопилки интерфейса в основном, драг-н-дроп перестает работать и тому подобные мелкие грешки. Но ругать за это авторов нет никакого этического права, ведь я пользуюсь бесплатно результатом их труда.
Вы имеете полно право ругать авторов за плохой софт, раз уж он опубликован. Приведу тупую аналогию. Вы можете возмущаться в комментариях плохо написанной статьей на geektimes, ставить минусы статье и автору, при том, что прочитали ее совершенно бесплатно. Нельзя все прощать потому что бесплатно.
В глазах картина несчастных детей, замученных своими родителями которые вот так же считают, что руганью можно что-то изменить.
Нет, мир так не работает, руганью в адрес инициативы можно добиться только исчезновения какой-либо инициативы.
Помогает помощь или мягкая критика в форме неназидательного выражения своего мнения.
Хорошо, «ругать» это слишком грубое слово. Я подразумевал критику в виде багрепортов и фичреквестов, а также форме свободных обсуждений. Понятно, что орать на разработчиков не нужно. Но покритиковать какой-нибудь Опенофис за неполную поддержку форматов можно и нужно.
UFO just landed and posted this here
То есть если вы из ubuntu перезагружаетесь в ubuntu, то звук есть, а если из ubuntu в Windows, то отсутствует?

Очевидно это проблемы Windows, если она не проводит полную инициализацию оборудования, а предполагает, что оборудование находится в каком-то состоянии.
UFO just landed and posted this here
«Попробуйте выключить и снова включить» — IT Crowd.
Просто нужно не ребутать, а вырубить его. У меня у жены на буке такие же беды.
Для компа я бы линукс не использовал, мне бы линукс пригодился для своего кастомного железа, но вот дейстительно даже не знаешь откуда начать копать. Тот же FreeRTOS поставить проблема нет, но это совсем другой уровень да и для контроллеров в основном. Хотелось бы знать как сделать свою железяку с процессором и поставить туда линукс, написать драйвера и самое главное как отлаживать всё это дело по юсб с какого-нибудь qt creator или IAR
Кстати, о кастомном железе. Стим запустили в продажу Steam Machine от Alienware от $479.99 USD и от Alternate от $1,099.99 USD. Это если нужно именно игр, хотя может и не только.
ну я о железе типа raspberry pi, только там то всё готово, а вот пройти путь разработчиков расбери было бы действительно интересно
Не всё железо поддерживается всеми ОС.

Нуда, нуда. Только почему-то из всего зоопарка, который мне встречался, под виндой не работали 1-2 железяки, а под линуксами примерно половина. Из последних экспериментов — ставил линукс на ноут, не самый свежий, но вполне рабочий. Из трех дистрибутивов два не смогли установиться совсем (зависали в процессе, вылетали с ошибками и т.п.). Тот, который установился (кажется, Suse), не распознал внешюю аудио карту, хотя и потребовал скачать для этого несколько десятков пакетов. Так что в теории все хорошо, а на практике приходится пользоваться виндой.
UFO just landed and posted this here
в винде — остаётся только материться и плакать

Ну это дело вкуса. Кто-то любит материться и плакать, а кто-то предпочитает использовать встроенные и сторонние методы диагностики — от EventVwr.msc до утилит Руссиновича.
Вот не надо. В винде, конечно, тоже случаются проблемы, хотя больше софтовые, чем железные. Документации, как официальной, так и на разных форумах, гораздо больше, чем по линуксу. И часто решение проблемы оказывается сильно проще, чем в линуксе. Это, кстати, отчасти связано с большим количеством разных дистрибутивов и их версий. Советы, написанные пару лет назад даже к новой версии того же дистрибутива могут не подойти. Проверено многократно.
UFO just landed and posted this here
Дык, звонить и писать в техподдержку.
Ну так ваша организация — вы и разбирайтесь. На крайний случай есть техподдержка. Я не спец по Exchange, но даже беглое гугление выдает кучу советов в похожей ситуации:

www.experts-exchange.com/Software/Server_Software/Email_Servers/Exchange/Q_27932939.html

Does the server you're talking about have the Client Access role installed? If not, it wont run IMAP… Also, does the server have a valid config in the EMC, if you go to the server under «Server Configuration \ Client Access» and look at the IMAP4 properties under the POP/IMAP tab? If you dont have valid bindings, it wont start the service.

If you have SSL Bindings configured, make sure the certificate is installed correctly

In the Exchange shell on that server, run «Get-ImapSettings | fl» and post what it shows… You might see something in there that isn't right.

Make sure IPv6 is enabled on the server, especially if you have IPv6 bindings installed (which they are by default)


Если на сервере ничего не менялось в явном виде, я бы начал с проверки протухших сертификатов.

И потом, возня с сервером — далеко не то, чем занимаются 99% пользователей, она требует специальной подготовки и я уверен, что хороший специалист разобрался бы с проблемой. Так что пример не совсем в тему.
UFO just landed and posted this here
Что-то типа «exchange imap service not starting». С кодом или текстом конкретной ошибки будет еще лучше.
UFO just landed and posted this here
Еще раз: я не спец по exchange. Гугл говорит, что подобные проблемы встречаются и народ их обсуждает. Могу дать только один совет: перейти на английскую версию. Тогда можно будет хотя бы гуглить по текстам ошибок. Еще что-то посоветовать трудно, не зная версии системы, сервера, точной конфигурации, истории апдейтов и т.п.
UFO just landed and posted this here
Так переключите винду на английский, посмотрите логи и ищите именно свою проблему. На русском, действительно, информации гораздо меньше. На английском находится множество похожих на вашу проблем, определить, насколько они похожи, я не могу — это будет аборт по телефону. Кроме того, я не техподдержка, чтобы помогать вам.

Если вам не хватает знаний, чтобы справиться самому, идите учиться или поищите другую работу.
UFO just landed and posted this here
Корпоративный сектор приплели сюда вы. Я, между прочим, изначально говорил про поддержку железа и геморрой у пользователей (а не админов) в случае проблем.

Но раз уж вы заговорили про корпоративный сектор, то я вам отвечу так: винда достаточно хороша для него, но требует определенных затрат на хорошего админа и/или техподдержку. Как, впрочем, и любая другая система. Судя по тому, что у вас главный способ лечения проблем — переустановка, а платность техподдержки оказывается неожиданностью, вашей конторе не очень повезло с админом.
UFO just landed and posted this here
Вы, похоже, так и остались на 95 винде. Со времен висты мне практически не приходилось ставить драйвера вручную. Ну и про установку линукса за 20 минут со всем софтом — извините, не верю. Вот в то, что из трех дистрибутивов два не устанавливаются совсем — запросто, сам видел. Винда с основной обвязкой (офис, браузеры и т.п.) — пара часов.
Не знаю, при установке 7-ки на ноутбуки/desktop пользователей постоянно нужно устанавливать драйвера. Иначе то тачпад не доконца работает, то USB3.0 не определится, то LAN/Wireless не заведется. Вот что мне офигенски нравится в GNU/Linux — поставил на внешний хард систему воткнул в любой комп и твоя рабочая система всегда с тобой. А с вин — переставил диск в другой ноут даже той же самой линейки и получил БСОД из-за того, что там, например WLAN, используется не от Atheros, а от Broadcom. Я уже не говорю про полную смену конфигурации.
Да и на внешний хард Win поставить нельзя.
А вот с GNU/Linux у меня проблемы были только тогда, когда я пытался запустить виндовые игра по вайном.
UFO just landed and posted this here
На прошлой неделе ставил openSUSE 13.2 на слабенький комп. Минут за 30 с DVD со всякими моими тыканьями (часть софта доставить, часть удалить напрочь, настроек никаких не делал — только сказал что вот эти два раздела можешь форматировать и забрать себе). Получил готовую машину с интернетом и всякими браузерами. Обновки потом только долго качались. Перед этим ради интереса ставил Win7 — дольше, интернета нет совсем (две сетевых, одна до-Win7, вторая уже новее но бордовая), видео нет, голая винда. И это на десктоп, с ноутами ещё печальнее (ибо железяк внутри больше: вафли, картридеры, тачпады, вебкамеры — почти наверняка всё это доставлять ручками).
UFO just landed and posted this here
UFO just landed and posted this here
> в убунте софт всё ещё ставят через консоль
А почему бы и нет? Набрать пару команд — это быстро. А в убунте есть уютный менеджер приложений, удивительно похожий на Mac App Store, хоть и появившийся раньше него. Ну и synaptic можно накатить, конечно.
Я свой домашний сервер/медиацентр обновляю только так. Через консоль это делается за 3-4 движения (и пакеты и само ядро).
В принципе в офисе некоторые рабочие машинки, которые на убунте, так же обновляем. Другое дело, что.это может быть уже дело привычки. Люди, которые просто работают на данном компьютере обновлений-то не делают сами. За них это делают специально обученные товарищи. :) (где-то тех персонал, а в нашей небольшой не айтишной компании — я)
zypper update быстрее же ввести, нежели через YaST дойти до обновлений (хотя они там, кажется, третьи или четвёртые будут в списке).
Гыгы, в убунте софт всё ещё ставят через консоль?

Вроде бы уже лет пять как Ubuntu Software Center есть. Synaptic так вообще за десяток лет перевалило.
Но да, через терминал быстрее, если руки на клавиатуре.
UFO just landed and posted this here
Могу ошибаться, но не 448 ли байт бутлоадер?
Именно так, следующие байты до 512го — это таблица разделов.
Почти вся статья — эпический бред.

* ОС — это не GNU coreutils. ОС — это совокупность ядра и юзерленда.
* ОС Linux действительно не существует, но GNU coreutils — это не ОС. Это набор приложений. Базовый юзерленд.
* GNU coreutils — не единственный и давно уже не образующий кусок юзерленда в современных линуксах. Есть как минимум всякие procps, util-linux и прочее. Плюс GNU coreutils заменяем. Есть как минимум bsd coreutils, sbase/ubase и busybox. GNU/Linux — бред, высосанный из гигантского эго Столлмана.
* В рамках проекта GNU, кстати, есть свое ядро ­— Hurd.
* Почему разделяется базовый юзерленд от «всего остального»? Во-первых, низкоуровневый стек современных дистрибутивов — это сильно не только GNU coreutils. В некоторых coreutils вообще не GNU. Во-вторых, низкоуровневый юзерленд — это уже не «Программы»? Что такое «Программы» тогда? Бред какой-то. Есть ядро и юзерленд.
* Говорить о том, что такое дистрибутив сложно, это очень расплывчатое понятие. Обычно под ним имеется в виду некий distributable (откуда и слово) пакет, который либо является ОС, либо предоставляет среду для ее установки (чаще всего мы в современном мире именно так ставим ОС на железо — грузится некая live система по сети или с флешки, из которой уже ставится ОС на диск). Но к дистрибутивам часто относят даже такую штуку, как LFS, и в этом есть зерно правды — если следовать книге, то в результате получается вполне предсказуемая ОС с определенными версиями софта.
* GRUB (тоже не единственный загрузчик) передает управление ядру и все, дальше ядро сам со всем справится. initrd грузит ядро.
switch_root вызывает init из initramfs.
* init может быть где угодно, /sbin/init — это дефолт. В initramfs это /init, кстати.
* Путь до инита можно передать ядру в cmdline параметром init=/path/to/init
* Также иниты бывают разные, сейчас в дебиане готовятся к релизу с systemd, а там инит — это ГОРАЗДО больше, чем запускалка сервисов.
* Кстати, в стейбле инит очень тупой, и дергает скрипты, которые уже запускают сервисы. инит там запускает и следит только за agetty на tty1-6 (по дефолту).
* И мелочь совсем, но все же — запуск графической оболочки совершенно опционален, ее может не быть.

В общем и целом — феерический бред человека с отрывочными неверными знаниями, но с претензией. 0/10.
И сразу: да, я считаю, что эта статья хуже отсутствия статьи.
Sign up to leave a comment.

Articles