nmap / npcap

Nmap Project's Windows packet capture and transmission library
https://npcap.com
Other
2.91k stars 509 forks source link

some bug or improve #427

Closed mccoysc closed 3 years ago

mccoysc commented 7 years ago

1,mdl用法错误:case BIOCGSTATS分支里,原代码试图lock一下mdl,然后就认为此时的user buf被lock了……这是错误的,正确的用法该是lock mdl,然后map出一个新地址,这个新地址才真的是保证一定可访问的。 2,在case biocsendpacketsnosync分支里,加锁然后判断一个变量然后解锁,这个做法虽然不会导致严重故障,但是并不能保证判断结果准确,建议用kewait系列保证临界操作,而不是直接返回失败。 3,npf_bufferedwrite一样是如何在内核使用应用层进城的内存问题,正确做法应该是:先mdl,然后lock,然后map,然后读写新地址。 4,set_bpf_filter那里,基本从头锁到尾,建议使用指针保存过滤器相关数据,每次使用过滤器时用读写锁的读锁加锁,用完解读锁。设置时,先用一块新的内存保存新的过滤器,准备好数据时,获取过滤器的写锁,然后替换保存过滤器的指针值,然后解锁写锁。最后释放旧的过滤器的内存。

5,不要使用lwf,lwf是过滤器,它是串行模式,理论上说会影响系统性能,作为sniffer来说,只要旁听模式就够了,也就是winpcap原本的ndis协议驱动那种方式,那种方式是旁听式的,无论你的程序质量怎样,都不会影响系统的网络性能。

6,从表现来看,处于winpcap兼容模式时,你是在每个网卡上attach了四个过滤器(Npf,npcap,npf_wifi,npcap_wifi),这是完全不必要的逻辑,有叠床架屋之嫌,即使是兼容npf原有接口,也是完全可以在一个过滤器里实现的。

================================================ 1,misused "mdl",at case BIOCGSTATS,orginal code try to lock mdl and then think that the memory in user space would be locked and the pointer from user can be used safely. the right use of mdl should be like this: alloc mdl,lock mdl,mapmdl,use the new mapped address. 2,at case biocsendpacketsnosync,the orginal code try to get a lock and then go to see if the now other pkt-send is in progress,but in the logic,the code can't be sure that.I suggest use KeWait series APIs to protect the critical resource. 3,npf_bufferedwrite....the issue is just like the above 1. 4,at "set_bpf_filter",the lock is locked from the begin to the end. that seems to be not so reasonable.my suggest is that: use a global pointer type var to save all bpf-filter info and use a read-write lock to protect the pointer. get/release the read lock befor/after using the pointer. and if bpf-filter modify is needed:first alloc a new memory to save the new bpf-filter.and then get/release the write lock before/after exchange the bpf-filter pointer value via Interlocked series APIs. 5,don't use the LWF driver as LWF is a filter model."FILTER" may get a side effect on network performance. our need is sniffer,not filter. so a NDIS 6.x protocol is enough. protocol driver is always work in sniffer mode at any time,no any side effect on performance. 6,i found that all NIC is attached by 4 filters:npf,npf-wifi;npcap,npcap-wifi.this is a redundant design.in fact,all need can be done by one filter instance.

hsluoyz commented 7 years ago

Hi, about the first 4 questions, because that part of code is originally from WinPcap and not modified by me. I don't understand them quite well. So I will only answer 5. and 6 here.

For 5, it's about LWF v.s. NDIS protocol. Here's a Stackoverflow post answered by Jeffrey, the owner of NDIS from MS: http://stackoverflow.com/questions/18073119/can-a-ndis-protocol-driver-npf-sys-of-winpcap-be-ported-to-lwf-or-wfp. Simply speaking, LWF wins over NDIS protocol in simplicity, performance and 802.11 support.

For 6, I am also frustrated about the current design that we have to install 4 LWFs at the worst condition. But I don't see another way out.

NPF v.s. NPCAP: to support the WinPcap compatible mode and Npcap native mode together, we must support two service names at the same time. Then we have to have two running LWFs at the same time. Earilier, we only install NPF driver when installing with WinPcap compatible mode, but now to better support Npcap native mode, NPCAP driver is also installed.

NP- v.s. NP-_WIFI: the _WIFI driver is for 802.11 raw packet capture. It binds below the Ethernet emulator. The other is the normal Ethernet capture and binds above the emulator. The binding is specified in INF, and I don't see a way to bind a single driver to both above and below the emulator.

dmiller-nmap commented 7 years ago

Regarding the multiple filter drivers, the ideal case is to install Npcap without WinPcap-compatible mode, which is really only there as a temporary solution until software authors convert to using Npcap directly. Another thought along these lines is that maybe we could avoid building and installing the "npf-wifi" filter, since WinPcap did not have this feature. This would further enforce the distinction between "legacy" WinPcap API and the new Npcap API.

@mccoysc Thanks for the other suggestions. We will look into each of them.

mccoysc commented 7 years ago

1,no much controversy over network performance as the fabric of NDIS LWF and Protocol : filter mode and sniffer mode . filter mode means the NDIS should give information to you and need wait for your response. sniffer mode means the data only being mirrored to your code and return.

2,about how to done all in one filter: it's no need to register more than one FChars .

hsluoyz commented 7 years ago

For 1: Well, what you said is based on intuition. That's what I thought at first, until Jeffrey explained it to me. At first, Npcap is also a NDIS protocol, then ported to LWF. Moreover, another packet capture software Network Monitor 3.4 from Microsoft is also based on LWF, which demonstrates the advantages of LWF in a way. Here're some lines of the INF (netnm3.inf) of Network Monitor.

[Strings]
Msft = "Microsoft"
Nm3_Desc = "Microsoft Network Monitor 3 Driver"
Nm3_HelpText = "Microsoft Network Monitor 3 Lightweight Filter Driver"

To be fair, there's also another counter example, Win10Pcap, another open source WinPcap compatible capture driver. It uses NDIS 6 protocol instead of LWF. It stops development for a while but it also works at least.

So if you still care about this problem, you can test the performance between Npcap and Win10Pcap. I'm also interested in the result:)

For 2: You should know that FChars maps to a service name. So when we need two service names: NPF and NPCAP, we need two FChars.


第一个问题,你这个直觉上的对的,但是微软的Jeffrey已经在那个帖子里解释了,LWF就是比Protocol好,这个就是有点反直觉,但是微软都这么说了,那就以微软说的为准好了。其实一开始Npcap也是一个NDIS 6 protocol驱动,后来我又移植到LWF的。你可以看一下微软官方出的Network Monitor 3.4,它也是一个LWF。当然了,也有一个反例就是Win10Pcap,它是一个NDIS protocol。所以说呢,这两个技术都可以开发抓包驱动。你可能主要关注性能,其实你可以测一下性能,对比一下Npcap和Win10Pcap,这样结果就比较有说服力了。

第二个问题,就是没办法把所有功能都塞到一个LWF里,所以才要有4个的。

mccoysc commented 7 years ago

不要光听他怎么说的,ida一下ndis库的实现就知道了。 否则,还要协议驱动和端口驱动干啥,所有网络驱动都用lwf替代就是了。

mccoysc commented 7 years ago

关于服务名的问题,有没有那个npf的服务存在倒是无所谓。或者你可以把新的驱动的服务名就叫npf就够了,没必要新搞一个出来

mccoysc commented 7 years ago

NM 3.4 of MS is not only a NDIS LWF as they can get some process info.

mccoysc commented 7 years ago

不要迷信“MS的人是怎么说的”,总会有人“一本正经的胡说八道”的时候,最准确的,ida下ndis.sys就知道了

mccoysc commented 7 years ago

最后说个问题: 安装LWF会导致网络闪断,这在服务器环境是不可接受的问题。还有诸如某些情况下,安装好了后需要重启才能生效,这在服务器环境也是不可接受的。这几个缺点就已经决定了他的适用范围。而protocol是没这几个问题的。

hsluoyz commented 7 years ago

不要光听他怎么说的,ida一下ndis库的实现就知道了。 否则,还要协议驱动和端口驱动干啥,所有网络驱动都用lwf替代就是了。

好吧,看来你是个高手,我用过ida不过都是逆一些exe,没有看过ndis.sys。也许确实LWF比protocol在Rx会有细微影响吧,不过肯定是人无法察觉的。而且目前Npcap已经有了802.11抓包功能,所以也不用纠结要不要改回去了。

关于服务名的问题,有没有那个npf的服务存在倒是无所谓。你可以把新的驱动的服务名就叫npf就够了,没必要新搞一个出来

这个主要还是我们高层当时决定需要和WinPcap共存而提出的方案,所以改了一个名字。一开始其实就是叫npf的,我个人也认为确实有些复杂化。最好的方案还是Dan说的,让你那个程序支持Npcap模式就可以了。现在包括Wireshark的很多程序都支持Npcap模式了。

NM 3.4 of MS is not only a NDIS LWF as they can get some process info.

NM 3.4 is a very buggy software. I even believe it calls a lot of Windows internal APIs. Because it can use one filter to get Ethernet and 802.11 traffic at the same time. I can't do this with the current knowledge from MSDN.

不要迷信“MS的人是怎么说的”,总会有人“一本正经的胡说八道”的时候,最准确的,ida下ndis.sys就知道了

好吧,这个境界我还没达到,回头有时间我会看一下的..

最后说个问题: 安装LWF会导致网络闪断,这在服务器环境是不可接受的问题。还有诸如某些情况下,安装好了后需要重启才能生效,这在服务器环境也是不可接受的。这几个缺点就已经决定了他的适用范围。而protocol是没这几个问题的。

我一直以为闪断是Npcap自身的bug导致的问题,原来是所有LWF都会闪断吗?好像绝大多数时候也没有感觉到断呢?

重启好像不用吧?我安装的时候从来不用重启啊

话说我还想调研一下你为啥从WinPcap切换到Npcap呢,我也承认,目前WinPcap的稳定性确实比Npcap要好一些。服务器的话,看起来好像也不用loopback,也不用wifi功能吧?

mccoysc commented 7 years ago

所有LWF以及IMD都必须是闪断的,这是其机制导致的,不是bug,所以也就无从说起“修复”:必须重新绑定协议上下文依赖关系,tcp/ip是协议之一,重新绑定必然导致闪断。

闪断问题在服务器环境是不可接受的严重问题。

至于重启生效,多数情况下发生在安装完,卸载,再安装时(比如驱动更新)。这个是在某云上验证了n次的问题了。

另外,我之所以会看到npcap,原因在于winpcap是有bug的,具体这个bug,通常的用法下不会出问题,也就是我说的那些问题,你认为几率很低,可能不需要关注的问题。。。。这样的问题已经严重影响到某大型云平台的实际产品了。而且手下又暂时没靠谱的写内核的人,本人也是n年不写代码了,确实有些手生,加之也确实没可能再花大把时间在代码这种事情上,所以看看有没新的解决方案。

mccoysc commented 7 years ago

补充一点,关于服务名问题: 注册表键可以是一个符号链接的,直接新建一个符号链接npf,指向你的npcap。这就解决了服务名问题

hsluoyz commented 7 years ago

补充一点,关于服务名问题: 注册表键可以是一个符号链接的,直接新建一个符号链接npf,指向你的npcap。这就解决了服务名问题

我用regln命令创建了一个符号链接:

regln HKLM\SYSTEM\CurrentControlSet\Services\npf HKLM\SYSTEM\CurrentControlSet\Services\npcap

在注册表里确实出现了npf这个键,但是服务名还是找不到:

C:\Users\Administrator\Downloads>net start npcap
The requested service has already been started.

More help is available by typing NET HELPMSG 2182.

C:\Users\Administrator\Downloads>net start npf
The service name is invalid.

More help is available by typing NET HELPMSG 2185.

C:\Users\Administrator\Downloads>net stop npf
The service name is invalid.

More help is available by typing NET HELPMSG 2185.
hsluoyz commented 7 years ago

至于重启生效,多数情况下发生在安装完,卸载,再安装时(比如驱动更新)。这个是在某云上验证了n次的问题了。

好吧,我好像很少遇到这个问题。我开发基本上都是在虚拟机里卸载上一个版本,然后装新版本,中间都不重启,新版本确实是work的。

另外,我之所以会看到npcap,原因在于winpcap是有bug的,具体这个bug,通常的用法下不会出问题,也就是我说的那些问题,你认为几率很低,可能不需要关注的问题。。。。这样的问题已经严重影响到某大型云平台的实际产品了。而且手下又暂时没靠谱的写内核的人,本人也是n年不写代码了,确实有些手生,加之也确实没可能再花大把时间在代码这种事情上,所以看看有没新的解决方案。

其实你的需求的话,用现在版本的Npcap确实反而不合适了。这个repo里很早的版本是基于NDIS 6 protocol的,你可以revert到那个版本,然后build一个出来,不过那个版本就没有任何Npcap新的feature了,可能bug也多些。现在这个版本已经比较臃肿了,几乎没有可能再回去兼容protocol。。

话说阿里云的飞天应该是基于Linux开发的,跟Npcap没啥关系。估计是上面有跑Win Server虚拟机所以采用Npcap监控一下性能?最近快博士毕业了,准备投阿里,想做云计算结合大数据的方向,话说您了解阿里这一块都有哪些部门么

mccoysc commented 7 years ago

云安全按针对的目标有几个主要分支: 1、云平台安全,包括虚拟机逃逸、同物理机的多租户隔离等等。 2、网络安全,主要是ddos等网络层面的攻击。 3、主机安全,包括主机反入侵等。 4、应用安全,比如WAF,CDN大概也算一个手段。 这几个分支也不完全绝对分割的,有些是相互联系的。云安全没有哪个手段能一招鲜。 按行业分,也会有公有云、私有云、企业内网安全的区别,他们在做法上会有一些非常细节的差异,与技术无关,只与行业有关。

mccoysc commented 7 years ago

通常你听到过的威胁情报、机器学习、大数据、区块链等技术,都在这几个分支有相互关联的各种应用。这些都只是技术手段,是最基础的东西。最核心的是后面部分说的那些:如何理解云安在公有云、私有云、企业内网上的不同表现以及为啥会是这样的做法,以及什么叫云(大概很多人觉得虚拟机就等于云,很多自认资深的人士也是这么认为的)。

mccoysc commented 7 years ago

至于要想在云或者云安行业发展,我建议国内几家有做云的公司都不要去,最好能去aws或者azure,他们在基本理念和方法论上对刚入行的人是一个巨大的学习机会,从后续发展讲,在刚入行时有个正确的行业理念和方法论尤其重要

hsluoyz commented 7 years ago

云安全按针对的目标有几个主要分支: 1、云平台安全,包括虚拟机逃逸、同物理机的多租户隔离等等。 2、网络安全,主要是ddos等网络层面的攻击。 3、主机安全,包括主机反入侵等。 4、应用安全,比如WAF,CDN大概也算一个手段。 这几个分支也不完全绝对分割的,有些是相互联系的。云安全没有哪个手段能一招鲜。 按行业分,也会有公有云、私有云、企业内网安全的区别,他们在做法上会有一些非常细节的差异,与技术无关,只与行业有关。

我还真是研究云安全的,硕士、博士阶段7年都是研究安全。不过现在不想再搞了,越来越觉得安全这个东西其实就是攻击者和防御者之间的内耗,工业届搞安全的也就是在不断挖洞,其实这样的攻防本身不创造价值,只是一个成本而已。所以我还是想做一些能有社会价值的工作。

通常你听到过的威胁情报、机器学习、大数据、区块链等技术,都在这几个分支有相互关联的各种应用。这些都只是技术手段,是最基础的东西。最核心的是后面部分说的那些:如何理解云安在公有云、私有云、企业内网上的不同表现以及为啥会是这样的做法,以及什么叫云(大概很多人觉得虚拟机就等于云,很多自认资深的人士也是这么认为的)。

我主要是对分布式系统的架构改进很感兴趣,归类的话可能就是云计算系统、大数据系统吧。其实我还是喜欢做开源项目,想在企业内部搞几个开源项目出来,希望能真正被人使用到。

至于要想在云或者云安行业发展,我建议国内几家有做云的公司都不要去,最好能去aws或者azure,他们在基本理念和方法论上对刚入行的人是一个巨大的学习机会,从后续发展讲,在刚入行时有个正确的行业理念和方法论尤其重要

之前就在Azure Networking,没觉得理念上有什么提升,里面的FTE一直跟我抱怨说Azure把RD当运维使,还美其名曰DevOps,代码混乱,运维复杂。并且很重要的一点就是清一色的C#,以后跳槽需要自废武功。当然职业生涯前期能进微软还是很不错的,是个镀金手段。进不去的话,那就去BAT好了。

mccoysc commented 7 years ago

你说的这些,更多还是在“技“这个点上,也就是所说的”内核技术“,”分布式“,”大数据系统“,”人工智能“这些。 对于行业来说,这些不能说不重要,但是仅仅是基础,更重要的在于行业方法论的理解。你之所以觉得azure也不咋样,就是因为你只看到了”技“,没看到行业方法论。

mccoysc commented 7 years ago

比如,对云这个概念的理解,你要是单纯觉得“虚拟机集群”就是云:首先,这是错误的理解;其次,这依然仅仅从比较狭隘的“技”的角度在考虑问题。 真正云的概念,是从服务这个词抽象出来的。云指的是对各种软硬件资源、各种人力非人力资源的抽象,对外提供标准的使用这些资源的统一的接口。基于这样一个理解,就引出了分布式、虚拟化、大数据、集中运维等技术层面的产品设计。否则,仅仅关注于具体的技术层面东西,你永远看不到行业方向和意义所在。这就是方法论的意义。

mccoysc commented 7 years ago

至于行业方向,目前来看,云计算以后会是国家基础设施,像水电、公路、通信等一样必不可少。但是目前在标准化上还处于起步阶段,也就无法做到所有云服务的标准化接口,而云服务的标准化会是后面很长一段时间的行业发展目标。认识到这些方法论上的东西,才可能搞清楚自己做哪些东西、往哪些方向发展才是有意义的。比如你说的大数据系统,为啥要有大数据系统,会对社会产生多大意义,这些都需要以行业高度的方法论来理解。

hsluoyz commented 7 years ago

你说的这些,更多还是在“技“这个点上,也就是所说的”内核技术“,”分布式“,”大数据系统“,”人工智能“这些。对于行业来说,这些不能说不重要,但是仅仅是基础,更重要的在于行业方法论的理解。你之所以觉得azure也不咋样,就是因为你只看到了”技“,没看到行业方法论。

作为技术人员短期目标肯定还是以技术为主比较好,没有人能看透行业,BAT的CEO级别的人也未必看得透行业变迁。比如百度押宝人工智能,是对是错?所以以我们这个层次的人的见识,能看透的可能性更低。

比如,对云这个概念的理解,你要是单纯觉得“虚拟机集群”就是云:首先,这是错误的理解;其次,这依然仅仅从比较狭隘的“技”的角度在考虑问题。

云包括SaaS、PaaS、IaaS等,虚拟机主要是IaaS。现在还出了容器,介于PaaS和IaaS之间。科班出身的人应该都有这样的认知。外行才会把云狭隘得理解为虚拟机集群吧。

真正云的概念,是从服务这个词抽象出来的。云指的是对各种软硬件资源、各种人力非人力资源的抽象,对外提供标准的使用这些资源的统一的接口。基于这样一个理解,就引出了分布式、虚拟化、大数据、集中运维等技术层面的产品设计。否则,仅仅关注于具体的技术层面东西,你永远看不到行业方向和意义所在。这就是方法论的意义。

就说云计算的接口吧,我觉得就不可能统一,我之前在我的博客也分析过:http://blog.csdn.net/hsluoyc/article/details/50560486 虽然作为使用者我们希望云平台都暴露一样的接口,但是云平台们不会这样做的,他们没有动力、没有利益去这样做。试问AWS凭什么会同意去兼容阿里云的接口呢?让Azure兼容AWS估计它也不干吧。对于公司来讲,一切都是商业利益,就是这么简单的事情。

至于分布式系统,已经是很早的概念的,在云之前就有了。所以你理解的云引出分布式,是不太正确的。大数据呢,和云也不是一定要绑在一起的。可以部署在云上,也可以部署在物理机上啊,这样就和云没什么关系了。

至于行业方向,目前来看,云计算以后会是国家基础设施,像水电、公路、通信等一样必不可少。但是目前在标准化上还处于起步阶段,也就无法做到所有云服务的标准化接口,而云服务的标准化会是后面很长一段时间的行业发展目标。认识到这些方法论上的东西,才可能搞清楚自己做哪些东西、往哪些方向发展才是有意义的。比如你说的大数据系统,为啥要有大数据系统,会对社会产生多大意义,这些都需要以行业高度的方法论来理解。

标准问题还是我说的,云平台统一标准几乎不可能。

为什么一个技术会兴起,无外乎两个因素,有需求,有能力,需求呢,主要是由行业提出,能力则是由技术解决。这个就是预测风口的事情,估计没人能完全预测准确,估计巴菲特猜对的概率还大些,哈哈

mccoysc commented 7 years ago

你的这些内容依然是单纯技术角度的理解,比如saas什么的,这些仍然只是技术方案上抽象了一层而已,saas不是云,pass也不是云,分布式、大数据更不是云。 所谓行业角度考虑问题,并不是很空虚的口号,而是实实在在决定了做什么不做什么的基本原则。比如公有云角度,因为行业多数是中小客户且无运维能力,所以决定了基本方式是重安全产品和自动化防御能力,具体到行动上,就要求公有云安全产品必须更加自动化和智能,更加强调自动处理能力。而私有云环境又会是另外的情况,就不细说了。

总之是:行业角度看问题不是空话,是用来指导具体行动的基本原则。

mccoysc commented 7 years ago

再举个例子,通常企业找人,基础性技术岗位的要求一般是会XXX编程语言,理解XXX平台实现原理,有大型XXX系统的设计经验,能用XXXX智能解决XXX寻址问题,有过高性能亿万级XXX系统的开发经验等等类似这样的需求。

而企业找高层技术人员时的要求会是理解XXX行业和yyyy行业基本特征,知道他们的发展方向和差别体现在具体产品上的表现,知道如何处理这些差异;知道行业方向体现在产品上如何表现,对行业现有问题的看法是怎么样的?如何解决这些问题?

mccoysc commented 7 years ago

然后再纠正一点: 云未必是虚拟机,物理机也未必不是云。云的概念,n多自认资深的人都是一团浆糊的。

mccoysc commented 7 years ago

至于云计算标准统一问题,这并不等价于你的“云平台标准统一”,二者没有必然关系。这个实际仍然是之前反复说过的“对行业基本概念和方法论的理解程度”导致的不同想法。 举例来说,如何铺设城市电力线路网络,如何应急各种网络故障,不可能做到标准统一,但是所有城市人员对于如何使用电力资源和服务,都是一样的方式。前者是纯粹的技术层面,后者是行业标准层面。这是一定会有统一的标准的。 云计算作为未来的基础设施,必然需要有统一的行业标准,这个所谓统一,未必是技术上要求的“一致”,是行业角度的基本服务标准的一致。

hsluoyz commented 7 years ago

举例来说,如何铺设城市电力线路网络,如何应急各种网络故障,不可能做到标准统一,但是所有城市人员对于如何使用电力资源和服务,都是一样的方式。前者是纯粹的技术层面,后者是行业标准层面。这是一定会有统一的标准的。

中国民电电压220V,两脚插座、三脚插座都有标准,这个就是技术层面的啊。因为统一采用了这样的技术,这样的接口,才会方便民众生活、工业生产。不统一你看看还怎么用电。跟我说的云平台接口是类似的。就像插座可以买转接头,云平台API不同也可以多开发一套兼容API。只不过电力关系到国计民生,所以国家强制统一标准了,而云平台标准属于互联网上的技术细节,也不怎么关系国计民生,所以国家不会怎么管罢了。

云计算作为未来的基础设施,必然需要有统一的行业标准,这个所谓统一,未必是技术上要求的“一致”,是行业角度的基本服务标准的一致。

基本服务标准就是SLA了。也是技术指标之一,这个东西也不会统一。本来不同的云平台的价格差异就包含了提供SLA级别的高低了。

我发现你很喜欢用行业标准这个高大上的词,看得出你比较轻视技术,总觉得有些东西是技术解决不了,而行业观点可以解决的,也许你是准备从技术走上管理岗位?

不过可惜的是,在云计算这个领域,完全脱离技术去空洞的谈行业是不可能的。因为云计算本身就是技术驱动、技术密集的,大数据、人工智能也类似。企业找高层技术人员(即CTO之类),肯定也不会让他技术空谈行业。如果你想发挥你的商业、行业特长,应该去一些应用的领域,比如电子商务、O2O之类的,这些领域技术不占主导。

这个世界总有一些关键技术的变革者(比如Linus),提出Linux和Git;也有像马云这样的企业家,创造商业模式。他们都改变了世界,其贡献没有办法在一个尺度下比较。也许你对后者更为推崇备至,不过对我来说,我觉得当前者更cool一些。

mccoysc commented 7 years ago

这不叫“轻视技术”,之前刚毕业时,也曾有过这样的想法,认为具体技术细节就是一个事情的核心,后来做了管理岗才真正深刻理解什么叫做业务……技术和产品仅仅是其中很重要的一部分,但还没重要到非得哪种技术不可的程度……产品设计,市场运营,产品运营,产品目标,没我哪一个的重要性强大到足够掩盖其它方面的重要性

hsluoyz commented 7 years ago

这个就是产品经理的角度了。作为互联网公司,研发和产品经理都很重要,甚至在某些情况下产品经理更重要。如马化腾、张小龙之于腾讯。不过马也是从技术转过去的。而且腾讯严格来说也不是非常技术驱动的公司,不像Telsa或SpaceX这样,当然这个要求有点高,能做好一个产品已经非常不错了。

马这样的人无疑是非常成功的,不过我个人而言,更喜欢Linus这样的创客,能创造出一些原先没有的东西,开源出来,被全人类使用,成为事实标准。当然能不能做到就是个人实力的问题了。也许以后我这个目标以后也会改变,也开始做产品,考虑业务了。这个都不好说。走一步看一步吧,空谈没用,做好自己的岗位,做好手头的每一件事才有意义。