- Что такое подсистема Windows для Linux
- Что такое WSL 2?
- Мир перевернулся. Microsoft выпустила собственный Linux
- Linux от Microsoft
- Что входит в дистрибутив
- Инсталлятор в комплекте
- Безопасная система
- Кунг-фу стиля Linux: PDF для пингвинов
- Графические инструменты
- Маскировка текста
- Волшебство командной строки
- Путешествие из текста в PDF и обратно
- Инструменты для решения особых задач печати документов и другие инструменты
- Итоги
Что такое подсистема Windows для Linux
Подсистема Windows для Linux позволяет разработчикам запускать среду GNU/Linux с большинством программ командной строки, служебных программ и приложений непосредственно в Windows без каких-либо изменений и необходимости использовать традиционную виртуальную машину или двойную загрузку.
Можно сделать следующее.
- Выберите предпочтительные дистрибутивы GNU/Linux из Microsoft Store.
- Запускайте средства командной строки, например grep , sed , awk , или другие двоичные файлы ELF-64.
- Запускайте сценарии Bash Shell и приложения командной строки GNU/Linux, включая:
- инструменты: vim, emacs, tmux;
- языки: NodeJS, Javascript, Python, Ruby, C/C++, C# и F#, Rust, Go и пр.
- Службы. SSHD, MySQL, Apache, lighttpd, MongoDB, PostgreSQL.
- Установите дополнительное программное обеспечение с помощью своего собственного диспетчера пакетов дистрибутивов GNU/Linux.
- Вызывайте приложения Windows с помощью оболочки командной строки, похожей на UNIX.
- Вызывайте приложения GNU/Linux в Windows.
Что такое WSL 2?
WSL 2 — это новая версия архитектуры подсистемы Windows для Linux, которая поддерживает подсистему Windows для Linux, чтобы запускать двоичные файлы Linux ELF64 в Windows. Ее основными приоритетами является увеличение производительности файловой системы и добавление полной совместимости системных вызовов.
Эта новая архитектура изменяет способ взаимодействия этих двоичных файлов Linux с Windows и с оборудованием компьютера, но по-прежнему предоставляет то же взаимодействие с пользователем, что и WSL 1 (текущая общедоступная версия).
Отдельные дистрибутивы Linux можно запускать с архитектурой WSL 1 или WSL 2. Каждый дистрибутив можно обновить или использовать на более старой версии в любое время, кроме того вы можете запустить дистрибутивы WSL 1 и WSL 2 параллельно. WSL 2 использует совершенно новую архитектуру, которая дает преимущества от работы с реальным ядром Linux.
Источник
Мир перевернулся. Microsoft выпустила собственный Linux
Microsoft выпустила Linux-дистрибутив CBL-Mariner 1.0 собственной разработки. Это его первая стабильная сборка, и она находится в свободном доступе. Microsoft предлагает пользователям собирать на его основе собственные образы, дополняя их различными пакетами, которых сейчас доступно около 3000.
Linux от Microsoft
Корпорация Microsoft выпустила первую стабильную сборку собственного Linux-дистрибутива CBL-Mariner. Его премьера состоялась спустя меньше месяца с момента анонса системы Windows 11.
CBL-Mariner 1.0 (Common Base Linux) представляет собой базовую платформу для развертывания Linux-окружений в различных онлайн-сервисах, включая облачные. Microsoft использует его в нескольких своих проектах, включая облачный сервис Azure – второй в мире по популярности после Amazon Web Services (19-процентная доля у Azure и 32% у AWS, по данным Statista.com за I квартал 2021 г.).
Также CBL-Mariner применяется в составе Linux-подсистемы в Windows (Windows Subsystem for Linux 2.0, WSL2). Как сообщал CNews, он отвечает, в частности, за запуск приложений для Linux с графическим интерфейсом.
Документация и все необходимые файлы для CBL-Mariner 1.0 находятся в свободном доступе. Microsoft разместила их на сервисе GitHub, которым владеет с 2018 г. Проект распространяется под несколькими open source-лицензиями, включая GNU GPL и MIT.
Что входит в дистрибутив
Microsoft не распространяет CBL-Mariner 1.0 как отдельный готовый образ. Пользователю придется самому собрать собственный образ с нужной ему начинкой. Софтверный гигант опубликовал на GitHub подробную инструкцию по такой сборке, но пока только для Ubuntu 18.04.
Сам по себе CBL-Mariner 1.0 – это набор базовых RPM-пакетов, которые будут служить основой для будущего образа. Пользователь может сам выбирать, что войдет в итоговый состав образа, и для этого он может использовать специализированный репозиторий. Его каталог размещен на сайте Microsoft и насчитывает приблизительно 3000 пакетов.
Основной набор пакетов в составе CBL-Mariner 1.0 остается неизменным. Microsoft пошла на это ограничение для упрощения сопровождения и разработки апдейтов.
При сборке пользователь может генерировать как полноценные монолитные системные образы, так и отдельные RPM-пакеты на базе SPEC-файлов и исходных текстов. В связи с этим Microsoft реализовала и два варианта обновления CBL-Mariner 1.0 – апдейт отдельных пакетов или образа в целом.
Управление загрузкой системы и различными сервисами в CBL-Mariner 1.0 осуществляется через системный менеджер systemd. За управление пакетами отвечают пакетные менеджеры RPM и DNF.
Инсталлятор в комплекте
Для упрощения процесса установки CBL-Mariner 1.0 Microsoft добавила в его состав инсталлятор. Обычные пользователи могут использовать его в графическом режиме с отображением интерфейса, продвинутым же может пригодиться текстовый режим.
Инсталлятор может генерировать VHD- и ISO-образы и предоставляет два варианта установки на выбор. Первый – это Core, и при его выборе будут установлены только базовые сервисы и программы. Второй позволяет установить полный набор пакетов – он называется Full.
В дополнение к этому непосредственно в меню инсталлятора можно выбрать раздел накопителя, на который будет установлен дистрибутив.
Здесь же можно заранее создать пользователя и выполнять ряд других базовых настроек.
Безопасная система
Согласно предоставленному Microsoft описанию, при разработке CBL-Mariner 1.0 компания уделяла много внимания вопросам безопасности. Например, в системе есть функции шифрования разделов и фильтрации системных вызовов за счет механизма seccomp, плюс он умеет проверять подлинность пакетов по цифровой подписи.
В CBL-Mariner 1.0 по умолчанию активна защита от переполнения буфера и стека, а области памяти, в которых хранятся части ядра и модулей, доступны исключительно для чтения. Исполнение любого кода в них запрещено.
Также в CBL-Mariner 1.0 есть и ряд опциональных функций безопасности. Например, пользователь может запретить подгрузку модулей ядра после инициализации всей системы.
Источник
Кунг-фу стиля Linux: PDF для пингвинов
Вначале PostScript представлял собой язык программирования для принтеров. И хотя PostScript-принтеры всё ещё не потеряли актуальности, существует и множество других форматов, в которых можно отправлять данные на печать. Но благодаря PostScript появился Portable Document Format — PDF, который стал невообразимо популярным. Пожалуй, не проходит и дня, чтобы каждый из нас не просмотрел бы какой-нибудь PDF-документ на своём компьютере. Конечно, есть и форматы, конкурирующие с PDF, но им, в сравнении с PDF, принадлежит лишь небольшая доля рынка. Просмотр PDF-файлов в Linux — это не проблема. А как насчёт их редактирования? Как оказалось, это тоже несложно, правда, только если знать о том, как именно это делается.
Графические инструменты
Существует множество инструментов для редактирования PDF-файлов в Linux. Главная проблема тут — качество получаемого результата. Для редактирования PDF-файлов можно воспользоваться, например, LibreOffice Draw, Inkscape или даже GIMP. Эти инструменты, как правило, отлично справляются с простыми задачами, например — когда нужно лишь убрать что-то из документа, перекрыв это белым прямоугольником, или когда надо сделать в документе какое-то примечание. А вот если речь идёт о более сложных изменениях, или о получении документов, элементы которых выверены до последнего пикселя, то эти инструменты для решения таких задач вполне могут и не подойти.
Редактирование PDF-документа в GIMP
Основная сложность тут в том, что большинство подобных инструментов работают с PDF-документами как с изображениями, или, как минимум, как с коллекциями объектов. Например, текстовые колонки, вероятно, будут преобразованы в наборы отдельных строк. Изменение чего-либо, что вызывает переход текста на новую строку, приведёт к необходимости ручного изменения других строк. А иногда то, что выглядит как текст, текстом, на самом деле, не является. Текст может быть представлен изображениями. Это сильно зависит в первую очередь от того, как именно был создан конкретный PDF-файл.
Если вы не против использования онлайн-инструментов, то вам, в деле работы с PDF, может пригодиться PDFEscape — бесплатный и весьма достойный редактор. Среди других вариантов можно отметить Scribus и Okular. Оба эти инструмента, на самом деле, не умеют редактировать файлы, но могут импортировать их в виде изображений, с которыми уже можно работать. Например, в Okular, в режиме предварительного просмотра документов, можно добавлять в документы аннотации, вроде тех, которыми отмечают самое интересное, и элементы, нарисованные от руки.
Неудивительно то, что emacs умеет выводить PDF-файлы при запуске под X. Можно использовать Control+C Control+C для переключения на просмотр текстового представления файла. В конце концов, большинство PDF-файлов представляют собой файлы, содержащие текст, а emacs поддерживает даже работу с бинарными файлами. Поэтому, если вы не против поработать с внутренним содержимым PDF-файлов, которое очень похоже на PostScript, вы можете редактировать PDF-файлы в emacs или в каком-нибудь другом текстовом редакторе.
Существует несколько специализированных платных PDF-редакторов и как минимум один опенсорсный редактор такого рода. Но, конечно, как и для решения большинства задач в Linux, для редактирования PDF-файлов можно пользоваться инструментами командной строки.
Маскировка текста
Проблема работы с PDF-файлами, представленными в виде обычного текста, заключается в том, что, даже при просмотре их emacs, текстовые данные в таких файлах часто сжаты и, в результате, нечитаемы. Например, буквы, из которых состоят слова, могут быть разделены кодом, форматирующим их, или другими данными. Поэтому поискать некий текст в подобных файлах, вполне возможно, не получится.
PDF-файлы можно конвертировать в формат, при использовании которого сжатие не слишком сильно портит текст, но это — тоже не панацея. Например, если открыть следующий фрагмент кода статьи про любительскую радиосвязь и задаться целью изменить слово «convention», то сложно будет понять даже то, где именно находится это слово. Но оно, тем не менее, где-то здесь:
3 0 obj > stream
Волшебство командной строки
Существует такой инструмент — qpdf , который умеет конвертировать PDF-файлы в другие PDF-файлы. Он может оптимизировать эти файлы в расчёте на их размещение в интернете или в расчёте на редактирование текста. Он умеет выполнять простые операции вроде удаления страниц или объединения фрагментов нескольких файлов. Вы можете взглянуть на документацию по нему. В вышеприведённом примере мы воспользовались режимом QDF для создания совершенно нормального PDF-файла, все объекты которого размещены в соответствии с их порядковыми номерами, в котором используется обычный для Unix способ завершения строк. Такие свойства выходных файлов упрощают их редактирование в обычных текстовых редакторах, но, как мы уже видели, это, всё равно, не такая уж и простая задача. Например, довольно-таки сложно удалить объект целиком, но если избавиться ото всех его упоминаний, то можно, воспользовавшись fix-qdf , воссоздать нормальный QDF-файл.
Ещё один способ выполнения простых правок PDF-документов предусматривает использование PDFtk Server (PDFtk, без «Server», это графический набор инструментов для Windows). С помощью PDFtk можно объединять или разделять документы, поворачивать страницы и решать много других распространённых задач. Например — вот как объединить все материалы двух файлов:
Можно сделать то же самое, но пропустив, скажем, страницу №9:
Ещё можно перемешивать страницы объединённых документов, располагая их в нужном порядке:
Путешествие из текста в PDF и обратно
Если нужно, пользуясь инструментами командной строки, преобразовать текст в PDF, решить эту задачу можно разными способами. Например, существует отличный инструмент Pandoc, который позволяет преобразовывать материалы, оформленные с помощью одних языков разметки, в материалы, оформленные с помощью других способов описания документов. В частности, речь идёт о возможности преобразования практически всего чего угодно в PDF.
Ещё можно использовать различные комбинации ps2pdf (вместе с инструментом для генерирования PostScript-данных), pdf2text (этот инструмент входит в состав пакета poppler-utils) или Ghostscript для создания PDF-файлов или для извлечения из них текстовых данных. Надо сказать, что Ghostscript — это весьма мощный инструмент, среди возможностей которого можно отметить преобразование PDF-файлов в различные графические форматы. Это может пригодиться, если нужно, например, выводить их на веб-страницах в виде изображений.
Инструменты для решения особых задач печати документов и другие инструменты
Иногда нужно модифицировать PDF-файл в расчёте на то, что он будет определённым образом выведен на печать. Мы уже говорили, например, о том, как совмещать нечётные и чётные страницы документов, но есть и другие способы подготовки документов к печати:
- pdfxup — инструмент, задействующий возможности pdflatex и Ghostscript для размещения нескольких PDF-страниц (например — двух) на одной печатной странице.
- pdfjam — использует LaTeX для размещения документов на страницах разных размеров или для вывода нескольких страниц документа на одной печатной странице.
- pdfposter — умеет создавать печатные изображения огромных размеров на нескольких страницах, беря за основу одну страницу.
Если вы предпочитаете инструменты с графическим интерфейсом — можете взглянуть на PDFsam Basic. А если вас интересует ПО для работы с PDF, написанное на Java — обратите внимание на Multivalent.
Итоги
В Linux существует множество способов решения одних и тех же повседневных задач. Это справедливо и для задач, связанных с PDF-документами. Но иногда самое сложное заключается не в том, чтобы решить задачу, а в том, чтобы найти инструмент, который идеально подходит под требования и стиль работы пользователя.
Чем вы пользуетесь для редактирования PDF-файлов в Linux?
Источник