Microsoft выпустила Windows 10, поддерживающую Linux

maisvendoo
то код ядра линукс использовался однозначно
Конечно. В него смотрели, чтобы посмотреть как это работает и сделать посвоему.
Много проще чем вайну. верно?
Но где же очевидность нарушения гпла?
Lupus pilum mutat, non mentem.
jim945
В него смотрели, чтобы посмотреть как это работает и сделать посвоему.
Мне бы хотелось пример того, что майкрософт сделал по своему.

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

GPL v2
2. Лицензиат вправе модифицировать свой экземпляр или экземпляры Программы полностью или любую ее часть. Данные действия Лицензиата влекут за собой создание произведения, производного от Программы. Лицензиат вправе изготовлять и распространять экземпляры такого произведения, производного от Программы, или собственно экземпляры изменений в соответствии с пунктом 1 настоящей Лицензии при соблюдении следующих условий:

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

b) при распространении или публикации Лицензиатом любого произведения, которое содержит Программу или ее часть или является производным от Программы или от ее части, Лицензиат обязан передавать права на использование данного произведения третьим лицам на условиях настоящей Лицензии, при этом Лицензиат не вправе требовать уплаты каких-либо лицензионных платежей. Распространяемое произведение лицензируется как одно целое;

Код майкрософта, обсуждаемый нами, как раз и будет являтся производным от ядра линукс или его части
Да пребудет с нами Сила...!
CPU Intel Core i9 10900-KF/RAM DDR4 128 Gb/NVidia GForce GTX 1080 Ti Turbo 11Gb/SSD M2 512 Gb/HDD Seagate SATA3 2 Tb/HDD Toshiba 3Tb/HDD Toshiba 6Tb
http://rusrailsim.org
maisvendoo
jim945
А как тогда вайн делают? )))

На основе реверс-инженеринга ядра винды в том числе
Как то был интерес к технологии Wine ..... и действительно, без реверсинга ни куда ......
Функции Win32 в основном документированы, но..... имеются и другие компоненты (протоколы, форматы и др.), спецификации которых закрыты …... и вот тут то разработчики Wine и занимаются обратной разработкой …......
Ну а технология простая......Wine воспринимает системные вызовы Windows-приложений к библиотекам операционной системы и подменяет их своими...... но может работать и с библиотеками самой винды.
Ошибки не исчезают с опытом - они просто умнеют
jim945
чтобы посмотреть как это работает и сделать посвоему.
Собственно есть один единственный файл, который нельзя просто сделать "по своему" - это ашник, в котором описываются структуры ELF

Вот пример содержимого этого файла
elf.h

#ifndef		ELF_H
#define		ELF_H

#define		EI_NIDENT	16

/*-----------------------------------------------------------------------------
 *		Section types
 *---------------------------------------------------------------------------*/
#define		SHT_NULL		0
#define		SHT_PROGBITS	1
#define		SHT_SYMTAB		2
#define		SHT_STRTAB		3
#define		SHT_RELA		4
#define		SHT_HASH		5
#define		SHT_DYNAMIC		6
#define		SHT_NOTE		7
#define		SHT_NOBITS		8
#define		SHT_REL			9
#define		SHT_SHLIB		10
#define		SHT_DYNSYM		11
#define		SHT_LOPROC		0x70000000
#define		SHT_HIPROC		0x7FFFFFFF
#define		SHT_LOUSER		0x80000000
#define		SHT_HIUSER		0xFFFFFFFF

/*-----------------------------------------------------------------------------
 *		Section types
 *---------------------------------------------------------------------------*/
#define		SHF_WRITE		0x1
#define		SHF_ALLOC		0x2
#define		SHF_EXECINSTR	0x4
#define		SHF_MASKPROC	0xF0000000

/*-----------------------------------------------------------------------------
 *		Types of object files
 *---------------------------------------------------------------------------*/
#define		ET_NONE			0			/* No file type */
#define		ET_REL			1			/* Relocatable file */
#define		ET_EXEC			2			/* Executable file */
#define		ET_DYN			3			/* Shared object file */
#define		ET_CORE			4			/* Core file */
#define		ET_LOPROC		0xFF00		/* Processor-specific */
#define		ET_HIPROC		0xFFFF		/* Processor-specific */

/*-----------------------------------------------------------------------------
 *
 *---------------------------------------------------------------------------*/
#define		EM_NONE			0
#define		EM_M32			1
#define		EM_SPARC		2
#define		EM_386			3
#define		EM_68K			4
#define		EM_88K			5
#define		EM_860			7
#define		EM_MIPS			8

/*-----------------------------------------------------------------------------
 *
 *---------------------------------------------------------------------------*/
#define		EV_NONE			0
#define		EV_CURRENT		1

/*-----------------------------------------------------------------------------
 *
 *---------------------------------------------------------------------------*/
#define		PT_NULL			0
#define		PT_LOAD			1
#define		PT_DYNAMIC		2
#define		PT_INTERP		3
#define		PT_NOTE			4
#define		PT_SHLIB		5
#define		PT_PHDR			6
#define		PT_LOPROC		0x70000000
#define		PT_HIPROC		0x7FFFFFFF

/*-----------------------------------------------------------------------------
 * 		Data types
 *---------------------------------------------------------------------------*/
typedef		unsigned int		Elf32_Addr;
typedef		unsigned short int	Elf32_Half;
typedef		unsigned int		Elf32_Off;
typedef		int					Elf32_Sword;
typedef		unsigned int		Elf32_Word;

/*-----------------------------------------------------------------------------
 * 		ELF header
 *---------------------------------------------------------------------------*/
typedef	struct
{
	unsigned char	e_ident[EI_NIDENT];	/* ELF identification data */
	Elf32_Half		e_type;				/* Type of object file */
	Elf32_Half		e_mashine;			/* Architecture type  */
	Elf32_Word		e_version;			/* Object file version  */
	Elf32_Addr		e_entry;			/* Entry point to process */
	Elf32_Off		e_phoff;			/* Program header offset */
	Elf32_Off		e_shoff;			/* Section table header offset */
	Elf32_Word		e_flags;			/* Processor-specific flags */
	Elf32_Half		e_ehsize;			/* ELF header size */
	Elf32_Half		e_phentsize;		/* Size of program header entry */
	Elf32_Half		e_phnum;			/* Number of program header entries */
	Elf32_Half		e_shentsize;		/* Section header entry size */
	Elf32_Half		e_shnum;			/* Section header entries number */
	Elf32_Half		e_shstrndx;			/*  */

} Elf32_Ehdr;

/*-----------------------------------------------------------------------------
 * 		Section header
 *---------------------------------------------------------------------------*/
typedef	struct
{
	Elf32_Word	sh_name;		/* Index into section header stirng table */
	Elf32_Word	sh_type;		/* Section type */
	Elf32_Word	sh_flags;		/* Section attribute flags */
	Elf32_Addr	sh_addr;		/* Section virtual address in process image */
	Elf32_Off	sh_offset;		/* Section offset in file */
	Elf32_Word	sh_size;		/* Section size */
	Elf32_Word	sh_link;		/*  */
	Elf32_Word	sh_info;		/* Extra information */
	Elf32_Word	sh_addralign;	/* Section address alingment */
	Elf32_Word	sh_entsize;		/* */

} Elf32_Shdr;

/*-----------------------------------------------------------------------------
 * 		Program header
 *---------------------------------------------------------------------------*/
typedef struct
{
	Elf32_Word	p_type;		/* Program header type */
	Elf32_Off	p_offset;	/* Program header offset */
	Elf32_Addr	p_vaddr;	/* Program header virtual address */
	Elf32_Addr	p_paddr;
	Elf32_Word	p_filesz;	/* Number bytes in file image segment  */
	Elf32_Word	p_memsz;
	Elf32_Word	p_flags;
	Elf32_Word	p_align;

} Elf32_Phdr;
#endif

Чего тут своего можно придумать? А для реализации обсуждаемой задачи он нужен - как иначе грузить линукс-программы в память и запускать их?

P.S.: Это не сам код ядра, а его содержимое, использованное мной в моем проекте. А может я слямзил его откуда-то и добавил свои коменты, я уже не помню, давно было дело. Только в отличие от майкрософта я исходники выложил :-D

Да, в моих пыхтениях по поводу новости есть субъективный момент. Мы же все прекрасно знаем, что свой путь как крупная корпорация майкрософт начинала не с бейсика для компьютера Альтаир (хотя Гейтc очень любит об этом вспоминать, добавляя себе титул "программист бейсика") а с покупки по дешевке DOS у наивного калифорнийского паренька. На этом история майкрософт как разработчика оригинального ПО заканчивается и начинается более чем тридцатилетняя история воровства решений и патентных тяжб со всеми, с кем работала эта фирма. Разве они могут поступить в данном случае как-то иначе?
Да пребудет с нами Сила...!
CPU Intel Core i9 10900-KF/RAM DDR4 128 Gb/NVidia GForce GTX 1080 Ti Turbo 11Gb/SSD M2 512 Gb/HDD Seagate SATA3 2 Tb/HDD Toshiba 3Tb/HDD Toshiba 6Tb
http://rusrailsim.org
maisvendoo, мне кажется говорить о заголовочном файле как о коде не корректно, его в большей мере можно считать документацией.
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
nafanja
говорить о заголовочном файле как о коде не корректно
Тогда назревает вопрос, о чем говорить как о коде корректно?

Это первое. Второе - в новости прямо сказано, в новой винде используется bash. Bash распространяется по лицензии GPL. Возникает ещё один вопрос - это баш, основанный на кодовой базе GNU, либо это что-то написанное с "нуля", тем не менее именующее себя bash. С нуля оно написано вряд ли, так как даже Торвальдс, при наличии у него во общем неограниченного времени и отсутствия замысла коммерческой выгоды предпочел bash портировать под свое ядро, используя код GNU.
Да пребудет с нами Сила...!
CPU Intel Core i9 10900-KF/RAM DDR4 128 Gb/NVidia GForce GTX 1080 Ti Turbo 11Gb/SSD M2 512 Gb/HDD Seagate SATA3 2 Tb/HDD Toshiba 3Tb/HDD Toshiba 6Tb
http://rusrailsim.org
баш и т.п. это всего лишь прикладное ПО. которое можно портировать даже под саму винду и там спокойно пользоваться без конфликтов лицензий. главное что бы код портированого баша был открыт.

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

вот про саму прослойку можно поспорить. но не про то что внутри нее и за ее пределами работает.
а если эта прослойка будет открыта, то никаких проблем с лицензией быть не может даже если они что то сперли.
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
я точно не помню, но вроде свободные библиотеки не запрещено использовать в проприетарном ПО. библиотеки открыты, а код использующий эти библиотеки может быть и закрыт.
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
nafanja
а если эта прослойка будет открыта, то никаких проблем с лицензией быть не может даже если они что то сперли.
Разумеется не будет. Но пока что кода никто не открывал
nafanja
главное что бы код портированого баша был открыт.
Безусловно. Но сабж уже выкатили на тестирование, а исходников мы почему-то не видим

nafanja
но вроде свободные библиотеки не запрещено использовать в проприетарном ПО
Не запрещено, если они линкуются "как есть". В случае реализации сабжа одними библиотеками не обойдешься

P.S.: на хабре поэтому поводу вообще визги восторга виндузятников и огалтелое минусование забредших на огонек линуксоидов с вопросом "а на фига это вообще?". Вопросы лицензирования не обсуждаются, и даже Батько RMS почему-то хранит молчание
Да пребудет с нами Сила...!
CPU Intel Core i9 10900-KF/RAM DDR4 128 Gb/NVidia GForce GTX 1080 Ti Turbo 11Gb/SSD M2 512 Gb/HDD Seagate SATA3 2 Tb/HDD Toshiba 3Tb/HDD Toshiba 6Tb
http://rusrailsim.org
maisvendoo
Но пока что кода никто не открывал
поживем увидим...

надеюсь, когда нибудь GPL поглотит Microsoft )))
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
 
Зарегистрироваться или войдите чтобы оставить сообщение.