Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Уникальная игра, объединяющая популярные механики Match3 и пошаговые бои!

Магический мир

Мидкорные, Ролевые, Три в ряд

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

Unix + Операционная система

С этим тегом используют

Linux IT Windows Гаджеты Программирование Компьютер Microsoft Windows 10 Android Все
13 постов сначала свежее
1245
monobogdan
monobogdan
Посты о ремонте и моддинге ретрогаджетов.
TECHNO BROTHER
1 месяц назад

Пишем один «exe», который работает на 3-х разных ОС без перекомпиляции⁠⁠

Пишем один «exe», который работает на 3-х разных ОС без перекомпиляции Смартфон, Телефон, Покупка, Гаджеты, Программирование, Моддинг, Эльфы, Linux, Unix, Операционная система, Реверс-инжиниринг, Siemens, Моторола, Ностальгия, Длиннопост

Нет, это не шутка и не кликбейт. Такое действительно возможно - правда через небольшой хак.

Недавно я задался вопросом: а возможно ли написать для ARM нативную программу, которая будет бесшовно работать сразу на 4-х операционных системах без необходимости перекомпиляции для разных платформ и ABI. Мне очень хотелось реализовать возможность писать кроссплатформенные эльфы для мобильных телефонов из нулевых и попытаться портировать на них эмуляторы ретро-консолей. Погрузившись в документацию на исполняемые форматы, я пришёл к выводу, что да - это возможно и смог реализовать такую программу на практике без читерства по типу VM! Всех гиков приглашаю под кат!

❯ Зачем и почему?

Давным-давно, в далёком 2001 году, мир увидел легендарный японский телефон - Sony CMD-J70. Ещё до создания совместного подразделения с Ericsson, Sony выпускала достаточно занимательные девайсы, которые привлекали внимание не только рядовых пользователей, но и моддеров всех мастей. Уже через пару лет после выхода, в программном плане телефон копали все кому не лень: кто-то менял графику, кто-то писал патчи, а со временем написали даже бинлоадер (PRGLoader) - загрузчик внешних "экзешников", позволявший запускать на телефоне произвольный софт, написанный на ассемблере!

Пишем один «exe», который работает на 3-х разных ОС без перекомпиляции Смартфон, Телефон, Покупка, Гаджеты, Программирование, Моддинг, Эльфы, Linux, Unix, Операционная система, Реверс-инжиниринг, Siemens, Моторола, Ностальгия, Длиннопост

Сейчас сложно себе представить, но в те годы это был нереальный отвал башки: на большинстве телефонов были доступны разве что Java/Mophun-приложения, которые обладали ограниченным функционалом и уж тем более не позволяли лезть в дебри прошивки телефона, а здесь были программы которые буквально позволяли делать с телефоном всё что захочешь: светомузыку из подсветки, кастомные игры, обои на главный экран... всё это было доступно только на куда более дорогих смартфонах с Symbian и Windows Mobile на борту!

Пишем один «exe», который работает на 3-х разных ОС без перекомпиляции Смартфон, Телефон, Покупка, Гаджеты, Программирование, Моддинг, Эльфы, Linux, Unix, Операционная система, Реверс-инжиниринг, Siemens, Моторола, Ностальгия, Длиннопост

Недавно мы с вами вспоминали о легендарном Siemens M55 и узнали, что у него находится под капотом. Несмотря на диковинную архитектуру Infineon C166, даже под этот телефон делались патчи и была написана как минимум одна кастомная игра. Но рассвет моддинг-сцены Siemens произошёл с выходом платформы S-Gold на базе стандартного ядра ARM926EJ-S, когда в ~2004 году энтузиасты полностью взломали алгоритм генерации BootKEY для загрузчика, а затем в 2006 году реализовали полноценный эльфлоадер, который позволял загружать программы написанные на C и скомпилированные самым обычным компилятором ADS. В отличии от бинлоадера для CMD-J70, "эльфятник" позволял угонять функции RTOS для создания потоков и привносил в бюджетные телефоны полноценную вытесняющую многозадачность с настоящим диспетчером задач и возможностью запуска несколько программ одновременно:

Пишем один «exe», который работает на 3-х разных ОС без перекомпиляции Смартфон, Телефон, Покупка, Гаджеты, Программирование, Моддинг, Эльфы, Linux, Unix, Операционная система, Реверс-инжиниринг, Siemens, Моторола, Ностальгия, Длиннопост

Единицы читателей поймут, что происходит на данной фотографии...

Энтузиасты раскапывали прошивку в дизассемблере, изучали её и пытались понять как работают разные её подсистемы. Результатом стало появление нативного клиента почты с предком пуш-уведомлений, аськи (NatICQ), порты самых разных эмуляторов ретро-консолей и даже полная программная поддержка MP3 в тех телефонах, где её отродясь не было! И представьте себе, почти все эти программы можно было свернуть и продолжить работу в браузере или, например, Card Explorer'е! Одним из эльфописателей был Хабровчанин @ilya_ZX

Пишем один «exe», который работает на 3-х разных ОС без перекомпиляции Смартфон, Телефон, Покупка, Гаджеты, Программирование, Моддинг, Эльфы, Linux, Unix, Операционная система, Реверс-инжиниринг, Siemens, Моторола, Ностальгия, Длиннопост

Но если вы думаете что одними телефонами Siemens энтузиасты были едины, то вы ошибаетесь - ведь круче были только "моторолки"! В 2004-году, недорогая Motorola E398 с двумя громкими динамиками, светомузыкой и поддержкой MicroSD-флэшек, стала настоящим бестселлером и привлекла к себе не меньше энтузиастов, чем Siemens. Ребята сплотились на форуме MotoFan, нашли уязвимость в загрузчике и хакнули верификацию RSA-подписи у прошивок, позволив не только модифицировать Seem'ы (что-то типа NVRAM), но и создавать для телефона кастомные прошивки - монстрпаки, которые прибавляли громкость и без того не самым тихим динамикам и в различных аспектах изменяли главное меню устройства. Со временем, @Andy51 и ещё несколько энтузиастов реализовали эльфлоадер (EP1) для E398, раскопали прошивку и написали много полезного софта, время от времени переключаясь на Linux-телефоны от Motorola...

Пишем один «exe», который работает на 3-х разных ОС без перекомпиляции Смартфон, Телефон, Покупка, Гаджеты, Программирование, Моддинг, Эльфы, Linux, Unix, Операционная система, Реверс-инжиниринг, Siemens, Моторола, Ностальгия, Длиннопост

Вероятно многие читатели подумают мол "было и было, мой айфон/сяоми может запускать любой произвольный софт и эти ухищрения давным-давно неактуальны...". Но как бы не так: про моторолки и сименсы не просто всё чаще вспоминают, у них есть до сих пор активное моддерское коммьюнити, которое продолжает пилить для них кастомный софт и далее колупать прошивку. Всё тот же @EXL портировал крутой софтрендер для E398 и в 2025 году наконец-то взломал C350, @Azq2 пилит аппаратный эмулятор Infineon S-Gold и многие другие делают свой вклад в моддинг сцену уже не таких мейнстримных, но отнюдь не устаревших устройств!

Пишем один «exe», который работает на 3-х разных ОС без перекомпиляции Смартфон, Телефон, Покупка, Гаджеты, Программирование, Моддинг, Эльфы, Linux, Unix, Операционная система, Реверс-инжиниринг, Siemens, Моторола, Ностальгия, Длиннопост

Однако порог вхождения для написания эльфов достаточно высокий: нет никакой отладки кроме printf, любая ошибка в приложении приводит к зависанию или ребуту телефона (на сименсах с характерным "пик"), а API напрямую импортируется из прошивки телефона и может быть достаточно комплексным - ни о каких кроссплатформенных эльфах и речи не идет. Поэтому в какой-то момент мне стало интересно: а возможно ли написать такой эльфлоадер, который за своим рантаймом будет прятать детали реализации работы с аппаратной начинкой телефона и при этом загружать один и тот же бинарник на всех поддерживаемых платформах без особых патчей и изменений? Принявшись за изучение ABI ARM и спецификации Elf, я начал дизассемблировать и изучать самые маленькие тестовые программы...

Пишем один «exe», который работает на 3-х разных ОС без перекомпиляции Смартфон, Телефон, Покупка, Гаджеты, Программирование, Моддинг, Эльфы, Linux, Unix, Операционная система, Реверс-инжиниринг, Siemens, Моторола, Ностальгия, Длиннопост

❯ Формат ELF, ABI ARM и тулчейн

Начнём с самого простого: что же такое эти самые эльфы? Elf - формат исполняемых файлов, широко применяемый как в мире Unix-систем, так и в embedded-устройствах. Самые распространенные тулчейны - GCC и clang/llvm, по умолчанию собирают программы именно в этом формате и по своей сути, это прямой аналог .exe (PE) файлов из Windows. Помимо кода, Elf также содержит в себе множество секций и различных данных, при этом разработчики формата старались сделать его настолько гибким, чтобы его можно было использовать на любых архитектурах: от x86, до risc-v.

Пишем один «exe», который работает на 3-х разных ОС без перекомпиляции Смартфон, Телефон, Покупка, Гаджеты, Программирование, Моддинг, Эльфы, Linux, Unix, Операционная система, Реверс-инжиниринг, Siemens, Моторола, Ностальгия, Длиннопост

Каждая программа состоит из так называемых секций - участков кода, данных и метаданных, необходимых для её загрузки в память. Среди секций простой программы можно выделить как минимум четыре основных:

.text - хранит в себе код программы и обычно записывается в память с флагами MMU R X (чтение и выполнение)

.data - преинициализированные данные, имеет флаги R W (чтение и запись). Например, заполненная структура в C:

int a[] = { 1, 2, 3 };

.bss - не инициализированные данные, иными словами глобальные переменные, которые при старте программы должны быть забиты нулями. Имеет те же флаги, что и .data.

.rodata - различные константы: строковые, const-преинициализированные массивы, а также структуры и т.п, имеет только флаг R и на системах с MMU попытка запись в эту секцию повлечет SIGSEGV.

За загрузку всех этих секций отвечает загрузчик Elf в ядре ОС. Однако это справедливо только для простых программ, которые загружаются в фиксированный адрес виртуальной памяти и которые не используют внешние библиотеки (.so, аналог в Windows - .dll). Поскольку адрес загрузки для всех библиотек предсказать невозможно, разработчики ABI придумали позиционно-независимый код (PIC и его производное - PIE), который может загружаться в любую область памяти и оттуда выполняться.

Реализация PIC может достигаться тремя разными способами:

  • Первый способ заключается в использовании глобальной таблицы смещений (GOT) и релокаций. Релокации - специальные данные в Elf, которые позволяют переместить программу в другой адрес путём патчинга адресов в секции .got "на лету": иными словами, сам код (.text) остаётся позиционно-независимым (дабы библиотеку можно было загрузить один раз и использовать во множестве процессов) и обращается к GOT относительно PC, но в самом GOT (который представляет из себя массив void* addresses[]) указатели на остальные сегменты находятся так, будто программа загружается по смещению 0x0. Задача динамического линкера - посчитать абсолютный адрес для всех указателей в GOT: в простейшем случае, это got[address] += baseAddress.
    Релокации могут затрагивать сразу literal pools в обход GOT, если архитектура предусматривает их наличие.

Пишем один «exe», который работает на 3-х разных ОС без перекомпиляции Смартфон, Телефон, Покупка, Гаджеты, Программирование, Моддинг, Эльфы, Linux, Unix, Операционная система, Реверс-инжиниринг, Siemens, Моторола, Ностальгия, Длиннопост
  • Релокацией занимается динамический линкер или интерпретатор в мире Unix (тот самый ld.so, что часто "not found" :) ), а самих релокаций есть много разных видов в зависимости от архитектуры процессора. В ARM чаще всего встречается R_ARM_REL32

  • Второй способ заключается в том, что мы компилируем программу так, будто она должна загружаться по фиксированному адресу 0x0 - то есть без PIC, однако просим линкер (--emit-relocs) создать информацию о всех обращениях к памяти в виде всё тех же релокаций. Вместо R_ARM_REL32, линкер создаёт релокации R_ARM_ABS32, которые можно разрешить обычным сложением.
    С таким подходом количество релокаций кратно увеличивается, однако из-за отсутствия GOT немного повышается быстродействие программы (вместо трёх LDR для загрузки слова из памяти нужно всего два: из Literal pool в регистр и затем из фактической памяти).

Пишем один «exe», который работает на 3-х разных ОС без перекомпиляции Смартфон, Телефон, Покупка, Гаджеты, Программирование, Моддинг, Эльфы, Linux, Unix, Операционная система, Реверс-инжиниринг, Siemens, Моторола, Ностальгия, Длиннопост

Пример релокаций для эмулятора NES

Третий способ поддерживается не везде, но в ARM он является одним из самых распространенных в embedded-среде: код собирается с флагами /rwpi и /ropi полностью не зависит ни от GOT, ни имеет каких либо релокаций. Вместо этого, для адресации базового адреса программы он использует выделенный регистр R9, который загрузчик должен заполнить адресом, куда он загрузил программу (mov r9, textSectionBase). Такой подход теоретически чуточку быстрее, чем GOT, но медленнее второго подхода из-за необходимости добавлять сложение регистра с PC перед каждым фетчем из памяти.

Пишем один «exe», который работает на 3-х разных ОС без перекомпиляции Смартфон, Телефон, Покупка, Гаджеты, Программирование, Моддинг, Эльфы, Linux, Unix, Операционная система, Реверс-инжиниринг, Siemens, Моторола, Ностальгия, Длиннопост

Поскольку в телефонах MMU обычно не используется, эльфлоадеры загружают программы по тому адресу, что им выделяет системный аллокатор памяти и вынуждены использовать PIC. Чаще всего используются релокации (как минимум на Siemens и Motorola), на некоторых платформах используется второй подход с использованием регистра R9.

Для большей гибкости, я решил выбрать второй подход и построить свой эльфлоадер поверх уже существующих загрузчиков, обернув API прошивок в ряд собственных стандартизированных функций: работа с дисплеем, вводом, файлами, а также звуком. При этом эльфы должны собираться современным компилятором clang с поддержкой C99, чтобы была возможность легко портировать современные single-header программы по типу эмуляторов, да и в целом не писать код на манер Ansi C, когда переменную нигде нельзя объявить кроме начала блока.

Пишем один «exe», который работает на 3-х разных ОС без перекомпиляции Смартфон, Телефон, Покупка, Гаджеты, Программирование, Моддинг, Эльфы, Linux, Unix, Операционная система, Реверс-инжиниринг, Siemens, Моторола, Ностальгия, Длиннопост

Далее я сутками игрался с компиляторами и пытался заставить выдать их подходящий для моих целей код и по итогу написал скрипт для линкера, который для простоты загрузки файла объединяет все секции в один .text (таким образом остаётся всего один Program Header):

OUTPUT_FORMAT("elf32-littlearm")
SECTIONS
{
. = 0x0;
.text : {
*(.r9ptr)
*(.text*)
*(.data*)
*(.bss*)
*(.rodata*)
*(.functions)
}

.rel : {
*(.rel*)
}

/DISCARD/ : {
*(.ARM.*)
}

}

И следующий набор опций для компилятора, который устанавливает архитектуру и целевой процессор, ABI для FPU, включает генерацию релокаций и отключает выравнивание в линкере для выходного файла (иначе файлы забиты нулями и весят целых 64Кб:

CLANGFLAGS = -mno-unaligned-access -O3 -ffast-math -ffixed-r9 -T ld.script -target armv5e-none-eabi -nostartfiles -fno-exceptions -fno-rtti -mfloat-abi=soft -I$(ELFROOT) -Ilibnesemu/
LDDFLAGS = -Wl,-zmax-page-size=1,--emit-relocs

Когда компилятор наконец-то начал выдавать корректный код, я принялся писать сам эльфлоадер. За качество кода и отсутствие нормальной структуры не ругайте - это эмбеддед, тут можно ;))

На входе лоадеру поступает адрес загруженного в память эльфа и его длина. Задача эльфятника - верифицировать заголовок и убедится что он собран с подходящими параметрами:

// Read and verify ELF header
Elf32_Ehdr* hdr = (Elf32_Ehdr*)data;

PRINT("Loading ELF...");
if(hdr->e_machine != EM_ARM)
{
PRINT("Not an EM_ARM executable");

return 0;
}

if(hdr->e_ident[EI_DATA] != PLATFORM_ELF_ENDIANESS)
{
PRINT("Endianess mismatch");

return 0; // Wrong endianess
}

Проанализировать таблицу заголовков с служебной информацией о том, что находится по тому или иному смещению в файле: загружаемая секция, таблица символов или строк, а затем загрузить все секции в участок памяти, который нам выдал аллокатор. На MMU-системах адрес должен быть выровнен по размеру страницы, иначе система не даст выдать страницам флаг EXEC!

ret = (ExecInfo*)ExecAlloc(sizeof(ExecInfo));

sections = (Elf32_Phdr*)(&data[hdr->e_phoff]);
sh = (Elf32_Shdr*)&data[hdr->e_shoff];
symSectionIndex = hdr->e_shstrndx;
codeSize = 0x0;

PRINT("Processing program headers");
// Process program headers and determine total size
for(i = 0; i < hdr->e_phnum; i++) {
Elf32_Phdr hdr = sections[i];

if(hdr.p_type == PT_LOAD) {
if(hdr.p_offset == 0x0)
continue;

codeSize += hdr.p_memsz;
}
}

PRINT("Allocating memory for .text");

textSection = (char*)ExecAlloc(codeSize);
textOffset = textSection;

ret->CodeSection = textSection;

if(!textSection)
{
free(ret);
PRINT("Failed to allocate .text section");

return 0;
}

Далее найти секцию с таблицей символов и с строками, где содержатся имена символов:

PRINT("Analyzing section table");
for(i = 0; i < hdr->e_shnum; i++)
{
Elf32_Shdr sec = sh[i];

if(sec.sh_type == SHT_STRTAB && i != hdr->e_shstrndx && strTable == 0)
{
strTable = &data[sec.sh_offset];
PRINT("Found string table");
}

if(sec.sh_type == SHT_SYMTAB)
{
PRINT("Found symbol table");
symbols = (Elf32_Sym*)&data[sec.sh_offset];
symNum = sec.sh_size / sizeof(Elf32_Sym);
}

if(sec.sh_type == SHT_REL && relocs == 0)
{
UtilPrint("Found relocations");
relocs = (Elf32_Rel*)&data[sec.sh_offset];
relNum = sec.sh_size / sizeof(Elf32_Rel);
}

if(sec.sh_type == SHT_RELA)
{
PRINT("Found unsupported relocation types");
return 0;
}
}

if(!strTable || !symbols)
{
free(ret);
PRINT(".strtab or .symtab not found");

return 0;
}

А затем найти функцию ElfMain, которая служит точкой входа и пропатчить таблицу импортированных функций! На этом, загрузка эльфа завершена - можно устанавливать регистр R9 и вызывать Main!

PRINT("Relocation fix-up");
for(i = 0; i < relNum; i++)
{
Elf32_Rel rel = relocs[i];
int sym = ELF32_R_SYM(rel.r_info);

switch(ELF32_R_TYPE(rel.r_info))
{
case R_ARM_ABS32:
*((unsigned int*)&textSection[rel.r_offset]) += (unsigned int)textSection;
break;
case R_ARM_JUMP24:
break;
case R_ARM_CALL:
break;
default:
PRINT("Unsupported relocation type");
}
}

PRINT("Patching import table");

// Analyze symbol table and patch all imported function pointers to real counterparts
for(i = 0; i < symNum; i++)
{
Elf32_Sym sym = symbols[i];
uint8_t* symName = &strTable[sym.st_name];

int symType = ELF32_ST_TYPE(sym.st_info);

if(symType == STT_OBJECT && strstr((const char*)symName, "SYS_"))
{
int funcNumber = ExecFindFunction(symName);

if(funcNumber == -1)
{
PRINT("Failed to import function: ");
UtilPrint((char*)symName);
PRINT("");

continue;
}

//drawDebug(FuncExportTable[funcNumber].Pointer == 0 ? "Not OK" : "OK");

*((unsigned int*)&textSection[sym.st_value]) = (unsigned int)FuncExportTable[funcNumber].Pointer;
}

if(symType == STT_FUNC && strstr((const char*)symName, "ElfMain"))
{
PRINT("ElfMain function is found");

ret->Main = (ExecMainFunction)&textSection[sym.st_value];
}

В Elf уже есть механизм импорта функций из сторонних библиотек, называется Platform Linkage Table. Для импорта функций прошивки, эльфлоадер Siemens использует SWI (сисколлы, что-то типа программных прерываний в x86 - int 10h и т.п.), Motorola же патчит thunk-функции на лету, которые сами вызывают настоящую функцию:

Пишем один «exe», который работает на 3-х разных ОС без перекомпиляции Смартфон, Телефон, Покупка, Гаджеты, Программирование, Моддинг, Эльфы, Linux, Unix, Операционная система, Реверс-инжиниринг, Siemens, Моторола, Ностальгия, Длиннопост

А я решил поступить несколько изящнее. В моем эльфятнике, функции импортируются с помощью специального макроса, который создаёт переменную-указатель на функцию, который изначально располагается в секции .functions. При этом с помощью ключевого слова asm, символу присваивается иное имя - с префиксом SYS_, которое означает то, что загрузчик эльфа должен пропатчить адреса функций на реальные (которые предварительно зарегистрированы в рантайме) в процессе загрузки программ и таким образом, избежать thunk-функций и позволить оптимизатору легко выкидывать указатели на неиспользуемые функции:

#ifndef LOADER
#define IMPORT(name, ret, ...) __attribute__ ((section(".functions"))) ret (* name )( __VA_ARGS__ ) asm( "SYS_" #name )
#define IMPORTNOARGS(name, ret) __attribute__ ((section(".functions"))) ret (* name )() asm( "SYS_" #name )
#else
#define IMPORT(name, ret, ...) ret name( __VA_ARGS__ )
#define IMPORTNOARGS(name, ret) ret name()
#endif

Что самое забавное, лучший способ отладить эльфлоадер - в QEMU с GDB под Linux. Однако я решил время не терять и отлаживал его сразу на смартфоне с Windows Mobile. А раз WM стал первой поддерживаемой платформой - на нем мы с вами и реализуем рантайм.

Пишем один «exe», который работает на 3-х разных ОС без перекомпиляции Смартфон, Телефон, Покупка, Гаджеты, Программирование, Моддинг, Эльфы, Linux, Unix, Операционная система, Реверс-инжиниринг, Siemens, Моторола, Ностальгия, Длиннопост

❯ Портируем на Windows Mobile (CE)

Поскольку всю жизнь я сижу в основном на Windows, а WinAPI в CE практически полностью копирует десктопную версию, никаких проблем с портированием рантайма не возникло. Единственный выбор который передо мной встал: стоит ли прокидывать stdlib из хост-системы в "эльфятник", или же воспользоваться реализацией newlib в clang/gcc. В процессе портирования на другие платформы выяснилось, что нормально libc реализован, по сути, только на Windows, во все остальных реализациях были лишь самые основные функции по типу malloc, free, memcpy, strcmp и т.п. Поэтому я решил не городить велосипеды и прокинул из хост-системы лишь аллокатор - т.е malloc и free:

// stdlib
IMPORT(elf_malloc, void*, int size);
IMPORT(elf_free, void, void* ptr);
/*IMPORT(elf_strcmp, int, char* str1, char* str2);
IMPORT(elf_strcpy, char*, char* dst, char* src);
IMPORT(elf_strlen, int, char* str);
IMPORT(elf_strstr, char*, char* string, char* substring);
IMPORTNOARGS(elf_rand, int);
IMPORT(elf_memcpy, void*, void* dst, const void* src, uint32_t length);
IMPORT(elf_memset, void*, void* dst, int what, uint32_t length);
IMPORT(elf_memmove, void*, void* dst, void* src, uint32_t length);*/

Далее я сразу решил, что платформозависимые функции для работы с дисплеем использовать не буду и из хост-системы мне нужен будет лишь указатель на фреймбуфер, а блиттинг, рисование текста и прочие операции я реализую сам. На первый взгляд может показаться что это единственное верное решение, однако на практике в некоторых телефонах (Motorola E398, Razr V3) активно использовались 2D GPU от ATI и Nvidia, которые рисуют (BitBLT) изображение значительно быстрее любой программной реализации.

Ниже представлена черновая реализация без преобразования пиксельформатов (поскольку на подавляющем числе телефонов использовался 565) и поддержки прозрачности через колоркей. Её можно оптимизировать до быстрого копирования по сканлайнам через memcpy:

for(i = 0; i < bitmap->Height; i++)
{
for(j = 0; j < bitmap->Width; j++)
{
LCD_PLOT_565(clamp(x + j, 0, lcd->Width), clamp(y + i, 0, lcd->Height), bmp[i * bitmap->Width + j]);
}
}

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

__inline int LcdDrawChar(LcdInfo* lcd, char chr, uint32_t x, uint32_t y, uint16_t color)
{
if(x >= 0 && y >= 0 && x + FONT_WIDTH < lcd->Width && y + FONT_HEIGHT < lcd->Height)
{
int i, j;
unsigned char* glyph = &embedded_font[chr * 8];

for(i = 0; i < FONT_HEIGHT; i++)
{
short* fb = &((short*)lcd->Pixels)[(y + i) * lcd->Width + x];

for(j = 0; j < FONT_WIDTH; j++)
{
if((*glyph >> (FONT_WIDTH - j)) & 0x1)
*fb = color;

fb++;
}

glyph++;
}

return true;
}

return false;
}

void LcdDrawString(LcdInfo* lcd, char* str, uint32_t x, uint32_t y, uint16_t color)
{
SWITCH_CONTEXT;
if(lcd && x >= 0 && y >= 0)
{
unsigned int i;

for(i = 0; i < strlen(str); i++)
{
if(!LcdDrawChar(lcd, str[i], x, y, color))
return; // Out of screen

x += FONT_WIDTH;
}
}
END_CONTEXT;
}

Отладив эльфлоадер, я написал небольшую тестовую программу для вывода картинки и текста:

#include <system.h>

int ElfMain(void* ptr)
{
LcdInfo* lcd = lcdInit();

lcdDrawBitmap(lcd, bitmap, 0, 0);
lcdDrawString(lcd, "Test", 0, 0, COLOR_BLUE)

return 100;
}

И получил следующий результат:

Пишем один «exe», который работает на 3-х разных ОС без перекомпиляции Смартфон, Телефон, Покупка, Гаджеты, Программирование, Моддинг, Эльфы, Linux, Unix, Операционная система, Реверс-инжиниринг, Siemens, Моторола, Ностальгия, Длиннопост

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

❯ Портируем на MRP/MRE

И имя этой платформе, вернее даже двумя платформам - MRP и WRE. Эти платформы использовались на бюджетных китайских телефонах с 2007 по 2016 год. Встретить их можно было везде: легендарная Nokla TV E71/E72, клоны 6700, бюджетные телефоны Fly/Explay/DEXP и даже в оригинальных телефонах Nokia на платформе S30+ (например 230)!

Пишем один «exe», который работает на 3-х разных ОС без перекомпиляции Смартфон, Телефон, Покупка, Гаджеты, Программирование, Моддинг, Эльфы, Linux, Unix, Операционная система, Реверс-инжиниринг, Siemens, Моторола, Ностальгия, Длиннопост

Легендарная "нокла"!

И хотя люди часто считали такие устройства бесполезными в плане установки сторонних приложений, многие ранние "нонейм"-телефоны поддерживали запуск нативных программ через небольшой костыль - установку специального "загрузчика" dsm_gm.mrp и ввод комбинации *#220807# в номеронабиратель. Конечно, знали об этом костыле единицы и в 2010 году MediaTek решила сделать свою платформу под названием MRE (MAUI Runtime Environment), приложения для которой можно было запускать прямо из проводника без установки! SDK для обеих платформ сейчас свободно лежит в сети.

Обе платформы, по сути, занимаются тем же самым, что и мой эльфятник - прокидывают нативные функции MMI (оболочка телефона) в приложения и для загрузки позиционно-независимых программ используют третий подход с регистром R9, который обязательно необходимо где-то хранить и восстанавливать. Изначально мой эльфятник использовал такой же подход, из-за чего я написал отдельный костыль для "свичнга" контекстов, причем восстановление R9 я делал в отдельной функции из-за бага ассемблера в ADS:

#define SWITCH_CONTEXT unsigned int staticBase; __asm { MOV staticBase, sb;
LDR r0, [sb];
MOV sb, r0 }

#define ELF_CONTEXT(ptr) unsigned int staticBase; void* elfStaticBase = ptr; __asm { MOV staticBase, sb; \
MOV r9, elfStaticBase }

#define END_CONTEXT RestoreSB(staticBase);

Но я не учел то, что MMI хоть и построены по event-based принципу, в них нельзя так просто взять и сделать while(true) {}, а необходимо использовать таймеры, что влечет за собой постоянные костыли с свичингом контекстов что по итогу только снижает производительность. По итогу я перешел на релокации и реализовал проброс таймеров.

Пишем один «exe», который работает на 3-х разных ОС без перекомпиляции Смартфон, Телефон, Покупка, Гаджеты, Программирование, Моддинг, Эльфы, Linux, Unix, Операционная система, Реверс-инжиниринг, Siemens, Моторола, Ностальгия, Длиннопост

Никаких отладчиков, программа что-то записала не туда? Ребут и сиди, отлаживай с printf!

Во всем остальном, MRP и MRE простые как табуретка, никаких проблем с пробросом ввода и графики не возникло:

LcdInfo* LcdInit()
{
LcdInfo* ret;
ret = (LcdInfo*)malloc(sizeof(LcdInfo));
ret->Width = screenInfo.width;
ret->Height = screenInfo.height;
ret->Pixels = (void*)w_getScreenBuffer();

return ret;
}

void LcdFree()
{

}

void LcdLock(LcdInfo* info)
{

}

void LcdFlush(LcdInfo* info)
{
mrc_refreshScreen(0, 0, 240, 320);
}

И вот, наша программа уже запускается на двух совершенно разных ОС без каких либо проблем!

Пишем один «exe», который работает на 3-х разных ОС без перекомпиляции Смартфон, Телефон, Покупка, Гаджеты, Программирование, Моддинг, Эльфы, Linux, Unix, Операционная система, Реверс-инжиниринг, Siemens, Моторола, Ностальгия, Длиннопост

❯ А если что-то посложнее Hello, world?

Наверняка у читателя возникнет вопрос мол "окей, твой эльфятник может и способен запускать простые программы, но как насчет чего-то посложнее?". И конечно-же, для тестов я решил портировать не абы что, а целый эмулятор NES! В конце-концов, одна из целей разработки такого эльфятника - возможность запускать Java-игр и эмуляторов на многих кнопочных телефонах из нулевых.

Какое то время назад, я обнаружил весьма шустрый эмулятор NES от неизвестного разработчика из Китая. Код был неважного качества, никаких копирайтов в нём не было. Но поскольку сам эмулятор был быстрый (быстрее, наверное, только vNesC, который является прямым source-портом Java-эмулятора vNes на C), я отвязал его от целевой платформы и превратил в небольшую библиотеку для легкого портирования на любые платформы путем вызова всего нескольких функций:

typedef struct {
uint16_t* FrameBuffer;
uint8_t* JoyState;
} emuContext;

emuContext* emuInitialize();
uint8_t emuLoadROM(void* rom, int length);
void emuReset();
void emuDoFrame();
void emuShutdown();

И, соответственно, базовый порт на наш эльфятник выглядит примерно так:

#include <string.h>

#define FUNC_PROTOTYPES
#include <system.h>

#include <nes.h>
#include "nes_rom.h"

emu_context* ctx;
LcdInfo* lcdInfo;

void EmuTick()
{
emuDoFrame();

LcdLock(lcdInfo);
short* pixels = (short*)lcdInfo->Pixels;

for(int i = 0; i < EMU_FRAMEBUFFER_HEIGHT; i++)
{
memcpy(&pixels[i * lcdInfo->Width], &ctx->FrameBuffer[i * EMU_FRAMEBUFFER_WIDTH], lcdInfo->Width * 2);
}

LcdFlush(lcdInfo);

}

void EmuSetupTimer()
{
TimerAttach(1, EmuTick); // As fast as possible
}

void EmuSetupRegularLoop()
{
while(true)
EmuTick(); // TODO: If elfloader port will be usable on Android, add FPS limit :)
}

int ElfMain(unsigned int* basePtr, void* test)
{
lcdInfo = LcdInit();

ctx = emuInitialize();
if(!emuLoadROM(nes_rom, sizeof(nes_rom)))
{
UtilPrint("Failed to load ROM");
return 100;
}

emuReset();

switch(GetMainLoopType())
{
case PLATFORM_LOOP_MMI_TIMER:
EmuSetupTimer();
break;
case PLATFORM_LOOP_REGULAR:
EmuSetupRegularLoop();
break;
}

return 100;
}

А вот и результат:

Пишем один «exe», который работает на 3-х разных ОС без перекомпиляции Смартфон, Телефон, Покупка, Гаджеты, Программирование, Моддинг, Эльфы, Linux, Unix, Операционная система, Реверс-инжиниринг, Siemens, Моторола, Ностальгия, Длиннопост
Пишем один «exe», который работает на 3-х разных ОС без перекомпиляции Смартфон, Телефон, Покупка, Гаджеты, Программирование, Моддинг, Эльфы, Linux, Unix, Операционная система, Реверс-инжиниринг, Siemens, Моторола, Ностальгия, Длиннопост
Пишем один «exe», который работает на 3-х разных ОС без перекомпиляции Смартфон, Телефон, Покупка, Гаджеты, Программирование, Моддинг, Эльфы, Linux, Unix, Операционная система, Реверс-инжиниринг, Siemens, Моторола, Ностальгия, Длиннопост

❯ Заключение

Вот так и можно написать программу, которая бесшовно работает на трёх разных операционных системах, которые не имеют ничего общего друг с другом! На первый взгляд всё это кажется сложным, однако на практике очень просто и интересно! Нужно лишь взять дизассемблер в зубы и немножечко изучить то, что выдаёт компилятор.

А если вам интересна тематика ремонта, моддинга и программирования для гаджетов прошлых лет — подписывайтесь на мой Telegram-канал «Клуб фанатов балдежа», куда я выкладываю бэкстейджи статей, ссылки на новые статьи и видео, а также иногда выкладываю полезные посты и щитпостю. А ролики (не всегда дублирующие статью) можно найти на моём YouTube канале.

Очень важно! Разыскиваются девайсы для будущих статей!

Друзья! Если вам понравилась сегодняшняя статья про разработку эльфов, то спешу объявить: для подготовки будущих материалов с разработкой самопальных игрушек под необычные устройства, объявляется розыск телефонов и консолей! В 2000-х годах, китайцы часто делали дешевые телефоны с игровым уклоном — обычно у них было подобие геймпада (джойстика) или хотя бы две кнопки с верхней части устройства, выполняющие функцию A/B, а также предустановлены эмуляторы NES/Sega. Фишка в том, что на таких телефонах можно выполнять нативный код и портировать на них новые эмуляторы, чем я сейчас занимаюсь, а затем написать об этом подробную статью и записать видео! Если у вас есть телефон подобного формата и вы готовы его задонатить или продать, пожалуйста напишите мне в Telegram (@monobogdan) или в комментарии. Также интересуют смартфоны-консоли на Android (на рынке РФ точно была Func Much-01), там будет контент чуточку другого формата :)

Пишем один «exe», который работает на 3-х разных ОС без перекомпиляции Смартфон, Телефон, Покупка, Гаджеты, Программирование, Моддинг, Эльфы, Linux, Unix, Операционная система, Реверс-инжиниринг, Siemens, Моторола, Ностальгия, Длиннопост

А также я ищу старые (2010-2014) подделки на брендовые смартфоны Samsung, Apple и т. п. Они зачастую работают на весьма интересных чипсетах и поддаются хорошему моддингу, парочку статей уже вышло, но у меня ещё есть идеи по их моддингу! Также может у кого-то остались самые первые смартфоны Xiaomi (серии Mi), Meizu (ещё на Exynos) или телефоны на Linux (например Motorola EM30, RAZR V8, ROKR Z6, ROKR E2, ROKR E5, ZINE ZN5 и т. п., о них я хотел бы подготовить специальную статью и видео т. к. на самом деле они работали на очень мощных для своих лет процессорах, поддавались серьезному моддингу и были способны запустить даже Quake!). Всем большое спасибо за донаты!

Пишем один «exe», который работает на 3-х разных ОС без перекомпиляции Смартфон, Телефон, Покупка, Гаджеты, Программирование, Моддинг, Эльфы, Linux, Unix, Операционная система, Реверс-инжиниринг, Siemens, Моторола, Ностальгия, Длиннопост
Пишем один «exe», который работает на 3-х разных ОС без перекомпиляции Смартфон, Телефон, Покупка, Гаджеты, Программирование, Моддинг, Эльфы, Linux, Unix, Операционная система, Реверс-инжиниринг, Siemens, Моторола, Ностальгия, Длиннопост
Показать полностью 25
[моё] Смартфон Телефон Покупка Гаджеты Программирование Моддинг Эльфы Linux Unix Операционная система Реверс-инжиниринг Siemens Моторола Ностальгия Длиннопост
135
2
ZeroDayCoding
ZeroDayCoding
8 месяцев назад
Информационные Технологии

Linux — лучшая ОС⁠⁠

Дисклеймер

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

Текст нацелен в первую очередь на таких же начинающих в этой области, как и я, поэтому если где-то допустил фактологические ошибки, то добро пожаловать в комментарии, буду только рад конструктивной критике.

Этот текст также есть в видеоформате:

Ссылки на все остальные площадки есть в телеграм канале.

Оглавление

  1. Введение

  2. Что такое ОС?

  3. История Windows

  4. История Unix

  5. История GNU/Linux

  6. Свободное ПО против Проприетарного

  7. Дистрибутивы и какой выбрать

  8. Графическое окружение

  9. Заключение

  10. Источники

Введение

Привет! Здесь я хочу рассказать о том, почему GNU/Linux — это лучшая операционная система на данный момент и почему тебе срочно нужно пересесть с Windows на неё.

Мы дадим определение операционной системе, пробежимся по основным семействам ОС и кратко затронем их историю, рассмотрим концепцию свободного ПО и выберем идеальный дистрибутив.

Что такое ОС?

Начнём с самого начала. Что же такое операционная система? Мы не будем углубляться в детали, так как это обширная тема, затронем только основные моменты.

ОС — это одна из самых важных и сложных программ в системе. Она выполняет несколько ключевых задач:

  • Управление запуском и завершением программ.

  • Управление всеми периферийными устройствами, предоставляя остальным программам упрощённый доступ к этим устройствам.

Например, пользовательская программа может открыть файл на чтение, указав только имя файла, прочитать из него информацию, записать данные в ОЗУ и затем закрыть файл. Все эти возможности и их скрытые технические реализации предоставляет ОС.

Linux — лучшая ОС GNU, Linux, Unix, Windows, Open Source, Free soft, Microsoft, Arch, Операционная система, Дистрибутив, Информационная безопасность, Apple, IT, Debian, Red Hat, Видео, YouTube, Длиннопост

Схема изображает взаимодействие ОС со всеми необходимыми компонентами

Грубо говоря, это прослойка между прикладным ПО и аппаратным обеспечением компьютера.

С 1955 года начали появляться первые ОС, но самые популярные, и до сих пор используемые, системы появились в начале 90-х и разделились на два основных семейства: Windows и Unix.

История Windows

В 1975 году два друга-студента Гарварда, Пол Аллен и Билл Гейтс, разработали интерпретатор языка BASIC для компьютера Altair 8800. Спустя месяц было подписано лицензионное соглашение с компанией MITS, производителем этого ПК, на использование их интерпретатора BASIC в составе ПО для Altair. Так появилась компания Microsoft.

Linux — лучшая ОС GNU, Linux, Unix, Windows, Open Source, Free soft, Microsoft, Arch, Операционная система, Дистрибутив, Информационная безопасность, Apple, IT, Debian, Red Hat, Видео, YouTube, Длиннопост

Пол Аллен и Билл Гейтс

В 1980 году Microsoft заключила договор с IBM на поставку операционной системы для нового компьютера IBM PC. Для этого в 1981 году Microsoft наняла Тима Патерсона для завершения адаптации 86-DOS к прототипу IBM PC. Позже компания выкупила права на 86-DOS и переименовала её в MS-DOS. В то же время IBM использовала лицензированную версию MS-DOS под названием PC DOS.

Linux — лучшая ОС GNU, Linux, Unix, Windows, Open Source, Free soft, Microsoft, Arch, Операционная система, Дистрибутив, Информационная безопасность, Apple, IT, Debian, Red Hat, Видео, YouTube, Длиннопост

MS-DOS

Забавный факт: в 1984 году Microsoft разрабатывала ПО для Apple Macintosh

Главной инновацией Macintosh на тот момент был графический интерфейс, который значительно упростил работу с компьютером для обычных пользователей. Билл Гейтс, вдохновившись этой идеей, решил создать графическую надстройку для MS-DOS. В конце 1985 года вышла первая версия Microsoft Windows, которая ещё не была полноценной операционной системой, а лишь графической оболочкой для MS-DOS.

Дальнейшее развитие Windows можно разделить на два направления: Windows на базе MS-DOS и Windows на базе NT (New Technology).

Windows на базе MS-DOS

В это направление входят такие операционные системы, как Windows 95, 98 и Me. Эти ОС не являлись полноценными многопользовательскими и многозадачными системами, как Windows NT. Например, подсистема пользовательского интерфейса и графики оставалась 16-битной, что приводило к низкой стабильности и производительности. Проблемы в 16-битном приложении могли привести к зависанию всей системы.

Linux — лучшая ОС GNU, Linux, Unix, Windows, Open Source, Free soft, Microsoft, Arch, Операционная система, Дистрибутив, Информационная безопасность, Apple, IT, Debian, Red Hat, Видео, YouTube, Длиннопост

Рабочий стол Windows 95

Windows на базе NT

Второе направление включает системы с припиской NT (New Technology), такие, как Windows 10 (Windows NT 10.0) или Windows 11 (Windows NT 10.0.22000), а также серверные версии, например, Windows Server 2022 (Windows NT 10.3). Первая версия из этого подсемейства, Windows NT 3.1, была выпущена в 1993 году. Эти ОС полностью 32- или 64-битные и не зависят от MS-DOS даже для загрузки. Они работают на процессорах архитектур x86, x86-64 и ARM.

Linux — лучшая ОС GNU, Linux, Unix, Windows, Open Source, Free soft, Microsoft, Arch, Операционная система, Дистрибутив, Информационная безопасность, Apple, IT, Debian, Red Hat, Видео, YouTube, Длиннопост

Рабочий стол Windows 7

История Unix

Другая интересная линия событий происходила в конце 1960-х годов, где консорциум в составе General Electric, MIT и Bell Labs (подразделение AT&T) разрабатывал ОС под названием MULTICS. Позже Bell Labs, в составе которого работал Кен Томпсон, покинула проект, а сам Томпсон разработал свою ОС для компьютера PDP-7 и вместе с Брайаном Керниганом назвал её Unics, по аналогии с MULTICS. Окончательное название — Unix.

Позже совместно с Деннисом Ритчи они перенесли систему на более совершенный мини-компьютер PDP-11. Тогда возникла идея переписать ОС на язык программирования более высокого уровня. Попытка использовать язык "B" не увенчалась успехом, и Ритчи предложил расширить его, создав новый язык — Си.

Linux — лучшая ОС GNU, Linux, Unix, Windows, Open Source, Free soft, Microsoft, Arch, Операционная система, Дистрибутив, Информационная безопасность, Apple, IT, Debian, Red Hat, Видео, YouTube, Длиннопост

Кен Томпсон и Денис Ритчи

В 1973 году Unix был переписан на языке Си. Это стало прорывом, так как многие считали, что высокоуровневые языки и ОС несовместимы. Однако этот шаг определил будущее развитие отрасли: язык Си и Unix остаются актуальными по сей день.

В 1977 году Unix был перенесён на новую архитектуру, благодаря Деннису Ритчи. Так появился первый переносимый компилятор Си.

Linux — лучшая ОС GNU, Linux, Unix, Windows, Open Source, Free soft, Microsoft, Arch, Операционная система, Дистрибутив, Информационная безопасность, Apple, IT, Debian, Red Hat, Видео, YouTube, Длиннопост

Unix

Компания AT&T из-за антимонопольных ограничений не могла участвовать в компьютерном бизнесе и распространяла Unix на некоммерческой основе, лицензируя код учебным заведениям. Одним из таких заведений был университет Беркли, где была создана одна из самых популярных веток Unix — BSD, разработанная Биллом Джоем в 1977 году.

В начале 1980-х AT&T начала коммерциализацию Unix, создав Unix System 3. В 1984 году с компании были сняты антимонопольные ограничения, что привело к прекращению свободного распространения исходных кодов Unix. Это вызвало юридические споры между AT&T и BSDi, которые продолжались до 1993 года, когда AT&T продала подразделение, занимающееся Unix, фирме Novell. Последняя урегулировала разногласия с Беркли.

Пока разработчики Unix были заняты междоусобными спорами, рынок оказался заполнен множеством дешёвых компьютеров на основе процессоров Intel и ОС Windows.

История GNU/Linux

Когда в 1983 году началась коммерциализация Unix-систем, Ричард Столлман начал разработку своей Unix-подобной ОС с нуля. Он основал фонд Свободного ПО и опубликовал свой идеологический манифест. Проект получил название GNU — рекурсивный акроним фразы "GNU’s Not Unix".

Изначально это была среда разработки с компилятором gcc и набором утилит: gdb (дебаггер), glib (библиотека для Си), coreutils (основные утилиты по типу ls, rm, cat и т.п.), командная оболочка bash и ряд других программ, которые стали базовыми в подобных системах.

Linux — лучшая ОС GNU, Linux, Unix, Windows, Open Source, Free soft, Microsoft, Arch, Операционная система, Дистрибутив, Информационная безопасность, Apple, IT, Debian, Red Hat, Видео, YouTube, Длиннопост

Ричард Столлман

Разработку ядра GNU Hurd для ОС оставили в самую последнюю очередь. Само ядро хотели сделать не монолитным, а разделить на кучу мелких программ серверов, которые бы асинхронно общались между собой. Из-за подобной идеи отлавливать ошибки было намного сложнее, поэтому разработка затянулась.

Сторонники Столлмана уже успели написать много открытого ПО, но без открытого ядра, цель полностью Свободной ОС оставалась всё ещё далека.

В 1991 году финский студент Линус Торвальдс начал разработку своего монолитного ядра Unix-подобной ОС под названием Linux для платформы i386. Вдохновившись SunOS, он создал своё ядро и публиковал его исходный код, что привлекло множество добровольцев.

Это ядро стало недостающим элементом для проекта GNU, что позволило создать полностью свободную ОС — GNU/Linux.

Linux — лучшая ОС GNU, Linux, Unix, Windows, Open Source, Free soft, Microsoft, Arch, Операционная система, Дистрибутив, Информационная безопасность, Apple, IT, Debian, Red Hat, Видео, YouTube, Длиннопост

Линус Торвальдс

Как отмечает сам Линус, важную роль в популяризации Linux сыграли судебные споры между AT&T и университетом Беркли, что мешало распространению BSD на платформе i386.

GNU/Linux — это самая популярная Unix-подобная ОС, подразделяющаяся на множество дистрибутивов, включая коммерческие. Примеры популярных коммерческих Unix-подобных ОС — macOS на основе BSD и Android на базе ядра Linux.

Свободное ПО против Проприетарного

Линус Торвальдс решил использовать для ядра Linux лицензию GNU GPL, предложенную Ричардом Столлманом. Давайте разберёмся, что это за лицензия и что такое Свободное ПО.

Движение за Свободное ПО началось в 1983 году благодаря Ричарду Столлману, который основал Фонд свободного программного обеспечения (Free Software Foundation, FSF), чтобы продвигать свои идеи в массы.

Что же такое Свободное ПО? В английском языке термин звучит как Free Software. Здесь слово Free означает не только бесплатное, но и свободное в плане свободы использования. Бесплатное ПО может не быть свободным, если оно закрытое и проприетарное, то есть является частной собственностью компании.

Вот четыре главных принципа Свободного ПО:

  • Свобода запуска программы для любых целей.

  • Свобода изучать и изменять исходный код, чтобы программа соответствовала вашим нуждам.

Если вы не являетесь программистом, вы можете работать в команде с разработчиком или использовать коллективный контроль: к проекту могут присоединяться другие люди, которые создадут документацию для упрощённого понимания.

  • Свобода распространять копии программы, будь то бесплатно или за деньги.

Это значит, что Свободное ПО можно использовать в коммерческих целях, например, предоставляя услуги технической поддержки.

  • Свобода распространять модифицированные версии программы.

Эти принципы реализуются через лицензию GNU GPL и распространяются на всё ПО, созданное с её использованием.

Существует также более распространённый термин — Open Source (открытый исходный код). Он охватывает второй принцип Свободного ПО, но не ограничивается им. Термин закрепили Эрик Реймонд и Брюс Перенс как альтернативу термину Free Software, так как слово "free" может вводить в заблуждение, подразумевая только бесплатность.

Однако, по мнению Столлмана, Open Source не всегда означает свободу. Примером может служить UnRAR — программа для распаковки RAR-архивов, исходный код которой открыт, но лицензия запрещает использовать его для создания RAR-совместимых архиваторов. Компании, такие как Microsoft, часто используют термин Open Source, избегая понятия Free Software.

Почему стоит переходить на Свободное ПО?

Главная причина — закрытый исходный код проприетарных программ. В таких ОС, как Windows или macOS, пользователи не видят исходного кода и не могут знать, что происходит при работе программы. Приходится верить разработчикам на слово, что ваши данные защищены. Однако закрытые программы могут собирать ваши данные и использовать их в интересах бизнеса. Одним из способов подобного несанкционированного доступа является бэкдор — намеренно встроенный разработчиками способ удалённого управления или доступа к данным. Примером является обязательное обновление в Windows, которое устанавливается независимо от желания пользователя.

По этим причинам закрытое ПО можно считать потенциально вредоносным.

Хотя Свободное ПО имеет свои преимущества, идея Столлмана может показаться слишком утопичной в современном мире. Я поддерживаю мнение Брюса Перенса, одного из лидеров проекта Debian, который считает, что свободное и несвободное ПО должны сосуществовать, и первое должно стать не только альтернативой, но и лучшим выбором.

Есть две дополнительные причины от меня для такого подхода:

  • Свобода выбора любого ПО, будь то свободное или проприетарное.

Например, многие дистрибутивы GNU/Linux распространяют проприетарное ПО через официальные репозитории, оставляя выбор за пользователем.

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

Дистрибутивы и какой выбрать

Операционная система GNU/Linux является свободным ПО и, на мой взгляд, остаётся лучшим выбором среди доступных ОС. Теперь, имея базу в виде GNU/Linux, нужно выбрать дистрибутив.

Дистрибутив — это собранный набор компонентов, включающий в себя:

  • Ядро Linux вместе с предустановленными программами, утилитами и библиотеками от проекта GNU.

  • Пакетный менеджер — инструмент для управления установкой, обновлением и удалением ПО.

  • Опционально графическая оболочка.

  • Дополнительные конфигурации и настройки в зависимости от дистрибутива.

Среди множества дистрибутивов можно выделить три основных для новичков:

Debian

Один из самых первых и важных дистрибутивов. Сюда входит как сам Debian, так и популярные дистрибутивы основанные на нём. Это например Ubuntu, Linux Mint, Kali Linux.

Менеджер пакетов обычно используется apt (Advanced Packaging Tool), который является надстройкой над более низкоуровневым dpkg.

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

Red Hat

Одна из первых компаний, которая смогла коммерциализировать свободное ПО и продавать свой дистрибутив Red Hat Enterprise Linux по подписке.

Самый интересный для нас дистрибутив на основе Red Hat Linux является Fedora. Разрабатывается Проектом Fedora при коммерческой поддержке самой Red Hat и IBM, а также являющийся тестовым полем для фич, которые в будущем предполагаются к использованию в дистрибутиве Red Hat Enterprise Linux.

Формат пакетов RPM (Red Hat Package Manager) и DNF (Dandified YUM) в качестве инструмента для управления этими пакетами.

Используется также свой метод обновления через каждые 6 - 8 месяцев, поэтому ПО там не настолько устаревшее как в том же Debian, но всё ещё и не самое новое.

Arch Linux

Разработка Arch Linux возглавляется полностью некоммерческим сообществом, в отличие от тех же Ubuntu или Fedora.

Использует менеджер пакетов pacman, а также метод обновления - плавающих релизов, то есть получает самые последние версии ПО, из-за чего может быть не очень стабильной.

Отличительной чертой Арча является то, что он устанавливается в виде минимальной базовой системы, настраивается пользователем под собственные нужды путём построения уникальной среды с установкой только необходимых компонентов.

Что выбрать?

Я рекомендую Arch Linux по следующим причинам:

  • Прагматичность: полная свобода выбора между свободным и проприетарным ПО.

  • Гибкость настройки: установка и настройка системы полностью зависят от пользователя.

  • Документация: ArchWiki содержит исчерпывающие инструкции и рекомендации.

Для установки можно использовать скрипт на Python - archinstall, если вы не хотите углубляться в детали на первых порах. Но людям, которые хотят изучать систему GNU/Linux рекомендуется делать это с нуля.

Если выделять различия между другими дистрибутивами, можно отметить следующее:

  • Арч меньше всего захламлён предустановленными программами и говорит тебе - собери свою систему сам.

  • Здесь устанавливаются самые последние версии ПО, за счёт метода обновления плавающих релизов, поэтому, если вы хотите, например, использовать свой компьютер как игровую машину, то такой вариант поможет вам получить подобный опыт без проблем.

  • AUR - пользовательские репозотории Арч. Это поддерживаемое сообществом хранилище программ для пользователей Arch, не входящих в основной репозиторий. Даёт большой выбор сторонних программ от пользователей, но в то же время и накладывает на вас ответственность, так как они не проходят такую тщательную проверку, как то же ПО из официального источника, поэтому использовать их только на свой страх и риск. Существует система голосов за понравившиеся пакеты и многие хорошие программы из AUR переносятся в итоге в официальный репозиторий.

  • Ну и как уже упоминалось выше - он полностью поддерживается сообществом и не зависит от решений корпораций.

Графическое окружение

Важный аспект при выборе дистрибутива — графическое окружение. Существуют два основных графических сервера: Xorg и Wayland. Wayland более современный и безопасный, но пока не полностью заменил Xorg.

На видеокартах Nvidia - Wayland может работать некорректно.

Я использую композитор для Wayland'а — Hyprland, и всё работает отлично на видеокарте AMD + 2 монитора.

После установки Arch вы получите только терминал. Для работы с графическим интерфейсом можно установить среду рабочего стола или оконный менеджер.

Среда рабочего стола (DE) — это набор программ с общим графическим интерфейсом (например, KDE Plasma, GNOME).

Оконный менеджер (WM) — программа для управления отображением окон. Может быть частью DE или работать отдельно.

Если идти по самому простому пути, например, через тот же archinstall, вам будет предложено выбрать среды рабочего стола, но я не рекомендую их ставить и вот по каким причинам:

  • Загруженность системы по средствам ненужных программ на фоне (привет Windows)

  • Плохая работа этих программ между собой и самого интерфейса в целом (хотя казалось бы должна быть максимальная совместимость)

  • Очень сложно изменять подобные среды под себя, например, изменить оконный менеджер, так как всё сделано с расчётом использования именно в таком виде и дополнительные изменения могут приводить к ошибкам. В Windows также используется своё окружение рабочего стола, но изменить вы сможете только то, что вам разрешит Microsoft, то есть практически ничего.

  • Ну и самое интересное, как по мне, — это то, что наверное во всех средах рабочего стола используются именно стековые оконные менеджеры, оправдывая это упрощённым переходом с того же Windows, но этим самым не сильно уходя от его концепции.

Здесь мы плавно перешли к различиям оконных менеджеров:

  • Стековые (плавающие) следуют традиционной метафоре рабочего стола, которая используется в коммерческих операционных системах вроде Windows и macOS. Окна отображаются подобно листкам бумаги на столе, накладываясь и перекрывая друг друга.

  • Фреймовые (тайловые) располагают окна на экране в виде плиток (фреймов) так, что они не перекрывают друг друга. Как правило, фреймовые оконные менеджеры подразумевают активное использование клавиатуры для управления окнами и имеют слабую поддержку мыши (либо не имеют её вовсе). Фреймовые оконные менеджеры могут предлагать набор стандартных расположений фреймов или позволять задавать их вручную.

Linux — лучшая ОС GNU, Linux, Unix, Windows, Open Source, Free soft, Microsoft, Arch, Операционная система, Дистрибутив, Информационная безопасность, Apple, IT, Debian, Red Hat, Видео, YouTube, Длиннопост

Рабочий стол со стековыми окнами

Linux — лучшая ОС GNU, Linux, Unix, Windows, Open Source, Free soft, Microsoft, Arch, Операционная система, Дистрибутив, Информационная безопасность, Apple, IT, Debian, Red Hat, Видео, YouTube, Длиннопост

Рабочий стол с фреймовыми окнами

Также существуют динамические версии, где объединены как стековые, так и фреймовые.

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

Вот две главные причины, почему тайловые окна выигрывают плавающие:

  • Скорость работы за ПК ускоряется в разы, так как всё взаимодействие с системой можно осуществлять при помощи горячих клавиш на клавиатуре и переключением между виртуальными рабочими столами.

  • Все открытые окна будут занимать максимально возможное свободное пространство на мониторе, а при открытии новых, будут также эффективно распределяться между собой. 

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

Заключение

Программа, работающая в графическом окружении и которая выполняет функции терминала - называется эмулятором терминала.

Для новичков это может показаться чем то сложным, но когда вы немного освоитесь и привыкните, то поймёте насколько проще работать с системой через такой терминал.

Сам использую Alacritty, поэтому вам его тоже советую. Очень простая настройка в одном toml файле.

С помщью эмулятора терминала вы можете как обновлять систему одной командой с аргументами:

pacman -Syu

Так и устанавливать нужные приложения в одну строчку:

pacman -S firefox

Базовые команды, нужные вам для работы в терминале, а также для работы с pacman.

GNU/Linux предлагает свободу выбора и контроля над системой, делая его отличным вариантом для пользователей, которым важна независимость от крупных корпораций и безопасность личных данных.

Надеюсь я заинтересовал вас и вы хотя бы попробуете данную ОС и оцените все её преимущества. Дальше остаётся только пробовать и изучать новое.

Спасибо за внимание, получайте новые знания и передавайте их другим!

Источники

  • Программирование. Введение в профессию (А. В. Столяров) — Учебник «Программирование: введение в профессию» ориентирован на самостоятельное изучение и предполагает использование систем семейства Unix (в т.ч. Linux) в роли сквозной среды для обучения.

История Windows

  • Microsoft (Википедия) — История компании Microsoft, её основатели и ключевые этапы развития.

  • MS-DOS (Википедия) — Информация о MS-DOS, её разработке и использовании в IBM PC.

  • Windows (Википедия) — Подробная история развития операционной системы Windows.

  • Windows 9x (Википедия) — Подсемейство Windows на базе MS-DOS, включая Windows 95, 98 и Me.

  • Windows NT (Википедия) — История развития линейки Windows NT и её отличия от других версий.

  • Краткая история Windows (Habr) — История Windows с 1985 года до наших дней.

История Unix

  • Unix (Википедия) — Основные этапы создания и развития Unix, ключевые фигуры и концепции.

  • MULTICS (Википедия) — Информация о предшественнике Unix, операционной системе MULTICS.

  • BSD (Википедия) — История Berkeley Software Distribution (BSD), её влияние на Unix и развитие отрасли.

История GNU/Linux

  • GNU (Википедия) — История проекта GNU, его философия и основные компоненты.

  • Linux (Википедия) — Информация о разработке ядра Linux и его значении для открытого ПО.

  • Richard Stallman (Википедия) — Биография Ричарда Столлмана, его вклад в движение свободного ПО.

  • Linus Torvalds (Википедия) — Биография Линуса Торвальдса и история создания ядра Linux.

  • SunOS (Википедия) — Информация об операционной системе SunOS, которая вдохновила Линуса Торвальдса.

  • Revolution OS (YouTube) — Документальный фильм о развитии GNU/Linux и открытого ПО.

Свободное программное обеспечение и лицензии

  • Лекция Столлмана о Свободном ПО (YouTube) — Лекция Ричарда Столлмана о философии и важности свободного ПО.

  • GNU General Public License (Википедия) — Лицензия GPL, её история и значение для открытого ПО.

  • Свободное программное обеспечение (СПО) (Википедия) — Понятие, критерии и примеры свободного ПО.

  • Открытое программное обеспечение (ОПО) (Википедия) — Отличие открытого ПО от свободного, принципы и примеры.

Дистрибутивы Linux и пакетные менеджеры

  • Debian (Википедия) — Информация о дистрибутиве Debian и его особенности.

  • dpkg (Википедия) — Пакетный менеджер для Debian и производных систем.

  • APT (Википедия) — Пакетный менеджер для Debian и его функционал.

  • Red Hat (Википедия) — Коммерческая компания и дистрибутив Linux для корпоративного использования.

  • Fedora (Википедия) — Открытый дистрибутив Linux, спонсируемый Red Hat.

  • RPM (Википедия) — Пакетный менеджер для дистрибутивов Red Hat и Fedora.

  • DNF (Википедия) — Современный пакетный менеджер для дистрибутивов, основанных на RPM.

  • Arch Linux (Википедия) — Лёгкий дистрибутив, известный своей гибкостью и минимализмом.

  • Pacman (Википедия) — Пакетный менеджер для Arch Linux и производных.

  • Rolling release (Википедия) — Модель обновления дистрибутивов Linux, включая Arch Linux.

  • AUR (Arch Wiki) — Репозиторий Arch Linux поддерживаемый сообществом.

Современные инструменты и окружения

  • Hyprland (Официальный сайт) — Современное окружение рабочего стола на базе Wayland.

  • Archinstall (Arch Wiki) — Официальный скрипт установки для Arch Linux, упрощающий процесс установки.

Показать полностью 11
[моё] GNU Linux Unix Windows Open Source Free soft Microsoft Arch Операционная система Дистрибутив Информационная безопасность Apple IT Debian Red Hat Видео YouTube Длиннопост
102
777
monobogdan
monobogdan
1 год назад
TECHNO BROTHER

Nokia N9 — уникальный Linux-смартфон, опередивший своё время на много лет вперед⁠⁠

Nokia N9 — уникальный Linux-смартфон, опередивший своё время на много лет вперед Гаджеты, Смартфон, Разработка, Linux, Android, Nokia, Meego, Nix, Unix, Мобильные телефоны, Операционная система, Железо, Microsoft, Windows Phone, Nokia Lumia, Видео, Вертикальное видео, Длиннопост



Многие из нас помнят компанию Nokia, как одного из лидеров мобильного рынка и производителя самых разных, необычных устройств, которые опережали свое время на много лет вперед! К сожалению, нынешняя Nokia — это уже совсем не та компания, которую мы любили и которой отдавали предпочтение при выборе мобильного девайса. Однако ещё во времена перехода под крыло Microsoft, практически под самый закат, финны сделали шедевральное устройство на десктопном Linux, которое до сих пор находит отголоски в современном мире смартфонов. И имя этому шедевру — Nokia N9! Недавно мне написал почётный хабровчанинdlinyjи предложил подарить этого красавца мне: причём с полным комплектом! Почему он оказался прорывным и что общего имеет с Lumia 800? Читайте подробнее в статье!

❯ Что за гаджет?


Когда-то у Nokia было две основных платформы, на базе которых они выпускали свои портативные гаджеты: S40, на которой работали функциональные Java-телефоны, сейчас их называют «фичефонами», и S60 — версия Symbian, на которой работало большинство смартфонов этой компании. Финская корпорация смогла занять серьезный процент практически в каждом сегменте рынка: бюджетники (1110, 1202 «фонарик», 2700c), средний класс (5310 XpressMusic, 5230/5228, 6300), флагманы (N95, N91, N72/N73) и, конечно же, бизнес-сегмент (8800 Arte/Luna, E90, в каком-то смысле Vertu).


Однако помимо выпуска девайсов на стандартных платформах была у Nokia и команда разработчиков, отвечавшая за гиковские устройства, которые были предназначены исключительно для энтузиастов. Началось всё с выпуска одного из первых устройств в классе «интернет-планшетов», имя которому было Nokia 770 Internet Tablet. Устройство, вышедшее за 5 лет до появления iPad, предоставляло обычному пользователю почти все возможности портативного компьютера тех лет: серфинг интернета через Wi-Fi, прослушивания музыки и просмотр видео с флэшек RS-MMC, а также работа с документами.

Nokia N9 — уникальный Linux-смартфон, опередивший своё время на много лет вперед Гаджеты, Смартфон, Разработка, Linux, Android, Nokia, Meego, Nix, Unix, Мобильные телефоны, Операционная система, Железо, Microsoft, Windows Phone, Nokia Lumia, Видео, Вертикальное видео, Длиннопост



Но это если смотреть с точки зрения обычного пользователя. На самом же деле устройство обладало огромными возможностями для разработчиков благодаря тому, что работало на базе ОС Maemo — адаптации десктопного окружения Linux под мобильные устройства. Nokia не просто выпустили на рынок занимательный продукт: они полностью открыли исходный код всей системы, позволяя кастомизировать прошивку как угодно, реализовали «магазин приложений» в виде репозитория с различными пакетами и позволяли запускать абсолютно любое Linux приложение, скомпилированное под ARMv5.

Nokia N9 — уникальный Linux-смартфон, опередивший своё время на много лет вперед Гаджеты, Смартфон, Разработка, Linux, Android, Nokia, Meego, Nix, Unix, Мобильные телефоны, Операционная система, Железо, Microsoft, Windows Phone, Nokia Lumia, Видео, Вертикальное видео, Длиннопост



В то время это было как глоток свежего воздуха. Конечно же, уже существовали КПК на базе Windows Mobile, где пользователи вовсю кастомизировали прошивки: подменяли драйвера из устройства в устройство, делали патчи и твики реестра/ядра, русифицировали и подменяли встроенные программы. Однако WinMobile оставалась проприетарной операционной системой, где хоть и был доступ к исходному коду ядра для любого желающего (Platform Builder), без BSP (Board Support Package — порт системы на определенную материнскую плату) в этом практически не было смысла. Другое дело — пользователи планшетов от Nokia: там была полная свобода во всем!

Nokia N9 — уникальный Linux-смартфон, опередивший своё время на много лет вперед Гаджеты, Смартфон, Разработка, Linux, Android, Nokia, Meego, Nix, Unix, Мобильные телефоны, Операционная система, Железо, Microsoft, Windows Phone, Nokia Lumia, Видео, Вертикальное видео, Длиннопост



Отдельной особенностью Maemo оставалось то, что даже пользовательский интерфейс строился по принципам обычного ПК и на базе тех же библиотек. В качестве официальной библиотеки интерфейса, Nokia предлагала GTK с набором виджетов для построения общего Look&Feel системы, но никто не мешал использовать Qt, или, например, wxWidgets.

И вот так, из года в год, выходили всё новые и новые устройств на базе Maemo. После 770 был успешный N800, а позднее в том же году появился и N810 с QWERTY-клавиатурой. В репозиториях появлялось всё больше и больше софта и, хотя едва ли обычный пацаненок с района мог увидеть у кого-то в руках такое устройство, именно они, в паре с КПК, стали прообразами современных смартфонов. Но был ещё один важный нюанс: ни один из интернет-планшетов от Nokia не имел радиомодуля. Выходить в интернет предлагалось с помощью Wi-Fi или через Bluetooth. Таким образом, эти девайсы нельзя было назвать полноценными коммуникаторами и смартфонами…

Nokia N9 — уникальный Linux-смартфон, опередивший своё время на много лет вперед Гаджеты, Смартфон, Разработка, Linux, Android, Nokia, Meego, Nix, Unix, Мобильные телефоны, Операционная система, Железо, Microsoft, Windows Phone, Nokia Lumia, Видео, Вертикальное видео, Длиннопост



До 2009 года. Ведь именно в этом году Nokia представляет коммуникатор N900 с QWERTY-клавиатурой, который снабдили радиомодулем, благодаря которому он оказался способен как звонить, так и выходить в интернет через 3G. Кроме того, у N900 были все характеристики современного смартфона: достаточно мощный ARM-чипсет TI OMAP с частотой 600мгц, способный запустить Linux; 256 мегабайт оперативной памяти (топовые коммуникаторы имели 128мб); GPU PowerVR SGX530 (что вообще было редкостью в мобильниках тех лет и только Qualcomm встраивали Adreno вообще во все свои чипы); магазин приложений и, конечно же, тачскрин, пусть и резистивный! Подробнее про N900 читайте в моей соответствующей статье.


В 2010-2011 годах Android уже начал идти победоносной поступью, будучи предустановленным на самые разные гаджеты: от телефонов и планшетов до тв-боксов и электронных книг. iPhone уже успел полностью согнуть свою линию и доказать, что за гаджетами с емкостными тачскринами и мощным железом будущее. Symbian уже было тяжело конкурировать с мастодонтами рынка: не помогал даже Qt, а о нативном API системы говорить вообще не стоит (оно неплохое, но своеобразное), нужно было думать, куда двигаться дальше. Сделать свой Android смартфон? Продолжать работу над Maemo? Microsoft уже начали потихоньку потирать руки и пытаться прибрать мобильное подразделение Nokia к себе: сначала поставили в кресло CEO Стивена Элопа, а затем сменили курс компании с Symbian/Maemo на Windows Phone.

Nokia N9 — уникальный Linux-смартфон, опередивший своё время на много лет вперед Гаджеты, Смартфон, Разработка, Linux, Android, Nokia, Meego, Nix, Unix, Мобильные телефоны, Операционная система, Железо, Microsoft, Windows Phone, Nokia Lumia, Видео, Вертикальное видео, Длиннопост



Symbian развивали и поддерживали до последнего, до 2012 года, когда Nokia совсем сдалась и прекратила выпускать серьезные апдейты, коим стал Symbian Bella. Nokia уже успела выпустить первые смартфоны линейки Lumia на базе Windows Phone и пыталась удержаться на плаву. Но у компании припасен ещё один козырь за пазухой. О котором знали в Microsoft, который действительно имел все шансы перевернуть мобильный рынок с ног на голову, и который развивали вместе с Intel. И имя ему — MeeGo!

Nokia N9 — уникальный Linux-смартфон, опередивший своё время на много лет вперед Гаджеты, Смартфон, Разработка, Linux, Android, Nokia, Meego, Nix, Unix, Мобильные телефоны, Операционная система, Железо, Microsoft, Windows Phone, Nokia Lumia, Видео, Вертикальное видео, Длиннопост



Nokia действительно могла перевернуть мобильный мир, если бы ей не мешала Microsoft. И не нужны были бы ей смартфоны на Android, когда у них самих была такая классная система. И ведь кто-то подумает «ну было и было», ан-нет, отголоски MeeGo раздаются и сейчас. Часть инженеров Nokia ушли развивать MeeGo в виде отдельной компании Jolla с смартфонами на базе Sailfish OS — дальнейшее развитие перспективной системы от Nokia. И как бы необычно это не звучало, сейчас Sailfish развивают в… России! Ростелеком выкупил контрольный пакет акций Jolla, что позволило реализовать свой форк под знакомым многим из вас названием Aurora OS! Я даже рискнул оставить заявку на закрытое бета-тестирование, авось и я смогу подержать в руках устройство на Авроре и даже что-то запилить на него, например, 3D-игрушку! :)

Nokia N9 — уникальный Linux-смартфон, опередивший своё время на много лет вперед Гаджеты, Смартфон, Разработка, Linux, Android, Nokia, Meego, Nix, Unix, Мобильные телефоны, Операционная система, Железо, Microsoft, Windows Phone, Nokia Lumia, Видео, Вертикальное видео, Длиннопост



Nokia N9 стал первым и последним гаджетом на базе MeeGo, на который будет крайне интересно взглянуть и… понять, что мы пришли ко всему тому, что Nokia реализовала много лет назад! N9 мне подарил мой читатель, наставник авторского дела и просто крутой мужик Сергей "@dlinyj" Долин! Этот человек сыграл довольно большую роль в становлении меня, как автора: давал советы касательно фотографий, стилистики текста, кое-где поправлял меня. И в один день он скинул фотографию N9 в родной коробочке со словами «хочешь же?))», заранее зная мой ответ! Сергей и сам успел поработать над Авророй, поэтому наличие у него N9 не вызывает вопросов.
Этот материал я решил подготовить на круглую и праздничную для меня дату — день рождения моего блога! Ровно год назад, 16 июля 2022 года, я написал свою первую статью — обзор на Samsung X450. :)

❯ Распаковываем...


Поставлялся девайс в большой коробочке, фирменного синего цвета и с гравировкой логотипа, как и свойственно всем флагманам Nokia. В N900 на коробке гравировали даже кнопки QWERTY-клавиатуры на силуэте устройства — даже над дизайном такой мелочи поработали знатно. Нас сразу встречает заветная надпись: Nokia N Series!

Nokia N9 — уникальный Linux-смартфон, опередивший своё время на много лет вперед Гаджеты, Смартфон, Разработка, Linux, Android, Nokia, Meego, Nix, Unix, Мобильные телефоны, Операционная система, Железо, Microsoft, Windows Phone, Nokia Lumia, Видео, Вертикальное видео, Длиннопост



Открываем коробочку и видим там комплект из: смартфона, буклетов, наушников и ЗУ. Всё весьма компактно и в чем то даже напоминает стиль iPhone.

Nokia N9 — уникальный Linux-смартфон, опередивший своё время на много лет вперед Гаджеты, Смартфон, Разработка, Linux, Android, Nokia, Meego, Nix, Unix, Мобильные телефоны, Операционная система, Железо, Microsoft, Windows Phone, Nokia Lumia, Видео, Вертикальное видео, Длиннопост



Основные интерфейсные разъемы устройства расположены сверху: там и слот под SIM, и разъем для ЗУ, причем на магнитах (!).

Что самое интересное — у N9 был параллельный «собрат» на Windows Phone в виде Lumia 800. Несмотря на то, что работают они на совершенно разных чипсетах и имеет немного отличающийся тачскрин, у этих девайсов очень похожий дизайн корпуса, конструкция, полностью совместимые дисплеи с немного разной диагональю, у них даже есть некоторые сходства в разводке материнской платы.

Характеристики нашего устройства такие:

  • Чипсет: TI OMAP 3630, одно ядро Cortex A8 на частоте 1ггц.

  • GPU: PowerVR SGX530. Весьма неплохое видеоядро по тем годам, немного более мощное использовалось, например, в первом iPad. Есть поддержка OpenGL ES 2.0.

  • ОЗУ: 1гб. Очень серьёзный объем по тем временам, некоторые флагманы комплектовались лишь 512мб ОЗУ, что было стандартом индустрии в 2012-2013 годах.

  • ПЗУ: 16 или 64гб. По тем временам, очень серьезный объем памяти.

  • Камера: 8мп фотокамера с оптикой от Carl Zeiss. Данная оптика стала стандартом и визитной карточкой многих камерафонов от Nokia. Помимо съемки фото, смартфон способен записывать видео в 720p при 30 кадрах в секунду.

  • Дисплей: 3.9" AMOLED матрица 854x480.

Nokia N9 — уникальный Linux-смартфон, опередивший своё время на много лет вперед Гаджеты, Смартфон, Разработка, Linux, Android, Nokia, Meego, Nix, Unix, Мобильные телефоны, Операционная система, Железо, Microsoft, Windows Phone, Nokia Lumia, Видео, Вертикальное видео, Длиннопост



Сергей прислал изначально полностью рабочий гаджет, что для моего блога обычно не свойственно — я люблю покопаться и в нерабочих девайсах. Однако некоторой адаптации под современные реализации смартфон всё же требовал и в первую очередь — обновление репозиториев.

❯ Патчим в программном плане


Поскольку MeeGo — это по сути, полноценный десктопный Linux, адаптированный под мобильные платформы, он точно также, как и Maemo, использует менеджер пакетов dpkg. Все приложения для этих систем распространяются в виде знакомым большинству линуксоидов пакетов .deb.

Однако есть целых два важных нюанса: в устройстве нет предустановленного файлового менеджера, откуда можно было бы установить минимально-необходимые программы, и устройство не всегда может установить «левые» dpkg даже после включения установки приложений из сторонних источников в настройках.

Nokia N9 — уникальный Linux-смартфон, опередивший своё время на много лет вперед Гаджеты, Смартфон, Разработка, Linux, Android, Nokia, Meego, Nix, Unix, Мобильные телефоны, Операционная система, Железо, Microsoft, Windows Phone, Nokia Lumia, Видео, Вертикальное видео, Длиннопост


Установить файловый менеджер можно скачав соответствующий .deb и скинув его через Bluetooth. Я выбрал FileBox. Затем его можно установить в списке переданных файлов обычным тапом. Обратите внимание, что пакеты для MeeGo имеют подпись а-ля Symbian, поэтому если у вас не устанавливается ничего — проверьте дату и время.

Nokia N9 — уникальный Linux-смартфон, опередивший своё время на много лет вперед Гаджеты, Смартфон, Разработка, Linux, Android, Nokia, Meego, Nix, Unix, Мобильные телефоны, Операционная система, Железо, Microsoft, Windows Phone, Nokia Lumia, Видео, Вертикальное видео, Длиннопост


Некоторые программы можно установить только в терминале, вручную вызвав dpkg -i с необходимым пакетом .deb. Для активации режима разработчика, который добавляет возможность связи с ПК и эмулятор терминала, нам нужно сначала обновить зеркала репозиториев с пакетами, установивэтот .debи затем активировать девмод в настройках. Смартфон докачает и установит нужные пакеты, перезагрузится, и мы сможем свободно пользоваться терминалом.

Nokia N9 — уникальный Linux-смартфон, опередивший своё время на много лет вперед Гаджеты, Смартфон, Разработка, Linux, Android, Nokia, Meego, Nix, Unix, Мобильные телефоны, Операционная система, Железо, Microsoft, Windows Phone, Nokia Lumia, Видео, Вертикальное видео, Длиннопост


Теперь гаджет полностью работает и может оказаться весьма полезным. Так в чем же N9 оказалась шедевральна? Какие её концепции до сих пор заимствуют?

❯ Смотрим на MeeGo


В первую очередь, MeeGo ещё в 2011 году вводила концепцию полного управления системой жестами. Здесь вообще нет никаких кнопок «домой», «назад», «диспетчер приложений» — все это инженеры Nokia посчитали не нужным и реализовали всё взаимодействие благодаря простым и понятным свайпам. Обратите внимание, ничего не напоминает? Неужто кто-то с выходом десятки полностью позаимствовал фишку финского гиганта?



Кроме того, Nokia посчитали, что мобильной системе не нужен рабочий стол в его классическом виде. Схожий подход, где на домашнем экране сразу расположены все приложения, уже реализовала Apple еще в первом айфоне. Однако в айфоне домашний экран поделен на страницы, в то время как в MeeGo это список с возможностью создания подпапок. Причем рабочий стол с виджетами был до этого в Maemo, но Nokia решили не переносить его в MeeGo.

Nokia N9 — уникальный Linux-смартфон, опередивший своё время на много лет вперед Гаджеты, Смартфон, Разработка, Linux, Android, Nokia, Meego, Nix, Unix, Мобильные телефоны, Операционная система, Железо, Microsoft, Windows Phone, Nokia Lumia, Видео, Вертикальное видео, Длиннопост


UX системы вообще очень необычный. Он пытается сочетать все лучшее из iOS, WP и отчасти Android. Да, здесь есть шторка уведомлений, но выглядит она максимально минималистично и единственная настройка — громкость звука. Да, часть параметров приложений можно найти в настройках — прямо как в iOS. Да, здесь уже был относительно строгий полу-Flat стиль, немного напоминающий стиль iOS 7 (который вышел на 2 года позже MeeGo). Даже меню опций нет, лишь значки действий снизу — как и в N8 на Symbian.

Nokia N9 — уникальный Linux-смартфон, опередивший своё время на много лет вперед Гаджеты, Смартфон, Разработка, Linux, Android, Nokia, Meego, Nix, Unix, Мобильные телефоны, Операционная система, Железо, Microsoft, Windows Phone, Nokia Lumia, Видео, Вертикальное видео, Длиннопост


Кроме того, здесь довольно удобно реализован диспетчер задач. В Android он только-только появился в 3.0 Honeycomb, а в iOS он был реализован жутко неудобно. Однако, судя по всему, MeeGo не умеет сама закрывать или отправлять в сон приложения, как это делает Android и iOS — такова нативная линуксовая натура системы. Из-за этого, если открыть слишком много приложений, можно наблюдать небольшие лаги. Вообще, система действительно не сказать что работает уж очень плавно: яблочки тех лет работали гораздо шустрее и плавнее, однако по тем временам плавность системы достаточно приемлема.

Nokia N9 — уникальный Linux-смартфон, опередивший своё время на много лет вперед Гаджеты, Смартфон, Разработка, Linux, Android, Nokia, Meego, Nix, Unix, Мобильные телефоны, Операционная система, Железо, Microsoft, Windows Phone, Nokia Lumia, Видео, Вертикальное видео, Длиннопост


Я решил установить некоторые приложения и использовать N9 в современном мире. И в целом, для каких-то базовых действий он отлично подойдёт и сегодня!

В системе есть браузер на базе WebKit — тот самый браузерный движок, что используется и в Safari на iOS, и долгое время использовался в стандартном браузере Android. Благодаря дисплею, страницы выглядят очень сочно, но только те, которые загрузятся :) И дело даже не в веб-стандартах, большинство страниц браузер сможет худо-бедно переварить. Однако встает проблема с сертификатами — браузер их не умеет игнорировать, если они просрочены, и вываливается в ошибку, отказываясь загружать сайт. Кроме того, браузер не поддерживает SSL 1.2, который использует большинство сайтов на данный момент.

Nokia N9 — уникальный Linux-смартфон, опередивший своё время на много лет вперед Гаджеты, Смартфон, Разработка, Linux, Android, Nokia, Meego, Nix, Unix, Мобильные телефоны, Операционная система, Железо, Microsoft, Windows Phone, Nokia Lumia, Видео, Вертикальное видео, Длиннопост


Зато в системе полностью функционирует почтовый клиент, причем довольно удобный. И здесь открывается еще одна фишка системы: один менеджер для всех аккаунтов на устройстве. Подобную концепцию имеет Android почти с самого начала, но в MeeGo она выделена в отдельное приложение. Не исключено, что в будущем туда хотели добавить и менеджер паролей — было бы весьма удобно!

Что же касается самого клиента почты, то его без проблем можно настроить на Яндекс почту, и на gmail — только не забываем включить SSL (по умолчанию отключен) и использовать одноразовые пароли — двухэтапную аутентификацию большинство старых гаджетов не поддерживает.

Nokia N9 — уникальный Linux-смартфон, опередивший своё время на много лет вперед Гаджеты, Смартфон, Разработка, Linux, Android, Nokia, Meego, Nix, Unix, Мобильные телефоны, Операционная система, Железо, Microsoft, Windows Phone, Nokia Lumia, Видео, Вертикальное видео, Длиннопост
Nokia N9 — уникальный Linux-смартфон, опередивший своё время на много лет вперед Гаджеты, Смартфон, Разработка, Linux, Android, Nokia, Meego, Nix, Unix, Мобильные телефоны, Операционная система, Железо, Microsoft, Windows Phone, Nokia Lumia, Видео, Вертикальное видео, Длиннопост


И, конечно же, девайс подойдет для прямого применения — звонков. Помимо весьма удобного приложения номеронабирателя, N9 полностью поддерживает Nokia PC Sync и без проблем позволяет синхронизировать как контакты из vcf/outlook, так и фото/видео/музыку. Есть поддержка и CalDAV и некоторых других сервисов для синхронизации по сети.

Помимо всего прочего, у девайса отличный аудиотракт. Музыка в наушниках звучит отлично, кроме того, есть улучшалки от Dolby, благодаря чему девайс вполне можно юзать как плеер. Сергей похоже так и юзал его, судя по трекам в плейлисте. Само приложение не менее удобное и создавалось для взаимодействие с Ovi Music — аналогом iTunes от Nokia. Уже потом, музыкальный сервис от Nokia начали использовать в устройствах на WP.

Nokia N9 — уникальный Linux-смартфон, опередивший своё время на много лет вперед Гаджеты, Смартфон, Разработка, Linux, Android, Nokia, Meego, Nix, Unix, Мобильные телефоны, Операционная система, Железо, Microsoft, Windows Phone, Nokia Lumia, Видео, Вертикальное видео, Длиннопост


А ещё устройство неплохо подойдет в качестве камеры. На 2011 год качество снимков весьма на уровне! Как уже сказано выше, девайс умеет записывать и видео в 720p при 30 FPS.

Nokia N9 — уникальный Linux-смартфон, опередивший своё время на много лет вперед Гаджеты, Смартфон, Разработка, Linux, Android, Nokia, Meego, Nix, Unix, Мобильные телефоны, Операционная система, Железо, Microsoft, Windows Phone, Nokia Lumia, Видео, Вертикальное видео, Длиннопост
Nokia N9 — уникальный Linux-смартфон, опередивший своё время на много лет вперед Гаджеты, Смартфон, Разработка, Linux, Android, Nokia, Meego, Nix, Unix, Мобильные телефоны, Операционная система, Железо, Microsoft, Windows Phone, Nokia Lumia, Видео, Вертикальное видео, Длиннопост

Полный фотосет есть на imgur.

А ещё смартфон сможет статьи отличной платформой для прохождения отличных мобильных игр — без доната и таймеров!

Nokia N9 — уникальный Linux-смартфон, опередивший своё время на много лет вперед Гаджеты, Смартфон, Разработка, Linux, Android, Nokia, Meego, Nix, Unix, Мобильные телефоны, Операционная система, Железо, Microsoft, Windows Phone, Nokia Lumia, Видео, Вертикальное видео, Длиннопост

❯ Заключение


N9 получился первым гиковским устройством, которое могли без проблем использовать и обычные пользователи. Nokia вложили много сил и времени для того, чтобы привнести в N9 революционные по тем временам идеи, да так, что некоторые фишки потом у неё «позаимствовали» сами гиганты индустрии!

И очень хорошо, что история MeeGo не закончилась на этом. Кто знает, быть может эта система когда-нибудь сделает камбэк и скинет обросший кучу легаси Android? А вы как считаете? Жду ваше мнение в комментариях!

Показать полностью 23 1
[моё] Гаджеты Смартфон Разработка Linux Android Nokia Meego Nix Unix Мобильные телефоны Операционная система Железо Microsoft Windows Phone Nokia Lumia Видео Вертикальное видео Длиннопост
126
685
Timeweb.Cloud
Timeweb.Cloud
2 года назад
IT минувших дней
Серия Старое железо

Удивительные беспроцессорные «текстовые» компьютеры Wang 2200 — мечта писателя конца 70-х⁠⁠

Автор: CyberPaul

Оригинальный материал

Удивительные беспроцессорные «текстовые» компьютеры Wang 2200 — мечта писателя конца 70-х Познавательно, Timeweb, IBM, Изобретения, Компьютер, ЭВМ, Операционная система, СССР, Unix, Длиннопост, Техника, Видео, YouTube


В прошлой статье я рассказал об американском изобретателе китайского происхождения Ван Ане, создателе памяти на магнитных сердечниках, который построил с нуля успешный IT-бизнес в США. Самым интересным проектом основанной им компании Wang Laboratories стал специализированный компьютер для обработки текстов — удивительная и очень самобытная машина, аналогов которой в мире попросту не существовало. Конструкции и истории создания этого компьютера я решил посвятить сегодняшнюю заметку.

1971 год для Гарольда Коплоу, менеджера по маркетингу компании Wang Laboratories, выдался не слишком удачным — его собирались уволить. Фирма, в которой он трудился, выпускала калькуляторы, но чтобы удержаться на этом динамичном рынке, требовались поистине нечеловеческие усилия. Японские конкуренты наводнили магазины своими дешевыми изделиями, поэтому продажи не росли, KPI не выполнялись, и когда директор компании Ван Ань вызвал «на ковёр» самого Гарольда и его коллегу по несчастью Дэвида Морса, тот подумал, что пришло время паковать вещички.

Однако босс оказался снисходителен: Гарольду и Дэвиду решили дать второй шанс. Их, конечно, выгнали из отдела маркетинга, но не на улицу: бывших менеджеров перевели в департамент перспективного планирования, который считался последним прибежищем всех неудачников в Wang Laboratories. Временная занятость перед окончательным путешествием на биржу труда. Сотрудники этого отдела должны были исследовать рынок и искать перспективные направления для дальнейшего развития компании, придумывать новые продукты. Правда, 99% их «придумок» оказывались в конечном итоге в мусорном ведре. Гарольд решил, что нужно понемногу искать другую работу, а пока можно создать видимость бурной деятельности, запустив вместе с Дэвидом какой-нибудь бесполезный проект — лишь бы от них отстали и не мешали просматривать вакансии. Пусть это будет… Вот только что? Калькуляторы фирмы Wang и так продаются паршиво, недавно появившиеся домашние компьютеры, основной аудиторией которых стали программисты-энтузиасты, пока еще напоминали дорогие и маломощные игрушки, а «профессиональные» ЭВМ стоят, как крыло от «Боинга», если не дороже. Стоп. А что если соединить «офисный» ПК с доступностью недорогого бытового компьютера? С каким видом информации чаще всего работают пользователи? Гарольд Коплоу решил, что это текст. Вот пусть Wang Laboratories продает недорогой компьютер, заточенный конкретно под работу с текстами — простой, практичный, и более дешевый, чем современные «промышленные» аналоги.

Денег на свои разработки отдел перспективного планирования не получал, поэтому Гарольд и Дэвид трудились «на бумаге». Чтобы продемонстрировать видимость работы, Коплоу и Морс придумали описание концепции нового компьютера, примерно посчитали себестоимость его производства и розничную цену, сделали анализ рынка и даже сочинили прототип руководства пользователя. После чего отправили весь этот ворох макулатуры руководству и начали готовиться к неминуемому увольнению. Телефонный звонок не заставил себя долго ждать: их снова вызывали «на ковёр». Вот и конец карьеры в Wang Laboratories, — подумал Коплоу, сложил свои пожитки в картонную коробку, и отправился к начальству.

Ван Ань оказался в восторге. Руководитель Wang Laboratories был достаточно проницателен, чтобы понимать, что микрокалькуляторы постепенно превращаются в «устройства на одном чипе», и конкурировать здесь с японцами вскоре станет практически невозможно. Решением проблемы он видел выход на рынок персональных компьютеров. Но в то же время Ван Ань являлся очень опытным бизнесменом и прекрасно осознавал, что вход на рынок ПК обойдется весьма недешево. В качестве альтернативы он видел нишу недорогих специализированных компьютеров, и концепция Коплоу в этом смысле пришлась как нельзя кстати. В линейке продуктов Wang Laboratories уже имелся программируемый калькулятор Wang 700 с интерфейсами к пишущей машинке IBM Selectric и кассетному магнитофону для хранения данных, осталось только добавить в него код для обработки текста. На выходе получился «текстовый компьютер» Wang 1200 — по большому счету, большой калькулятор, к которому можно было подключить электрическую пишущую машинку IBM Selectric и магнитофон в качестве стримера. Набираемый на машинке текст Wang 1200 позволял записать на кассету — единственным отличием от электрической пишущей машинки было то, что это устройство давало возможность отредактировать текст перед печатью.

Удивительные беспроцессорные «текстовые» компьютеры Wang 2200 — мечта писателя конца 70-х Познавательно, Timeweb, IBM, Изобретения, Компьютер, ЭВМ, Операционная система, СССР, Unix, Длиннопост, Техника, Видео, YouTube

Wang 1200

Wang 1200 особого успеха не снискал: машина получилась дорогой и не слишком надежной. Но в Wang Laboratiries решили не останавливаться на достигнутом и усовершенствовать этот «недокомпьютер, перекалькулятор», превратив его в полноценную персоналку. Группу инженеров возглавил опытный специалист по электронике Боб Колк, написавший набор микропрограмм для Wang 1200, также в команду вошли Брюс Паттерсон, Дэйв Энджел, Джо Ван и Гораций Цайн. Машина, получившая обозначение Wang 2200, была оборудована встроенным черно-белым ЭЛТ-дисплеем, а в качестве накопителя данных использовался стример на обычных бытовых аудиокассетах — также встроенный в корпус.

Удивительные беспроцессорные «текстовые» компьютеры Wang 2200 — мечта писателя конца 70-х Познавательно, Timeweb, IBM, Изобретения, Компьютер, ЭВМ, Операционная система, СССР, Unix, Длиннопост, Техника, Видео, YouTube

Wang 2200

Самое интересное, что Wang 2200 не имел процессора как такового — в 1973 году подходящих микросхем промышленность еще не выпускала. Вместо процессора в конструкции использовался с десяток отдельных плат, оснащенных «калькуляторными» микросхемами на TTL-логике. Они «прятались» в специальном подключаемом к компьютеру чемоданчике, который можно было убрать в ящик стола.

Удивительные беспроцессорные «текстовые» компьютеры Wang 2200 — мечта писателя конца 70-х Познавательно, Timeweb, IBM, Изобретения, Компьютер, ЭВМ, Операционная система, СССР, Unix, Длиннопост, Техника, Видео, YouTube

Машина имела оперативную память объемом 4 килобайта (в старших моделях он понемногу вырос до 32 килобайт, это ограничение накладывалось архитектурой: внутренние адресные регистры имели размерность 16 бит, но были адресами полубайтов, а не байтов). Тактовый генератор работал на частоте 10 МГц. Операционная система и текстовый редактор, разработанные Wang Laboratiries, были прошиты в ПЗУ в виде микропрограмм: с одной стороны это обеспечивало почти мгновенную загрузку машины, с другой — делало почти невозможным обновление вшитого кода и исправление ошибок.

Удивительные беспроцессорные «текстовые» компьютеры Wang 2200 — мечта писателя конца 70-х Познавательно, Timeweb, IBM, Изобретения, Компьютер, ЭВМ, Операционная система, СССР, Unix, Длиннопост, Техника, Видео, YouTube

Еще одной микропрограммой стал Wang T-BASIC — диалект бейсика, позволявший писать для Wang 2200 приложения и сохранять их на кассеты. Для облегчения работы с Wang BASIC на QWERTY-клавиатуре был предусмотрен специальный ряд клавиш, позволявший набирать целые команды одним нажатием кнопки. При работе можно было переключиться в режим набора текста или специальный «режим оператора», в котором можно отдавать компьютеру команды и программировать.

Удивительные беспроцессорные «текстовые» компьютеры Wang 2200 — мечта писателя конца 70-х Познавательно, Timeweb, IBM, Изобретения, Компьютер, ЭВМ, Операционная система, СССР, Unix, Длиннопост, Техника, Видео, YouTube
Удивительные беспроцессорные «текстовые» компьютеры Wang 2200 — мечта писателя конца 70-х Познавательно, Timeweb, IBM, Изобретения, Компьютер, ЭВМ, Операционная система, СССР, Unix, Длиннопост, Техника, Видео, YouTube

«Системный блок» с платами Wang 2200 имел порт для подключения клавиатурно-дисплейного модуля, стримера, принтера, и периферийных устройств. Совместно с гонконгской фирмой Algorithms, Inc был разработан сетевой протокол и интерфейс, позволявший соединять до 240 рабочих станций Wang 2200 в один кластер — в результате получалась многопользовательская система, использующая единое хранилище данных на магнитных дисках. Такие системы стали закупать и активно использовали, например, колл-центры пейджинговых компаний, операторы которых набирали сообщения от абонентов на компьютерах Wang 2200, и передавали их затем на центральный сервер.

Удивительные беспроцессорные «текстовые» компьютеры Wang 2200 — мечта писателя конца 70-х Познавательно, Timeweb, IBM, Изобретения, Компьютер, ЭВМ, Операционная система, СССР, Unix, Длиннопост, Техника, Видео, YouTube

Компьютер поступил в продажу в 1973 году по цене 7400 долларов США (эквивалент 45 300 долларов на 2022 год) и стал настоящим прорывом. Небольшой, компактный и относительно недорогой, этот компьютер стал незаменимым помощником для офисных работников, а также вошел в обиход многочисленных диспетчерских и справочных телефонных центров, операторы которых много работали с текстом. Всего было выпущено более 65 000 экземпляров этой машины в различных модификациях, ее продажи принесли Wang Laboratiries миллионные прибыли.

Удивительные беспроцессорные «текстовые» компьютеры Wang 2200 — мечта писателя конца 70-х Познавательно, Timeweb, IBM, Изобретения, Компьютер, ЭВМ, Операционная система, СССР, Unix, Длиннопост, Техника, Видео, YouTube

Выпускалось несколько поколений Wang 2200, в каждом из которых насчитывалось несколько модификаций этой ЭВМ. Модификации A, B и C первого поколения отличались только объемом прошитого в ПЗУ микрокода, в основном, числом поддерживаемых команд BASIC. В следующем поколении (модификации S и T) разработчики сократили количество составляющих «процессор» микросхем, также внешний блок питания прописался внутри «системного блока». В моделях E и F развитие микрочипов наконец позволило отказаться от отдельного модуля с платами — все содержимое компьютера переехало внутрь единого корпуса с монитором и клавиатурой.

Удивительные беспроцессорные «текстовые» компьютеры Wang 2200 — мечта писателя конца 70-х Познавательно, Timeweb, IBM, Изобретения, Компьютер, ЭВМ, Операционная система, СССР, Unix, Длиннопост, Техника, Видео, YouTube

В 1976 году появилась модификация под названием 2200VP. Внешне она мало отличалась от предшественниц, но весь микрокод и операционная система компьютера были полностью переработаны. ОС стала многопользовательской, получив возможность работать в режиме терминала, в ее архитектуре появилась своеобразная база данных, c помощью которой было реализовано подобие иерархической файловой системы — в Wang Laboratiries назвали это «системой автоматической каталогизации файлов». Одновременно система позволяла открывать до 16 текстовых файлов, правда, одновременно работать можно было только с одним из них. В начале 80-х состоялся еще один апгрейд: помимо магнитной ленты пользователям стал доступен дисковод, совместимый со стандартом IBM PC.

Удивительные беспроцессорные «текстовые» компьютеры Wang 2200 — мечта писателя конца 70-х Познавательно, Timeweb, IBM, Изобретения, Компьютер, ЭВМ, Операционная система, СССР, Unix, Длиннопост, Техника, Видео, YouTube

В это же время начался закат проекта Wang 2200: специализированную «текстовую» машину начали вытеснять с рынка универсальные IBM-совместимые компьютеры. Ван Ань попытался заскочить в последний вагон уходящего поезда и выпустил модификацию Wang 2200, оснащенную самым совершенным на тот момент процессором Intel 80386 с частотой 16 Мгц и оперативной памятью объемом 256 килобайт. Весь компьютер был собран на одной плате, которую интегрировали в существующее шасси. Машина загружалась с жесткого диска, но поверх «родного» для 386-го процессора ядра ОС запускался микрокод Wang 2200. Вместо интерпретатора Wang BASIC, как в компьютерах предыдущих поколений, здесь использовался статический компилятор. Однако эта модель не пользовалась спросом: во-первых, из-за высокой цены, а во-вторых, в силу того, что оригинальные IBM позволяли приобретать комплектующие и периферию разных производителей, в то время как Wang 2200 был совместим только сам с собой. В конечном итоге компьютер сняли с производства, и он занял свое законное место в музеях вычислительной техники.

Удивительные беспроцессорные «текстовые» компьютеры Wang 2200 — мечта писателя конца 70-х Познавательно, Timeweb, IBM, Изобретения, Компьютер, ЭВМ, Операционная система, СССР, Unix, Длиннопост, Техника, Видео, YouTube

Искра-226

Однако на этом история данной удивительной мышины не заканчивается. В конце 70-х некоторое количество компьютеров Wang 2200 закупил Советский Союз — эти компьютеры активно использовались Госпланом и Госкомстатом СССР. Машина настолько пришлась по вкусу советским чиновникам, что вскоре они поставили перед промышленностью задачу разработать полный бинарный и аппаратный клон этого ПК. Задача была успешно выполнена: новый компьютер получил обозначение «Искра-226». Он использовал разработанный Wang Laboratiries интерпретатор Wang T-BASIC, но при этом включал несколько улучшений: например, в нем присутствовало уже два интерфейса RS-232, интерфейс управления оборудованием IEEE-488, а позже конструкторы добавили поддержку порта Unix для совместимости с другими сериями советских компьютеров. Машина успешно работала на многих предприятиях СССР почти до конца 80-х, надолго пережив своего американского прародителя.

Подпишись на наш блог, чтобы не пропустить новые интересные посты!

Показать полностью 12 1
Познавательно Timeweb IBM Изобретения Компьютер ЭВМ Операционная система СССР Unix Длиннопост Техника Видео YouTube
180
41
cherdji
cherdji
2 года назад

Linux Mint⁠⁠

Без рейтинга. Перешёл на Линукс минт. Сделано людьми для людей. Нравится все. Эргономичный интерфейс, все что надо для работы и отдыха (не задрочивания в играх) есть сразу после установки. Конечно приходится гуглить и читать специфические вопросы, но тем больше удовольствия от полученного результата. Дружелюбная система с низким порогом вхождения.

[моё] Linux mint Люди Дружелюбие Текст Операционная система Unix
35
youplay
youplay
2 года назад

Все ещё пытаюсь⁠⁠

Все ещё пытаюсь Linux, Командная оболочка bash, Операционная система, Unix, Картинка с текстом
Показать полностью 1
Linux Командная оболочка bash Операционная система Unix Картинка с текстом
2
JOB.LAB
JOB.LAB
3 года назад
GNU/Linux

Chrome OS от Google!⁠⁠

Chrome OS от Google! Android, Windows, Linux, Linux и Windows, Компьютерная помощь, Приложение, Google Chrome, Google, Google Play, Unix, Arm, Chrome Os, Chromebook, Build with chrome, Операционная система, Мобильные телефоны, Телефон, Планшет, Смартфон, Переустановка, Длиннопост

Google — Американская транснациональная корпорация в составе холдинга Alphabet, инвестирующая в интернет-поиск, облачные вычисления и рекламные технологии. Сама компания Google имеет при себе несколько продуктов, таких как веб-браузер Google Chrome, веб-движок Chromium, устройства на Chrome OS например как ChromeBook и теперь уже и Chrome OS — целую операционную систему на базе «Собственного», а если быть точнее очень жестко модифицированного ядра Linux.

Chrome OS от Google! Android, Windows, Linux, Linux и Windows, Компьютерная помощь, Приложение, Google Chrome, Google, Google Play, Unix, Arm, Chrome Os, Chromebook, Build with chrome, Операционная система, Мобильные телефоны, Телефон, Планшет, Смартфон, Переустановка, Длиннопост

Операционная система Chrome OS основа на Gentoo linux, а это в свою очередь дистрибутив GNU/Linux с мощной и гибкой технологией Portage, совмещающей в себе возможности конфигурирования и настройки, а также автоматизированную систему управления пакетами. OS от Google вышла в 2011 году, имеет несколько поддерживаемый платформ, собственную графическую оболочку направленную на мобильные устройства, планшеты и их собственные устройства, имя этой оболочки Fuchsia. В отличие от Android и Chrome OS, базой для которых послужила Linux, новая ОС основана на собственном ядре Google Magenta. По наблюдению Ars Technica, экосистема Android не стремится идти в ногу с развитием ядра Linux – даже Google Pixel до сих пор использует версию 3.18, вышедшую в конце 2014 году. Fuchsia – это свободное ПО, она лицензирована по смешанной схеме, в которой присутствуют черты лицензий BSD из трех пунктов, MIT, и Apache 2.0.

Chrome OS от Google! Android, Windows, Linux, Linux и Windows, Компьютерная помощь, Приложение, Google Chrome, Google, Google Play, Unix, Arm, Chrome Os, Chromebook, Build with chrome, Операционная система, Мобильные телефоны, Телефон, Планшет, Смартфон, Переустановка, Длиннопост

Chrome OS на рынке

За главную особенность компания Google inc взяла доминированием веб-приложений и их облачных сервисов за место функций ОС. Ключевую роль в операционной системе была отдана браузеру. Стратегия создания нового продукта подразумевает архитектуру, нетребовательную к аппаратным ресурсам персонального компьютера, используемого для входа в Интернет. Вся тяжесть приложений приходит на Интернет-ресурсы прослеживается и на многих других продуктах Google и соответствует идеологии «облачных вычислений».

Chrome OS от Google! Android, Windows, Linux, Linux и Windows, Компьютерная помощь, Приложение, Google Chrome, Google, Google Play, Unix, Arm, Chrome Os, Chromebook, Build with chrome, Операционная система, Мобильные телефоны, Телефон, Планшет, Смартфон, Переустановка, Длиннопост

Особенности

Из особенностей, сами же разработчики сообщают пользователям, что конечные особенности данной OS будут заключаться в:

в скорости: загрузки, входа в Интернет, получения и отправления электронной почты и так далее.
в тесной интеграции с интернет-сервисами;
в надёжности работы;
в обеспечении безопасности в автоматическом режиме;
в автоматическом обновлении;
в простоте;
в поддержке Google Play и Android Nougat (во всех хромбуках 2017 года);
в «material design» в стиле Android;
в виртуальной машине с Debian GNU/Linux;

Аппаратное обеспечение

Google Chrome OS позиционируется как операционная система для различных устройств — от маленьких нетбуков до полноразмерных настольных компьютеров, систем и поддерживает x86 и ARM-архитектуры процессоров.

Chrome OS от Google! Android, Windows, Linux, Linux и Windows, Компьютерная помощь, Приложение, Google Chrome, Google, Google Play, Unix, Arm, Chrome Os, Chromebook, Build with chrome, Операционная система, Мобильные телефоны, Телефон, Планшет, Смартфон, Переустановка, Длиннопост

Где получить установщик?

Получить актуальную версию Chrome OS можно на их официальном сайте, по данной ссылке!

Chrome OS от Google! Android, Windows, Linux, Linux и Windows, Компьютерная помощь, Приложение, Google Chrome, Google, Google Play, Unix, Arm, Chrome Os, Chromebook, Build with chrome, Операционная система, Мобильные телефоны, Телефон, Планшет, Смартфон, Переустановка, Длиннопост

Заключение

Не буду говорить прям что-то сверх естественного, просто скажу что моё мнение насчет этого нейтрально, та и я думаю сам бы поставил себе Chrome OS за место Android хотя бы даже из любопытства, а может оно и получится все куда лучше и мы получим хорошую OS на выходе, кто знает.

Показать полностью 5
[моё] Android Windows Linux Linux и Windows Компьютерная помощь Приложение Google Chrome Google Google Play Unix Arm Chrome Os Chromebook Build with chrome Операционная система Мобильные телефоны Телефон Планшет Смартфон Переустановка Длиннопост
21
JOB.LAB
JOB.LAB
3 года назад
GNU/Linux

Linux XP Desktop - вдохни частичку Windows(a)⁠⁠

Linux XP Desktop - вдохни частичку Windows(a) Linux, Linux и Windows, Fedora, Windows XP, Vista, Windows, Gnome, Компьютер, Компьютерная помощь, Операционная система, Unix, Ноутбук, Федора, Qt, Установка, Обзор, Мнение, Точка зрения, Бессонница, Длиннопост

Вам не послышалось, в названии правда имеется частичка «XP» которая и обозначает ту самую версию Windows XP которая вышла ещё черт знает когда, но не в этом дело. Интересно будет посмотреть что-же за странный дистрибутив такой? На чем основан? Чем удобен?

Информация

Начнем с того что полное название дистрибутива «Linux XP Desktop 2008» — основан он на Fedora Linux, цифры на конце обозначает дату выхода именно этой версии дистрибутива — по источникам от Яндекс поиска он вышел ещё в 2004 году, а последняя версия вышла в 2010. Он руссифицирован, использует RPM пакеты. Дистрибутив разрабатывался компанией «TrustVerse» под пользователей которые хотят перейти с Windows на Linux при этом опираясь на версии Windows такие как: XP и VISTA. Рассматривая источники информации, данный дистрибутив стоил 1800 рублей или же около 78$ на то время. В тоже время Windows Vista продавалась в России за 2500 рублей или же около 108$ на то время. Правда факт остается фактом, при переходе на Linux — пользователи не должны искать в нем Windows, что конкретно так ломает данный дистрибутив.

Linux XP Desktop - вдохни частичку Windows(a) Linux, Linux и Windows, Fedora, Windows XP, Vista, Windows, Gnome, Компьютер, Компьютерная помощь, Операционная система, Unix, Ноутбук, Федора, Qt, Установка, Обзор, Мнение, Точка зрения, Бессонница, Длиннопост

Весь стиль, иконки, рабочий стол и прочие элементы пользовательского интерфейса выполнены в тона и стилизацию Windows старого времени, который был перечислен чуть раньше. На данном скриншоте мы видим экран блокировки и сообщение о том, что системе осталось работать 30 дней — прям в лучших тонах Windows(a), правда сейчас максимум что он делает, это оставляет сообщение об не-активации, отключает некоторую кастомизацию и функции.

Linux XP Desktop - вдохни частичку Windows(a) Linux, Linux и Windows, Fedora, Windows XP, Vista, Windows, Gnome, Компьютер, Компьютерная помощь, Операционная система, Unix, Ноутбук, Федора, Qt, Установка, Обзор, Мнение, Точка зрения, Бессонница, Длиннопост

Скриншоты очень старые и кстати сделанные не мной, на виртуальную машину данная OC отказалась ставиться на отрез, очень жаль что так получилось, но довольствуемся тем, что есть!

Рабочее окружение

Еще я готов подметить что окружение рабочего стола уж сильно похожа на те, что делает LXQT, LXDE, XCFE, Gnome старых версий. Но правда в том, что на «Linux XP desktop 2008» стоял и Gnome и LXDE именно так пишут в википедии.

Компоненты системы

Все компоненты системы разработчики не предоставляют, но самые базовые и основные назвали!


В стандартную поставку Linux XP Desktop входил следующий набор приложений:

- Офисный пакет OpenOffice.org

- Клиент электронной почты Evolution

- Веб-браузер Mozilla Firefox

- Графический редактор GIMP

- Редактор векторной графики Inkscape

- Верстка и подготовка публикаций — Scribus

- Интернет-пейджер (ICQ, MSN, Jabber и другие протоколы) Pidgin

- Реализация среды выполнения Windows — Wine

- Сервис LIS

- Мигратор

- Программы для работы с аудио и видео файлами (Rhythmbox, Totem, аудиограббер)

- Программа для записи CD и DVD — Brasero

- Удалённый доступ к рабочему столу (компьютеров под управлением Windows и Linux)

- Управление проектами Planner

- Программа для просмотра телевизионных программ kdetv

- Несколько игр

- Приложения для разработки программного обеспечения

- Виртуальная машина VirtualBox

Wine в Linux XP

Как ни странно, но разработчики хотели запускать Windows программы в дистрибутиве который хорошо так копирует Windows XP, VISTA и т.д. Что -же за версия была там установлена? Этого нам умолчали, но начав поиски по источникам я выяснил что как раз таки в 2008 году вышел Wine 1.0, а в 2010 году в год выпуска последней версии, выходит всеми любимый Wine 1.2 — я думаю ответ дан. Скорее всего в данном дистрибутиве стояла версия Wine 1.0, а после и Wine 1.2.

Linux XP Desktop - вдохни частичку Windows(a) Linux, Linux и Windows, Fedora, Windows XP, Vista, Windows, Gnome, Компьютер, Компьютерная помощь, Операционная система, Unix, Ноутбук, Федора, Qt, Установка, Обзор, Мнение, Точка зрения, Бессонница, Длиннопост

Почему он не «зашел»?

Большой часть сообщества пользователей Linux, по причинам отступления от принципов «Open Source», взимания платы за использование и распространение свободного ПО в составе дистрибутива, основанного на Fedora — решили не использовать данный дистрибутив из-за чего после проект и закрылся.

Linux XP Desktop - вдохни частичку Windows(a) Linux, Linux и Windows, Fedora, Windows XP, Vista, Windows, Gnome, Компьютер, Компьютерная помощь, Операционная система, Unix, Ноутбук, Федора, Qt, Установка, Обзор, Мнение, Точка зрения, Бессонница, Длиннопост

Заключение

Использовать ли его в наше время? Конечно нет, он старый, большое количество ПО на нем уже не поддерживается, версия графической оболочки устарела и имеются те самые дыры в безопасности, которые успели исправить уже раз тысячу если не более. А чем же заменить? Лучшей, удобной и отличной альтернативой будет свежая Zorin OS. Думаю это был интересный опыт использования Linux — но не более чем на то время, когда он ещё и денег даже стоил!

Показать полностью 4
[моё] Linux Linux и Windows Fedora Windows XP Vista Windows Gnome Компьютер Компьютерная помощь Операционная система Unix Ноутбук Федора Qt Установка Обзор Мнение Точка зрения Бессонница Длиннопост
10
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии