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

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

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

Играть

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

  • Rahlkan Rahlkan 1 пост
  • Tannhauser9 Tannhauser9 4 поста
  • alex.carrier alex.carrier 5 постов
Посмотреть весь топ

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

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

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

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

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

Ответ на пост «Форум oszone.net всё»⁠⁠4

Первый комп я увидел в 1985 году будучи студентом на практике в одном из оборонных НИИ. Это был какой-то клон IBM без монитора, загружался с перфоленты а вывод был на принтер Роботрон (с перфорированной бумагой). Тогда он меня поразил в самое сердце и навсегда.

Потом я ушел в армию (1986-88) и к компам вернулся в 1989. Сначала это были самопальные ZX Spectrum и подобные а PC уже с 1992 года.

С тех пор я работал с CP/M, MS-DOS 3.3, 5.0, 6.0, 6.2, Windows 3.0, 3.1, 3.11, 95, 98, ME, 2000, XP, 8, 8.1, 10. Windows Mobile 8, 10.

Linux начинал с ядер 2.2

FreeBSD примерно тогда же но не плотно.

За эти годы работал также с OpenBSD, AIX, Solaris, OS/2 (Warp 3 и 4), МСВС. Ну, само-собой, Android.

Никогда не работал с операционками от Apple.

И вот мне сейчас 58, сука, лет, и я никогда не слышал про

один из самых крупных ресурсов в рунете

который с "далёкого 2001 года" помогал 300000 пользователей и сисадминам в день.

Сука, позор мне.

Форум Компьютер Windows Microsoft Компьютерное железо Ответ на пост Текст Волна постов
5
56
forajump
forajump
3 дня назад

Ответ на пост «Форум oszone.net всё»⁠⁠4

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

  • https://www.cyberforum.ru — больше по программированию, но и в целом тоже ОК;

  • https://forum.ru-board.com — больше разнообразие тем, включая самые общие флудильни;

  • https://forum.ixbt.com — больше специализированные разделы по железу, но и в целом тоже ОК;

  • https://virusinfo.info — специализированный форум помощи при вирусном заражении;

  • https://forum.ubuntu.ru — понятно, форум по Ubuntu;

  • https://4pda.to/forum/ — очень отдаленный аналог, специализирующийся на мобильных устройствах и гаджетах.

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

Исключение — VirusInfo. Там не просто подсказывают теоретики: ну попробуй это, ну может вот это поможет. Там реально предлагают снять нужные данные техническим способом (при помощи специализированного ПО), и после анализа этих данных дают конкретное индивидуальное решение в виде сценария, который нужно просто выполнить (обычно, в AVZ или типа того).

[моё] Форум Компьютер Windows Microsoft Компьютерное железо Ответ на пост Текст Волна постов
11
pedrolog
pedrolog
3 дня назад

Ответ на пост «Форум oszone.net всё»⁠⁠4

Хотите помочь форуму? Тогда зайдите, выключите блокировщик рекламы и кликните пару раз по баннерам. Да, это кринж, да, реклама — говно, но за каждый просмотр форуму капает пара копеек.

Если делать это массово и регулярно, форум может вылезти из финансового дна.

Вам — минута времени, форуму — шанс не сдохнуть

Ответ на пост «Форум oszone.net всё» Форум, Компьютер, Windows, Microsoft, Компьютерное железо, Ответ на пост, Волна постов
[моё] Форум Компьютер Windows Microsoft Компьютерное железо Ответ на пост Волна постов
7
110
kursornn
3 дня назад

Ответ на пост «Форум oszone.net всё»⁠⁠4

Собственно это причина

Ответ на пост «Форум oszone.net всё» Форум, Компьютер, Windows, Microsoft, Компьютерное железо, Ответ на пост, Волна постов
Форум Компьютер Windows Microsoft Компьютерное железо Ответ на пост Волна постов
33
12
DmitriitheFals
3 дня назад
Лига Сисадминов
Серия Кудахтеры

Новый ноутбук: скорость, плюсы-минусы, DiskSPD, Hyper-V и продолжение про методику тестирование скорости⁠⁠

Всем спасибо, кто давал вредные и полезные советы.

Для лиги лени: привыкание к новому и бесполезные тесты часть следующая.

В предыдущих сериях :
Тестирование локальных дисков и систем хранения данных: подводные камни. Часть 1 - общая
Тестирование локальных дисков и систем хранения данных: подводные камни. Часть 2 - виртуализация
Тестирование локальных дисков и систем хранения данных: подводные камни. Часть 3 – цифры и предварительные итоги
Тестирование локальных дисков и систем хранения данных: подводные камни. Часть 4 – что там изнутри виртуализации

Итак, прикупил я два туза на мизере новый ноутбук, и пошел переезжать.

Конечно, есть масса готовых утилит для переезда профиля

Конечно, пользоваться ими я не стал. Это в корпоративной среде нужен User State Migration Tool (USMT) или forensit User Profile Wizard

Первым делом обновил Windows, конечно не забыв про
OOBE\BYPASSNRO
Вторым – выполнил скрипт DisableUnnecessaryWindowsServices. Всякие твикеры это тоже хорошо, но начать надо с простых, понятных и воспроизводимых вещей.
Со скриптом есть проблемы.
Без этого не будет звука
"Audiosrv", # Windows Audio
"AudioEndpointBuilder", # Windows Audio Endpoint Builder

Не уверен насчет задач:
"QWAVE", # Quality Windows Audio Video Experience
и без этого этого блютус работает, но не видит мышку.
"bthserv", # Bluetooth Support Service
Device Install Service почему-то устанавливается в manual, и без ручного запуска тоже не давал добавить мышь. Но все остальное вроде ок

Третьим делом выключил гибернацию.
powercfg.exe /hibernate off

Я в свое время с гибарнацией поел с лопаты, когда оперативка просто кончилась, и то, что она ушла на кеширование файла гибернации, было видно только в Sysinternals RAMmap.

И четвертым делом потыкал в Sysinternals  Autoruns

И на выходе получил ошибку отсюда:
Automatic Device Encryption Support  Reasons for failed automatic device encryption: PCR7 binding is not supported, Un-allowed DMA capable bus/device(s) detected

Это не про user space сервис, это про
"ShellHWDetection", # Shell Hardware Detection

Исправил и это тоже, иначе какое шифрование, какое авто монтирование.

Power plan

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

Hyper-V for Windows 11

Я много лет использовал VMware Workstation, но есть нюанс. У Windows есть разные режимы работы с виртуализацией, и VMware Workstation, особенно в части дисковых операций, из-за множества прокладок и трансляций, скажу так – не то чтобы не дает скорости, но становится крайне процессоро-зависима. Любой ПУК в хостовой системе, и дисковые операции в Workstation начинают думать. У ESXi такой проблемы, разумеется, нет – это абсолютно другая архитектура. В любом случае Dekiru Neko wa Kyou mo Yuuutsu

Потестирую хоть как-то.

Для процессора и памяти, конечно, берем
Free Mersenne Prime Search Software - Great Internet Mersenne Prime Search, GIMPS

Для диска берем DiskSPD последней версии, DISKSPD 2.2 – брать тут.

Конечно надо было померять скорость ДО включения Hyper-v, поскольку, если вы не знали, Hyper-V работает как нормальный гипервизор, подгружая Windows уже в виде виртуальной машины, что может быть и влияет на производительность. А может, и нет. То есть, конечно, да, но не совсем.

Что там на NTFS?
Get-CimInstance -ClassName Win32_Volume | Select-Object DriveLetter, FileSystem, BlockSize| Format-Table -AutoSize

ATTO Disk Benchmark (качать тут, статья с примером тут) показывает совсем не то, что хотелось бы. Потому что он работает в один поток, и только глубина очереди как-то регулируется.  

На DiskSPD, конечно, словил ошибку:

Попутно словил ошибку -
WARNING: Could not set privileges for setting valid file size; will use a slower method of preparing the file

И решение:
OK, so that's exactly what's happening. There is certainly (always) a longer description to attach to it (see above), but DISKSPD when run w/o privilege to assert SeManageVolumePrivilege cannot invoke SetFileValidData and therefore has to write the entire file through to get it into its standard if-created-by-DISKSPD state: with valid data at the end of the file.

Решение очевидное, от админа надо запускать.

Новый диск на новом ноутбуке выдает: (Файловая система – NTFS с блоком 4k, очередь по умолчанию – 2). Файлы по 200 Гб, не похоже на тестирование кеша.
Тестирование - 60 секунд.
1 тред, 1 файл – 35.000 IOPS блоком 4к на чтение, 15.000 IOPS блоком 8к на чтение
1 тред, 1 файл – 40k IOPS блоком 4к на запись (как так вышло – не знаю), 45k IOPS блоком 8к на запись. Это как?
2 треда, 1 файл – 25.000 на поток, итого 50.000 IOPS блоком 4к на чтение, и 2 по 30.000 на запись блоком 4к
3 треда – 23.000, всего 70 на чтение, и на запись 25, 25, и 35 тысяч, итого 85k. Блоком 8к показатели аналогичны
4 треда – 4 по 22.500,  всего 90к на чтение. И 4 по 23 к на запись, итого 92к.
5 тредов – 20.000 на тред, всего 100к на чтение.  Аналогично при блоке на 8k, те же 20.000 IOPS на тред на чтение,
На запись – примерно 10.000 IOPS блоком 4к на тред при первом тесте, до того как я покрутил настройки баланса.

Как бы так сказать «я ничего не понял», не говоря, что ничего не понял?
Проблема тестирования дисков наглядно показывает рост времени исполнения.

Что удивительно, но тестирования изнутри виртуальной машины (Windows server 2025, STD, обновления от 07-2025) показывают цифры, схожие с работой из управляющей операционной системы. Как бы так еще понять, в какой Windows 11 добавили новый NVME обработчик – в 11h22, h23 или h24.

Пропущу длинное русское поле экспериментов, итого:
Для физики:
Размер файла имеет значение. Windows пытается максимально закешировать что можно, и в итоге, если у вас 64 Гб оперативки, а тестовые файлы по 20-40 гигабайт, то цифры будут странные.
Надо брать для тестов файлы в 3-5 раз больше размера оперативки, 200 Гб на файл, два файла, на 64 Гб памяти – уже сойдет.
Количество реальных ядер и CCX имеет значение, причем для дисковых операций на хосте «потоки» AMD работают куда лучше «потоков» Intel. И, особенно, на последних мобильных интелах без HT и с энерго сберегающими ядрами.
На этом ноутбуке 6 ядер, 12 потоков – так вот, до 12 потоков включительно нагрузка растет линейно.
Конкретно этот NVME обрабатывает :
На чтение, 8 тредов: 4 треда по 40k, 4 по 20. 10 тредов – 10 по 35k, всего 350. 12 тредов – 12 по 35, всего 400k. 14 тредов – 10 по 30k, 4 по 15. 16 тредов – 8 по 28, 8 по 12. 18 тредов – 6 по 25, 12 по 10. Максимум достигается при числе тредов DISKspd = числу тредов в CPU.
И это около 400k IOPS. На чтение. Блоком 4к. При глубине очереди 2.

На запись картина другая. Есть подозрение на гигагерце зависимость по ядрам, авторазгон я не выключил.

Максимум получен для 8 тредов – 8x32k, около 256k IOPS на запись блоком 4k.
При 10 тредах получается по 19k на запись, всего 190к. Но расхождения по тредам нет. 12 тредов – падение до 12k IOPS на запись на тред, всего 145k, но все еще нет расхождения.
14 тредов – 10 тредов по 12 к и 4 треда по 7к. Всего 155k. 16 тредов – 8 тредов по 10к и 8 тредов по 5.5k - всего 125. 18 тредов – 6 по 10к, 12 по 6.5

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

Изнутри виртуальной среды картина чуть другая

Тестовая виртуальная машина, 4 ядра, 8 Гб памяти, и, для начала, просто 2 файла по 20, не по 200, Гб.

Чтение, 2 треда: 24k IOPS на тред, всего 48k
Запись, 2 треда: 12k IOPS на тред при 2 тредах, всего 24k

Падение на чтение в 1.5 раза, падение на запись в 3 раза. Но, это тестирования НОУТБУКА, с домашним NVME SSD, и Windows 11. На Windows Server картина может быть абсолютно другой.
Чтение, 4 треда: 3 треда по 15K IOPS, 1 тред на 2k IOPS. Суммарно 47k
Запись, 4 треда – 3 по 8k, 1 на 5k, итого 30 (данные округлены)

Дальше начинается колдовство и магия. Файлы по 200 Гб, 2 файла.
чтение, 4 треда на файл, всего 8 тредов: 6 тредов дают по 16к, 2 треда по 2к. Итого 100k IOPS изнутри виртуалки на 4 процессора.
Чтение, 5 тредов на файл, всего 10 трелов. 7 тредов по 15к, 2 по 1к. Итого 110к
Чтение, 6/12. 9 по 18к, 3 по 2.5. Итого 170к. Идет, к слову так, блоками по 3 группы «больших» IOPS.
Чтение, 7/14. 10 по 14к, 4 по 1к. Итого 150к.
Чтение, 8/16. 12 по 20k IOPS, 4 по 2. Итого 260K IOPS на чтение изнутри VM на 4 ядра.
Чтение, 9/18. 13 по 18..22, 5 по 1.5. Итого 280k.
Чтение, 10/20. 15 по 21, 5 по 2. Итого 330k.
Чтение,11/22. 343k IOPS
Чтение, 12/24. 18 тредов по 22k IOPS, 6 тредов по 2к. Итого почти 400k IOPS на чтение. 
То есть, 4 процессорная виртуальная машина на 24 треда выдала почти столько же IOPS, сколько физика при 12 тредах.
Для физики параметры были: -t6 -w0 -b4k -W10 -o2, и два файла по 200 Гб, то есть 12 тредов итого.

Файлы по 200 Гб, 1 файл. Чтение внутри виртуальной машины.

1 тред – 31k IOPS , 2 треда = 2x24 = 48, 3 треда 2x25+ 1x12 = 62(k IOPS), 4 треда – 3 по 16 и 1 тред на 2, итого 50.
5 тредов = 3 по 16 и 2 по 1.5, 6 тредов – 4 по 15 и 2 по 1.5, всего 62. ,7 тредов -  5 по 14.5 и 2 по 1.8. 8 тредов – 6 по 13 и 2 по 2.5, итого 83k
9 тредов – 6 по 12, 3 по 1.2 , итого 75. 10 – 85k IOPS, 11 – 92k IOPS, 12 – 102k IOPS
Логика какая-то странная.

Дописал текст, и увидел внутри виртуальной машины active power scheme: Balanced
Похоже, надо дополнительно смотреть на параметр:
ag 
Group affinity – affinitize threads in a round-robin manner across Processor Groups, starting at group 0. This is default. Use -n to disable affinity.

Или выделять не по 4 ядра на виртуальную машину, при физических 6, которые может еще надо как-то делить, а по 3. Или по 6.
Я в курсе про CCXs (Core Complex), но как-то странно это все.

Дожил, неужели NUMA имеет значение. Но не в 10 же раз разницы из-за Numa (CCX/CCD). И самое главное, не понятно, как изнутри 4 процессорной VM – дисковые задачи раскладываются на физические ядра и процессорные треды / потоки. Как 24 треда разложились на 18 быстрых и 6 медленных. И как из этой конструкции получить например 12 средних. Как вообще CPU scheduler что-то куда-то кладет в такой конфигурации. И не отпилить ли root.

Еще оказалось очень полезно посмотреть на итоговый размер файлов виртуальных машин. Поскольку тесты шли по 30-60 секунд, то максимально за это время записалось всего по 1.5 – 2 гигабайта. Но я еще посмотрю более детально.

Литература

скрипт DisableUnnecessaryWindowsServices
Windows Server 2025 Storage Performance with Diskspd
Sample command lines
Command line and parameters
Execution time longer than the parameter execution time on WSL Ubuntu #203

В следующих сериях:
Опыты на виртуальной машине на 3 ядра.

CPU affinity
Опыты на Debian внутри Hyper-V, опыты с Proxmox nested. Stay tuned!

Бонус

# 01

$pciStats = (Get-WMIObject Win32_Bus -Filter 'DeviceID like "PCI%"').GetRelated('Win32_PnPEntity') |

foreach {

# request connection properties from wmi

[pscustomobject][ordered]@{

Name = $_.Name

ExpressSpecVersion=$_.GetDeviceProperties('DEVPKEY_PciDevice_ExpressSpecVersion').deviceProperties.data

MaxLinkSpeed =$_.GetDeviceProperties('DEVPKEY_PciDevice_MaxLinkSpeed' ).deviceProperties.data

MaxLinkWidth =$_.GetDeviceProperties('DEVPKEY_PciDevice_MaxLinkWidth' ).deviceProperties.data

CurrentLinkSpeed =$_.GetDeviceProperties('DEVPKEY_PciDevice_CurrentLinkSpeed' ).deviceProperties.data

CurrentLinkWidth =$_.GetDeviceProperties('DEVPKEY_PciDevice_CurrentLinkWidth' ).deviceProperties.data

} |

# only keep devices with PCI connections

Where MaxLinkSpeed

}

$pciStats | Format-Table -AutoSize

Get-CimInstance -ClassName Win32_Volume | Select-Object DriveLetter, FileSystem, BlockSize| Format-Table -AutoSize

$Path001 = 'C:\DiskSpd\amd64\'

$Sp = $Path001 + "diskspd.exe"

cd $Path001

$Version = "007g1"

$Drives = @("C")

$FilesTemp = "Data4del"

$File001 = "deleteme_01.dm"

$File002 = "deleteme_02.dm"

$File003 = "deleteme_03.dm"

$Logs = @()

# $Threads = @("-t1","-t2", "-t3", "-t4","-t5","-t6","-t7")

$Threads = @("-t4","-t5","-t6","-t7","-t8","-t9")

# $Write = ("-w0","-w30", "-w100")

$Write = @("-w0")

#$BlockSize = ("-b4k","-b8k")

$BlockSize = @("-b4k")

# $Outstanding = @("-o2","-o4","-o8","-o16")

$Outstanding = @("-o2")

$Size = "-c200G"

$Time = "-d30"

foreach ($Drv in $Drives){

foreach ($Bl in $BlockSize) {

foreach ($Wr in $Write) {

foreach ($Outs in $Outstanding){

foreach ($T1 in $Threads){

$TimeNow = get-date -UFormat "-%d-%m-%Y-%R" | ForEach-Object {$_ -replace ":","-"}

Write-Host "TT " $TimeNow

$Out001 = $Drv + ':\' + $FilesTemp + '\' + $File001

$Out002 = $Drv + ':\' + $FilesTemp + '\' + $File002

$Out003 = $Drv + ':\' + $FilesTemp + '\' + $File003

$Stat = $Drv + ':\' + $FilesTemp + '\' + $Version + $TimeNow + "_" + $T1 + $Drv + $Outs+$T1+'.log'

$Logs += $Stat

Write-Host "testing mode " $T1 $Wr $Bl $Outs 'time' $Time

&$Sp $T1 $Wr $Bl -W10 $Outs $Time -Suw -D -L $Size $Out001 $Out002 > $Stat

}}}}}

Показать полностью
[моё] Windows Ноутбук Disk Nvme Компьютерное железо Текст Длиннопост
1
2
STX999
STX999
3 дня назад

Обновление Winlator 10.1 содержит ключевые улучшения для эмулятора игр Windows для Android⁠⁠

Источник:

https://www.ixbt.com/live/games/obnovlenie-winlator-101-sode...

brunodev85, создатель Winlator, выпустил свежее обновление (v10.1) своего эмулятора Windows игр для Android. Эта версия включает в себя ряд инноваций и оптимизаций, направленных на повышение производительности и улучшение совместимости.

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

Обновление Winlator 10.1 содержит ключевые улучшения для эмулятора игр Windows для Android Windows, Android, Steam

Winlator 10.1 теперь доступен для скачивания. На фото: рекламный образ RedMagic Astra

Автор: RedMagic и brunodev85 Источник: github.com

В версии Winlator 10.1 произошли улучшения в основных элементах эмулятора. Box64 обновлен до версии 0.3.6, и добавлена предустановка «производительность» для улучшения быстродействия.

Среди новых возможностей Winlator 10.1 — поддержка внешних устройств управления мультимедиа. Добавлена специальная опция для обработки MIDI-данных, а также возможность создания виртуального CD-ROM привода. Кроме того, введена боковая панель Windows, упрощающая переключение между несколькими активными окнами.

Улучшения коснулись и системы ввода и управления. Значимым изменением является добавление поддержки новых типов управления и профилей сенсорного управления на экране. Это позволяет пользователям загружать готовые профили, оптимизированные для конкретных игр. Разумеется, использование физического контроллера по-прежнему обеспечивает наилучшие впечатления от игры.

В Winlator 10.1 также исправлены проблемы, возникавшие при запуске клиента Steam, и улучшена общая совместимость. Подробную информацию об изменениях в этой версии эмулятора игр Windows для Android можно найти в полном списке изменений.



С новой версией, Steam установился на смартфон Black Shark 5 pro без проблем и танцев.

Игры из Steam также установились - Heroes of Might and Magic HD, Civiloztion 5 - вполне играбельно (с трансляцией экрана на ТВ)

Показать полностью 1
Windows Android Steam
2
120
hypo69
hypo69
3 дня назад
Лига Сисадминов
Серия Философия PowerShell.

Философия PowerShell. Части 0,1 Вступление и первый командлет⁠⁠

Часть 0.

Что было до PowerShell?
В 1981 году вышел MS-DOS 1.0. с командным интерпретатором COMMAND.COM. Для автоматизации задач использовались пакетные файлы (.bat) — простые текстовые файлы с последовательностью консольных команд. Удивительный аскетизм командной строки на фоне POSIX совместимых систем где уже с 1979 года существовала оболочка Борна (sh).

Состояние рынка оболочек на момент выхода MS-DOS 1.0 (август 1981)

Философия PowerShell. Части 0,1 Вступление и первый командлет Powershell, Cmd, Администрирование, Windows, Shell, Длиннопост

Что такое sh, csh

  • sh — Bourne Shell, основной скриптовый интерпретатор UNIX с 1977 года.

  • csh — C Shell, улучшенная оболочка с синтаксисом, похожим на C, и удобствами для интерактивной работы.

  • Эти оболочки поддерживали редиректы, пайпы, переменные, функции и условия — всё, что сделало UNIX мощным инструментом автоматизации.


Microsoft ориентировалась на дешёвые 16-битные IBM PC, которые имели мало памяти (обычно 64–256 КБ),не имели многозадачности и были предназначены для домашнего и офисного использования, а не серверов. UNIX был платным, требовал сложной архитектуры и опыта, а бухгалтеры и инженеры, не системные админы, им требовалась быстрая и простая ОС

Интерфейс DOS Вместо сложного sh представлял один файл command.com с скудным набором внутренних команд (dir, copy, del и т.p.) без функций, циклов и модулей.

Были и внешние команды — отдельные исполняемые файлы (.exe или .com). Примеры: FORMAT.COM, XCOPY.EXE, CHKDSK.EXE, EDIT.COM. Сценарии исполнения записывались в текстовый файл с расширением .bat (batch file)

Примеры конфигуарционных файлов:

  • AUTOEXEC.BAT

Философия PowerShell. Части 0,1 Вступление и первый командлет Powershell, Cmd, Администрирование, Windows, Shell, Длиннопост
  • CONFIG.SYS

Философия PowerShell. Части 0,1 Вступление и первый командлет Powershell, Cmd, Администрирование, Windows, Shell, Длиннопост

В Майкрософт было понятно, что DOS тупиковая ветвь и они почти сразу начали разрабатывать принциально новое ядро.

Ядро Windows NT(New Technology) впервые появилось с релизом операционной системы:

Windows NT 3.1 — 27 июля 1993 года


  • Разработка началась: в 1988 году под руководством Дейва Катлера (бывшего инженера DEC, создателя VMS) с целью создать полностью новую, защищённую, переносимую и многозадачную ОС, не совместимую с MS-DOS на уровне ядра.

  • NT 3.1 — называлась так, чтобы подчеркнуть совместимость с Windows 3.1 на уровне интерфейса, но была совершенно новой архитектурой.


Что принесло ядро NT:

Философия PowerShell. Части 0,1 Вступление и первый командлет Powershell, Cmd, Администрирование, Windows, Shell, Длиннопост

Линейка NT:

Философия PowerShell. Части 0,1 Вступление и первый командлет Powershell, Cmd, Администрирование, Windows, Shell, Длиннопост

Ядро NT было хорошим, годным продуктом от Майкрософт, если бы не одно большое «НО!»


Но средствам автоматизации и администрирования не уделялось должного внимание вплоть до 2002 года.

Microsoft использовала совершенно разные подходы, стратегии и инструменты для администрирования. Всё это было разрозненным, часто GUI-ориентированным и не всегда автоматизируемым.


Список некоторых инструментов:

Философия PowerShell. Части 0,1 Вступление и первый командлет Powershell, Cmd, Администрирование, Windows, Shell, Длиннопост

Инструменты автоматизации

  • VBScript-файлы (*.vbs) для администрирования пользователей, сетей, принтеров и служб. Привет✋ вирус "ILOVEYOU"

  • WMIC — командный интерфейс к WMI (например: wmic process list brief).

  • .cmd скрипты с вызовами net, sc, reg, wmic, и т.д.


Windows Scripting Host (WSH)

  • Впервые появился в Windows 98, активно использовался в Windows 2000 и XP.

  • Позволял выполнять VBScript и JScript-файлы из командной строки:
    > Set objShell = WScript.CreateObject(«WScript.Shell»)
    > objShell.Run «notepad.exe»

HTA (HTML Applications)

Чистое шаманство. Если кратко, то это приложения, написанные на HTML и скриптах (чаще всего VBScript или JScript), которые запускались с полноценным GUI и имели полный доступ к Windows через WSH — без ограничений, как обычные сайты в браузере.


Часть 1.

Только в 2002 году в компании сформулировался проект Monad , который позже вылился в powershell:

Начало разработки: ориентировочно в 2002 году

Публичное анонсирование: 2003 год, как «Monad Shell»

Первые бета-версии: появились к 2005 году

Финальный релиз (PowerShell 1.0): ноябрь 2006 года

Автором и главным архитектором проекта Monad / PowerShell является Джеффри Сновер (Jeffrey Snover)

Сегодня PowerShell Core работает на Windows macOS Linux

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

А теперь — самое главное!


Главное преимущество PowerShell по сравнению с классическими командными оболочками — это то, что он работает с объектами, а не с текстом. Когда вы выполняете команду, она возвращает вам не просто текст, а структурированный объект (или коллекцию объектов), у которого есть четко определенные свойства (Properties) и методы (Methods).

Смотрите, как PowerShell элегантно решает задачу благодаря работе с объектами

Как было: dir и ручной парсинг

В CMD (и в старом COMMAND.COM, и в cmd.exe) команда dir возвращает результат работы как обычный текст. Пример вывода:

Философия PowerShell. Части 0,1 Вступление и первый командлет Powershell, Cmd, Администрирование, Windows, Shell, Длиннопост

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

for /f "tokens=5,6" %a in ('dir ^| findstr /R "[0-9][0-9].[0-9][0-9].[0-9][0-9][0-9][0-9]"') do @Echo %a %b

  • Это страшно сложно читается, зависит от локали, формата даты, шрифта. И ломается при пробелах в названиях


PowerShell: объекты вместо текста

Простой и читаемый пример:

> Get-ChildItem | Select-Object Name, Length

Результат:

Философия PowerShell. Части 0,1 Вступление и первый командлет Powershell, Cmd, Администрирование, Windows, Shell, Длиннопост
  • Get-ChildItem возвращает массив объектов файлов/папок

  • Select-Object позволяет легко получить нужные свойства


Что на самом деле возвращает Get-ChildItem?

Философия PowerShell. Части 0,1 Вступление и первый командлет Powershell, Cmd, Администрирование, Windows, Shell, Длиннопост

> $item = Get-ChildItem -Path .\11.md
> $item | Get-Member

Результат:

Философия PowerShell. Части 0,1 Вступление и первый командлет Powershell, Cmd, Администрирование, Windows, Shell, Длиннопост

PowerShell возвращает объекты типа System.IO.FileInfo, у которых есть:

  • Свойства (Name, Length, CreationTime, Extension, …)

  • Методы (Delete(), CopyTo(), MoveTo() и т.д.)

Вы работаете с полноценными объектами, а не со строками.


Синтаксис «Глагол-Существительное»:

PowerShell использует строгий и логичный синтаксис команд:
Глагол-Существительное (Verb-Noun)

Философия PowerShell. Части 0,1 Вступление и первый командлет Powershell, Cmd, Администрирование, Windows, Shell, Длиннопост

Существительное

Философия PowerShell. Части 0,1 Вступление и первый командлет Powershell, Cmd, Администрирование, Windows, Shell, Длиннопост
Философия PowerShell. Части 0,1 Вступление и первый командлет Powershell, Cmd, Администрирование, Windows, Shell, Длиннопост

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


Командлет Get-Help — ваш главный помощник.

Получим справку о самой справке:
> Get-Help Get-Help

Философия PowerShell. Части 0,1 Вступление и первый командлет Powershell, Cmd, Администрирование, Windows, Shell, Длиннопост

Получим базовую справку о команде для работы с процессами:
> Get-Help Get-Process

Философия PowerShell. Части 0,1 Вступление и первый командлет Powershell, Cmd, Администрирование, Windows, Shell, Длиннопост

Посмотрим примеры использования этой команды:
> Get-Help Get-Process -Examples

Если файл `help` не найден в системе — получим такое сообщение:

Философия PowerShell. Части 0,1 Вступление и первый командлет Powershell, Cmd, Администрирование, Windows, Shell, Длиннопост

Решение:
> Update-Help

Философия PowerShell. Части 0,1 Вступление и первый командлет Powershell, Cmd, Администрирование, Windows, Shell, Длиннопост

Для одного языка:
> Update-Help -UICulture en-US

Философия PowerShell. Части 0,1 Вступление и первый командлет Powershell, Cmd, Администрирование, Windows, Shell, Длиннопост


`-Examples` это невероятно полезный параметр, который часто дает готовые решения для ваших задач.

  1. Получим максимально подробную информацию о команде:
    > Get-Help Get-Process -Full

    В следующей части: конвеер или цепочка команд (PipeLines)

    Полезно? Подпишись.
    Понравилось — ставь «+»
    Удачи! 🚀

UPD:

Часть 2: Конвейер (Pipeline), переменные, Get-Member, файл .ps1 и экспорт результатов

Показать полностью 17
[моё] Powershell Cmd Администрирование Windows Shell Длиннопост
25
8
Molotssc
Molotssc
3 дня назад

Python. Первое впечатление⁠⁠

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

— А ты кто такой? Откуда взялся?

— С того сервера данных.

— На чём приехал?

— Оседлал багнутый скрипт, импортировал и приехал.

— Сервер что, виртуалка?

— Может, и виртуалка, да только ту виртуалку фреймворк не перезагрузил.

— Значит, фреймворк — новичок?

— Наверное, новичок, но тень от его зависимостей код закрывает, в коде дебаг настаёт.

— Код, небось, крохотный?

— Через тот код функция бежала, не перебежала.

— Выходит, функция маленькая?

— Функция как функция, из её логов исключение вышло.

— Куда вышло?

— Вышло из того кода, где функция бежала, на который тень от фреймворка упала, и пошло куда переменные глядят.

— Чьи переменные?

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

— Чего?!

— Чего, чего… На багнутом скрипте с того сервера данных, который функции не перезагрузить, фреймворку не перезапустить, хоть сервер не сервер, а так, виртуалка посреди кода, где тень от скрипта на функцию упала и насмерть зациклила, а из логов функции исключение вышло и пошло, куда переменные глядят, а тут функция ка-ак рекурсирует!..

— Какая функция?!

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

— Какая функция, какая база, ка-кой скри-ипт?!

— Хе-хе, повторить? Ну, значит, тот самый скрипт с того сервера виртуалки…

— А-а-а-а-а!!! Да хватит!!! О-ой!!!

— Эй! Погоди! Далеко ещё до релиза!

Python. Первое впечатление Windows, Python, Юмор, Мультфильмы, Ух ты говорящая рыба
Показать полностью 1
Windows Python Юмор Мультфильмы Ух ты говорящая рыба
4
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии